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.

Problems with CC2650 while establishing more than 3 connection

Other Parts Discussed in Thread: CC2650

Hi,

I try to establish 5-8 connections for a CC2650 module which was programmed with multi role  firmware. I followed this post (e2e.ti.com/.../421106) to configure the define MAX_NUM_BLE_CONNS in  bleUserConfig.h and the firmware was modified depends on the multi-role demo. However, the user0Cfg.maxNumConns and llUserCfg_t.maxNumConns was still 3, which force me to configure them at the beginning of main() and stack_main().  Anyone know the reason for this?

More importantly, althougth I can connect the fourth device after I modefied maxNumConns, the fourth device cannot find any survice in the connction or do any communication. I wonder if there is any other default parameter should be change to maintain more than 3 communiction.

  • MAX_NUM_BLE_CONNS is set in the preprocessor compiler options. Therefore, the define in bleUserConfig.h is not being used.
  • Hi Tim,

    Thanks. However, although I change it to 5. It seems that GAP does not connect to the fourth, because when the fourth device shows that  it is connected, there is no service detected by the fourth device (as central) and the GAP of  the target device still shows that it has only 3 GAPROLE_ACTIVE_LINKS and 2 (5-3) GAPROLE_AVIALABLE_LINKS. Could you tell me is there any other configuration I shall be done to enable the communication of the fourth and further  devices?

    Regards,

    Kai

  • This was not tested with more than three device so there could certainly be problems. I'm not sure when I'll be able to debug this. Are you successfully sending a connection request? What is the return value of GAPRole_EstablishLink()? If it isn't being checked, it should be. Assuming you send the connection request successfully, do you get a link established event to indicate a connection?
  • Hi Tim,
    Thanks for response. I think it can send a connection request to the fourth device. or recieve one from it. when the fourth device is a central, the central show that it is connected but no service detected. when the fourth is a peripheral, (a sensortag) its LED stop twinkling which means connection established. However, there would soon appear some error and one of the first three connection terminated and so does the advertising. I wonder if it is limited by the RAM size or CPU speed, or it can be solved by modifying the firmware. If so, which part or the code should I focus on to solve such problem? Could you provide some related documents because I found very few document mentioned how to adjusting maximum connection num.
    Regards,
    KAI
  • Hi Kai,

    Which connection parameters are you using? Also, can you try increasing the Heap size? Details on how to do this are in the SW Developer's Guide (SWRU393).

    Best wishes
  • Hi JXS,

    Thanks for your help. I increased the Heap size to 7000 in preproccessor->defined symbols as you suggested. I test it with four devices. It works, but not not always or stable. I'll keep debuging and report the errors occur in following experiment.

    Best Regards,

    Kai