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

Error(0x85):GATT ERROR

Hi guys,

I'm investigating on a problem we found in our system. It seems not related to our custom pcb or firmware, you can replicate it with the following setup.

Setup:

  1. pcb - PCA10028
  2. softdevice - nRF_SoftDevice_S110 8.0.1
  3. device app - ble_app_hts_s110_pca10028 (nRF51 PCA10028)
  4. phone - moto g3 with andorid 6.0.1
  5. phone app - nRF Connect(updated to last version)

The only code diff vs the original one is:

  • +NRF_CLOCK_LFCLKSRC_RC_250_PPM_250MS_CALIBRATION
  • -NRF_CLOCK_LFCLKSRC_XTAL_20_PPM

Step:

  1. start the board
  2. open nRF Connect
  3. Scan ble device
  4. Connect to Nordic_HTS

everything works fine.

Now start to tap quickly on connect/disconnect button, open app log and the error appears, "Error 133 (0x85): GATT ERROR". The device is locked on phone connection and advertising doesn't start, no other phone could discover it, the only way to free it is to turn off the Bluetooth on the phone, close NRF Connect is not enough.

I checked with other phones and the behavior is the same.

I dont' know what happen maybe is something related to these params?

  • #define MIN_CONN_INTERVAL MSEC_TO_UNITS(500, UNIT_1_25_MS) /**< Minimum acceptable connection interval (0.5 seconds) */
  • #define MAX_CONN_INTERVAL MSEC_TO_UNITS(1000, UNIT_1_25_MS) /**< Maximum acceptable connection interval (1 second). */
  • #define SLAVE_LATENCY 0 /**< Slave latency. */
  • #define CONN_SUP_TIMEOUT MSEC_TO_UNITS(4000, UNIT_10_MS) /**< Connection supervisory timeout (4 seconds). */

Do you have a workaround?

Thanks in advice for your help

Parents
  • Could you post the logs from nRF Connect to your question? It would help us understand what's going on. If the issue does not appear on Android 7+ then it was an Android bug. Initiating a connection and then cancelling it wasn't in fact cancelling, so the phone stayed connected. How about reopening nRF Connect wiht GATT Server configured to anything else than Disabled. Is the connection showing up there? How about when you click Disconnect button then?

    @Ankush, the minimum connection interval for Android 5+ is 11.25 ms. Before it was 7.5 ms.

Reply
  • Could you post the logs from nRF Connect to your question? It would help us understand what's going on. If the issue does not appear on Android 7+ then it was an Android bug. Initiating a connection and then cancelling it wasn't in fact cancelling, so the phone stayed connected. How about reopening nRF Connect wiht GATT Server configured to anything else than Disabled. Is the connection showing up there? How about when you click Disconnect button then?

    @Ankush, the minimum connection interval for Android 5+ is 11.25 ms. Before it was 7.5 ms.

Children
No Data
Related