Zephyr BLE - use public(fixed) address

Purushothaman, Neha <neha.purushothaman@...>



Can Zephyr allow us to use the HW MAC address of the BLE module while advertising?


I am working on the BLE sample codes in Zephyr 1.6,  and noticed that while running the Zephyr BLE peripheral_hr sample code(or any other peripheral examples) on quark_se_c1000_devboard that the MAC address keeps changing every time the board is power cycled. The Bluetooth module used is nRF51 Raytac with hci_uart project flashed on.


It seems as if when the host requests for the Bluetooth address (common_init() in subsys/bluetooth/host/hci_core.c), the controller returns variable 'pub_addr'  (subsys/bluetooth/controller/ll.c). This variable, not being initialized, results in always returning 0. The host on receiving 0:0:0:0:0:0 from the controller sets static random address, which was why it kept changing every time I reset the board.


Is there a way to disable this feature? I could initialize the pub_addr and get a constant MAC address, but that would mean changing it every time i flash a new BLE module. Does Zephyr allow us to just use the public ( or HW) MAC address?


Thanks in advance,


Join users@lists.zephyrproject.org to automatically receive all group messages.