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

Using nRF24L01+ in multiple designs - Experiencing a communication window anomaly - Could use some advice

Hey guys, I am currently using the nRF24L01+ (more specifically the module that has +pa +lna), and I am experiencing some odd behavior. I will briefly go over the devices, and then will describe what I am seeing.

I have multiple PCB's using a Parallax Propeller chip to communicate with the nRF24L01+. For the most part, these devices are working and are getting the data across. I started collecting transmission/receiving/echo data for all of our devices and storing them into a spreadsheet so we can compare the reception of each device, and if something improves/decreases the performance it will be somewhat measurable.

One of my tests is an "echo" test. I have a testing device transmit a payload at a certain interval (e.g. 500ms, 200ms, etc.). The other device is programmed to wait for payloads, and as soon as it sees one it will immediately re-transmit the payload back. The testing device keeps track of how many payloads were echo'ed back. This specific test is where I noticed something was not right. It appears there are "windows of opportunity" for communication to occur or not occur. Here is what I mean:

Test Delay, Device Retransmit Delay, Device Received Count, Echoed Back Count

500 0 100% 97%
400 0 100% 67%
300 0 100% 0%
200 0 50% 33%
180 0 50% 25%
160 0 50% 17%
140 0 50% 0%
120 0 50% 0%
100 0 50% 0%
			
500 100 100% 67%
400 100 100% 0%
300 100 50% 50%
200 100 50% 18%
100 100 38% 0%

So the "Test Delay" is the interval in milliseconds that I am transmitting. The "Device Received Count" is how many payloads made it from the tester to the device. The "Echoed Back Count" is how many payloads were echoed back from the device back to the tester.

Every time I run these tests the numbers conform to these very specific numbers (e.g. 67%, 50%, 33%, etc.). It doesn't matter when I start the test, or how long I let the test run, it will be the exact same result every time. (both device received count, and echoed back count).

At first I thought that the re-transmission might have been coming back too fast and the testing device was just missing it (but this would be consistent over all tests is the thing). For a test, I incorporated a small delay on the device that is echoing data back. This is labeled as "Device Retransmit Delay". Normally it re-transmits the payload back instantaneous, so instead I tried adding a 100ms delay to see how the results changed. There are still these "holes" where data will not echo back at that interval, its just shifted slightly.

So it started making me wonder if there is something inside the nRF24L01+ that may be causing this behavior? It almost seems like there is a floating window that transmissions need to pass through otherwise there is data loss?

Has anyone experienced anything like this? I am thoroughly confused and would greatly appreciate any help or advice in figuring this out. Thanks!


p.s. Here are some nRF24L01+ configuration details:

  • I am not using the auto-acknowledgement feature
  • 250kb/s communication speed
  • Payload size is 32 bytes

Here are some hardware details:

  • Dedicated 3.3V 1 amp power rail for the nRF24L01+, sitting directly next to it.
  • Using 10uF, 1uF, 0.1uF SMD(0805) decoupling capacitors across nRF24L01+ power (extremely close to the power pin).
  • Also using a 220uF capacitor directly next to the power pin of nRF24L01+.
  • There is no PCB material under the nRF24L01+ antenna area... it overhands the board for improved reception.
Parents Reply Children
No Data
Related