Hello,
Scenario:
2x nRF52833 - One set as PTX and the second PRX. PTX is connected to my PC via UART. Both boards are initialized with ESB_PROTOCOL_ESB_DPL.
I want to send a data packet to PTX via UART, PTX will transmit this packet to PRX, PRX will reply ACK + payload (mirror the received data) and PTX will write the received data back to the PC via UART.
Problem:
PC to PTX via UART works fine;
PTX to PRX via ESB works fine;
PRX to PTX (ACK + Payload) seems that PRX is buffering the packet in the FIFO (by 1) or PTX is not getting the ACK receive event on first try.
Let's say PTX send data packet "A", PRX receives packet "A" and send back ACK + "A", PTX doesn't get it.
Then PTX sends data packet "B", PRX receives packet "B" and send back ACK + "B", PTX gets ACK + "A" (?!).
Extra:
Data is being received in PRX (checked).
Question:
My guess is that either the PRX is buffering the ACK (which doesn't make much sense, since PTX would get an ACK timeout) or the PTX "event_handler" is not being triggered.
Is there a way to make sure I'm flushing the data in the PRX side?
I'm using selective_auto_ack = false for the ACK + Payload purpose.
Here is my code:
PTX
PRX