STM32WB05: Can Eddystone UID be updated remotely over GATT
Hello,
I am using NUCLEO-WB05KN1 development board with the embedded STM32WB05KN MCU.
My goal is to advertise in Eddystone UID frame format.
Currently I generate the advertising packet manually and insert:
10-byte Namespace ID
6-byte Instance ID
Advertising works correctly.
:question_mark:What I Want To Achieve
I want to be able to change:
Namespace ID
Instance ID
remotely from a mobile phone using nRF Connect (by writing to a custom GATT characteristic).
This is important because we will deploy many devices in the field and updating IDs over BLE would be very useful.
:white_heavy_check_mark:What I Implemented
I created a custom GATT service with two writable characteristics:
uint16_t ns_char_handle = 0;
uint16_t inst_char_handle = 0;
uint8_t Namespace_ID[10];
uint8_t Instance_ID[6];
aci_gatt_srv_attribute_modified_event()
I handle write events using:
When I receive new data:
I update Namespace_ID / Instance_ID
Then I restart advertising after disconnection
Advertising packet is generated using:
Prepare_Eddystone_UID_Adv_Data():warning:The Problem
Even though the characteristic write event works and my arrays are updated, the advertising data does NOT seem to change properly after restart.
Questions:
Is it officially supported to dynamically change Eddystone UID fields during runtime?
Do I need to call aci_gap_set_advertising_data() again explicitly after modifying the arrays?
Is there any limitation in STM32WB05 stack regarding advertising data update while connected?
Is stopping advertising → updating data → restarting the correct approach?
Is there any ST example demonstrating dynamic advertising data update?
:wrench:Expected Behavior
After writing new Namespace/Instance ID via GATT:
Device disconnects
Advertising restarts
New advertising packet contains updated UID
Any guidance or reference example would be greatly appreciated.
Thank you.
