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

Why is Hardware Address of Bluetooth Device different than Device Address.

I am developing some application and I have decided to use Device Addresses to distinguish between devices. I have read device addresses of 2 chips (I have read addresses 0x100000A4 and 0x100000A8) these are the results:

Device Address chip #1: 0x c6 48 36 6c 92 c9 ec 09

Device Address chip #2: 0x dd e4 0d 75 92 8b ef 79

However when I read Hardware Address of Bluetooth Device using my smartphone application (or nRF Master Control Panel) I got following results:

Hardware Address of Bluetooth Device chip #1: 0x f6 6c 92 c9 ec 09

Hardware Address of Bluetooth Device chip #2: 0x cd 75 92 8b ef 79

It is not hard to realize that 2 most significant Bytes are gone (cause of BLE specification).

My question is why sixth byte (only 4 greater bits) is different ? Is it some kind of bug or is it the way you have designed the chips?

I wonder if I can rely on comparing Device Addresses with Hardware Addresses of Bluetooth Devices?

Parents
  • Hi there,

    The two first bits of the address are following some specific rules, coming from the Bluetooth specification. See the [Vol 6, Part B, 1.3] chapter "Device Address".

    • Public device addresses have special rules set by IEEE 802-2001.
    • Static device addresses have the two most significant bits set to 1.
    • Non-resolvable private addresses have the two most significant bits set to 0.
    • Resolvable private addresses (used with Privacy) have the MSB set to 0, the following bit set to 1.

    What you are seeing here is that the SoftDevice is adding two bits to signalize that it is using a static device address.

Reply
  • Hi there,

    The two first bits of the address are following some specific rules, coming from the Bluetooth specification. See the [Vol 6, Part B, 1.3] chapter "Device Address".

    • Public device addresses have special rules set by IEEE 802-2001.
    • Static device addresses have the two most significant bits set to 1.
    • Non-resolvable private addresses have the two most significant bits set to 0.
    • Resolvable private addresses (used with Privacy) have the MSB set to 0, the following bit set to 1.

    What you are seeing here is that the SoftDevice is adding two bits to signalize that it is using a static device address.

Children
No Data
Related