Hello,
I've a working application on nRF52811 SDK / S140 running BLE. I need to extend it so that from time to time BLE switches off temporarily, to send a simple and short packet using the legacy Nordic protocol. This is to emulate a good old nRF24L01. After the packet has been transmitted, the system should back to BLE. The legacy packet needs no acknowledgement and there is no need to receive anything. So it should be very simple but I struggle having this packet emitted.
I had a look at the following posts without success so far:
- How to time-share switch between BLE and 2.4G private protocol
- Using BLE and ESB (Enhanced Shockburst) simultaneously
Here is a strip-down version of my code:
The code runs down without error until the last line where it gets stuck in the while loop. I see no activity on a spectrum analyzer, meaning the packet is not emitted. (The hardware is good for sure, because the BLE part of the application works well)
With the debugger, I see that the status checked by nrf_esb_is_idle() is NRF_ESB_STATE_PTX_RX_ACK. This is strange because tx_payload.noack = true means that no acknowledge is expected.
My feeling is that the radio is not totally free to be used by the ESB library, the BLE stack still access it somehow, or that the ESB initialization is not complete.
Would it be mandatory to setup the pipes? It looks very complicated for what I need. Indeed I don't need all the bells and whistles of the ShockBurst. A very simple packet at fixed address, with fixed payload is sufficient.
Any help will be appreciated.