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

Is the use of Service UUID data type in advertising packages mandatory?

Hello,

I'm working on a project that makes use of both Bluetooth Service UUIDs like BAS and customer Service UUIDs. In the Bluetooth CCSv7 at Part A, Section 1.1, I found the following sentences:

"If a device has no Service UUIDs of a certain size, 16-, 32-, or 128-bit, the corresponding field in the extended inquiry response or advertising data packet shall be marked as complete with no Service UUIDs. An omitted Service UUID data type shall be interpreted as an empty incomplete-list."

Does this mean I have to add at least an incomplete list of 16-bit Service UUIDs and an incomplete list of 128-bit Service UUIDs to the advertising data? For me these sentences sound like if the device doesn't advertise at least an incomplete list of the used Service UUID sizes the peer device will interpret the said Service UUID sizes as not used. Can anyone explain me the meaning of these sentences?


I want to know if I have to include the Service UUID data type for the 16- and 128-bit Service UUIDs because I need as much space for manufacturer specific advertising data as possible and I already use parts of the scan response package. Furthermore the application has to be compatible to Bluetooth 4.2.

Thanks in advance.

Best regards,

Christian

  • Hi Christian. 

    I agree that the section in the spcec. is a little confusing. I have a hard time interpreting this myself. 

    From what I understand the sentences you mention only applies to a use case where a device has no Service UUIDs of either 16-, 32- or 128-bit. 

     

    I want to know if I have to include the Service UUID data type for the 16- and 128-bit Service UUIDs

     From my understanding an previous experience, you don't need to do that. 
    However, I'll try to track down someone internally with more in-depth knowledge about the spec. so that we can confirm this 100%

    Best regards, 
    Joakim

  • Hi Joakim,

    Thanks for the answer. I would be very grateful if you could keep me up to date so that hopefully we soon are able to decide how we need to structure the advertising data.

    What would be a suitable workaround if the service UUIDs would be really necessary?
    Would it be an option to build up a time division multiplex solution by dividing the manufacturer specific data I want to advertise into a number of parts, mark each part with an index and switch between the parts in the scan response every x ms?

    Are there any other solutions?

    Best regards,

    Christian

  • Christian22 said:
    What would be a suitable workaround if the service UUIDs would be really necessary?

    I would say that there is no need for a workaround, as there is no need for the service UUIDs to be included. 

    Best regards, 
    Joakim

  • I would read that as: If a scanner receives an complete list without any entry of a certain UUID size, the scanner can be certain that a specific service, the scanner is looking for, will not be implemented on the device. While if there is no list in the advertisment, the scanner has to treat this, as an incomplete list without entry. Which basically means, the scanner can not know which services are implemented on the device (and in doubt have to connect and discover).

Related