Connecting the Radio

created by hek , updated by Yveaux

The NRF24L01+ and RFM69 transceiver communicates with the Arduino board via the SPI interface.

It is important to always feed the radios with a stable and noisy-less power source of 3.3V providing enough current for your device, else erratic behaviour, degraded range and sensitivy can happen.

Refer to the notes about using a regulator or a coupling-capacitor below.

NRF24L01+ & Arduino

NOTE: The input pins on the NRF24L01+ is 5V tolerant. However, you cannot feed the module with more than 3.3V on VCC. If you use a 5V Arduino you have to use a step-down regulator!

Pro Mini / Nano Mega NRF24L01+ Color
GND GND GND Black
5VReg -> 3.3V 3.3V VCC Red
9 49 CE Orange
10 53 CSN/CS Yellow
13 52 SCK Green
11 51 MOSI Blue
12 50 MISO Violet
2 2 IRQ Gray

The IRQ pin is only required to be connected if the MY_RX_MESSAGE_BUFFER_FEATURE is defined in the sketch. Using this feature is recommended for high traffic nodes or gateways. Enabling it will result in better throughput but will require some additional memory to keep the message in memory before processing.

If you are using an Arduino Mega, the following needs to be added to your sketch before including MySensors.h:

#define MY_RF24_CE_PIN 49
#define MY_RF24_CS_PIN 53

NRF24L01+ & ESP8266

This also works with other ESP8266-based boards such as NodeMCU and Wemos D1 Mini.

NodeMCU Radio Comment
GND GND Black
3V3 VCC Red
D2 CE Orange
D8 CSN/CS Yellow
D5 SCK Green
D7 MOSI Blue
D6 MISO Violet

Note: The IRQ is currently not used by the MySensors library so it can be left un-connected.

RFM69 & Arduino

NOTE: The NSS, MOSI and SCK are not 5V tolerant on RFM69. You will need to use a level converter if you're using a 5V Arduino.

Arduino RFM69 Color
GND GND Black
3.3V VCC Red
10 NSS Yellow
13 SCK Green
11 MOSI Blue
12 MISO Violet
2 DI00 Gray
ANA Antenna

RFM69 & ESP8266

This also works with other ESP8266-based boards such as NodeMCU and Wemos D1 Mini.

ESP8266 RFM69 Color
GND GND Black
3.3V VCC Red
D1 DIO0 Gray
D5 SCK Green
D6 MISO Violet
D7 MOSI Blue
D8 NSS Yellow
ANA Antenna - see below


For the above wiring, the following defines should be used:

#ifdef ESP8266
#define MY_RADIO_RFM69
#define MY_RFM69_FREQUENCY RF69_433MHZ // Set your frequency here
#define MY_IS_RFM69HW // Omit if your RFM is not "H"
#define MY_RF69_IRQ_PIN D1
#define MY_RF69_IRQ_NUM MY_RF69_IRQ_PIN
#define MY_RF69_SPI_CS D8 // NSS. Use MY_RFM69_CS_PIN for the development branch.
#endif

Gateways and nodes can use the same wiring, but be aware that the RFM radio uses all pins that are easy to work with except D2, so connecting anything might be a challenge. Use an Arduino instead if you want to connect stuff.

Configuring MySensors for RFM69

MySensors is configured to use the NRF24 radio by default. To use RFM69, the following needs to be added before including MySensors.h

Base defines for non-High Power 868Mhz radio, and Atmel 328p mcus (mini pro, nano, uno etc.) is :

#define MY_RADIO_RFM69  // Define for using RFM69 radio

And if you need an advanced configuration, you may need to also add these defines :

#define MY_RFM69_FREQUENCY RF69_433MHZ  // Define for frequency setting. Needed if you're radio module isn't 868Mhz (868Mhz is default in lib)
#define MY_IS_RFM69HW  // Mandatory if you radio module is the high power version (RFM69HW and RFM69HCW), Comment it if it's not the case
//#define MY_RFM69_NETWORKID 100  // Default is 100 in lib. Uncomment it and set your preferred network id if needed
//#define RF69_IRQ_PIN 4  // Default in lib is using D2 for common Atmel 328p (mini pro, nano, uno etc.). Uncomment it and set the pin you're using. Note for Atmel 328p, Mysensors, and regarding Arduino core implementation D2 or D3 are only available. But for advanced mcus like Atmel SAMD (Arduino Zero etc.), Esp8266 you will need to set this define for the corresponding pin used for IRQ
// #define MY_RF69_IRQ_NUM 4 // Temporary define (will be removed in next radio driver revision). Needed if you want to change the IRQ pin your radio is connected. So, if your radio is connected to D3/INT1, value is 1 (INT1). For others mcu like Atmel SAMD, Esp8266, value is simply the same as your RF69_IRQ_PIN
// #define MY_RF69_SPI_CS 15 // If using a different CS pin for the SPI bus. Use MY_RFM69_CS_PIN for the development branch.

You can find more info about these define here : https://www.mysensors.org/download/sensor_api_20

Note : Mysensors RFM69 driver is interrupt driven.

RFM69 Antenna

IMPORTANT: You MUST attach an antenna to the board. The antenna need to be single core inside, only one wire, not multi-wire braided like you can find in common dupont cable (not good for antenna.) Aside from not working without an antenna, transmitters can be damaged if they transmit without an antenna present.

By cutting a wire to the proper length you can create a simple antenna for your RFM69 radio. Depending on the frequency of the radio, the antenna has to be cut to different lengths. Cut the antenna slightly longer to give room to solder it to your board. You can always trim it once soldered.

Frequency Length (in) Length (mm)
434 MHz 6.47" 164.7 mm
868 MHz 3.22" 82.2 mm
915 MHz 3.06" 77.9 mm

Above antenna length represent 1/4 wave. There is also commercial antennas to buy in proper length.

Tips:

Connecting a Decoupling-Capacitor

If you experience bad reception or if transmitted data never reaches destination, try adding a decoupling capacitor of 4.7µ - 47µF (the exact size usually doesn't matter) across the radio's 3.3V and GND.

Capacitor Radio Comment
- side GND Marked Black on radio
+ side 3.3V Marked Red on radio

The side with "< - < - "-marking should be connected to GND

Connecting a Voltage Regulator

NOTE: If you are using the 5V version of Arduino Pro Mini (that lacks the 3.3V regulated output) you'll have to connect a 5V->3.3V regulator between the Arduino and Radio.

Arduino Regulator Radio
5V Vin
GND GND GND
Vout VCC

Datasheets

NameSize# Downloads
nRF24L0Plus.pdf1.06 MB2058
RFM69HW-V1.3.pdf1.17 MB983
sx1231h.pdf962.48 kB674

Shopping Guide

100pcs electrolytic capacitors
Assorted values. 0.1uF-100uF. Use capacitors to stabilize power to the radio.
1065 available - $4.28   Buy
In stock - $1.63   Buy
10pcs 433Mhz Antenna
For RFM69 Modules
599 available - $1.38   Buy
In stock - $4.15   Buy
10pcs 868Mhz Antenna
For RFM69 Modules
73 available - $4.98   Buy
In stock - $1.99   Buy
10pcs 915MHz Antenna
For RFM69 modules
155 available - $2.84   Buy
In stock - $1.99   Buy
10pcs LE33ACZ 5V-3.3V Step Down Regulator
Regulator for adjusting the power to the radio when using 5V Arduino Pro Minis. Easy to solder and/or use on a breadboard.
432 available - $6.99   Buy
In stock - $6.70   Buy
10pcs NRF24L01+ 2.4GHz Wireless Transceiver
This is what enables your sensors to communicate wirelessly across a nominal range of 60 meters.
2252 available - $9.99   Buy
In stock - $7.75   Buy
20pcs 662K 5V-3.3V Step Down Regulator
Inexpensive regulator for adjusting the power to the radio when using 5V Arduino Pro Minis. Warning! Very small and hard to solder.
669 available - $0.99   Buy
In stock - $1.30   Buy
AMS1117 5V-3.3V Step Down Module
Regulator for adjusting the power to the radio when using 5V Arduino Pro Minis. Solder free.
4214 available - $0.99   Buy
In stock - $0.39   Buy
Logic Level Shifter
Bi-Directional logic level shifter. 5V to 3v3. 4 Pins.
154 available - $0.99   Buy
In stock - $2.70   Buy
NRF24L01+ Socket Adapter Board
Another adapter for Arduino Pro Mini 5V that provide 3.3v regulated power to the radio. Solder free.
6608 available - $0.99   Buy
In stock - $2.22   Buy
NRF24L01+PA+LNA Antenna version
This radio has an extended range of up to 1000 meters according to spec. Use this if you need to cover a greater distance or area.
12263 available - $2.62   Buy
In stock - $1.98   Buy
RFM69 433Mhz Transceiver
HopeRF RF69 module. Select frequency band on aliexpress.
2393 available - $3.90   Buy
In stock - $4.70   Buy
RFM69 868Mhz Transceiver
HopeRF RF69 module. Select frequency band on aliexpress.
1359 available - $4.25   Buy
In stock - $4.70   Buy

Gateways

Sensors & Actuators

Related Content

Comments