This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

service data advertisement and 128 uuid

Hi,

I searched through the devzone but I cannot find a answer on this question but the question has been asked before. Some background. I have a working solution from another vendor and I want to switch to Nordic. In this solution I use service data to advertise our product including some data about the product. I am now looking in the SDK to see how I can implement this with Nordic. Ok, so the ble_advdata_service_data_t structure needs a uint16_t for de uuid. I use 128 bits uuid's. I can add them with sd_ble_uuid_vs_add. This returns a UUID type. Now the question is. How do I match the UUID type return from sd_ble_uuid_vs_add to the service_uuid field in ble_advdata_service_data_t structure.

Cheers, Marcel

Parents
  • There are examples code from this blog use custom UUID. You can see how it's done. embeddedsoftdev.blogspot.ca/.../ehal-nrf51.html

  • Ok, then you can use the le_advdata_service_data_t for your uuid. The code is an example demo code not production. It does not matter whether I use illegal manufacturer id or not. My iOS counter part demo code still can read it. I do have a real ID which I do not provide with demo code. The info I transmit over manufacturer data is the 64bits chip unique ID. I use it as serial number so i can connected to multiple boards. In the Scan, I list them with the serial # so the user can select what that need. In another app (private one) I send both the 64bits serial # plus 3 x 16 bits values for model #, Hw rev #, fw rev #. Total of 112 bits + 16 bits manufac Id = 128bits. The p_data can be whatever you want to put in there. If you don't like using manufacturer data, you can use the ble_advdata_service_data_t instead. I've never tried that one though. Plus I still get my full 128bits service uuid transmitted with it so the total is 256bits. My be you can take a sniffer and compare the packets. Nordic SDK may have a different way to do thing than what you used to have but the transmitted packet should be very similar

Reply
  • Ok, then you can use the le_advdata_service_data_t for your uuid. The code is an example demo code not production. It does not matter whether I use illegal manufacturer id or not. My iOS counter part demo code still can read it. I do have a real ID which I do not provide with demo code. The info I transmit over manufacturer data is the 64bits chip unique ID. I use it as serial number so i can connected to multiple boards. In the Scan, I list them with the serial # so the user can select what that need. In another app (private one) I send both the 64bits serial # plus 3 x 16 bits values for model #, Hw rev #, fw rev #. Total of 112 bits + 16 bits manufac Id = 128bits. The p_data can be whatever you want to put in there. If you don't like using manufacturer data, you can use the ble_advdata_service_data_t instead. I've never tried that one though. Plus I still get my full 128bits service uuid transmitted with it so the total is 256bits. My be you can take a sniffer and compare the packets. Nordic SDK may have a different way to do thing than what you used to have but the transmitted packet should be very similar

Children
No Data
Related