Using random address from 'blecm_set_static_random_bd_addr'

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
hachc_2137126
Level 5
Level 5
10 likes given 5 likes given First like received

Hi,

  This is the question following Changing BD_ADDR from the application

  Regarding to victorz's description here

You shall not change device bdaddr on every reboot.

  I don't see the same expression from the BT spec as below, which is cited from section 10.8.1 of Part C. of Volume 3.

A device may choose to initialize its static address to a new value after each

power cycle. A device shall not change its static address value once initialized

until the device is power cycled.

Note: If the static address of a device is changed then the address stored in

peer devices will not be valid and the ability to reconnect using the old address

will be lost.

  So, if we need to change the BD address in every reboot, then what would be the limit of write cycle to EEPROM that storing the BD_ADDRESS, in case that we need to write it to '0xFFFFFFFFFFFF' before calling 'blecm_set_static_random_bd_addr'?

0 Likes
1 Solution
BoonT_56
Employee
Employee
500 likes received 250 likes received 100 likes received

I believe modern eeproms can support a few million write events. refer  to the manufacturer's datasheet for confirmation. and changing bdaddr within the application/api is strongly discouraged.

View solution in original post

0 Likes
6 Replies
BoonT_56
Employee
Employee
500 likes received 250 likes received 100 likes received

I believe modern eeproms can support a few million write events. refer  to the manufacturer's datasheet for confirmation. and changing bdaddr within the application/api is strongly discouraged.

0 Likes

Thanks and well noted.

Is there any other way to support changing random address for the privacy case?

0 Likes

I think what you are referring to is called a resolvable private address (RPA).


RPA is a feature that allows your device to change it's BD_ADDR such that a paired device can still understand it's the same device.  I believe that an iOS device supports RPA and changes the BD_ADDR every 15 minutes.  It can do this because during the pairing process a special key is distributed to the peer.  Therefore, when a peer sees the advertisement from the iPhone, it can decode the BD_ADDR and understand that it is the same device that it was paired with initially.

The BCM20736/7 supports connections from devices that change BD_ADDRs in this manner, however, these devices do not have logic built in to change their own BD_ADDR.

0 Likes

Thanks, mwf_mmfae.

But actually, I don't take RPA as an option for our privacy design. There is no connection at all for our devices.

We're thinking about the privacy of beacon service which is just doing advertising without accepting connection from other devices.

0 Likes

Hi mwf_mmfae,

  Just to have confirmation on the RPA support.

  From other thread How to dynamically change the BD_ADDR of a 20736 device , you mentioned that RPA is not supported. Would you confirm this feature supported or not at 20737 from SDK 2.2?

0 Likes

It is not supported.  I have already spoken to the developers and they confirmed.

0 Likes