Hardware

Specifications

The XBee 868LP module is provided with a 4.5 dBi antenna, which enables maximum range. The frequency used is the 868 MHz band, using 30 software selectable channels. Channels are spaced 100kHz apart. The transmission rate is 10 kbps.

To know what band is legal in your country, please check the ITU region map. Region 1 ISM free bandis 868 MHz and Region 2 ISM free band is 900 MHz. You must also check the legal restrictions by region touse the proper configuration and channel.It is the responsibility of the users to know the allowed frequencyband and channels in their country, and use them. Ignoring this, could lead to considerable penalties.

Libelium replaced the XBee 868 module with its natural evolution, the XBee 868LP, in October 2016. The XBee 868LP module is not compatible with other XBee products. Among other differences, they use different baudrates so they cannot interoperate. The new XBee 868LP features a lower transmission power with a good sensitivity, so battery performance is improved due to lower consumption while good ranges remain.

Due to the propagation characteristics of the 868/900 MHz band, the near field effect could make that 2 modules cannot communicate if they are placed very close (< 1 m). We suggest to keep a minimum distance of 3 or 4 meters between modules.

It is not recommended to work without an antenna screwed to the module. The module could be damaged due to RF reflections.

Encryption is provided through the AES 128 bits algorithm. Specifically through the type AES-CTR. 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 link layer frame where the data to be sent is stored.

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

{
    xbee868LP.setEncryptionMode(1); 
    xbee868LP.setLinkKey(key); 
}

The classic topology for this type of network is Star topology, as the nodes can establish point to point connections with brother nodes through the MAC address.

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 868LP)

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 of the 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):

xbee868LP.ON();

xbee868LP.ON(SOCKET0);

Selecting SOCKET1:

xbee868LP.ON(SOCKET1);

In the case 2 XBee 868LP modules are needed (each one in each socket), it will be necessary to create a new object from WaspXBee868LP class. By default, there is already an object called xbee868LP normally used for regular SOCKET0.

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

WaspXBee868LP xbee868LP_2 = WaspXBee868LP();

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

xbee868LP.ON(SOCKET0);

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

Last updated