Wireless communication in the 802.15.4 standard

The MRF24J40 Nanoshield is a 2.4GHz wireless transceiver, using the 802.15.4 protocol, which is the basis for the ZigBee and 6LoWPAN protocols.

With the MRF24J40 Nanoshield you can create remote control projects, wireless sensors and even continuous audio data transmission, for example.

This module has a data transfer rate of 250Kbps and allows allows up to 65 thousand module communicating on the same network. Depending on the applications, it's possible to achieve communication distances of up to 5km (~3 miles) or more (we have checked ourselves in a real-life, line-of-sight test).

The 802.15.4 protocol is the same that is used by other popular wireless transceivers, like the XBee, and offers basic addressing, MAC and network management functions, as well as collision management and packet retransmission.

By using the open source Arduino library we provide, you can access the wireless module functions to create your own wireless network. You are free to implement any network topology you like, like star, peer-to-peer or even mesh, depending on the needs of your application and the resources available in your microcontroller.

We offer three different models of the MRF24J40 Nanoshield:

  • Model A: low power module with integrated antenna.
  • Model B: long range module with integrated antenna.
  • ModelC: long range module with external antenna connector.

The communication range can vary a lot according to each specific application, depending on factors like: line-of-sight, antenna type and orientation, signal reflections and electromagnetic noise. As a reference, in our line-of-sight, open field tests we achieve communication distances of 200m between model A units, 1.5km between model B units and 5km between module C units (with 5dBi omnidirectional antennas). Indoors, the signal quality can vary wildly depending on the many characteristics of the environment, like the number of walls between the transceivers, for example. Hence it is not possible to provide a good estimate of the communication range without knowing more details about where exactly the transceivers will be installed.


  • 802.15.4 protocol.
  • SPI interface.
  • Antenna options: integrated (models A and B) or U.FL connector for external antenna (model C).
  • Power amplifier and low noise amplifier on models B and C.
  • Dedicated voltage regulator, reducing the burden on the Arduino internal regulator.
  • Ground plane on the board to optimize the antenna irradiation pattern.
  • Received signal strength indicator (RSSI).
  • Link quality indicator (LQI).
  • Hardware data encryption engine using AES-128.
  • Optional use of the INT pin as external interrupt for the microcontroller.
  • Optional use of the WAKE pins to wake up the module from low power sleep mode.
  • Reset button.
  • Sensitivity:
    • Model A: -95dBm.
    • Model B: -102dBm.
    • Model C: -108dBm.
  • Transmission power:
    • Model A: +0dBm.
    • Model B: +20dBm.
    • Model C: +19dBm.
  • Current consumption:
    • Model A: transmissão 23mA, recepção 19mA, sleep 2uA.
    • Model B: transmissão 130mA, recepção 25mA, sleep 5uA.
    • Model C: transmissão 120mA, recepção 25mA, sleep 12uA.

MRF24J40 diagram

MRF24J40 block diagram

MRF24J40 Arduino Function
INT D3 MRF24J40 interrupt output (optional)
SDI D11# SPI data input (MOSI)
SDO D12 SPI data output (MISO)
SCK D13 SPI clock
WK A2 MRF24J40 wake up input (optional)
CS A3 SPI chip select
VCC VCC 5V power supply input
VIN VIN External power supply input
GND GND Reference voltage (ground)
Pin descriptions

The three models of the MRF24J40 Nanoshield

Electrical specifications

  • Power supply: it can be done through either the VIN pin or the VCC pin. The voltage range for the VIN pin is from 7V to 12V (maximum 20V); for the VCC pin, the range is from 4.5V to 5.5V (5V typical). When power supply is present on the VIN and VCC pin simultaneously, the VIN input has precedence and will automatically be selected to supply the circuit.

  • Current consumption: the maximum current consumption (during transmission) is of approximately 25mA for the low power module (model A) and 130mA for the long range modules (models B and C).

  • Logic levels: the SPI input pins (SDI, SCK and /CS) operate with logic levels of 5V or 3.3V. The INT pin and the SPI output pin (SDO) operate at 3.3V and is 100% compatible with the voltage accepted by the Arduino.