How to handle ESB_EVENT_TX_FAILED?

Hi everyone!

I am using ESB with the nRF5340dk without ACK, but from time to time need to send a packet with an ACK request in order to send some commands from the receiver side. The problem is that, if this transmission fails (ESB_EVENT_TX_FAILED), I'm unable to resend the other packets. I've already tried to call esb_start_tx, but this triggers a loop of ESB_EVENT_TX_FAILED events. How should I handle this event in order to continue sending packets after ACK reception fails?

Parents
  • Hello,

    Have you tried (at least for test) flushing using esb_flush_tx()&esb_flush_rx() on both or either sides when the issue occurs to see if that affect the issue?

    If that doesn't help:

    Do I understand it correctly you are always using the esb_write_payload() command, but with the .noack bit set most of the time to disable ack?

    Do I understand it correctly that the ESB_EVENT_TX_FAILED you experience here, happen on the PTX?

    Do I understand it correctly that all packets here are unique? In other words just make sure (at least for test) that the packets before/after the packet sent without the .noack bit set is different.

    Best regards,
    Kenneth

Reply
  • Hello,

    Have you tried (at least for test) flushing using esb_flush_tx()&esb_flush_rx() on both or either sides when the issue occurs to see if that affect the issue?

    If that doesn't help:

    Do I understand it correctly you are always using the esb_write_payload() command, but with the .noack bit set most of the time to disable ack?

    Do I understand it correctly that the ESB_EVENT_TX_FAILED you experience here, happen on the PTX?

    Do I understand it correctly that all packets here are unique? In other words just make sure (at least for test) that the packets before/after the packet sent without the .noack bit set is different.

    Best regards,
    Kenneth

Children
Related