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

Should I see iPhone 4S in Master Control Panel?

I have the nRF51822 development kit (with the new hardware revision QFAA or something), and I am using the Master Control Panel with the new 0.9 firmware for the dongle.

When I run the Master Control Panel device discovery, and place my iPhone 4S with bluetooth enabled and iOS 7 next to the dongle, I don't get anything in the "Discovered Devices" list. Should I be seeing my iPhone?

Thanks!

Erland

Parents
  • Master Control Panel will show any Peripheral that sends Bluetooth low energy advertisement packets. The iPhone will not do this by default, but it has APIs that allows an app to start such advertisement. This is exposed through CBPeripheralManager.

    If you just want to do a quick test you can use the LightBlue app to make the iOS device appear as a Peripheral, through its "Profile" menu, where you can select a Peripheral to simulate.

    Edit: To make an nRF51822 device appear in the Bluetooth settings menu of an iOS device, due to supporting ANCS, you can use the following code snippets:

    
    #define BLE_ANCS_SERVICE_UUID_BASE             {0xD0, 0x00, 0x2D, 0x12, 0x1E, 0x4B, 0x0F, 0xA4, 0x99, 0x4E, 0xCE, 0xB5, 0, 0, 0x05, 0x79}
    #define BLE_ANCS_SERVICE_UUID                  0xF431
    ...
    err_code = sd_ble_uuid_vs_add(&service_base_uuid, &p_ancs->uuid_types.service);
    ...
    
    

    and then in advertising_init:

    
        ...
        ble_advdata_t scanrsp;
        
        ble_uuid_t solicited_uuids[] = {
            {BLE_ANCS_SERVICE_UUID, m_ancs_c.uuid_types.service},
        };
    
        memset(&scanrsp, 0, sizeof(scanrsp));
        scanrsp.uuids_solicited.p_uuids  = solicited_uuids;
        scanrsp.uuids_solicited.uuid_cnt = sizeof(solicited_uuids) / sizeof(solicited_uuids[0]);
        
        err_code = ble_advdata_set(&advdata, &scanrsp);
    
        ...
    
    
Reply
  • Master Control Panel will show any Peripheral that sends Bluetooth low energy advertisement packets. The iPhone will not do this by default, but it has APIs that allows an app to start such advertisement. This is exposed through CBPeripheralManager.

    If you just want to do a quick test you can use the LightBlue app to make the iOS device appear as a Peripheral, through its "Profile" menu, where you can select a Peripheral to simulate.

    Edit: To make an nRF51822 device appear in the Bluetooth settings menu of an iOS device, due to supporting ANCS, you can use the following code snippets:

    
    #define BLE_ANCS_SERVICE_UUID_BASE             {0xD0, 0x00, 0x2D, 0x12, 0x1E, 0x4B, 0x0F, 0xA4, 0x99, 0x4E, 0xCE, 0xB5, 0, 0, 0x05, 0x79}
    #define BLE_ANCS_SERVICE_UUID                  0xF431
    ...
    err_code = sd_ble_uuid_vs_add(&service_base_uuid, &p_ancs->uuid_types.service);
    ...
    
    

    and then in advertising_init:

    
        ...
        ble_advdata_t scanrsp;
        
        ble_uuid_t solicited_uuids[] = {
            {BLE_ANCS_SERVICE_UUID, m_ancs_c.uuid_types.service},
        };
    
        memset(&scanrsp, 0, sizeof(scanrsp));
        scanrsp.uuids_solicited.p_uuids  = solicited_uuids;
        scanrsp.uuids_solicited.uuid_cnt = sizeof(solicited_uuids) / sizeof(solicited_uuids[0]);
        
        err_code = ble_advdata_set(&advdata, &scanrsp);
    
        ...
    
    
Children
Related