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

Size of service UUID sdk12.3 (nrf51822) softdevice130

Hi,

Is there a size limit for the vendor specific service UUID? It looks like it should be 16 bits but I can't set more than 4 bits in my code.

I am using the uart central exmaple code sdk12.3 (nrf51822). The ble service UUID (BLE_UUID_NUS_SERVICE) is set at 0x0001. I tried to change it to a different value 0x1485 and now the central device can't connect to peripheral. If I keep the UUID within 4 bits (eg: 0x008) it works. Is there somewhere the UUID size can be set?

Debug log: (no connection, UUID 0x22)

 0> SDH:DEBUG:sd_ble_enable: RAM start at 0x200025e0
 0> APP:INFO: BLE started
 0> :INFO:Fast advertising
 0> :INFO:Connecting to target c651c51bb7ec
 0> :INFO:Connected.
 0> BLE_DB_DISC:INFO:Starting discovery of service with UUID 0x22 for Connection handle 1
 0> BLE_DB_DISC:INFO:Found service UUID 0x22

Debug log: (connected!, UUID 0x08)

 0> SDH:DEBUG:sd_ble_enable: RAM start at 0x200025e0
 0> :INFO:Fast advertising
 0> :INFO:Connecting to target c651c51bb7ec
 0> :INFO:Connected.
 0> BLE_DB_DISC:INFO:Starting discovery of service with UUID 0x8 for Connection handle 1
 0> BLE_DB_DISC:INFO:Found service UUID 0x8
 0> BLE_DB_DISC:INFO:Discovery of service with UUID 0x8 completed with success for Connection handle 1APP:INFO:All Peripheral Services Discovered
Parents
  • Sorry but this doesn't make any sense. Firstly GATT UUID is matter of stack so you should refer SoftDevice version (if you use Nordic Soft Device) and not SDK. Second all Nordic SD API work with 128-bit(16-byte) base (in the form of reference to table provisioned through Soft Device API earlier) and 16-bit (2-byte) "short" UUID. Could you be more precise what SDK example you use and what changes you made to the code? COuld you go back to generic example and verify that (indeed) all works fine?

  • Here is link to Nordic cheap sniffing solution (special FW for nRF51 DK or Dongle, unofficial FW for nRF52 Dk can be found on this forum as well). But indeed there are many other tools and variants, from few USD up to dozens of thousands. I would bet that if you go back to stock SDK examples of NUS Central and Peripheral, change just 16bit UUID of the service it will work. Kind of indication where is the problem... but maybe there is some wrong cast or whatever which will be already in the example. In every case there is nothing like "length" of UUID, zeros count indeed, that number is in the end used as 16-bit part of entire 128-bit UUID, trust me;)

Reply
  • Here is link to Nordic cheap sniffing solution (special FW for nRF51 DK or Dongle, unofficial FW for nRF52 Dk can be found on this forum as well). But indeed there are many other tools and variants, from few USD up to dozens of thousands. I would bet that if you go back to stock SDK examples of NUS Central and Peripheral, change just 16bit UUID of the service it will work. Kind of indication where is the problem... but maybe there is some wrong cast or whatever which will be already in the example. In every case there is nothing like "length" of UUID, zeros count indeed, that number is in the end used as 16-bit part of entire 128-bit UUID, trust me;)

Children
No Data
Related