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

Service UUID order in advertisement array

Hi,

I don't know if this is a dumb question or not, but here it goes.

Since I'm new to the nRF51822, I've been playing around with the ble_app_hrs sample project. To display the HR value, I use an HRM app on an Android phone. However, I'm encountering problems in discovering the nRF51822 board if I move the HR Service UUID (BLE_UUID_HEART_RATE_SERVICE) to the last of the listed services in the advertisement array. The nRF51822 board cannot be discovered by the Android app. The board cannot be discovered also if I place another service UUID just before the HR Service UUID. It seems the board can only be discovered by the HRM app on the phone if the HR Service UUID is the first service listed in the advertisement array.

Is there a requirement that the service UUIDs be placed in a specific order in the advertisement array?

Any help is much appreciated.

Thanks,

Leo

  • The Heart Rate Profile Specification is available here.

    In the PDF in Section 3.1.1 it says: "While in a GAP Discoverable Mode for initial connection to a Collector, the Heart Rate Sensor should include the Heart Rate Service UUID defined in [4] in the Service UUIDs AD type field of the advertising data."

    The word should is used to indicate that among several possibilites one is recommended as particularly suitable.

    So, it is not mandatory, and the specification doesn't say anything about order.

    My guess is that the app only checks the first UUID that is included in the advertising packet.

  • Hi Petter,

    Thank you for the reply. I actually read that document before, but with my being new, I just thought that maybe I just missed or misunderstood some parts of it. I just wanted to confirm from someone who is very experienced such as yourself. As to why the app doesn't work, I had the same theory that it was only checking the first UUID. Thanks again.

    Leo

Related