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
  • It took a while to confirm, but this looks correct per spec. Bluetooth 4.0 spec section 2.3.1 shows ADV_DIRECT_IND must have the InitA (initiator address to advertise to), but lacks the AdvData payload field which all other advertisement types (ADV_IND, ADV_NONCONN_IND, ADV_SCAN_IND).

    So directed advertisements cannot, per the spec, include UUID, name, or other such info. I haven't found this in Nordic docs and the SDK examples don't handle this case, but BT spec itself is clear. And good news is the S120 SoftDevice code itself appears to be getting the packets correctly.

    I'm going to add a special check for ADV_DIRECT_IND, where if its address matches my whitelist (manual check), I'll assuming it has the services I need and just go to connect.

    Hopefully this approach resolves what you have too, karl? Thanks for getting back with me Petter. I'll let you know if this approach fails.

Reply
  • It took a while to confirm, but this looks correct per spec. Bluetooth 4.0 spec section 2.3.1 shows ADV_DIRECT_IND must have the InitA (initiator address to advertise to), but lacks the AdvData payload field which all other advertisement types (ADV_IND, ADV_NONCONN_IND, ADV_SCAN_IND).

    So directed advertisements cannot, per the spec, include UUID, name, or other such info. I haven't found this in Nordic docs and the SDK examples don't handle this case, but BT spec itself is clear. And good news is the S120 SoftDevice code itself appears to be getting the packets correctly.

    I'm going to add a special check for ADV_DIRECT_IND, where if its address matches my whitelist (manual check), I'll assuming it has the services I need and just go to connect.

    Hopefully this approach resolves what you have too, karl? Thanks for getting back with me Petter. I'll let you know if this approach fails.

Children
No Data
Related