We’re using the Jetson TX2 and its bluetooth chip to pair with a Nuki smart door lock. When doing a discover, I noted that the ‘ServiceData’ values in Nuki’s beacons were not showing up in BlueZ.
In the kernel I see the following warning every time one of these beacons is received:
hci0 advertising data length corrected
Using tcpdump on the Bluetooth interface, I saw that this was received:
0x0000: 043e <b>1b</b>02 0100 00ad 95ec 72d2 54<b>0f</b> 0201 .>........r.T... 0x0010: 0615 2166 9a0c 2000 086c 91e4 11b6 ..!f.....l....
Doing the same on my laptop, got me this:
0x0000: 043e <b>25</b>02 0100 00ad 95ec 72d2 54<b>19</b> 0201 .>%.......r.T... 0x0010: 0615 2166 9a0c 2000 086c 91e4 11<b>01 5500</b> ..!f.....l....U. 0x0020: <b>e12e a916 ec95 ad</b>d0 ........
Analysing the EIR data, I noticed following parts:
1521 669a 0c20 0008 6c91 e411 0155 00e1 2ea9 16ec 95ad
On the Jetson, the second part of the EIR data is cropped to:
1521 669a 0c20 0008 6c91 e411
This leads to the error in the kernel because the indicated length 0x15 (=21) is larger than the remaining number of bytes (11) in the beacon. Because of this, the kernel changes the total EIR data length from 0f (=15) to 03 (=3) and the service data part is completely dropped.
Is there any explanation of why these bytes are not received? Anything I can try to change to help debugging this further?
Thanks in advance,