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.

CC2541: CC2541 module stops advertising but keeps accepting updated advertisement packets from the host MCU and responds with no errors

Part Number: CC2541

Hello All,

We have a unique problem. In our hardware solution, we update the manufacturing data of the advertising data every 10 seconds. Also in case of an IO change, we increase the advertising frequency from 1 second to 125 milliseconds and vice versa.

If changing the interval, we stop advertising, update the interval and then start advertising again.

All this works well, but then advertising stops. The module definitely stops advertising but keeps working normally otherwise. We receive all valid responses from the module indicating things are fine. Hard resetting the module fixes the problem.

Since we can't detect when this state happens, we are periodically resetting the module.

As far our application goes, it is based on the hci_ext_app that comes as part of the sdk.

Is this a know issue? Is there a way to detect this state?

Any help would be appreciated.

  • Hi,

    Which BLE STACK are you using? When you said the device stops advertising but working normal, what do you mean by working normal?
    Was there more code modification then what you have described above?
    Can you reproduce it easily?
  • Hello Christin

    Thank you for responding. What I mean by working normal, is that we carry on with the rest of the workflow by instructing the device to keep scanning using the GAP commands and the responses to commands are ok and without any errors. In cases where the module does get stuck, the scan command returns errors which helps us conclude that something has gone wrong after 3 consecutive errors which then leads to a reset.

    There isn't a lot of modification but based on our needs, we have modified the application to work in peripheral observer mode, where in we observe for a specific advertisement from our products and at the same we are discoverable by our proprietary smartphone application.

    It has been a while so i am not sure how I figure out the BLE stack version. Is there a header file that can help us determine this?

    The hci_ext_app.h file has this header if that helps.

     Filename:       hci_ext_app.h
      Revised:        $Date: 2013-08-12 10:39:54 -0700 (Mon, 12 Aug 2013) $
      Revision:       $Revision: 34944 $

  • Hi,

    I am not aware of this issue. What you can do is to register for advertising callback event using "HCI_EXT_AdvEventNoticeCmd".
    If there is no adv happening, then the SW will not give you the callback.
    I guess you can just use a timer for detection. restart the timer every time you get callback from stack or else timer expired and do sth to notify the user.

    According to the header, it looks like you are using the very first BLE STACK we have.
    I would recommend you to port it to the newest SDK if it's not too much work.
    There has been lots of bug fixes for the pass 5 years. Please go to the page below to get our newest BLE STACK for CC2541
    www.ti.com/.../BLE-STACK