<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>16bit UUID Misunderstandings</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/24170/16bit-uuid-misunderstandings</link><description>Hello, 
 I have quite some difficulties understanding the 16 / 24 / 32 / 128 bit UUID concept. My understanding is as follows:
All BLE Assigned Services / Characteristics / Descriptors / ... use the Bluetooth SIG Base UUID which is as follows:
 xxxxxxxx</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 30 Oct 2018 13:19:05 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/24170/16bit-uuid-misunderstandings" /><item><title>RE: 16bit UUID Misunderstandings</title><link>https://devzone.nordicsemi.com/thread/155137?ContentTypeID=1</link><pubDate>Tue, 30 Oct 2018 13:19:05 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3a542490-2045-4f34-8ab1-7b408c5063d0</guid><dc:creator>run_ar</dc:creator><description>&lt;p&gt;Not all 16-bit UUID&amp;#39;s are part of the os kernel. Some would like to have a 16 bit UUID to save space in the advertisement package. But using a 128 bit UUID would also work.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: 16bit UUID Misunderstandings</title><link>https://devzone.nordicsemi.com/thread/154376?ContentTypeID=1</link><pubDate>Thu, 25 Oct 2018 06:47:07 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c462e77c-1870-4533-a80e-10c29ed20671</guid><dc:creator>jagath</dc:creator><description>&lt;p&gt;is all the 16-bit registered UUID, part of the OS kernel what is the advantage on spending 2500$ for it. Is that gives the privilege form the central device side (IOS / android OS) to the peripheral device which having that.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: 16bit UUID Misunderstandings</title><link>https://devzone.nordicsemi.com/thread/95191?ContentTypeID=1</link><pubDate>Wed, 09 Aug 2017 08:30:45 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:76ae726a-6fdf-4041-a976-39de4c623e16</guid><dc:creator>Marius Heil</dc:creator><description>&lt;p&gt;ok, makes sense. Thanks a lot for clarification :-)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: 16bit UUID Misunderstandings</title><link>https://devzone.nordicsemi.com/thread/95190?ContentTypeID=1</link><pubDate>Wed, 09 Aug 2017 08:27:42 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1dc13397-4a7c-41c7-8996-9a9e78be57dd</guid><dc:creator>endnode</dc:creator><description>&lt;p&gt;As some other guys mentioned on this forum UUIDs are completely unctructured in the way that Service and its sub-ordinate Characteristics/Descriptors/whatever don&amp;#39;t need to use same 128-bit UUID base or have anything in common. All will work without problems. So I&amp;#39;m afraid it means: if you want to have special Service and Characteristic(s) with 16-bit UUIDs mapped to BT SIG base then you need to purchase as many as you need (it&amp;#39;s also a question if BT SIG checks what exact name/meaning these should have or if it&amp;#39;s just matter of money and they will give you any number you want). But normally most of vendors are find to have their encapsulating service with standardized/registered 16-bit UUID (e.g. because that goes to GAP AD elements in advertising data where the space is limited) and underneath they use proprietary UUIDs in full 128-bit form.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: 16bit UUID Misunderstandings</title><link>https://devzone.nordicsemi.com/thread/95189?ContentTypeID=1</link><pubDate>Wed, 09 Aug 2017 07:23:04 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b5949ab2-fe40-47f1-95aa-e6c7cc620756</guid><dc:creator>Marius Heil</dc:creator><description>&lt;p&gt;Thanks, I got most of the questions figured out now, however I am still wondering this: If I bought a 16bit UUID, my service will be something like this: 0000FF00-0000-1000-8000-00805F9B34FB (Using the BL SIG Base UUID). Now if I register this service, I will do so by using the base UUID. Next, if I want to add a custom characteristic to my service, what will I do? Should I register a custom vendor UUID and use the returned index (returned in the type field) to this UUID to register my custom characteristic?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: 16bit UUID Misunderstandings</title><link>https://devzone.nordicsemi.com/thread/95188?ContentTypeID=1</link><pubDate>Tue, 08 Aug 2017 14:53:33 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f13329aa-ac3f-48da-a575-259927949638</guid><dc:creator>endnode</dc:creator><description>&lt;p&gt;Hello Marius,&lt;/p&gt;
&lt;p&gt;On SD side it&amp;#39;s again just set of 16-bit UUIDs + reference to 128-bit base where only BT SIG default 128-bit base UUID is hardocoded and available at SD start. All others you need to provision as new custom 128-bit UUID bases.&lt;/p&gt;
&lt;p&gt;Now when you want to init GATT Server object (being it service or characteristic) you always use 16-bit value + base reference. So you can indeed define custom object with BT SIG UUID because you can reference BT SIG base in the call (see &lt;a href="http://infocenter.nordicsemi.com/topic/com.nordic.infocenter.s132.api.v5.0.0/group___b_l_e___u_u_i_d___t_y_p_e_s.html?cp=2_3_0_1_0_2_0_1_0_3"&gt;these defines in SD API&lt;/a&gt; and &lt;a href="http://infocenter.nordicsemi.com/topic/com.nordic.infocenter.s132.api.v5.0.0/structble__uuid__t.html?cp=2_3_0_1_0_2_0_1_1_1"&gt;&lt;code&gt;ble_uuid_t&lt;/code&gt; structure definition&lt;/a&gt; which is used in &lt;a href="http://infocenter.nordicsemi.com/topic/com.nordic.infocenter.s132.api.v5.0.0/group___b_l_e___c_o_m_m_o_n___f_u_n_c_t_i_o_n_s.html?cp=2_3_0_1_0_2_0_2_2_8#ga265b4251110a15120d0aa97e5152163b"&gt;&lt;code&gt;sd_ble_uuid_vs_add&lt;/code&gt; function call&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;I would personally try to avoid using BT SIG allocated UUIDs (on top of their base) because only 512 values were allocated for proprietary values in that range and BT SIG is charging for them. You can see actual &lt;a href="https://www.bluetooth.com/specifications/assigned-numbers/16-bit-uuids-for-members"&gt;list of commercial&lt;/a&gt; and &lt;a href="https://www.bluetooth.com/specifications/assigned-numbers/16-bit-uuids-for-sdos"&gt;non-profit UUIDs&lt;/a&gt; allocated. If you really want to steal some numbers from BT SIG range I would go for something in 0xFF00-0xFFF0 (stealing part of SDO range) or 0xFC00-0xFCFF (anticipating BT SIG extension of commercial UUIDs to 0xFD00-0xFDFF range).&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>