Arduino Pro Mini with nRF24L01+ 2.4GHz radio
The nRF24L01+ is a cheap ($5 AUD) 2.4GHz radio transceiver module widely available on ebay with a data transfer rate of 250kbps, 1Mbps and 2Mbps over
a SPI interface. It runs on 3.3V but the i/o pins are 5V-tolerant which makes it easy to interface to an Arduino Pro Mini.
There are plenty of online documentation and guides on how to use this transceiver. For example
see this
tutorial.
Specification
Frequency Range | 2.4 GHz ISM Band |
Maximum Air Data Rate | 2 Mb/s |
Modulation Format | GFSK |
Max. Output Power | 0 dBm |
Operating Supply Voltage | 1.9 V to 3.6 V |
Max. Receive Current | 13.5mA |
Max. Transmit Current | 11.5mA |
Min. Current(Standby Mode) | 26uA |
Logic Inputs | 5V Tolerant |
Communication Range | 800+ m (line of sight) |
The nRF24L01+ has a peak receive current of 13.5mA so a stable power supply from a 500mA USB port is good enough. A 250mA 3.3V LDO regulator
steps the 5V down for the transceiver. Compared to the ESP8266 which has a peak draw of 350mA and averages 80mA, the nRF2401L+ should be
the defacto radio for low power wireless projects.
Schematic
A 10uF bypass capacitor is used to smooth out power fluctuations that could affect its operation. Some recommend the use of an additional 100nf decoupling cap to
filter out any high frequency noise in the power. All the cheap ebay modules are clones of the original Nordic Semiconductor
chip but good enough for hobbyists to play with. Some are worse than others so do a range/reliability test to check them out.
Arduino Sketches
My sketches below are customised from the original RF24 library which is well documented
here.
- pingpair_ack.ino
Range/reliability testing between 2 transceivers using a timed ping-pong (transmit-response) algorithm. To obtain the best range, keep
the boards parallel to each other and upright high above ground. The antenna alignment works best this way.
2m apart in same room, no faults detected. See Serial monitor output
10m apart, 2 brick walls in between, some faults detected. See Serial monitor output
- scanner.ino
Scan and display 2.4GHz wifi channel traffic to help pick a 'quiet' channel.
The default radio channel used by nRF24L01+ is 76(0x4C) which is on the edge of busy wifi traffic.
Full serial monitor output