This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

GATT error 133 on ANDROID

Other Parts Discussed in Thread: CC2640, CC2650, CC2541

I have a large project with cc2640 as ble peripheral (stack 2_01_01_44627).

Iphone connection works perfectly with or without bonding, but with my nexus 5 and 5x (android N, 6.01 i'm getting GATT error 133 (0x85) on the android device.

the CC26 does not show any connection state change, I tried my project on the CC2650 LaunchPad (rev 1.1) and on my board, both show the same symptoms.

SimpleBLEPeripheral example is working fine.

Any one else had this issues? or have any idea what can cause it?

thanks.

  • Hello Netanel,

    Since you indicated SBP example works fine, can you list your changes that led up to this issue?

    Best wishes
  • Ok, I'm changing my post:

    Here is the summery on simple table: 

    With Pair No Pair
    SimpleBLEPeripheral - my board X Have Errors
    My Project - my board Have Errors Have Errors
    SimpleBLEPeripheral - Launchpad X O.K
    My Project - Launchpad Have Errors Have Errors

    Here is what I think:

    1. I'ts not a frequency adjustment problem.

    2. BLE on Android still sucks.

    3. It can happen to any user on any phone, it's a matter of luck.

    4. Bonding BLE with android was and still a bad idea.

    And more info:

    1. SimpleBLEPeripheral (ble_cc26xx_2_01_01_44627) programmed on my board, have issues, I tested it on Nexus 5 (android 6.01) and LG something (old android 4.4), see screenshots. Those devices did connect to another BLE devices while did not connect to the SimpleBLEPeripheral.

    2. Programing SimpleBLEPeripheral on the launchpad, There are no errors.

    3. My project uses pairing, so i changed it to use the same settings as SimpleBLEPeripheral (on my board), One phone show the error constantly and the other connected correctly.

    uint32_t passkey = 0;
    uint8_t pairMode = GAPBOND_PAIRING_MODE_NO_PAIRING;
    uint8_t mitm = FALSE;
    uint8_t ioCap = GAPBOND_IO_CAP_DISPLAY_ONLY;
    uint8_t bonding = FALSE;

    characteristics are GATT_PERMIT_READ or GATT_PERMIT_WRITE

    And with Pair settings characteristics are GATT_PERMIT_AUTHEN_READ or GATT_PERMIT_AUTHEN_WRITE:

    uint32_t passkey = 1234;
    uint8_t pairMode = GAPBOND_PAIRING_MODE_INITIATE;
    uint8_t mitm = TRUE;
    uint8_t ioCap = GAPBOND_IO_CAP_DISPLAY_ONLY;
    uint8_t bonding = TRUE;

     

    4. Programmed my project (on my board) with bonding, after bonded to one device (nexus 5x N), it stopped advertising. I reset the device and it advertise again, after connecting to it and disconnecting it stopped advertising again, So i closed the bonded phone Bluetooth and it started to advertise again. Another phone showed the 133 error (nexus 5 6.01). on another phone (4.4) it bonded successfully but after disconnect and connect i get 133 error when trying to read a GATT_PERMIT_AUTHEN_READ characteristic.

    5. Programmed my project (on launchpad) with bonding, nexus 5x (N) always show error 133 when trying to connect. Nexus 5 (6.01) works good bonded and writing\reading also on LG (4.4).

    6. rogrammed my project (on launchpad) without bonding, error on nexus 5x.

  • Hello,

    Your passkey is only 4 digits, did you enter the preceding 00?

    Does your board have the same RF layout as the LaunchPad: 7ID? Given that you have problems w/o pairing, this points to SW config and/or HW layout issues. Can you review the HW troubleshooting section of the TI BLE Wiki?

    Best wishes
  • 1. I know about the 6 digits passkey, it's not the issue.

    2. I'm using TI Launchpad, so Its not a hardware issue.

    To be clear, from now and on we will talk about the SimpleBLEPeripheral example from the ble_cc26xx_2_01_01_44627 with TI Launchpad CC2650 REV 1.1.

    I'm checking another approach, android have something called "AutoConnect" (autoConnect boolean indicating whether to automatically connect to the BLE device as soon as it becomes available) and when connecting with this feature:

    mBluetoothGatt = device.connectGatt(this, true, mGattCallback);

    the device is connected properly without errors (!!!)

    but when it's false, i'm getting lot's of errors (!!!).

    I have good experience with the CC2541, it had no errors with/without AutoConnect. So i think it's something new to check for TI.

    Any way, hope I help someone in the future with this post.

    I will keep checking it and update if i will get errors.

  • Hi,
    After many tests, errors happen with SimpleBLEPeripheral example with the launchpad.

    Android has many issues with BLE, and even on the Android N, Android 6.01, there are still errors, even on the official Nexus official google devices.

    Well, if TI has any thing to do with it, good luck.
  • Did you ever find a solution for this? I am facing the same issue now
  • i am also face same issue.
    if u are solved that please give me solution.
  • I think retrying the connection multiple times when you get error 133 is the only solution on Android.