Home » Arduino » Cheap Wireless: Arduino NRF24L01 Interfacing
NRF24L01 Lower Power

Cheap Wireless: Arduino NRF24L01 Interfacing

If you are looking to have wireless features on your next project and don't want to spend that much, then the NRF24L01 may be right for you.

The NRF24L01 by Nordic Semiconductors contains a 2.4 GHz RF transceiver, synthesizer and baseband logic which can be interfaced through SPI. Apparently, there are two versions of this breakout board: low-power and high-power. The low-power version uses the on-board PCB antenna and can send and receive data from 50 to 200 feet (15 to 60 meters) while the high-power version has an external antenna which increases the range to up to 3500 feet! (1 kilometer).

I was able to grab one of those low-power versions for my wireless robotic arm control project:

NRF24L01 Lower Power

My immediate concern was that this board runs on 3.3 V while the rest of my modules all run 5 V. Thankfully, there is a separately sold adapter that converts the voltage levels:

NRF14L01 Adapter

It also makes it easier to place the NRF24L01 breakout board on a PCB!

NRF24L01 Arduino Code

To interface the NRF24L01 to an Arduino, we need the Radiohead packet radio library by Mike McCauley. Go ahead and download the library from his repository. Once the library is installed on the Arduino IDE, you are now able to use some of the example codes.

As for the connections, here is a neat table:

Signal Arduino UNO/Nano/Mini Pin Arduino Mega2560 Pin
 VCC  3.3V  3.3V
 CE  8  8
 CSN  10  53
 SCK  13  52
 MOSI  11  51
 MISO  12  50
 IRQ  N/C  N/C

To start, choose Examples > Radiohead > nrf24 > nrf24_client.


This code is useless without a server so if you have another NRF24L01 and Arduino, load this code:


The client device sends a "Hello World" to the server to which the server responds with "And hello back to you". You can see everything if you open Serial Monitor for both the client Arduino and the receiver Arduino.

Was this post useful? Drop a comment below!

Leave a Reply

Your email address will not be published. Required fields are marked *