2026-02-03 5:24 AM
Hi all,
I’m working on an STM32WB55 and trying to run two advertisements “in parallel”:
a connectable advertisement (for normal connections / data)
a non-connectable advertisement using Additional Beacon
I can see both advertisements from an Android device, so the basic setup works.
The problem I’m struggling with is synchronising beacon payload updates with the actual beacon transmissions.
What I’d ideally like to do is update the beacon payload right before each non-connectable advertising event, so the transmitted packet always contains the latest data, without updating faster than the beacon interval.
I looked into using ACI_HAL_END_OF_RADIO_ACTIVITY_EVENT as a pacing mechanism (e.g., update the beacon payload right after an advertising event so the next one carries new data). However, with two advertising roles and other BLE activity (connection events, etc.), this event is generated frequently and not only for the additional beacon advertising. From what I can tell, it also doesn’t clearly identify which advertising activity just completed (connectable vs additional beacon), so triggering aci_gap_additional_beacon_set_data() directly from it doesn’t seem robust.
Has anyone implemented a clean/efficient way to:
update additional beacon advertising data at a controlled rate, and/or
align updates with the additional beacon advertising schedule (or reliably pace updates based on actual beacon transmissions) while still running normal connectable advertising/connection activity?
Any suggestions or best practices would be appreciated.
Thanks,
Denys