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

ESB nRF52 SDK 11

Hello,

I am working with the nRF52 DK, SDK 11 and especially with the ESB protocoll. I started with the provided example esb_low_power_ptx/prx.

  1. In the documentation is written the following:

"Note that this TX packet must have been uploaded to the TX FIFO before the packet is received."

When I looked into the code and I received a message the the nrf_esb_event_handler()-function is called. At the very end of the function payload data is loaded into the tx buffer. According to the documentation it is actually to late, because the packet is already received. How it is possible yet to attach the payload to the ACK?

  1. In the documentation it is written it is possible to have up to 256 Byte payload (nrf52). Same payload length I have in ACK?

Thanks in advance,

Florian

Parents
    1. The ACK-with-payload packets are sent out of sync in this example. If you notice in the main() function, the first payload is added to the tx_buffer here. In this way the tx_buffer is kept at one packet always, and on rx_event 2 you will transmit the packet added to fifo on rx_event 1.

    2. I believe the max payload length is 252 bytes. According to the ESB User guide in the doc: ESB User guide (Do a Ctrl-F search for "252") This works for static payloadlength only, max dynamic payload length is 32

    1. Correct, the ESB protocol has no support for delayed ACK. You could work around this, for example by always sending two packets, and get the ack-payload from the second packet.
    2. It is certainly possible, but this scenario might not be a perfect fit for the ESB protocol concept. ESB is more geared towards multiple TX sending data to single RX (see ESB User guide in my answer for more details).
Reply Children
No Data
Related