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

Timeslot API + ESB depended on ble interval

Hi All,

I have this problem with using the ESB + Timeslot example from Github.

The interval of the ESB TX Transmit is depended on the advertisement interval I configure. How can I make the ESB interval faster like the switch between TX/RX between ESB. Now it only rechecks the TX queue after every new BLE event.

Thanks!

Parents
  • Hi, so I got a little further with this. So what I wanted to do was to rebuild the BLE Scanner/Broadcast system but than with ESB. Therefor I wanted RX and TX to interlace really quickly within one slot. Because in the Github the procedure is send all TX messages in buffer and than RX the rest of the timeslot. It doesn't keep checking TX messages as they come along into the buffer. This works fine when you have a small interval advertisement going on because the Softdevice will stop your timeslot and the ESB lib will request it again when needed. When you don't have any BLE advertisement going on the timeslots seem to last up to 10 seconds and than close and restart.

    So I was able to successfully make the interlacing feature by running the TIMESLOT_BEGIN function multiple times within a timeslot. But now I have the problem that I can't close the timeslot earlier than 10 seconds. I request the the session close with the following command:

    sd_radio_session_close();
    

    But this doesn't seem to impact the timing of when the session actually closes. So when the "NRF_EVT_RADIO_SESSION_CLOSED" event is called. Is there a way to close the timeslot immediately?

Reply
  • Hi, so I got a little further with this. So what I wanted to do was to rebuild the BLE Scanner/Broadcast system but than with ESB. Therefor I wanted RX and TX to interlace really quickly within one slot. Because in the Github the procedure is send all TX messages in buffer and than RX the rest of the timeslot. It doesn't keep checking TX messages as they come along into the buffer. This works fine when you have a small interval advertisement going on because the Softdevice will stop your timeslot and the ESB lib will request it again when needed. When you don't have any BLE advertisement going on the timeslots seem to last up to 10 seconds and than close and restart.

    So I was able to successfully make the interlacing feature by running the TIMESLOT_BEGIN function multiple times within a timeslot. But now I have the problem that I can't close the timeslot earlier than 10 seconds. I request the the session close with the following command:

    sd_radio_session_close();
    

    But this doesn't seem to impact the timing of when the session actually closes. So when the "NRF_EVT_RADIO_SESSION_CLOSED" event is called. Is there a way to close the timeslot immediately?

Children
No Data
Related