I am experiencing a GATT error 8(0x8) when connecting the Samsung S10 Android 10 to the nrfconnect app. This seems to be a Samsung issue as I do not experience this when connecting the Samsung S9 Android 10, Samsung J7 Prime android 8, Huawei P20 Android 10 and multiple iphones. To corroborate my statement, here's a link where many developers are experiencing the same problem : https://forum.developer.samsung.com/t/samsung-android-10-ble-connectivity-regression/509. I need a workaround to this issue as i do not see a fix coming to the mobile devices soon.
I have a custom board running a custom firmware hosted by a nrf52832 SoC with a softdevice 6.0, using sdk 15. I have been reading through many other posts and have tried to make the following change :
from...
#define MIN_CONN_INTERVAL MSEC_TO_UNITS(15, UNIT_1_25_MS)
#define MAX_CONN_INTERVAL MSEC_TO_UNITS(30, UNIT_1_25_MS)
to...
#define MIN_CONN_INTERVAL MSEC_TO_UNITS(50, UNIT_1_25_MS)
#define MAX_CONN_INTERVAL MSEC_TO_UNITS(100, UNIT_1_25_MS)
this did not work. I then came across posts that suggest that the issue has to do with "long MTU or DLE support" ....will removing DLE support fix my issue, is it worth the try ?
In addition, Samsung made a security update recently and developer made a comment stating:
"Under Android 9 and 10 before Update June 2020 when you want use the BLE mode there was a warning message that the user must allow that the actual user position can be used by the app , that message is GONE AWAY in the latest update !
So now the good news … the data direction from the BLE Hardware to the Samsung Phone allows now full size MTUs of 180byte !
Bad news is that from the Phone to the BLE Hardware is still reduced data MTU of 20 byte !
So your bugfix was 50% successfully , now please do the rest
Please tell them that they JUST only have to fix the problem with the data direction from the Samsung Phone to the BLE devices !"
With this being said , how do i go about implementing a fix with what the gentlemen said above?
Lastly, i can only provide a log of the connection issue which is attached to the post and i cannot provide a sniffer trace.
Help would be much appreciated. Thank you.
nRF Connect, 2020-07-02 RombotB_C520F1A0669B (C5:20:F1:A0:66:9B) V 10:11:41.965 Connecting to C5:20:F1:A0:66:9B... D 10:11:41.965 gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferred PHY = LE 1M) D 10:11:42.707 [Broadcast] Action received: android.bluetooth.device.action.ACL_CONNECTED D 10:11:42.710 [Callback] Connection state changed with status: 0 and new state: CONNECTED (2) I 10:11:42.710 Connected to C5:20:F1:A0:66:9B V 10:11:42.737 Discovering services... D 10:11:42.737 gatt.discoverServices() I 10:11:43.266 Connection parameters updated (interval: 7.5ms, latency: 0, timeout: 5000ms) D 10:11:43.751 [Callback] Services discovered with status: 0 I 10:11:43.751 Services discovered V 10:11:43.768 Generic Access (0x1800) - Device Name [R W] (0x2A00) - Appearance [R] (0x2A01) - Peripheral Preferred Connection Parameters [R] (0x2A04) - Central Address Resolution [R] (0x2AA6) Generic Attribute (0x1801) - Service Changed [I] (0x2A05) Client Characteristic Configuration (0x2902) Secure DFU Service (0xFE59) - Buttonless DFU [I W] (8ec90003-f315-4f60-9fb8-838830daea50) Client Characteristic Configuration (0x2902) Device Information (0x180A) - Manufacturer Name String [R] (0x2A29) - Hardware Revision String [R] (0x2A27) - Firmware Revision String [R] (0x2A26) - Software Revision String [R] (0x2A28) Battery Service (0x180F) - Battery Level [N R] (0x2A19) Client Characteristic Configuration (0x2902) Unknown Service (8b71a0c0-d50e-67b4-e811-0e2d1c4b0b8b) - Unknown Characteristic [R W] (8b710000-d50e-67b4-e811-0e2d1c4b0b8b) - Unknown Characteristic [N R W] (8b710001-d50e-67b4-e811-0e2d1c4b0b8b) Client Characteristic Configuration (0x2902) - Unknown Characteristic [R W] (8b710002-d50e-67b4-e811-0e2d1c4b0b8b) - Unknown Characteristic [N R W] (8b710003-d50e-67b4-e811-0e2d1c4b0b8b) Client Characteristic Configuration (0x2902) - Unknown Characteristic [N R W] (8b710004-d50e-67b4-e811-0e2d1c4b0b8b) Client Characteristic Configuration (0x2902) D 10:11:43.769 gatt.setCharacteristicNotification(00002a05-0000-1000-8000-00805f9b34fb, true) D 10:11:43.770 gatt.setCharacteristicNotification(00002a19-0000-1000-8000-00805f9b34fb, true) D 10:11:43.771 gatt.setCharacteristicNotification(8b710001-d50e-67b4-e811-0e2d1c4b0b8b, true) D 10:11:43.772 gatt.setCharacteristicNotification(8b710003-d50e-67b4-e811-0e2d1c4b0b8b, true) D 10:11:43.773 gatt.setCharacteristicNotification(8b710004-d50e-67b4-e811-0e2d1c4b0b8b, true) I 10:11:43.817 Connection parameters updated (interval: 35.0ms, latency: 0, timeout: 5000ms) I 10:11:48.001 Connection parameters updated (interval: 87.5ms, latency: 0, timeout: 4000ms) D 10:11:53.348 [Callback] Connection state changed with status: 8 and new state: DISCONNECTED (0) E 10:11:53.348 Error 8 (0x8): GATT CONN TIMEOUT I 10:11:53.348 Disconnected D 10:11:53.433 [Broadcast] Action received: android.bluetooth.device.action.ACL_DISCONNECTED D 10:12:04.283 gatt.close() D 10:12:04.286 wait(200) V 10:12:04.488 Connecting to C5:20:F1:A0:66:9B... D 10:12:04.488 gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferred PHY = LE 1M) D 10:12:04.701 [Broadcast] Action received: android.bluetooth.device.action.ACL_CONNECTED D 10:12:04.709 [Callback] Connection state changed with status: 0 and new state: CONNECTED (2) I 10:12:04.709 Connected to C5:20:F1:A0:66:9B V 10:12:04.723 Discovering services... D 10:12:04.723 gatt.discoverServices() I 10:12:05.261 Connection parameters updated (interval: 7.5ms, latency: 0, timeout: 5000ms) D 10:12:05.592 [Callback] Services discovered with status: 0 I 10:12:05.592 Services discovered V 10:12:05.609 Generic Access (0x1800) - Device Name [R W] (0x2A00) - Appearance [R] (0x2A01) - Peripheral Preferred Connection Parameters [R] (0x2A04) - Central Address Resolution [R] (0x2AA6) Generic Attribute (0x1801) - Service Changed [I] (0x2A05) Client Characteristic Configuration (0x2902) Secure DFU Service (0xFE59) - Buttonless DFU [I W] (8ec90003-f315-4f60-9fb8-838830daea50) Client Characteristic Configuration (0x2902) Device Information (0x180A) - Manufacturer Name String [R] (0x2A29) - Hardware Revision String [R] (0x2A27) - Firmware Revision String [R] (0x2A26) - Software Revision String [R] (0x2A28) Battery Service (0x180F) - Battery Level [N R] (0x2A19) Client Characteristic Configuration (0x2902) Unknown Service (8b71a0c0-d50e-67b4-e811-0e2d1c4b0b8b) - Unknown Characteristic [R W] (8b710000-d50e-67b4-e811-0e2d1c4b0b8b) - Unknown Characteristic [N R W] (8b710001-d50e-67b4-e811-0e2d1c4b0b8b) Client Characteristic Configuration (0x2902) - Unknown Characteristic [R W] (8b710002-d50e-67b4-e811-0e2d1c4b0b8b) - Unknown Characteristic [N R W] (8b710003-d50e-67b4-e811-0e2d1c4b0b8b) Client Characteristic Configuration (0x2902) - Unknown Characteristic [N R W] (8b710004-d50e-67b4-e811-0e2d1c4b0b8b) Client Characteristic Configuration (0x2902) D 10:12:05.609 gatt.setCharacteristicNotification(00002a05-0000-1000-8000-00805f9b34fb, true) D 10:12:05.610 gatt.setCharacteristicNotification(00002a19-0000-1000-8000-00805f9b34fb, true) D 10:12:05.611 gatt.setCharacteristicNotification(8b710001-d50e-67b4-e811-0e2d1c4b0b8b, true) D 10:12:05.612 gatt.setCharacteristicNotification(8b710003-d50e-67b4-e811-0e2d1c4b0b8b, true) D 10:12:05.612 gatt.setCharacteristicNotification(8b710004-d50e-67b4-e811-0e2d1c4b0b8b, true) I 10:12:05.657 Connection parameters updated (interval: 35.0ms, latency: 0, timeout: 5000ms) D 10:12:12.280 [Callback] Connection state changed with status: 8 and new state: DISCONNECTED (0) E 10:12:12.280 Error 8 (0x8): GATT CONN TIMEOUT I 10:12:12.280 Disconnected D 10:12:12.363 [Broadcast] Action received: android.bluetooth.device.action.ACL_DISCONNECTED D 10:12:19.204 gatt.close() D 10:12:19.207 wait(200) V 10:12:19.409 Connecting to C5:20:F1:A0:66:9B... D 10:12:19.409 gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferred PHY = LE 1M) D 10:12:19.787 [Callback] Connection state changed with status: 0 and new state: CONNECTED (2) I 10:12:19.787 Connected to C5:20:F1:A0:66:9B D 10:12:19.806 [Broadcast] Action received: android.bluetooth.device.action.ACL_CONNECTED V 10:12:19.808 Discovering services... D 10:12:19.808 gatt.discoverServices() I 10:12:20.344 Connection parameters updated (interval: 7.5ms, latency: 0, timeout: 5000ms) D 10:12:20.662 [Callback] Services discovered with status: 0 I 10:12:20.662 Services discovered V 10:12:20.677 Generic Access (0x1800) - Device Name [R W] (0x2A00) - Appearance [R] (0x2A01) - Peripheral Preferred Connection Parameters [R] (0x2A04) - Central Address Resolution [R] (0x2AA6) Generic Attribute (0x1801) - Service Changed [I] (0x2A05) Client Characteristic Configuration (0x2902) Secure DFU Service (0xFE59) - Buttonless DFU [I W] (8ec90003-f315-4f60-9fb8-838830daea50) Client Characteristic Configuration (0x2902) Device Information (0x180A) - Manufacturer Name String [R] (0x2A29) - Hardware Revision String [R] (0x2A27) - Firmware Revision String [R] (0x2A26) - Software Revision String [R] (0x2A28) Battery Service (0x180F) - Battery Level [N R] (0x2A19) Client Characteristic Configuration (0x2902) Unknown Service (8b71a0c0-d50e-67b4-e811-0e2d1c4b0b8b) - Unknown Characteristic [R W] (8b710000-d50e-67b4-e811-0e2d1c4b0b8b) - Unknown Characteristic [N R W] (8b710001-d50e-67b4-e811-0e2d1c4b0b8b) Client Characteristic Configuration (0x2902) - Unknown Characteristic [R W] (8b710002-d50e-67b4-e811-0e2d1c4b0b8b) - Unknown Characteristic [N R W] (8b710003-d50e-67b4-e811-0e2d1c4b0b8b) Client Characteristic Configuration (0x2902) - Unknown Characteristic [N R W] (8b710004-d50e-67b4-e811-0e2d1c4b0b8b) Client Characteristic Configuration (0x2902) D 10:12:20.677 gatt.setCharacteristicNotification(00002a05-0000-1000-8000-00805f9b34fb, true) D 10:12:20.679 gatt.setCharacteristicNotification(00002a19-0000-1000-8000-00805f9b34fb, true) D 10:12:20.680 gatt.setCharacteristicNotification(8b710001-d50e-67b4-e811-0e2d1c4b0b8b, true) D 10:12:20.680 gatt.setCharacteristicNotification(8b710003-d50e-67b4-e811-0e2d1c4b0b8b, true) D 10:12:20.681 gatt.setCharacteristicNotification(8b710004-d50e-67b4-e811-0e2d1c4b0b8b, true) I 10:12:20.725 Connection parameters updated (interval: 35.0ms, latency: 0, timeout: 5000ms) D 10:12:28.324 [Callback] Connection state changed with status: 8 and new state: DISCONNECTED (0) E 10:12:28.324 Error 8 (0x8): GATT CONN TIMEOUT I 10:12:28.324 Disconnected D 10:12:28.388 [Broadcast] Action received: android.bluetooth.device.action.ACL_DISCONNECTED D 10:12:36.257 gatt.close() D 10:12:36.260 wait(200) V 10:12:36.461 Connecting to C5:20:F1:A0:66:9B... D 10:12:36.461 gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferred PHY = LE 1M) D 10:12:36.620 [Callback] Connection state changed with status: 0 and new state: CONNECTED (2) I 10:12:36.620 Connected to C5:20:F1:A0:66:9B D 10:12:36.622 [Broadcast] Action received: android.bluetooth.device.action.ACL_CONNECTED V 10:12:36.644 Discovering services... D 10:12:36.644 gatt.discoverServices() I 10:12:37.180 Connection parameters updated (interval: 7.5ms, latency: 0, timeout: 5000ms) D 10:12:37.571 [Callback] Services discovered with status: 0 I 10:12:37.571 Services discovered V 10:12:37.585 Generic Access (0x1800) - Device Name [R W] (0x2A00) - Appearance [R] (0x2A01) - Peripheral Preferred Connection Parameters [R] (0x2A04) - Central Address Resolution [R] (0x2AA6) Generic Attribute (0x1801) - Service Changed [I] (0x2A05) Client Characteristic Configuration (0x2902) Secure DFU Service (0xFE59) - Buttonless DFU [I W] (8ec90003-f315-4f60-9fb8-838830daea50) Client Characteristic Configuration (0x2902) Device Information (0x180A) - Manufacturer Name String [R] (0x2A29) - Hardware Revision String [R] (0x2A27) - Firmware Revision String [R] (0x2A26) - Software Revision String [R] (0x2A28) Battery Service (0x180F) - Battery Level [N R] (0x2A19) Client Characteristic Configuration (0x2902) Unknown Service (8b71a0c0-d50e-67b4-e811-0e2d1c4b0b8b) - Unknown Characteristic [R W] (8b710000-d50e-67b4-e811-0e2d1c4b0b8b) - Unknown Characteristic [N R W] (8b710001-d50e-67b4-e811-0e2d1c4b0b8b) Client Characteristic Configuration (0x2902) - Unknown Characteristic [R W] (8b710002-d50e-67b4-e811-0e2d1c4b0b8b) - Unknown Characteristic [N R W] (8b710003-d50e-67b4-e811-0e2d1c4b0b8b) Client Characteristic Configuration (0x2902) - Unknown Characteristic [N R W] (8b710004-d50e-67b4-e811-0e2d1c4b0b8b) Client Characteristic Configuration (0x2902) D 10:12:37.585 gatt.setCharacteristicNotification(00002a05-0000-1000-8000-00805f9b34fb, true) D 10:12:37.586 gatt.setCharacteristicNotification(00002a19-0000-1000-8000-00805f9b34fb, true) D 10:12:37.587 gatt.setCharacteristicNotification(8b710001-d50e-67b4-e811-0e2d1c4b0b8b, true) D 10:12:37.588 gatt.setCharacteristicNotification(8b710003-d50e-67b4-e811-0e2d1c4b0b8b, true) D 10:12:37.589 gatt.setCharacteristicNotification(8b710004-d50e-67b4-e811-0e2d1c4b0b8b, true) I 10:12:37.683 Connection parameters updated (interval: 35.0ms, latency: 0, timeout: 5000ms) D 10:12:42.973 [Callback] Connection state changed with status: 8 and new state: DISCONNECTED (0) E 10:12:42.974 Error 8 (0x8): GATT CONN TIMEOUT I 10:12:42.974 Disconnected D 10:12:43.050 [Broadcast] Action received: android.bluetooth.device.action.ACL_DISCONNECTED