sparkfun nRF24L01+ Technical document

nRF24L01+ Transceiver Hookup Guide
nRF24L01+ Hookup Wishlist SparkFun Wish List
Introduction
These breakout boards provide SPI access to the nRF24L01+ transceiver
module from Nordic Semiconductor. The transceiver operates at 2.4 GHz
and with power supplies 3.3V-5V. It has 250kbps, 1Mbps and 2Mbps on-air
data-rate options and is applicable for low-power applications.
nRF24L01+ Transceiver Breakout: on-board antennna version.
Required Materials
To follow along with this tutorial, we recommend you have access to the
following materials.
(2) Jumper Wires Premium 12" M/F Pack of 10
PRT-09385
This is a SparkFun exclusive! These are 12" long jumper wires termin…
Break Away Male Headers - Right Angle
PRT-00553
A
row of right angle male headers - break to fit. 40 pins that can be cu…
2.4GHz Duck Antenna RP-SMA
WRL-00145
2.4GHz Duck Antenna 2.2dBi with Reverse Polarized - SMA RF conn…
SparkFun Transceiver Breakout - nRF24L01+ (RP-SMA)
WRL-00705
The nRF24L01 module is the latest in RF modules from SparkFun. Th…
SparkFun USB Mini-B Cable - 6 Foot
CAB-11301
This is a USB 2.0 type A to Mini-B 5-pin cable. You know, the mini-B…
Page 1 of 6

(2) SparkFun RedBoard - Programmed with Arduino
DEV-12757
A
t SparkFun we use many Arduinos and we're always looking for the…
(2) SparkFun Transceiver Breakout - nRF24L01+
WRL-00691
This module uses the newest 2.4GHz transceiver from Nordic Semico…
Suggested Reading
If you aren’t familiar with the following concepts, we recommend reviewing
them before beginning to work with the nRF24L01+ Breakouts.
• Installing the Arduino IDE
• How to Power Your Project
• How to Solder
• Serial Peripheral Interface
Hardware Overview
Antenna Options
SparkFun carries two versions of the breakout, listed below.
On-board Chip Antenna
SparkFun Transceiver Breakout nRF24L01+ with chip antenna (WRL-
00691)
The first version is the SparkFun Transceiver Breakout - nRF24L01+ with
chip antenna. The on-board chip antenna allows for a more compact
version of the breakout. However, the smaller antenna also means a lower
transmission range. Keep that in mind if you plan on mounting this board in
an enclosure. The enclosure material may also decrease the range of this
board, as you cannot move the antenna outside of any interference. This
antenna should be suitable for most applications.
RP-SMA
Page 2 of 6

SparkFun Transceiver Breakout - nRF24L01+ with RP-SMA antenna (WRL-
00705)
If you need more range in your wireless connection or if you need to move
your antenna outside an interference zone, we recommend the RP-SMA
antenna version of the breakout. You can learn more about SMA
connectors here. This version works with the RP-SMA 2.4GHz antenna and
its larger counterpart. Because of the external antenna on this version of
the breakout, it has a greater range than the on-board antenna version.
Pins
Broken out pins with labels
While the nRF24L01+ IC has 20 pins available, our breakout board
simplifies this down to the 8 pins required to get up and running. These pins
are the same on both versions of the board. The pins function as follows:
•GND - Ground
•IRQ - Interrupt pin. This pin is active LOW .
•MISO - 3.3V-5V tolerant SPI slave output.
•MOSI - 3.3V-5V tolerant SPI slave input.
•SCK - 3.3V-5V tolerant SPI clock.
•CSN - 3.3V-5V tolerant SPI chip select.
•CE - 3.3V-5V tolerant chip enable. This pin toggles the nRF24L01+
IC between transmit (TX), receive (RX), standby, and power-down
mode.
•VCC - This is VRAW and is regulated on-board down to 3.3V for the
proper functionality of the nRF24L01+. Voltage range on this pin is
3.3V-7V.
Functionality
Transmission Mode
Page 3 of 6

The IC can either work in transmit or receive mode. This mode is
determined by both the CE pin state, the PWR_UP register, and the
PRIM_RX register. The following chart shows the various configurations.
Transmission Mode Truth Table
Mode PWR_UP
Register
PRIM_RX
Register
CE Pin FIFO State
RX Mode 1 1 1 -
TX Mode 1 0 1 Data in TX FIFOs.
Will empty all
levels in TX FIFOs
TX Mode 1 0 Minimum
10μs high
pulse
Data in TX
FIFOs.Will empty
one level in TX
FIFOs.
Standby-
II
1 0 1 TX FIFO empty.
Standby-I 1 - 0 No ongoing
packet
transmission.
Power
Down
0- - -
Hardware Hookup
Solder Connection Points
We recommend soldering headers to the nRF24L01+ board to allow you to
prototype your circuit. To avoid interference with the antenna on the
nRF24L01+, use right-angle male headers. If you need a review for PTH
soldering, check out our tutorial here.
Connect the Wires
Now that you have your headers attached, you can plug in the jumper
wires. Connect the Redboard and nRF24L01 as listed.
Redboard →nRF24L01+
•3.3V→VCC
• GND →GND
•D8→IRQ
•D9→CE
• D10 →CSN
• D11 →MOSI
• D12 →MISO
• D13 →SCK
Final Circuit
Once you have everything connected, your system should look like the
following:
Page 4 of 6

nRF24L01+ Circuit Assembly
Repeat!
Since these are radio modules, you’ll need at least two modules to talk to
each other. Duplicate the connections between another Redboard and
nRF24L01+ module. Don’t forget to attach the antenna to your nRF24L01+
if you have the RP-SMA version.
Arduino Code
There are a lot of libraries available for this module, but we recommend
using the RF24 library, originally written by maniacBug, and updated for
Arduino 1.6x by TMRh20.
You can find the most up-to-date version of the library here. Alternatively,
you can download this zip and install it into your Arduino IDE libraries
folder. If you need help with the library installation, please check out our
tutorial.
DOWNLOAD THE RF24 LIBRARY
Once you have your code properly installed, open up Examples →RF24 →
GettingStarted.ino.
Check out the User Configuration section of the code, and make sure you
update yours as shown below.
/****************** User Config ***************************/
/*** Set this radio as radio number 0 or 1 ***/
bool radioNumber = 1;
/* Hardware configuration: Set up nRF24L01 radio on SPI bus pl
us pins 9 & 10 */
RF24 radio(9,10);
One radio should have the radioNumber set to 0and the other should be
set to 1.
Upload the code to your Redboards. Once you have them both set up, you
can open up two terminals set at 115200 bps, 8-N-1, and you should see
the following appear on the terminal.
RF24/examples/GettingStarted
*** PRESS 'T' to begin transmitting to the other node
Press Tin one terminal, press Rin the other, and wait until you start
seeing your radios communicating! You should see something similar in
your terminal.
Page 5 of 6

Receiver output in the terminal.
Resources and Going Further
Going Further
Now that you have your nRF24L01+ up and running, you can start creating
your own awesome wireless projects. There are several other examples in
the library – use these to to keep exploring your nRF24L01+ modules or
modify them for your own personal projects.
Have a great project done? Let us know - we’d love to see it! If you have
any feedback, please visit the comments or contact our technical support
Additional Resources
Check out these additional resources for more information and other project
ideas.
• nRF24L01+ Repository
• nRF24L01+ RP-SMA Repository
• nRF24L01+ Datasheet
• Heartbeat Straight Jacket
For more wireless fun, check out these other SparkFun tutorials:
Understanding the BC127
Bluetooth Module
SparkFun has two boards using the
BC127; here's what you need to
know to use them.
XBee WiFi Hookup Guide
An overview of Digi's WiFi XBees,
and a quick how-to on getting them
connected and interfacing with the
cloud.
Using pcDuino's WiFi Dongle
With the P
i
Are You Okay? Widget
Use an Electric Imp and
accelerometer to create an "Are You
OK" widget. A cozy piece of
technology your friend or loved one
can nudge to let you know they're
OK from half-a-world away.
Page 6 of 6
11
/
17
/
201
5
htt
p
s://learn.s
p
arkfun.com/tutorials/nrf24l01-transceive
r
-hooku
p
-
g
uide?
_g
a=1.30110591....
Table of contents