Introduction: NRF24L01 Range Testing
I wanted to find out exactly how far these tiny, inexpensive nRF24L01 radio modules can reliably send data. They’re a common choice for DIY projects that need wireless communication without WiFi, like remote sensors or controllers. In this test, I compared the basic module with a small onboard antenna to a more powerful version with a bigger external antenna. I ran tests inside my house, going through concrete floors, and then outside on a long, open road. By the end, I’ll show you how I got communication working from my basement to my attic and over 700 meters in an open field, so you’ll know what to expect for your own builds.
Supplies
- nRF24L01 Modules - https://s.click.aliexpress.com/e/_c3epC8wl
- nRF24L01P+PA+LNA Module - https://s.click.aliexpress.com/e/_c2JrxqUp
- NodeMCU development Board - https://s.click.aliexpress.com/e/_c3YXelyN
- Breadboards - https://s.click.aliexpress.com/e/_c4bzRpul
- Bench Power Supply - https://s.click.aliexpress.com/e/_c3ngQE7r
- Multimeter - https://s.click.aliexpress.com/e/_c2vycHoV
- Soldering Station - https://s.click.aliexpress.com/e/_c4ez92ov
- ESP Lora 32 Module - https://s.click.aliexpress.com/e/_c3vOXBlR
- ESP32 Development Board - https://s.click.aliexpress.com/e/_c341hxud
- Arduino Starter Kit - https://s.click.aliexpress.com/e/_c45u0mQ9
- Meshtastic Kits - https://meshnology.com?ta_aff=TN362ZCIG0&discount=TN362ZCIG0
Step 1: Make the Breadboard Adapters
The nRF24L01 module has pins spaced in a way that doesn’t fit into a standard breadboard. To solve this, I made a simple adapter. I took a small rectangle of protoboard and soldered two rows of four male headers in the middle, matching the exact spacing of the module’s pins.
Then, I soldered a second set of male headers to the outer edges of the board. I made sure the inner and outer pins on each side were connected.
Finally, I used pliers to slightly flatten the tips of the outer headers so they would press-fit snugly into the breadboard holes. Now I can plug the module into the adapter, and the adapter into the breadboard, making it easy to swap modules during tests.
Step 2: Wire the Transmitter and Receiver Circuits
For both the transmitter and receiver, the wiring is exactly the same. I connected the modules to the ESP8266 using the SPI pins for communication. The VCC and GND from the module go to the 3.3V and GND on the ESP8266—this is very important, as 5V will damage the module. Then, I connected the CE, CSN, SCK, MOSI, and MISO pins to specific digital pins on the ESP8266 as defined in my code. I double-checked all connections on both boards to make sure they were identical before powering anything on.
Wiring (NodeMCU ESP8266):
nRF24L01 -- ESP8266
VCC ------- 3.3V
GND ------ GND
CE -------- GPIO4 (D2)
CSN ------- GPIO5 (D1)
SCK ------- GPIO14 (D5)
MOSI ------ GPIO13 (D7)
MISO ------ GPIO12 (D6)
Step 3: Install Arduino IDE and RF24 Library
I programmed the ESP8266 boards using the Arduino IDE. First, I added the ESP8266 board support through the Boards Manager. Then, I installed the RF24 library, which is specifically designed to work with these nRF24L01 modules and makes the code much simpler. In the IDE, I selected the correct board type and the COM port for each device. With the library installed and the board set up, I was ready to open my two sketches, one for the transmitter and one for the receiver and upload them.
The full code is available here.
Step 4: Upload and Bench Test
I uploaded the transmitter sketch to one ESP8266 and the receiver sketch to the other. With both devices powered from my computer's USB, I opened the Serial Monitor for each. The transmitter started sending a count and a random number every second. Immediately, the receiver's Serial Monitor showed the same numbers coming in, and its onboard LED flashed with each received packet.
This quick bench test confirmed the modules were talking to each other. When I unplugged the receiver, the transmitter kept sending, and the receiver showed missed packets, which was a good sign the link was working properly before I started moving them apart.
Step 5: Add Power Smoothing If Needed
In my initial tests, I ran the modules on the "high" power setting without any issues. However, I've read that using the maximum power level can sometimes cause problems if the power supply dips during transmission. The fix is to add a capacitor right at the module's VCC and GND pins to act as a small energy buffer. You can solder a 10-100µF electrolytic capacitor directly to the module's pins.
I didn't need to do this for my tests, but if you find your module is resetting or behaving strangely when set to maximum power, adding this capacitor is the first thing I would try.
Step 6: Indoor Range Test
I left the transmitter powered on my workbench and walked through my house with the receiver, which was now powered by a phone battery pack. In rooms on the same floor, about 10 meters away, the signal was strong with no lost data. Going one floor down through a concrete ceiling, the signal was still solid. When I went to the second floor below, the signal became very weak and intermittent; I had to hold the receiver at certain angles to get any data, and moving just a little would break the connection. This showed me how much walls and floors affect the signal from the basic module.
Next, I swapped both modules for the versions with the external antennas and power amplifiers. I repeated the walk to my basement workshop, which is two concrete floors down from the transmitter. This time, I was able to get a reliable signal as long as I kept the antennas roughly aligned in the same plane.
The connection wasn't perfect. I still lost a packet if I pointed the antenna the wrong way—but it was a massive improvement. It proved that for going through multiple obstacles inside a building, the upgraded antenna modules made a usable difference.
Step 7: Outdoor Test
For the real distance test, I went to a long, abandoned road. I mounted one module on a tripod to keep it stationary and powered it with a battery pack. I took the other module, powered by a phone, to act as the mobile receiver. I used a GPS app on my phone to note the starting point and then log my distance as I walked away. The key here was maintaining a clear line of sight; even my body could block the signal if I stood in the way, so I made sure to keep the antenna pointed back towards the tripod.
Starting with the basic PCB antenna modules, I walked down the road. The signal was strong past 100 meters. At around 134 meters, I started losing a lot of packets, and the connection became finicky, heavily dependent on how I held the receiver.
Then I repeated the test with the external antenna modules. The difference was clear. I got a stable connection up to about 700 meters with a clear line of sight. Past 750 meters, the signal dropped out completely. Even at 700 meters, the antenna alignment was critical; a slight turn of my body could break the link.
Step 8: Next Steps
In the code, I kept the power amplifier setting on "high" instead of "maximum" for reliability, and I used a low data rate to help maximize range. You can experiment with these settings in the RF24 library. It's important to remember that these modules operate on public radio frequencies. You should always be mindful of local regulations regarding transmission power and avoid causing any interference with other devices. For most hobbyist projects, using these modules as-is at their default or high settings is perfectly acceptable.
My tests showed the basic NRF24L01 module is great for indoor use within the same room or floor, managing about 10-20 meters through walls. The version with the external antenna reliably worked through several floors indoors and reached about 700 meters outdoors with a clear line of sight. For your projects, this means you can choose the basic module for things like in-house sensor networks and the amplified one for yard or field data links. A simple next step could be building a wireless weather station that sends data from your garden back to your house, or a remote control for a model.
If this project was interesting for you, I will ask you to subscribe to my YouTube channel for more projects in the future!





