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

nRF24L01 strange behavior with ack payload

I was doing some range testing using the ack payload feature of nRF24L01 modules, and I noticed that using different packet sizes would affect the number of packets per second transmitted. So I did another test, this time with the modules side by side and only changing the packet size. The results were pretty strange:

image description

I was just wondering what might be causing this...?

I am using arduino, source is here if it's of any use: www.iforce2d.net/rf24RangeTestSrc.zip

There is a video here that explains the test a little more, this info starts about 9:27 www.youtube.com/watch

  • This is quite interesting results you have with regard to the packet length. I find it suspicious that you can only receive packets with up to 24 bytes of payload length. The ESB engine supports up to 32 bytes of payload and we are using this functionality all the time. I'm suspecting that there's something off in the timing of the acknowledgement or receive window you use that's cutting the link before you are able to get the entire package through. What values are you using for ARD? When you are sending packets longer than 24 bytes, how do you control the receive window on the PRX (primary receiver)? Keep in mind that 1 bit is 4 us long. So with 1 byte preamble, 5 byte address, 9 bits of PID, 32 bytes of payload and 2 bytes of CRC the duration on air is: 1316 us.

    I couldn't find any information about the radio configurations in arduino files you attached, so I can't pin point anything here, but from the behavior I'm pretty sure there's something with the radio timing that's causing this. What happens if you switch to 1 Mbps or 2 Mbps, do you see the same result?

Related