5 Replies Latest reply on Jun 8, 2016 11:02 PM by userc_26458

    BCM920736 stability issues



      We are using BCM920736 and have been experiencing some stability issues and I have few questions



      As long as we have 8 or less ble enabled devices (iphones) around the ble chip everything seems to work as it should.

      However if we add more than 8 iphones and let it run for few hours (usually around 1-3 hours) the ble chip will stop connecting completely to the phones.

      When that happens the ble chip is aware of all the phones in the vicinity and continues to get connection_up/connection_down events.

      In the connecton_up callback we call



          bleprofile_sendReadByTypeReq(s_handle, e_handle,UUID_ATTRIBUTE_CHARACTERISTIC);


      and then we wait for the reply using the callbacks


          leatt_regReadByTypeRspCb((LEATT_TRIPLE_PARAM_CB) ba_central_process_rsp);

          leatt_regReadByGroupTypeRspCb((LEATT_TRIPLE_PARAM_CB) ba_central_process_rsp);

          leatt_regFindInfoRspCb((LEATT_TRIPLE_PARAM_CB) ba_central_process_rsp);


      However we never receive the reply and we don't know if it is because the phone never receives the message or the ble chip doesn't receive the reply.

      Disabling the bluetooth devices does not help and neither does restarting the phones, only restarting the ble chip solves the issue.


      The aim in our project is to use this in a populated area and we want to always be connected to the closest phones. For that reason we maintain a linked list connecting all discovered phones and then we regularly connect and disconnect phones based on RSSI values.

      The issue seems to be related to number of phones (more than 8) and time and for that reason it sounds to me a little like a memory leak, however we have not been able to check available memory after the initialization code has finished. Is that possible?




      There seem to be 3 different memory pools that we have access to


      we are currently using


      cfa_mm_ConfigureMemoryPool(CFA_MM_POOL_1, 64, 6 + 8);

      to enable 8 connections but apparently memory pool 0 and 1 can be configured similarly, is the effect of this explained or documented somewhere_




      Currently we don't scan and connect at the same time since we ran into troubles with that, now we scan for 1 sec and run connect / disconnect routines for 1 sec after that.

      Can you scan and connect at the same time ?


      Any suggestions appreciated