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

Why is a beacon with BleGeneralDiscoverable shown as connectable?

In the Master Control Panel on Android, I have a beacon that is advertising with the BLE flags set to 0x06, which is BREDR_NOT_SUPPORTED | LE_GENERAL_DISCOVERABLE. Its packet type is 0x42 which is BLE_ADV_NONCONN_IND | BLE_TXADD. For a nonconn packet, TXADD means the address is random (as opposed to "public").

In MCP this beacon is shown as connectable (i.e. there is a connect button) even though it is BLEADV_NONCONN_IND. The weird thing is the connect button goes away if I remove the LE_GENERAL_DISCOVERABLE flag.

Have I misunderstood the LE_GENERAL_DISCOVERABLE flag or is this a bug in MCP?

Parents
  • Ah, answering my own question. From the Bluetooth 4.0 code spec, Volume 3, Part C, Section 9.1.1.2 (this must be the deepest contents table ever):

    A device in the broadcast mode shall not set the ‘LE General Discoverable Mode’ flag or the ‘LE Limited Discoverable Mode’ flag in the Flags AD Type as defined in Section 11.1.3.

    Since my device is in broadcast mode (never receives) I guess I shouldn't set that flag. I still don't fully understand what it is for though.

Reply
  • Ah, answering my own question. From the Bluetooth 4.0 code spec, Volume 3, Part C, Section 9.1.1.2 (this must be the deepest contents table ever):

    A device in the broadcast mode shall not set the ‘LE General Discoverable Mode’ flag or the ‘LE Limited Discoverable Mode’ flag in the Flags AD Type as defined in Section 11.1.3.

    Since my device is in broadcast mode (never receives) I guess I shouldn't set that flag. I still don't fully understand what it is for though.

Children
No Data
Related