Hi
This is just a head's up.
In function nrf_esb_pop_tx(void) you have the following code ...
if (--m_tx_fifo.entry_point >= NRF_ESB_TX_FIFO_SIZE) { m_tx_fifo.entry_point = 0; }
Instead it should be the following...
if (m_tx_fifo.entry_point == 0) { m_tx_fifo.entry_point = (NRF_ESB_TX_FIFO_SIZE-1); } else { m_tx_fifo.entry_point--; }
Otherwise the bug is such that the packet that was 'deleted' is still sent and after that it all goes out of sequence
Kind regards
Mahendra