<?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>pc_ble_driver_py and discovery of 128-bit UUIDs</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/106320/pc_ble_driver_py-and-discovery-of-128-bit-uuids</link><description>I write a HIL (Hardware in the Loop) test and connect with the pc_ble_driver_py to a nRF52840 in our product. The server offers the following handles (output from Wireshark): 
 
 During service discovery I do not get any 128-bit UUIDs in the characteristics</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Mon, 04 Dec 2023 14:46:22 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/106320/pc_ble_driver_py-and-discovery-of-128-bit-uuids" /><item><title>RE: pc_ble_driver_py and discovery of 128-bit UUIDs</title><link>https://devzone.nordicsemi.com/thread/458770?ContentTypeID=1</link><pubDate>Mon, 04 Dec 2023 14:46:22 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:432ba7f6-156b-48af-a09c-10f0a318d394</guid><dc:creator>tesc</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;It looks like you point to the UUID of 0x2A00, which is the Device Name UUID, which should be found under the Generic Access Service (UUID 0x1800). Are you sure that you have stopped execution at the point where you read the custom 128 bit characteristic UUID?&lt;/p&gt;
&lt;p&gt;In general, the way 128 bit UUIDs are stored in nRF5 SDK (and therefore also in pc-ble-driver) is that you have a base UUID and a 16 bit UUID. In order to get a full 128 bit UUID, you combine the base UUID with the 16 bit UUID (by placing the 16 bit UUID at the byte 12 and 13 positions of the base UUID.) There is an array of base UUIDs, and the data structure holding 128 bit UUIDs hold an index into that table as well as a 16 bit UUID, so that when you combine them you get the full UUID. For more on this subject, please have a look at &lt;a href="https://devzone.nordicsemi.com/guides/short-range-guides/b/bluetooth-low-energy/posts/ble-services-a-beginners-tutorial"&gt;Bluetooth low energy Services, a beginner&amp;#39;s tutorial&lt;/a&gt;, and in particular the section of that tutorial under the heading &lt;em&gt;Universally Unique ID (UUID)&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Regards,&lt;br /&gt;Terje&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>