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.

LAUNCHXL-CC26X2R1: SIMPLELINK-CC26X2-SDK: SimpleBLEPeripheral example crashes with multiple devices

Part Number: LAUNCHXL-CC26X2R1

I see the bug that is described in the e2e.ti.com/.../2714998

I'm adding HID service and the issue happens when my IPhone auto connect to a single BLE device.

I see in the UART terminal that number of active connections increases with the same MAC address.

But I have only one BLE device. How is it possible?

I'm working on the HID device, so iOS auto connects if it was paired. HID works fine unless the new phantom connections occur.

uint8_t pairMode = GAPBOND_PAIRING_MODE_INITIATE;
uint8_t mitm = FALSE;
uint8_t ioCap = GAPBOND_IO_CAP_NO_INPUT_NO_OUTPUT;
uint8_t bonding = TRUE;

When are you going to research and fix this issue? It makes me crazy!

  • I use SDK 3.10.0.53
  • Hi Alex,
    I am not sure I understand you problem fully. You have a BLE Device using HID service towards an iPhone (with Pairing/Bonding enabled). Your statement is now that there are more devices connecting to the BLE Device than the phone? Is that what you mean with "active connections increases with the same MAC address" and "phantom connections"?

    Any chance you can describe this is a way for us to reproduce?
  • Hi,

    I'm working on a project that is a HID device with multiple connections.
    I use some code from HID keyboard example and link it with SimplePeripheral project.
    I've managed to get working project for CC2640R2 and it works fine, but I need more resources.

    So, I added my modified Multi-HID code to ble5_simple_peripheral_oad_onchip_cc26x2r1lp_app for CC26x2 LaunchPad.

    The HID service works fine and I can get connections with iPhones and all of them receive HID keyboard commands.

    But sometimes I see GAP messages that new connections are established and they have MAC address of devices that have connected already.
    if I turn off advertising, it doesn't happen. When I turn on advertising to connect a new iPhone, I see messages that the previously connected iPhone connects again and again.
    Although the real link was not terminated.

    Just pair a single iPhone to the LP and you will see in the terminal that "Num Conns" increases and decreases chaotically.

    Looks like there is a bug for devices that can auto-connect to iOS, like HID devices. CC2652 doesn't understand that it is connected already and stack send new GAP messages and take new slots in the "connList"  up to the MAX_NUM_BLE_CONNS.

    I can send you a project to test. It has mimal differences to the example from the SDK.



  • You see the same MAC address and "Num Conns" increases and decreases. It happens immediately when the device resetted.

    The initial the very first BLE connection with IPhone is not terminated. I see that it is connected all the time. There are no other paired IPhones around.

    But something strange happens...

    I also tried to add output of the "pPkt->connectionHandle" in the "case GAP_LINK_ESTABLISHED_EVENT:". It increases and decreases accordingly to the "Num Conn" too.

    I tested it on IPhone 5s ios 10.3.3 and IPod touch ios 10.3.3

    Note: I changed the -DBOARD_DISPLAY_USE_UART_ANSI=0 setting in the opt file to don't lose the terminal messages. So ANSI is off.

  • It's very sad that nobody from TI can't help, but the day will come when you realize that this problem exists.
  • It's sad indeed.

    I've been in touch with Ti by e-mail, to help find the issue. We've even supplied tools (I've send our hardware to Ti with a special program that makes the CC26x2 crash within a few minutes) such that they can reproduce the issue easily. Ti has confirmed the issue exists, but say they do not have sufficient time to solve it any time soon.

    Next week or the week thereafter we we'll discuss with our development team a possible redo of our electronics, as we don't have faith in Ti's support on this (we are having this issue already for almost a year). We also asked twice for the stack's source code to debug the issue ourselves, but have not received any reply from Ti (neither confirming we can get the source, nor that we can't).

    I hope your message will wake them up, as it must be that many people are experiencing this - maybe they just didn't figure out the root cause yet.

  • I don't actually think this is the same issue that Jeroen is referencing. That issue involved an eventual lockup after continuous reconnections.

    Regarding the issue at hand, it is certainly strange what you are describing. My initial guess is that the central device is actually sending multiple connection requests but it is hard to say anything more without a sniffer capture. Is it possible for you to get a sniffer capture?
  • It looks exactly same.

    Jeroen's quote:
    "Even with only one Android phone connected, we see the “number of devices connected” sometimes increase to 3 devices – while only one device is actually connected. We also see duplicate MAC addresses of those connections. Thus, it seems older connections are not destroyed by the stack."

    I can send the example project that has the issue. There are a few simple changes in the source code, it is at 95% the same as in the SDK.