3 Replies Latest reply on Oct 30, 2018 8:34 AM by JoSu_1330331

    Chip stops advertising, after sometime, when using iBeacon Advertising in conjunction with regular advertising.

      I have found a bug with iBeacon advertising that renders the chip(BCM20736S) essentially useless; The only way to fix this is to toggle the power. The problem is that we tell the chip to start advertising with bleprofile_Discoverable(HIGH_UNDIRECTED_DISCOVERABLE, NULL) and eventually the chip just ceases to actaully advertise. Even checking the bleprofile_GetDiscoverable() says that it is HIGH_UNDIRECTED_DISCOVERABLE but if you use a scanner it does not show up. We have determined it has to do with using iBeacon advertising (ibeacon.a - ibeacon_start() and ibeacon_stop() methods) as when we remove that code this problem does not arise.


      To give you a little context on how we have programmed the chip (device) to work and the main problem please see below:


      Device and handset flow:

      1. Pair device with mobile handset
      2. Once device is connected we stop advertising, read some characteristics, enable some indications(on the handset side) for a button we have and send any button presses to the handset.
      3. After previous step is done the handset tells the device to disconnect.
      4. The device then waits 60min to start advertising again (via bleapptimer_startAppTimer). However, pressing the button will make it start advertising (go to step 2).
      5. After 60min timer goes off it will start advertising again. Then if after 30 seconds of advertising it does not connect the device will stop advertising (go to step 4).
      6. If it does connect repeat with step 2.


      **** What causes the issue ****

      For the advertising piece in the above steps if we do:


      bleprofile_Discoverable(HIGH_UNDIRECTED_DISCOVERABLE, NULL);



      It will eventually stop advertising, meaning according to any scanner you will not be able to see the device at all. However, nothing will seem wrong based on internal logs of the device. This usually happens around 10 or so cycles of it not connecting to the handset but can seem random.


      **** What does not cause the issue *****

      For the advertising piece in the above steps if we omit the ibeacon_start() meaning just do:


      bleprofile_Discoverable(HIGH_UNDIRECTED_DISCOVERABLE, NULL);


      Everything works fine.



      So I need help as I have no idea what is happening and cannot use ibeacon advertising which is a main feature of a product I am trying to create.