This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Implementing ACK in software ESB

Hello,

I have to implement ESB on nRF52 bare metal (using the RADIO peripheral). I can receive packets from the nRF24, but I need to implement the ACK, and I'm not sure what this looks like. From the nrf24l01+ datasheet, I know a packet has a preamble, address, packet control field, payload and CRC.

I know that the radio stores the S0, length, S1 and payload fields in memory. So how would I set these fields for the ACK?

In this case, for ESB, there is no S0, the length is 6 bits, S1 is 3 bits (2 bit PID and 1 bit NOACK). I do not need to send a payload back yet, although I would appreciate an explanation of how the packets would be different in the event that I returned a payload with the ACK.

What should I set these fields to for the ACK? And what about the CRC?

Best