MySensors Library & Examples  2.3.1
Macros
+ Collaboration diagram for nRF5:

Detailed Description

These options are specific to the nRF5 (with Enhanced ShockBurst) family of wireless transport modules.

The nRF5 driver is OTA compatible with the RF24 driver.

The following chips are supported by this driver:

Macros

#define MY_RADIO_NRF5_ESB
 Define this to use nRF5 based radios for sensor network communication. More...
 
#define MY_NRF5_ESB_ENABLE_ENCRYPTION
 Define this to enable software based (RF24 compatible) AES encryption. More...
 
#define MY_DEBUG_VERBOSE_NRF5_ESB
 Define this for verbose debug prints related to the nRF5 driver.
 
#define MY_NRF5_ESB_PA_LEVEL   (NRF5_PA_MAX)
 Default nRF5 PA level. Override in sketch if needed. More...
 
#define MY_NRF5_ESB_CHANNEL   (76)
 RF channel for the sensor net, 0-125. More...
 
#define MY_NRF5_ESB_MODE   (NRF5_250KBPS)
 nRF5 mode. More...
 
#define MY_NRF5_ESB_BASE_RADIO_ID   0x00, 0xFC, 0xE1, 0xA8, 0xA8
 nRF5 radio network identifier. More...
 
#define MY_NRF5_ESB_ADDR_WIDTH   (5)
 nRF5 base address width.
 
#define MY_NRF5_ESB_RX_BUFFER_SIZE   (20)
 Declare the amount of incoming messages that can be buffered at driver level.
 
#define MY_NRF5_ESB_REVERSE_ACK_TX
 Switch to SI24R1 or faked nRF24L01+ compatible ACK mode. ACK bit is reversed on TX side.
 
#define MY_NRF5_ESB_REVERSE_ACK_RX
 Switch to SI24R1 or faked nRF24L01+ compatible ACK mode. ACK bit is reversed on RX side.
 

Macro Definition Documentation

#define MY_NRF5_ESB_BASE_RADIO_ID   0x00, 0xFC, 0xE1, 0xA8, 0xA8

nRF5 radio network identifier.

This acts as base value for sensor nodeId addresses. Change this (or channel) if you have more than one sensor network.

#define MY_NRF5_ESB_CHANNEL   (76)

RF channel for the sensor net, 0-125.

Frequencies: 2400 Mhz - 2525 Mhz

Channels: 126

See also
https://www.nordicsemi.com/eng/nordic/download_resource/8765/2/42877161/2726
  • 0 => 2400 Mhz (RF24 channel 1)
  • 1 => 2401 Mhz (RF24 channel 2)
  • 76 => 2476 Mhz (RF24 channel 77)
  • 83 => 2483 Mhz (RF24 channel 84)
  • 124 => 2524 Mhz (RF24 channel 125)
  • 125 => 2525 Mhz (RF24 channel 126)

In some countries there might be limitations, in Germany for example only the range 2400,0 - 2483,5 Mhz is allowed.

See also
http://www.bundesnetzagentur.de/SharedDocs/Downloads/DE/Sachgebiete/Telekommunikation/Unternehmen_Institutionen/Frequenzen/Allgemeinzuteilungen/2013_10_WLAN_2,4GHz_pdf.pdf
#define MY_NRF5_ESB_ENABLE_ENCRYPTION

Define this to enable software based (RF24 compatible) AES encryption.

All nodes and gateway must have this enabled, and all must be personalized with the same AES key.

See also
personalization
Warning
This driver always sets the initialization vector to 0 so encryption is weak.
#define MY_NRF5_ESB_MODE   (NRF5_250KBPS)

nRF5 mode.

  • NRF5_250KBPS for 250kbs (Deprecated)
  • NRF5_1MBPS for 1Mbps
  • NRF5_2MBPS for 2Mbps.
  • NRF5_BLE_1MBPS for 1Mbps BLE modulation
#define MY_NRF5_ESB_PA_LEVEL   (NRF5_PA_MAX)

Default nRF5 PA level. Override in sketch if needed.

  • NRF5_PA_MIN = -40dBm
  • NRF5_PA_LOW = -16dBm
  • NRF5_PA_HIGH = 0dBm
  • NRF5_PA_MAX = 4dBm
#define MY_RADIO_NRF5_ESB

Define this to use nRF5 based radios for sensor network communication.

See also
ARDUINO_ARCH_NRF5