Extended advertising - Apple device

Hi,

We are using an nRF52832 development board with the nRF5 SDK. We need to implement Extended Advertising with a payload of up to 161 B.

In our implementation, we are using a TLV format and currently sending test data (a dummy counter) to verify the transmission of a larger payload.

Everything works as expected on Android devices, and we can see the complete payload. However, we are having an issue with Apple devices: the device is visible in the nRF Connect app only when the payload is up to 15 B. As soon as we increase the payload beyond 15 B, the device is no longer visible.

Have you had any experience with this limitation on Apple devices, or is there a specific configuration or workaround required to detect Extended Advertising with a larger payload?

Thank you!

  • Hi,

    I have seen claims in older DevZone tickets, that iOS supports scanning of extended advertising up to 124 bytes only, and only with 2M secondary PHY. See e.g. Apple device support for BLE Extended Advertising? and comments in the second code block of the opening post in unable to see extended advertising on IOS (15/17 with IOD 26.x) with nrfConnect/SI Connect or Nano Connect.
    While I have yet to get that confirmed, it may still be worth testing to see if it works with either of those changes (or potentially both.)

    Regards,
    Terje

  • Hi,

    We have not found official information from Apple regarding extended advertising, neither best practices nor what to expect. Their accessory design guidelines (found at https://developer.apple.com/accessories/) currently does not mention any guidelines for extended advertising (apart from a brief mention that one type of accessory should support it.)

    What we have found out by trial and error, is that the longer the advertisement, the longer time for the iOS device to receive it. We suspect this has to do with (limited) time slots on the phone dedicated to scanning. Further, we think that if a scanning time slot expires before the full extended advertisement is received, then the full advertisement gets lost and never reported from the OS. At around 100 bytes the time required for reception is at several seconds, and the longest advertisements we were able to receive had around 115 bytes of total advertising data. This was with 2M secondary PHY. The AD types in this advertisement were Flags, Complete Local Name, and Manufacturer Specific Data.

    Our conclusion is that from what we can tell, reception of extended advertising currently seems a bit limited for iOS devices. It looks like advertisements cannot be too long (not much more than 100 bytes at most), and that one should use 2M secondary PHY.

    Regards,
    Terje

Related