Use the Bluetooth_Base_UUID as the base of 128 bit UUID

Hi Team

Customer want to use Bluetooth_Base_UUID (00000000-0000-1000-8000-00805F9B34FB) as 128 bit UUID base. They can use any other 128 bit UUID base but this one. When they set the base 128 bit UUID to Bluetooth_Base_UUID in their customized service, our softdevice treat it as 16 bit UUID. So do we have any method to use Bluetooth_Base_UUID as 128 bit UUID base? I can re-produce this issue in nRF5 SDK 17.1.0.

Regards

Victor

  • Hello Victor,

    The reason it behaves like it was a 16bit UUID is that this is the exact way that the 16 bit UUIDs are treated, and this is what the radio packets look like on the air. 

    I would not say that this is an issue. The customer is not allowed to use the Bluetooth_Base_UUID unless they have actually registered the 16bit UUID. So even if I don't know exactly what you mean by "our softdevice treat it as 16 bit UUID", it doesn't really matter. If they want to use a 128bit UUID, they should not use the same as the one that is used in the 16 bit UUIDs by Bluetooth.

    Best regards,

    Edvin

  • Hi Edvin

    I test it in nRF5 SDK example examples\ble_peripheral\ble_app_blinky.

    • I force the uuid_type to BLE_UUID_TYPE_VENDOR_BEGIN in ble_lbs_init as below.
    • when I use orignal LBS_UUID_BASE value. It can show the 128 bit UUID as below in nRF Connect APP

    • when I change LBS_UUID_BASE to Bluetooth_Base_UUID (00000000-0000-1000-8000-00805F9B34FB), it can only show the 16 bit UUID, even I have set the uuid_type to BLE_UUID_TYPE_VENDOR_BEGIN.

        

    • So do we have any method to make the lbs service show 128 bit uuid in nrf connect APP, which use Bluetooth_Base_UUID?
  • No. It is not possible. On air it actually uses the entire UUID, but it is the nRF Connect app that strips it down to 16bit. 

    I still don't understand what you are trying to do here. And to be clear, if the customer wants to use a 16bit UUID, they need to register it with Bluetooth SIG.

  • Hi Edvin

    • The customer previously designed a mobile app through a third party. This APP use 128 bit uuid, and the uuid base was set to base Bluetooth_Base_UUID. their orignal device can support it. When they change to our nRF52. They don't want to spend additional cost to re-design their APP. So they require us to support full 128 bit Bluetooth_Base_UUID in nRF52
    • I use the ellisys to capture the air packet. I change the uuid_type to BLE_UUID_TYPE_VENDOR_BEGIN in ble_lbs_init. The only different is one byte in LBS_UUID_BASE. when I change this byte to 0x01, it can send 128 bit uuid in air packets. When I change It to 0x10 as Bluetooth_Base_UUID, It use 16 bit uuid in  air packets.

    • So I guess that our SD has made special treatment for this Bluetooth_Base_UUID. Could you help to confirm it?

    16bit_uuid.btt

    128bit_uuid.btt

    Regard

    Victor

  • Hello Victor,

    Can you please show a sniffer trace of the old device using the 128bit UUID? Does it look different than the trace of the 16 bit?

    On air, there is no difference between a 128bit and a 16 bit UUID. A 16 bit UUID will be sent as a 128bit UUID with the standardized padding. Can you please try to connect to the old product that uses the 128 bit UUID with nRF Connect for Mobile? Does it look like a 128 bit or a 16 bit UUID?

Related