This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

sleep mode during multiprotocol timeslot API

Hi,

I've just started to implement the example

github.com/.../nrf51-ble-micro-esb-uart

for the nrf52. And it is now running so I can send and receive stuff via BLE and at the same time send something via ESB to a RTX board. The problem is with this example that the BLE advertising times out after 180 seconds and then goes into a sleep mode with sleep_mode_enter.

But from my understanding this will force the softdevice to go into sleep mode. But then ESB won't work either. Is there a way to put the soft device into sleep mode where it only wakes up via a button press or something and at the same time keep the timeslot running for the ESB. Thanks a lot and best regards,

Constantin

Parents
  • sleep_mode_enter() will call sd_power_system_off(), which will put the chip in system off. This is not something you want if you actually want to do something.

    It should be sufficient to call sd_app_evt_wait(), which is done by power_manage() in the main loop.

    So I recommend to just not call sleep_mode_enter() on when you get the BLE_ADV_EVT_IDLE event.

  • Dear Petter, yes this is what I am doing right now. But If I do not restart advertising with: ble_advertising_start(BLE_ADV_MODE_FAST) the timeslot is not triggered and the ESB dies as well. But from my understanding this could not be the solution. I want to stop advertising but keep esb running in its timeslot.

Reply
  • Dear Petter, yes this is what I am doing right now. But If I do not restart advertising with: ble_advertising_start(BLE_ADV_MODE_FAST) the timeslot is not triggered and the ESB dies as well. But from my understanding this could not be the solution. I want to stop advertising but keep esb running in its timeslot.

Children
No Data