Gatttool lost notifications

114 Views Asked by At

I am working with a BLE device that currently sends sequential values when subscribing to a notify characteristic. Each returned value starts with f083 and ends with 0000 with each hex value in between incrementing.

When I connect to the device with LightBlue on iOS (mobile or desktop) I get the expected results. However, if I connect with LightBlue on Android or use gatttool on Ubuntu I get substantial packet loss. You can still see the sequential values in the result, however, there are massive gaps.

It is worth noting that when I connect on Ubuntu or Android I have to manually specify the MTU whereas iOS does this automatically. However, I can confirm that the MTU on iOS matches the value entered on Android on gatttool. Is there some way I can view gatttool logs or some further information?

If it helps, I am using the following for connecting on gatttool:

$ gatttool -b 18:04:ED:39:96:77 -I
[18:04:ED:39:96:77][LE]> connect
Attempting to connect to 18:04:ED:39:96:77
Connection successful
[18:04:ED:39:96:77][LE]> mtu 31
MTU was exchanged successfully: 31
[18:04:ED:39:96:77][LE]> char-write-req 0x00015 0100
Characteristic value was written successfully
Notification handle = 0x0014 value: f0 83 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 00 00 
Notification handle = 0x0014 value: f0 83 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 00 00 

Any help here would be hugely appreciated.

iOS Output

17:45:34.854 - Characteristic (FFF4) notified: <f0830707 07070707 07070707 07070707 07070707 07070707 07070000> 
17:45:34.855 - Characteristic (FFF4) notified: <f0830808 08080808 08080808 08080808 08080808 08080808 08080000> 
17:45:34.882 - Characteristic (FFF4) notified: <f0830909 09090909 09090909 09090909 09090909 09090909 09090000> 
17:45:34.914 - Characteristic (FFF4) notified: <f0830a0a 0a0a0a0a 0a0a0a0a 0a0a0a0a 0a0a0a0a 0a0a0a0a 0a0a0000> 
17:45:34.943 - Characteristic (FFF4) notified: <f0830b0b 0b0b0b0b 0b0b0b0b 0b0b0b0b 0b0b0b0b 0b0b0b0b 0b0b0000> 
17:45:34.944 - Characteristic (FFF4) notified: <f0830c0c 0c0c0c0c 0c0c0c0c 0c0c0c0c 0c0c0c0c 0c0c0c0c 0c0c0000> 
17:45:34.974 - Characteristic (FFF4) notified: <f0830d0d 0d0d0d0d 0d0d0d0d 0d0d0d0d 0d0d0d0d 0d0d0d0d 0d0d0000> 
17:45:35.002 - Characteristic (FFF4) notified: <f0830e0e 0e0e0e0e 0e0e0e0e 0e0e0e0e 0e0e0e0e 0e0e0e0e 0e0e0000> 
17:45:35.032 - Characteristic (FFF4) notified: <f0830f0f 0f0f0f0f 0f0f0f0f 0f0f0f0f 0f0f0f0f 0f0f0f0f 0f0f0000> 
17:45:35.064 - Characteristic (FFF4) notified: <f0831010 10101010 10101010 10101010 10101010 10101010 10100000> 
17:45:35.094 - Characteristic (FFF4) notified: <f0831111 11111111 11111111 11111111 11111111 11111111 11110000> 
17:45:35.095 - Characteristic (FFF4) notified: <f0831212 12121212 12121212 12121212 12121212 12121212 12120000> 
17:45:35.124 - Characteristic (FFF4) notified: <f0831313 13131313 13131313 13131313 13131313 13131313 13130000> 
17:45:35.153 - Characteristic (FFF4) notified: <f0831414 14141414 14141414 14141414 14141414 14141414 14140000> 
17:45:35.184 - Characteristic (FFF4) notified: <f0831515 15151515 15151515 15151515 15151515 15151515 15150000> 
17:45:35.214 - Characteristic (FFF4) notified: <f0831616 16161616 16161616 16161616 16161616 16161616 16160000> 
17:45:35.244 - Characteristic (FFF4) notified: <f0831717 17171717 17171717 17171717 17171717 17171717 17170000> 
17:45:35.244 - Characteristic (FFF4) notified: <f0831818 18181818 18181818 18181818 18181818 18181818 18180000>

Android Output

Tue Apr 27 16:56:51 GMT+10:00 2021: Characteristic 0000fff4-0000-1000-8000-00805f9b34fb changed | value: F0 83 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 00 00
Tue Apr 27 16:56:52 GMT+10:00 2021: Characteristic 0000fff4-0000-1000-8000-00805f9b34fb changed | value: F0 83 1D 1D 1D 1D 1D 1D 1D 1D 1D 1D 1D 1D 1D 1D 1D 1D 1D 1D 1D 1D 1D 1D 1D 1D 00 00
Tue Apr 27 16:56:52 GMT+10:00 2021: Characteristic 0000fff4-0000-1000-8000-00805f9b34fb changed | value: F0 83 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 00 00
Tue Apr 27 16:56:54 GMT+10:00 2021: Characteristic 0000fff4-0000-1000-8000-00805f9b34fb changed | value: F0 83 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 00 00
Tue Apr 27 16:56:54 GMT+10:00 2021: Characteristic 0000fff4-0000-1000-8000-00805f9b34fb changed | value: F0 83 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00 00
Tue Apr 27 16:56:59 GMT+10:00 2021: Characteristic 0000fff4-0000-1000-8000-00805f9b34fb changed | value: F0 83 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 00 00
Tue Apr 27 16:57:01 GMT+10:00 2021: Characteristic 0000fff4-0000-1000-8000-00805f9b34fb changed | value: F0 83 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 00 00
Tue Apr 27 16:57:04 GMT+10:00 2021: Characteristic 0000fff4-0000-1000-8000-00805f9b34fb changed | value: F0 83 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 00 00
Tue Apr 27 16:57:06 GMT+10:00 2021: Characteristic 0000fff4-0000-1000-8000-00805f9b34fb changed | value: F0 83 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 00 00
Tue Apr 27 16:57:08 GMT+10:00 2021: Characteristic 0000fff4-0000-1000-8000-00805f9b34fb changed | value: F0 83 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 00 00
Tue Apr 27 16:57:10 GMT+10:00 2021: Characteristic 0000fff4-0000-1000-8000-00805f9b34fb changed | value: F0 83 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 00 00
Tue Apr 27 16:57:12 GMT+10:00 2021: Characteristic 0000fff4-0000-1000-8000-00805f9b34fb changed | value: F0 83 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 00 00
Tue Apr 27 16:57:13 GMT+10:00 2021: Characteristic 0000fff4-0000-1000-8000-00805f9b34fb changed | value: F0 83 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 00 00

Gatttool Output

Notification handle = 0x0014 value: f0 83 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 00 00 
Notification handle = 0x0014 value: f0 83 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 00 00 
Notification handle = 0x0014 value: f0 83 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56 00 00 
Notification handle = 0x0014 value: f0 83 57 57 57 57 57 57 57 57 57 57 57 57 57 57 57 57 57 57 57 57 57 57 57 57 00 00 
Notification handle = 0x0014 value: f0 83 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 58 00 00 
Notification handle = 0x0014 value: f0 83 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 00 00 
Notification handle = 0x0014 value: f0 83 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 00 00 
Notification handle = 0x0014 value: f0 83 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 00 00 
Notification handle = 0x0014 value: f0 83 1b 1b 1b 1b 1b 1b 1b 1b 1b 1b 1b 1b 1b 1b 1b 1b 1b 1b 1b 1b 1b 1b 1b 1b 00 00 
Notification handle = 0x0014 value: f0 83 1c 1c 1c 1c 1c 1c 1c 1c 1c 1c 1c 1c 1c 1c 1c 1c 1c 1c 1c 1c 1c 1c 1c 1c 00 00 
Notification handle = 0x0014 value: f0 83 3f 3f 3f 3f 3f 3f 3f 3f 3f 3f 3f 3f 3f 3f 3f 3f 3f 3f 3f 3f 3f 3f 3f 3f 00 00 

0

There are 0 best solutions below