This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

DFU address conflict

When performing a DFU the 2nd stage increments the expected device BLE address by 1 when the device being updated reboots.  This potentially conflicts with the address of an existing BLE device.  Specifically, the DFU can connect with either device if they are both advertising.  The question is how to best handle this.  Separating device addresses in manufacturing by 2 isn't an option because the BLE address is used as the device serial number.

When a connect occurs, is it possible to get the data from the advertisement that the nRF used for connecting?  Obviously the DFU advertisement is different from the normal device advertising so that would allow at least detecting that the wrong device was connected.  I don't think there's a way to filter actually connecting based on advertising data.  Enumerating characteristics is expensive in terms of time/power.  We are using SDK 15.3.

Regards,

Mike

Parents Reply Children
  • It is not realistic to use random addresses.  We use advertising data in a remote sensing application.  We would have no way to map sensors with random MAC addresses.  Instead we use the device serial number, which is the 6 byte BLE MAC address.  Since these are programmed sequentially during manufacturing there is zero chance of them being the same, except during the 2nd part of a DFU

Related