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.

  • Hi

    Seeing as this is a custom board I would like to have a look at your schematics, just to make sure everything is set up correctly. If you don't want to share the schematics on DevZone, I can set this case to private mode, so that only you and Nordic engineers will be able to see it.

    Best regards,

    Simon

  • Hello,

    I tried with Laird’s BL654 module, it is working fine for peripherials example but not for BLE examples.

    Attached is the schematics for the same.

    Regards

    Schematics%20-%20DVK-BL654%20v1.0.pdf

  • 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

  • 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

  • there are many questions with similar issues but  couldn't find a solution

    Indeed!

    And not just on the Devzone - also elsewhere on the internet.

    It seems to be just a generic "something went wrong, but we don't know what" code. Not very helpful.

    I have been seeing it when adding new Services and Characteristics when the implementation was incomplete - so the peripheral was, effectively, just ignoring stuff from the Central.

    Sorry that doesn't help much, but it probably indicates a Bug(s) in your Service and/or Characteristic handling

Related