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 Range2.4 GHz ISM Band
Maximum Air Data Rate2 Mb/s
Modulation FormatGFSK
Max. Output Power0 dBm
Operating Supply Voltage1.9 V to 3.6 V
Max. Receive Current13.5mA
Max. Transmit Current11.5mA
Min. Current(Standby Mode)26uA
Logic Inputs5V Tolerant
Communication Range800+ 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.
  1. 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

  2. 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