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

Unable to Receive Directed Advertisements

For some reason I'm not able to receive directed advertisements on the nRF51 development kit. I verified my nRF51 peripheral is sending the direct advertisement packets using the Sniffer tool, but the I don't see any BLE_GAP_EVT_ADV_REPORTS being generated on the central while its scanning.

The central does however see the advertisements if I configure them on the peripheral as connectable undirected.

I'm using SDK 10.0.0 for the peripheral and Windows BLE Driver 0.5.0 for the Central.

Thanks

Parents
  • I've done more digging, and will keep it here in case it's an easier resolve. I think the actual packet sending and receiving is correct, but the SDK example code doesn't handle directed packets on the central side, leading to the confusion.

    I am now seeing BLE_GAP_EVT_ADV_REPORT. That part was just a mistake on my part checking inside the BLE_GAP_EVT_ADV_REPORT handler case after some error checks. I should have checked immediately, prior to error checks.

    The error checks on parsing for name or UUID16 fail, causing the BLE central example code to ignore directed advertising packets. They fail because directed packets (p_gap_evt->params.adv_report in example code) have a dlen of 0, so no parseable data.

    Continued...

Reply
  • I've done more digging, and will keep it here in case it's an easier resolve. I think the actual packet sending and receiving is correct, but the SDK example code doesn't handle directed packets on the central side, leading to the confusion.

    I am now seeing BLE_GAP_EVT_ADV_REPORT. That part was just a mistake on my part checking inside the BLE_GAP_EVT_ADV_REPORT handler case after some error checks. I should have checked immediately, prior to error checks.

    The error checks on parsing for name or UUID16 fail, causing the BLE central example code to ignore directed advertising packets. They fail because directed packets (p_gap_evt->params.adv_report in example code) have a dlen of 0, so no parseable data.

    Continued...

Children
No Data
Related