<?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>Sniffing a Bosch laser tape 2</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/80589/sniffing-a-bosch-laser-tape-2</link><description>Hi. 
 I`m trying to figure out a way I can control a Bosch GLM120C laser measure device using a micro controller. 
 I`m a stage where I can activate the laser(1st command) and take a measurement(2nd command) using NRF connect app on my phone. 
 Service</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Mon, 17 Apr 2023 07:55:08 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/80589/sniffing-a-bosch-laser-tape-2" /><item><title>RE: Sniffing a Bosch laser tape 2</title><link>https://devzone.nordicsemi.com/thread/420670?ContentTypeID=1</link><pubDate>Mon, 17 Apr 2023 07:55:08 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:109a21cd-7419-4e2b-8bfe-bf63ada7c844</guid><dc:creator>kosnick</dc:creator><description>&lt;p&gt;Hi Sparkybert,&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I am trying to apply your info on a GLM50C. And it seems to be working. Almost.&lt;/p&gt;
&lt;p&gt;At the moment I able to send the request and the laser turns on and gets a value. According to Dainius G. post (&amp;quot;send the bytes twice&amp;quot;).&lt;/p&gt;
&lt;p&gt;However, I do not get a response back (including the measured value), unless I connect the device to the official application first (I connect the device with the app, I disconnect it and there it is... ).&lt;/p&gt;
&lt;p&gt;I have turned on the indications on the characteristic but there is no hex with the measurement value. The moment I connect the device to the official app (MeasureOn) and disconnect it (even without taking any measurement), I am able to receive hex with the correct value.&lt;/p&gt;
&lt;p&gt;By the way, it is the same when using nRF connect (in case you are not familiar, an android app to sniff bluetooth, but i assume it&amp;#39;s the same as nRF sniffer you mentioned on your post).&lt;/p&gt;
&lt;p&gt;( this following section might be irrelavent, but in any case ....&lt;/p&gt;
&lt;p&gt;I tried sniffing the bluetooth with my android phone, and one thing to mention that might help is that as soon as the indication flag is set on the characteristic:&lt;/p&gt;
&lt;p&gt;the official app&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sent write request, handle 0x001e with value c05502&lt;/p&gt;
&lt;p&gt;the device&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rcvd write respons, handle 0x001e &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; and then&lt;/p&gt;
&lt;p&gt;the device&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rcvd handle value indication, handle 0x001e with value 001000&lt;/p&gt;
&lt;p&gt;the official app&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sent handle value confiramation, handle 0x001e&lt;/p&gt;
&lt;p&gt;)&lt;/p&gt;
&lt;p&gt;Any help would be much appreciated.&lt;/p&gt;
&lt;p&gt;Thanks.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Sniffing a Bosch laser tape 2</title><link>https://devzone.nordicsemi.com/thread/338376?ContentTypeID=1</link><pubDate>Wed, 10 Nov 2021 12:48:44 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:acfdb39c-de16-496c-af14-f92938b3b667</guid><dc:creator>Sparkybert</dc:creator><description>&lt;p&gt;Hi run_ar,&lt;/p&gt;
&lt;p&gt;thank you very much for your hint. You were absolutely right.&lt;br /&gt;I checked my original manual again, which mentions TrackMyTools (TMT) briefly. The manual only says that you can turn it on or off in the settings and that there is a dedicated app for it. That&amp;#39;s pretty much it.&lt;/p&gt;
&lt;p&gt;Anyway, I turned TMT off in the device settings and tested again and it actually stopped advertising when the device is turned off.&lt;/p&gt;
&lt;p&gt;Thanks again.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Sniffing a Bosch laser tape 2</title><link>https://devzone.nordicsemi.com/thread/338008?ContentTypeID=1</link><pubDate>Mon, 08 Nov 2021 20:24:24 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4b9f5ae1-89e9-4bee-9771-19ea5a383821</guid><dc:creator>run_ar</dc:creator><description>&lt;p&gt;Maybe you have enabled the &amp;quot;&lt;span style="font-family:sans-serif;font-size:12.8333px;left:139.843px;top:206.587px;" dir="ltr"&gt;TrackMyTools&lt;/span&gt;&amp;quot; feature or something, which in case it would make sense to advertise while in &amp;quot;off&amp;quot; mode?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Sniffing a Bosch laser tape 2</title><link>https://devzone.nordicsemi.com/thread/337766?ContentTypeID=1</link><pubDate>Fri, 05 Nov 2021 20:41:39 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:df795053-8f1b-4ad3-9e38-37cc7f3c2267</guid><dc:creator>Sparkybert</dc:creator><description>&lt;p&gt;Hi Dainius G,&lt;/p&gt;
&lt;p&gt;thank you for the information. JADX sounds interesting. I might have a look at it in the future.&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/480x640/__key/communityserver-discussions-components-files/4/IMG_5F00_20211105_5F00_203756684_5F00_small.jpg" /&gt;&lt;br /&gt;I tried to suppress advertising packets of the GLM120C using drastic measures, but to no success.&lt;br /&gt;Good luck with your micro controller application.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Sniffing a Bosch laser tape 2</title><link>https://devzone.nordicsemi.com/thread/337763?ContentTypeID=1</link><pubDate>Fri, 05 Nov 2021 18:27:50 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1f4fd50a-f5cc-4551-a749-3c125115ea07</guid><dc:creator>Dainius G</dc:creator><description>&lt;p&gt;Hi SparkyBert thanks for your help.&lt;br /&gt;Yes I have figured out how data is sent back to the &amp;quot;master&amp;quot; device as a float value.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;I have decompiled &amp;quot;Bosch MeasureON&amp;quot; android apk file using &amp;quot;JADX&amp;quot;&lt;/span&gt;&lt;a class="bbc_link" href="https://github.com/skylot/jadx" rel="noopener noreferrer" target="_blank"&gt;https://github.com/skylot/jadx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a class="bbc_link" href="https://www.dropbox.com/s/3xcvlzzflls3eky/Crc.PNG?dl=0" rel="noopener noreferrer" target="_blank"&gt;https://www.dropbox.com/s/3xcvlzzflls3eky/Crc.PNG?dl=0&lt;/a&gt;&lt;br /&gt;&lt;a class="bbc_link" href="https://www.dropbox.com/s/x2gimzjl9at4388/MtBLE.PNG?dl=0" rel="noopener noreferrer" target="_blank"&gt;https://www.dropbox.com/s/x2gimzjl9at4388/MtBLE.PNG?dl=0&lt;/a&gt;&lt;br /&gt;&lt;a class="bbc_link" href="https://www.dropbox.com/s/x0x5j41wt9qxgzp/MtFrame.PNG?dl=0" rel="noopener noreferrer" target="_blank"&gt;https://www.dropbox.com/s/x0x5j41wt9qxgzp/MtFrame.PNG?dl=0&lt;/a&gt;&lt;br /&gt;&lt;a class="bbc_link" href="https://www.dropbox.com/s/loe53yrf6579fnr/MtProtocol.PNG?dl=0" rel="noopener noreferrer" target="_blank"&gt;https://www.dropbox.com/s/loe53yrf6579fnr/MtProtocol.PNG?dl=0&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;And there is tons of info on Bosch GLM100C measure tape connection protocols, crc calculation, both classic and BLE......&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Sniffing a Bosch laser tape 2</title><link>https://devzone.nordicsemi.com/thread/337686?ContentTypeID=1</link><pubDate>Fri, 05 Nov 2021 12:34:39 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a5101976-53ec-43ad-b32b-440b5edd333f</guid><dc:creator>Sparkybert</dc:creator><description>&lt;p&gt;I wanted to post a follow-up about the advertising data of the GLM120C.&lt;br /&gt;It is alarming that you can not stop the GLM120C Bosch laser tape from advertising.&lt;br /&gt;Even though Bluetooth is turned off in settings (it always falls back to bluetooth disabled when the device is turned on) and the device is turned off, it constantly advertises its PUBLIC address in an 8 second interval.&lt;br /&gt;When the device is turned off, it advertises using ADV_NONCONN_IND, so you can not connect and turn it on remotely as I speculated in a previous post. The MAC address is registered to Texas Instruments, so it likely uses a Chipcon radio. The device has a built-in Lithium-Battery, so I see no way to prevent this device from being trackable 24/7 (unless you make a cute little tin-foil hat for your laser tape). In terms of privacy, this is kind of alarming. I wonder if Bosch makes all their BLE connectable tools 24/7 trackable and how Bosch apps communicate the gathered device and location data with their servers.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Sniffing a Bosch laser tape 2</title><link>https://devzone.nordicsemi.com/thread/337684?ContentTypeID=1</link><pubDate>Fri, 05 Nov 2021 12:30:28 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2bd2d391-d136-4a99-a93c-6234bc00d196</guid><dc:creator>Sparkybert</dc:creator><description>&lt;p&gt;Since I got an nRF sniffer and I am interested in Bluetooth LE I took a peek at the communication of the Bosch GLM120C and figured how the measurement data can be acquired.&lt;/p&gt;
&lt;p&gt;As Dainius G mentioned before, performing a write access using the hex byte sequence c0 56 01 00 1e to characteristic&lt;br /&gt;[UUID: 02a6c0d104514000b000fb3210111989]&lt;br /&gt;in&lt;br /&gt;[Service UUID: 02a6c0d004514000b000fb3210111989]&lt;br /&gt;starts the laser. The device will then generate two indications (have to be enabled) on the characteristic. It seems the value data in the first two indications after firing up the laser can be ignored.&lt;/p&gt;
&lt;p&gt;When the laser is on and the same byte sequence is written to the characteristic again, as metioned above, the laser is turned off and two more indications are generated on the characteristic we performed the write access on.&lt;br /&gt;The first indication contains the byte sequence:&lt;br /&gt;Value: 000082&lt;br /&gt;It seems this data is not interesting. Right after confirmation of the indication, another indication will be generated for the same characteristic - this one contains the measurement data.&lt;/p&gt;
&lt;p&gt;This is the relevant indication value data from the GLM120C (aka GLM400C in the US) I acquired using nRF Sniffer with Wireshark (both are great tools!):&lt;/p&gt;
&lt;p&gt;Bluetooth Attribute Protocol&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Opcode: Handle Value Indication (0x1d)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Handle: 0x001e (Unknown: Unknown)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Service UUID: 02a6c0d004514000b000fb3210111989]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [UUID: 02a6c0d104514000b000fb3210111989]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Value: c0551006XXXXXX2c439c3e000000000000000036&lt;/p&gt;
&lt;p&gt;the value bytes XXXXXX above have been redacted - they might contain personal information (unlikely, but still).&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Supposed meaning of the second indication value data by index/offset (most of it is speculation, but I am certain about the the actual measurement data):&lt;/p&gt;
&lt;p&gt;0x00 - 0x01: 0xC0 0x55&amp;nbsp; Header (speculation)&lt;br /&gt;0x02: 0x10 Length (speculation) This seems to be the number of the following bytes before the supposed 8-Bit CRC in the packet.&lt;br /&gt;0x03: This byte had the value 0x06 so far, when there was non-zero (valid?) measurement data. Otherwise, when the laser was just started and measurement data was zero / invalid, this byte was 0x02 in my attempts.&lt;br /&gt;0x04 - 0x06:??&lt;br /&gt;0x07 - 0x0A: 32-bit floating point value (IEEE-754, little endian) representing the measured length in meters. In the example above case the byte sequence is 2C 43 9C 3E. The laser tape showed 0.305 meters when I did the measurement. Given that this is little endian, we reverse the byte order 0x3E9C432C and can feed it to an online converter (like this one):&lt;br /&gt;&lt;a href="https://www.h-schmidt.net/FloatConverter/IEEE754.html"&gt;https://www.h-schmidt.net/FloatConverter/IEEE754.html&lt;/a&gt;&lt;br /&gt;0x3E9C432C gives a measurement of 0.305199980736&lt;br /&gt;I did a few attempts with different distances and the result always matched the reading on the display of the GLM120C.&lt;br /&gt;0x0B - 0x12: ?? These bytes have always been 0x00 in my case.&lt;br /&gt;0x0C: CRC/Checksum?? Seems to be some additional non-standard 8-Bit CRC / Checksum. Can be ignored (BLE has its own CRC anyway).&lt;/p&gt;
&lt;p&gt;There&amp;#39;s a good chance that the same service is used on other Bosch laser tapes like the GLM50C.&lt;br /&gt;Maybe this helps.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Sniffing a Bosch laser tape 2</title><link>https://devzone.nordicsemi.com/thread/336258?ContentTypeID=1</link><pubDate>Wed, 27 Oct 2021 14:27:52 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f48c63a0-30b1-448f-be3a-0e548aa65081</guid><dc:creator>Sparkybert</dc:creator><description>&lt;p&gt;Hi Dainius G,&lt;/p&gt;
&lt;p&gt;your post was quite interesting. I scanned for BLE devices in my house and realized that there was a device with the 128 bit UUID you described here. I couldn&amp;#39;t make out what it was until I found the service number in your post.&lt;/p&gt;
&lt;p&gt;Thanks to you, I figured that my Bosch GLM120C is advertising ALTHOUGH IT IS TURNED OFF (advertising interval is 8 seconds)!! The only scenario I see, where this could make sense, is if you could (fully) turn on the GLM120C remotely via BLE.&lt;br /&gt;I never notived a feature in the Bosch Measuring Master app, that would allow that. Anyway, there might be some hidden features (or bad design decisions).&lt;/p&gt;
&lt;p&gt;Another thing I noticed is, that Bosch does not seem to do advertising manufacturer specific data (0xFF) in the right way. They seem to violate the standard and skip the mandatory 16 bit company identifier (0x02A6 for Robert Bosch GmbH) and send their data - the 48 bit BLE address - right away. There is an additional byte in the manufacturer specific data after the 48 bit address, which is 0x00 in my case.&lt;/p&gt;
&lt;p&gt;I probably won&amp;#39;t look deeper into the communication of the GLM120C. Anyway, good luck!&lt;/p&gt;
&lt;p&gt;Regards,&lt;br /&gt;Sparkybert&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Sniffing a Bosch laser tape 2</title><link>https://devzone.nordicsemi.com/thread/334749?ContentTypeID=1</link><pubDate>Tue, 19 Oct 2021 07:37:15 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d9e42a4b-31fb-4891-b461-98d446c5554f</guid><dc:creator>run_ar</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I am afraid we cannot help reverse engineering the custom protocol that the bosch laser is using...&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>