802.15.4 Networking Guide
Development website
  • Initial page
  • Introduction
  • Hardware
  • General Considerations
  • Initialization
  • Node parameters
  • Power gain and sensitivity
  • Radio channels
  • Networking methods
  • Node Discovery
  • Sleep options
  • Security and data encryption
  • Certifications
  • Code examples and extended information
  • API changelog
  • Documentation changelog
Powered by GitBook
On this page
  • Specifications
  • How to connect the module
  • Expansion Radio Board (XBee 802.15.4)

Was this helpful?

Hardware

PreviousIntroductionNextGeneral Considerations

Last updated 4 years ago

Was this helpful?

Specifications

In September 2020, we discontinued the XBee-PRO 802.15.4 EU radio, incorporating to our portfolio the new XBee 3 802.15.4 EU, with very similar features, more link budget and full software and hardware retro-compatibility. From March 2021, we commercialize the XBee 3 802.15.4, which is equivalent to the older radio XBee-PRO 802.15.4.

There are two radio versions: the general XBee 3 802.15.4 and the XBee 3 802.15.4 EU, which was specifically designed for Europe.

Radio version

Protocol

Frequency bands

Transmission power

Sensitivity

Range*

Region

XBee 3 802.15.4 EU

802.15.4

2.4 GHz

8 dBm

-103 dBm

1200m

Europe

XBee 3 802.15.4

802.15.4

2.4 GHz

19 dBm

-100 dBm

3200m

Rest of the world

*To determine your range, perform a range test under your operating conditions*

To determine the type of the module it is necessary to check its bottom. The European version part-number ends with 'J'. The part-number location can be seen in the pictures below this lines.

Note: From September 2020, Libelium offers the XBee 3 802.15.4 module for Waspmote OEM and Plug & Sense! lines and no longer offers the XBee-PRO 802.15.4 and XBee-PRO 802.15.4 EU versions, discontinued by the manufacturer Digi.

The frequency used is the free band of 2.4 GHz, using 12 channels with a bandwidth of 5 MHz per channel.

The 802.15.4 modules comply with the standard IEEE 802.15.4 which defines the physical level and the link level (MAC layer). The XBee modules add certain functionalities to those contributed by the standard, such as:

  • Node discovery: certain information has been added to the packet headers so that they can discover other nodes on the same network. It allows a node discovery message to be sent, so that the rest of the network nodes respond indicating their data (Node Identifier, @MAC, @16 bits, RSSI).

  • Duplicated packet detection: This functionality is not set out in the standard and is added by the XBee modules.

With a view to obtain frames totally compatible with the IEEE802.15.4 standard and enabling inter-operability with other chipsets, the xbee802.setMacMode(m) command has been created to select at any time if the modules are to use a totally compatible heading format, or conversely enable the use of extra options for node discovery and duplicated packets detection.

Encryption is provided through the AES 128b algorithm. Specifically through the AES-CTR type. In this case the Frame Counter field has a unique ID and encrypts all the information contained in the Payload field which is the place in the 802.15.4 frame where data to be sent is stored.

The way in which the libraries have been developed for the module programming makes encryption activation as simple as running the initialization function and giving it a key to use in the encryption process.

‌{
xbee802.setEncryptionMode(1);
xbee802.setLinkKey(key);‌
}

Extra information about the encryption systems in 802.15.4 and ZigBee 3 sensor networks can be accessed in the Development section of the Libelium website, specifically in the document: "Security in 802.15.4 and ZigBee networks".

The classic layout of this type of network is star topology, as the nodes establish point to point connections with brother nodes through the use of parameters such as the MAC or network address.

Regarding the energy section, the transmission power can be adjusted to several values:

Parameter

XBee 3 802.15.4

XBee 3 802.15.4 EU

0

10 dBm

-5 dBm

1

12 dBm

-1 dBm

2

14 dBm

2 dBm

3

16 dBm

5 dBm

4

18 dBm

8 dBm

Figure: Transmission power values

How to connect the module

This module can be connected to both SOCKET0 and SOCKET1 on the Waspmote board.

In order to connect the module to the SOCKET1, the user must use the Expansion Radio Board.

Expansion Radio Board (XBee 802.15.4)

The Expansion Board allows to connect 2 communication modules at the same time in the Waspmote sensor platform. This means a lot of different combinations are possible using any of the wireless radios available for Waspmote: 802.15.4, ZigBee 3, DigiMesh, 868 MHz, 900 MHz, LoRa, WiFi, NB-IoT / Cat-M, 4G, Sigfox, LoRaWAN, Bluetooth Pro, Bluetooth Low Energy and RFID/NFC. Besides, the following Industrial Protocols modules are available: RS-485/Modbus and CAN Bus. Some possible combinations are:

  • LoRaWAN - 4G

  • 802.15.4 - Sigfox

  • 868 MHz - RS-485

  • NB-IoT / Cat-M - WiFi

  • DigiMesh - 4G

  • NB-IoT / Cat-M - RFID/NFC

  • WiFi - 4G

  • CAN Bus - Bluetooth

  • etc.

NB-IoT / Cat-M and 4G modules do not need the Expansion Board to be connected to Waspmote. They can be plugged directly in the socket1.

In the next photo you can see the sockets available along with the UART assigned. On one hand, SOCKET0 allows to plug any kind of radio module through the UART0. On the other hand, SOCKET1 permits to connect a radio module through the UART1.

The API provides a function called ON() in order to switch the XBee module on. This function supports a parameter which permits to select the SOCKET. It is possible to choose between SOCKET0 and SOCKET1.

Selecting SOCKET0 (both are valid):

xbee802.ON();
xbee802.ON(SOCKET0);

Selecting SOCKET1:

xbee802.ON(SOCKET1);

In the case two XBee-802.15.4 modules are needed (each one in each socket), it will be necessary to create a new object from WaspXBee802 class. By default, there is already an object called xbee802 normally used for regular SOCKET0.

In order to create a new object it is necessary to put the following declaration in your Waspmote code:

WaspXBee802 xbee802_2 = WaspXBee802();

Finally, it is necessary to initialize both modules. For example, xbee802 is initialized in SOCKET0 and xbee802_2 in SOCKET1 as follows:

xbee802.ON(SOCKET0);
xbee802_2.ON(SOCKET1);

The rest of the functions are used the same way as they are used with older API versions. In order to understand them we recommend to read this guide.

Warnings:

  • Avoid to use DIGITAL7 pin when working with the Expansion Board. This pin is used for setting the XBee into sleep mode.

  • Avoid to use DIGITAL6 pin when working with the Expansion Board. This pin is used as power supply for the Expansion Board.

  • Incompatibility with Sensor Boards:

    • Agriculture PRO v30: Incompatible with Watermark and solar radiation sensors

    • Events v30: Incompatible with interruption shift register

    • Smart Water v30: DIGITAL7 incompatible with conductivity sensor

    • Smart Water Ions v30: Incompatible with ADC conversion (sensors cannot be read if the Expansion Board is in use)

    • Gases PRO v30: Incompatible with SOCKET_2 and SOCKET_3

    • Cities PRO v30: Incompatible with SOCKET_3. I2C bus can be used. No gas sensor can be used.

Figure: XBee 3 802.15.4
Figure: XBee 3 802.15.4 EU / XBee 3 802.15.4 bottom
Figure : Frequency channels in the 2.4 GHz band
Figure: Star topology
Figure : Module connected to Waspmote in SOCKET0
Figure : Dual radio with expansion board