- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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'?
Solved! Go to Solution.
- Labels:
-
FlashEEPROM
-
SDK 2.X
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks and well noted.
Is there any other way to support changing random address for the privacy case?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
It is not supported. I have already spoken to the developers and they confirmed.