This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Error 133 (0x85): GATT ERROR on nRF52840

Hi,

I am running ble_app_blinky example on nRF5280 custom board, it is giving me Error 133 (0x85): GATT ERROR. Since I have nrf52DK, I tried same example with SD 132 on nrf52832 it works as expected.

I went through devzone and there are many questions with similar issues but  couldn't find a solution.

Could you please let me know what could be reason for the same?

https://devzone.nordicsemi.com/f/nordic-q-a/32590/error-133-0x85-gatt-error-with-htc-u11-life

https://devzone.nordicsemi.com/f/nordic-q-a/33313/android-gatt-133-error

SDK 15.2.0

SD 140

nRF52840

Keil

Tried on Honor 7X (Android 8.0.0), Redmi Note 4 (Android 7.0),

nRF Connect, 2019-04-24
Nordic_Blinky (XX:XX:XX:XX:XX:XX)
V 16:07:10.488 Connecting to XX:XX:XX:XX:XX:XX...
D 16:07:10.488 gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferred PHY = LE 1M)
D 16:07:19.253 [Callback] Connection state changed with status: 133 and new state: DISCONNECTED (0)
E 16:07:19.253 Error 133 (0x85): GATT ERROR
I 16:07:19.253 Disconnected
D 16:07:21.850 gatt.close()
D 16:07:21.854 wait(200)
V 16:07:22.056 Connecting to XX:XX:XX:XX:XX:XX...
D 16:07:22.057 gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferred PHY = LE 1M)
D 16:07:52.111 [Callback] Connection state changed with status: 133 and new state: DISCONNECTED (0)
E 16:07:52.111 Error 133 (0x85): GATT ERROR
I 16:07:52.111 Disconnected
D 16:07:54.117 gatt.close()
D 16:07:54.120 wait(200)
V 16:07:54.321 Connecting to XX:XX:XX:XX:XX:XX...
D 16:07:54.322 gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferred PHY = LE 1M)
D 16:08:09.849 [Callback] Connection state changed with status: 133 and new state: DISCONNECTED (0)
E 16:08:09.850 Error 133 (0x85): GATT ERROR
I 16:08:09.850 Disconnected
D 16:08:14.775 gatt.close()
D 16:08:14.779 wait(200)
V 16:08:14.982 Connecting to XX:XX:XX:XX:XX:XX...
D 16:08:14.982 gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferred PHY = LE 1M)
D 16:08:15.541 [Callback] Connection state changed with status: 133 and new state: DISCONNECTED (0)
E 16:08:15.541 Error 133 (0x85): GATT ERROR
I 16:08:15.541 Disconnected

00> <info> app: Template example started.
00> <info> app: Fast advertising.
00> <info> app: Connected.
00> <info> app: Fast advertising.
00> <info> app: Disconnected.

Parents
  • I thought you were using a custom (self made) chip, but when using an official module there shouldn't be any problems like this. Are you concealing the module in some way that might compromise the antenna? Have you, or do you have the opportunity to, test on more phones? The GATT error 0x85 is often related to Android phones, and specifically the bonding and/or connection intervals. Do you use bonding in your application?

    You could also try adding some delays (buffers) after connection, to try and prevent this timeout, but this is not guaranteed to work. Also, what is your MAX_MTU_SIZE set to?

    Best regards,

    Simon

Reply
  • I thought you were using a custom (self made) chip, but when using an official module there shouldn't be any problems like this. Are you concealing the module in some way that might compromise the antenna? Have you, or do you have the opportunity to, test on more phones? The GATT error 0x85 is often related to Android phones, and specifically the bonding and/or connection intervals. Do you use bonding in your application?

    You could also try adding some delays (buffers) after connection, to try and prevent this timeout, but this is not guaranteed to work. Also, what is your MAX_MTU_SIZE set to?

    Best regards,

    Simon

Children
  • Hi,

    Sorry for the delay.

    Are you concealing the module

    No, I m not conceaing the module. It is lying flat and open.

    Do you use bonding in your application

    Yes, I do have to use bonding for my application.

    MAX_MTU_SIZE set to

    #define NRF_SDH_BLE_GATT_MAX_MTU_SIZE 247	//23

    try adding some delays (buffers) after connection

    You mean after BLE_GAP_EVT_CONNECTED?

    I also tried changng MIN_CONN_INTERVAL, MAX_CONN_INTERVAL, FIRST_CONN_PARAMS_UPDATE_DELAY and NEXT_CONN_PARAMS_UPDATE_DELAY as suggested on similar topics, they don't seem to work.

    test on more phones

    I also tried on OnePlus 6T - Android v9.0, Redmi 6 Pro - Android v8.1

    Regards

Related