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

Set Complete Local Name

Hello, When using the nRF Master Control Panel I see other Beacons with "Complete Local Name"... I am building an iBeacon but have not found a way to set the name and have it show as Complete Local Name in Master Control Panel...

How do I set this value while still advertising iBeacon data, and not run out of room?

Thanks in advance for the help!!!

  • No one? I thought this was a simple question! Any help in the right direction would be awesome...

  • Greg -

    You are correct that the data that Apple requires in the iBeacon "packet" eats up all but one byte of the main advertising packet.

    So, you need to

    1. Create a scan response (SCAN_RSP) structure that contains the Complete Local Name element;

    2. Set your iBeacon data as the main advertising packet and the scan response data as the "secondary" in your call to sd_ble_gap_adv_data_set();

    3. Make sure that you set you advertising type to something that is scannable in the structure that you pass to sd_ble_gap_adv_start(). If your iBeacon is not offering any services, then BLE_GAP_ADV_TYPE_ADV_SCAN_IND would be a good choice.

    Note that the iBeacon spec calls out BLE_GAP_ADV_TYPE_ADV_NONCONN_IND but a number of people seem to be ignoring that rule. If you strictly follow the iBeacon spec and use BLE_GAP_ADV_TYPE_ADV_NONCONN_IND then the peer device will not issue a Scan Request (SCAN_REQ).

    Master Control Panel doesn't care about whether or not your device is an iBeacon so when it sees a "scannable" advertising packet type it issues the SCAN_REQ.

    On the other hand, I recently ran across an iBeacon scanning tool that was enforcing the advertising type and refused to identify a device that was not using BLE_GAP_ADV_TYPE_ADV_NONCONN_IND as an iBeacon.

    --- tom

Related