ESB and BLE concurrent issues on nRF54L series

Hello,

There are some issues I have found when I tried to achieve both BLE and ESB features concurrently on nRF54L chips, 
and some of them I have figured out how to fix, and some of them I can skip at this point but I need to know if it is correct paths or not.
Any suggestions please free to tell me.

NCS version: v3.0.0
Enviroment: nRF54L15 DKs / Ble peripheral role / ESB / Timeslot

Issue1: the conflicted TIMER10 when using ESB and Timeslot on nRF54L, this is a known issue from this ticket. According to the timeslot usage, the next normal request and releasing radio resources should be within a requested period and be eariler than the end of the timeslot, because of the issue, the extra hardware timer(like timer21) is used to replace the callback TIMER10 event. It worked but with flaws, only eraliest requests can be generated by the application right now.

Issue2: the conflicted RADIO handlers when using ESB and Timeslot on nRF54L, this issue is related to the principle  SDK source code.  From my opinions, the developers should never change any codes in NCS. I have to break this basic principle if I want the ESB module to work as I expected. The ESB uses radio interrupt handler function to operate generated radio events, the followings code snippet show the case:


  You have to explicitly delcare and call the 
radio_irq_handler function from the esb.c in the MPSL_TIMESLOT_SIGNAL_RADIO event(timeslot code) to make the esb radio interrupts work correctly.

Issue3: the advertising of ble does not work after esb_init is called in MPSL_TIMESLOT_SIGNAL_START event and esb_disable() is called in MPSL_TIMESLOT_SIGNAL_TIMER0(only for example, because the TIMER10 dose not work correctly, custom timer timeout handler instead).


Thanks in advanced.

Parents
  • Hi Esten, 
    I quote the feedback from our developer here: 

    I think what the customer encountered while working with concurrent BLE + ESB is sort of expected. The ESB, due to it's fully asynchronous nature was never designed to operate contiguously with other protocols. I know that some customers make the ESB transmitter side work along BLE, and the issues they have, they fix with some workarounds like the customer mentioned here. We are planning to add support for concurrent BLE + ESB at some point, and will resolve these things properly then.

    Regarding the ESB code not fitting well in the Timeslot API -it is like that because it was never designed to be used that way. The Radio event handling including the usage of shorts and PPIs is a bit complex in ESB to achieve the lowest possible latency, so there might be some impact on the operation in timeslot if the configs are not cleared well in some configurations e.g. CONFIG_NEVER_DISABLE_TX. I think the workaround they use with calling the ESB radio event handler from in the timeslot event is ok to use for now. Regarding the PPI issue - it needs additional analysis from our side.

  • Hi Hung,
    Thank you for your information.
    It looks like that there are no other better solutions avaiable at this point.  Is there any detailed plan for supporting concurrent ESB+BLE in future? 

  • Hi Esten, 
    Yes it's in the pipeline. I can't tell about the exact date it will be available but we are aiming to have the sample in next release of NCS SDK. 

Reply Children
No Data
Related