cancel
Showing results for 
Search instead for 
Did you mean: 

WICED Smart Bluetooth

Contributor II

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
Reply
1 Solution
Employee

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
Reply
6 Replies
Employee

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
Reply
Contributor II

Thanks and well noted.

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

0 Likes
Reply
Moderator
Moderator

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
Reply
Contributor II

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
Reply
Contributor II

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
Reply
Moderator
Moderator

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

0 Likes
Reply