Today I was working on a project using NRF24L01 chipset and I decided to verify the test range of this small device that you can buy as a breakboard on ebay.
I bought a pair some time ago and bought recently another for my new projects. The modules are different but have the same pinout so it is easy to change them for testing. Both modules are new version, NRF24L01+ and not the old version NRF24L01. The new version is capable of doing 250KBPS low speed and the old not.
The newest is the black on the left of the picture, seems better quality and a little shorter. So I tried this one first on two Arduino powered by lipo battery. 1st Arduino act as client sending payload (8 bytes) with ACK enabled. The 2nd Arduino just display the payload received but do not send back anything (except the ACK but the module doing this in hardware, so nothing to do execpt enable this mode).
Of course I used the same module on both Arduino. The RF module config is the following (used modified version of Stanley NRF24 Arduino Library)
// Max power setPALevel( RF24_PA_MAX ) ; // Min speed (for better range I presume) setDataRate( RF24_250KBPS ) ; // 8 bits CRC setCRCLength( RF24_CRC_8 ) ; // Disable dynamic payloads write_register(DYNPD,0); // increase the delay between retries & # of retries setRetries(15,15);
Then, I went outside in a clean area. Leaving the receiver at one point and starting moving with the client in my hand until it started to display that it was loosing ACK on the OLED display.
Quite surprised, It started to loose ACK from about 30 meters and modules vendors claims it work until 100 meters. Well as usual in IT, theorical performance never reached.
So I decided to try with the 2nd modules (the green on the right of the picture). That was better I succeded to go for about 50 meters. The bad thing is that I do not remember where I bought these modules, shame on me.
This conclusion to says that every module do not have the same range and performance. If you can choose, take the green one, about 30% better, just good to know.
To test further, I decided to buy the same modules with Antenna so I can see the range difference. And I also bought the new modules with Power Amplifier and Noise Suppression (PA-LNA) that claimed range to 1KM, wooooh, need to test that !!!!!
Edit of September 8th : I succeded to improve the range with a Payload size of about 8 bytes (I had 12 before), this gave me about 80 meters range in open air, I’m quite happy with this range. This is very interesting that lower payload size = higher range, but that make senses. So if you need range and more data to send, the idea could be sending two packets, if power is not a issue of course.
By the way, in house with walls or other will decrease the range.
Edit of September 12th : I received the new modules. Excited, so I plugged them onto my range test boards, put a lipo on boards and give it up. The NRF24L01-antenna module gave me excellent results in house, no more “dead zone” and testing outside gave me good results too. But my road is now not enough “long” to do real tests in open air, I can’t have more than 100 meters in open view, so going far from 100 meters put other houses on the way and the test is different, I need to find a huge field around for testing open air ;-). I will update this post as soon I will have tested.
Here are the picture of the modules below, I will do more test with them and keep blogging on it.