You are on page 1of 38

9/23/23, 2:25 PM IoT Wireless Vibration Sensor Product Manual - NCD.

io

Overview

Features
Industrial Grade 3-axis Vibration Sensor with RMS, MAX and MIN acceleration in g
Vibration Range ±16g
Noise Removal using Low pass filter
Frequency Range 0.1 to 408 Hz (Bandwidth: 408 Hz)
Sampling Rate up to 952 Hz
Builtin Offset and Gravity vector removal filters
Operating Temperature Range -40 to +85 °C
1-Mile Range with 2.4GHz or 2 Mile Range with 900MHz On-Board Antenna
Superior LOS Range of up to 28 miles with 900MHz High-Gain Antennas
Interface to Raspberry Pi, Microsoft Azure, Arduino and More
Example Software for Visual Studio and LabVIEW
Wireless Mesh Networking using DigiMesh®
Up to 256 Sensor Nodes per Network
Open Communication Protocol for custom interfacing applications
Small Form Factor (3×3 inch)
Multiple Modes of Operation (Configuration and Run mode)
Wireless Sensor and Radio Configuration feature
Default Factory settings Restore option
Power Efficient Built-in Sleep mode

https://ncd.io/blog/iot-wireless-vibration-sensor-product-manual/ 1/38
9/23/23, 2:25 PM IoT Wireless Vibration Sensor Product Manual - NCD.io

User Configurable Sleep duration


Up to 500,000 Transmissions from 2 AA Batteries
Reliable Transmission incorporating packet Retries
Secure Transmission using AES-128 Encryption
Real time battery status

Applications
Wireless Industrial Machine Health Analysis
Machine fault detection
Building and structural monitoring
Component of Low Power IoT System
Home Automation

Description
Introducing NCD’s IoT Wireless Vibration Sensor, boasting up to a 28 Mile range using a 900MHz
wireless mesh networking architecture or 1 Mile using 2.4GHz wireless mesh networking architecture.
Incorporating a 3 Axis Vibration sensor, transmits highly accurate data at user-defined intervals.
This Vibration Sensor samples 3-axis of Accelerometer for vibration for 500 msec and then calculates
RMS, Maximum and Minimum Vibration in this interval. It then combines this data with temperature
samples in a packet to be sent to one or multiple receivers. At power up, it reads multiple samples and
takes their average as an offset value. This value is subtracted from every sample taken afterwards.
Therefore, make sure to power off the device under test during sensor power up. Once the sensor
stabilizes and starts sending data, the device/machinery under test can be powered on. After it sends data
for the 500msec interval, it goes back to sleep for a user defined interval, thus minimizing power
consumption.

Powered by just 2 AA batteries and an operational lifetime of 500,000 wireless transmissions, a 10 years
battery life can be expected depending on environmental conditions and the data transmission interval.
Optionally, this sensor may be externally powered.

With an open communication protocol this sensor can be integrated with just about any control system
or gateway. Data can be transmitted to a PC, a Raspberry Pi, to Microsoft Azure® IoT, or Arduino.
Sensor parameters and wireless transmission settings can be changed on the go using the open
communication protocol providing maximum configurability depending on the intended application.

The range, price, accuracy, battery life and security features of Wireless Vibration Sensor makes it an
affordable choice which exceeds the requirements for most of the industrial as well as consumer market
applications.

To complete a network with an industrial sensor at one end, a Zigmo/Router is required at the receiving
end (PC end) that receives data from sensor. A set of sensor and Zigmo is shown in following figure.

https://ncd.io/blog/iot-wireless-vibration-sensor-product-manual/ 2/38
9/23/23, 2:25 PM IoT Wireless Vibration Sensor Product Manual - NCD.io

Sensor with Zigmo/Router

Getting Started
The Vibration Sensor and Zigmo/Router come pre-programmed and work out of the box. In this section
we will setup a sensor and Zigmo link and start receiving data on our PC. Though this guide shows how
to visualize data on LabVIEW utility, you can also use a simple serial terminal to see raw data by
following these steps.

Resources Required
IoT Long Range Wireless Vibration And Temperature Sensor (with power source Battery Or
External DC)
Zigmo/Router for PC (One Router will work with Multiple Sensors)
PC/Laptop with an OS installed or Any IoT Embedded Device
LabVIEW Utility for displaying sensor data (available on our website for free)
Note: The Wireless Sensor comes with external power enabled, for battery conservation during
shipping. To enable battery power, open the enclosure and set the PS (power select) jumper which is
parallel to the marking line on the board.

Steps
1. Power-up the Wireless Sensor and make sure its antenna is installed
2. Connect your Zigmo/Router to your PC

Figure 1: Connect Zigmo/Router to PC

3. Identify the serial port allocated to it by going into device manager (You can also find the
serial port using Digi provided utility XCTU)
At this stage, both the Sensor and Zigmo have automatically established communication and the data
can be read from the serial port at which Zigmo has been installed.

https://ncd.io/blog/iot-wireless-vibration-sensor-product-manual/ 3/38
9/23/23, 2:25 PM IoT Wireless Vibration Sensor Product Manual - NCD.io

Figure 2: Serial port identification

4. Install the LabVIEW utility for the sensor you are working with. Run this utility.
5. Press the port configure button and select the PORT you identified in step 3. Select baud rate
of 115200 and press OK.

https://ncd.io/blog/iot-wireless-vibration-sensor-product-manual/ 4/38
9/23/23, 2:25 PM IoT Wireless Vibration Sensor Product Manual - NCD.io

Figure 3: LabVIEW Utility for Sensor

6. Press the Run button to visualize incoming data.


If you were not able to communicate after completing the above steps then there might be a fault at
either end of the communication network. Please refer to the troubleshooting section for identifying
and resolving some common issues. If you are still not able to communicate after troubleshooting
then please contact us at any time.

https://ncd.io/blog/iot-wireless-vibration-sensor-product-manual/ 5/38
9/23/23, 2:25 PM IoT Wireless Vibration Sensor Product Manual - NCD.io

Figure 4: LabVIEW Utility for sensor showing incoming data

Troubleshooting
Changed/Unknown setting at sensor end
One of the issues for unsuccessful communication can be a changed setting at the sensor end due to
which the sensor and Zigmo are unable to establish a connection. You can resolve this problem by
going back to the factory default settings which are provided in Table 1. Please refer to Figure 7 and
follow steps shown in it for applying factory default settings.
Once the sensor resets it will start sending a frame every 600 seconds after factory reset.

Please refer to the detailed document available to Digi website to understand X-bee communication
parameters and its operation mechanism.

https://ncd.io/blog/iot-wireless-vibration-sensor-product-manual/ 6/38
9/23/23, 2:25 PM IoT Wireless Vibration Sensor Product Manual - NCD.io

Table 1: Default Parameters programmed after Factory reset sequence

Changed/Unknown setting at PC end


Sometimes a changed setting at Zigmo end, whether intentional or unintentional, can cause a
network failure and no data reception at PC end. To fix this issue when the sensor end is operating at
factory default settings you will have to bring the Zigmo/Router to factory default settings as well.
For that, please download the configuration file for Zigmo from our website. You will also require
XCTU utility provided by Digi.

After installing XCTU Utility, run it and go to add a radio module. Select the serial port at which
Zigmo is connected and press finish. This will connect the Zigmo to XCTU.

https://ncd.io/blog/iot-wireless-vibration-sensor-product-manual/ 7/38
9/23/23, 2:25 PM IoT Wireless Vibration Sensor Product Manual - NCD.io

Figure 5: Connecting Zigmo/Router to XCTU

After double clicking the added module, a list of parameters will be displayed on the right side.
Select the load configuration file from the top and select configuration file form the location where
you downloaded it earlier.
Now press the write button on top to write these parameters. Close the XCTU utility and open the
LabVIEW utility and follow the steps in getting started section to communicate with sensor.

https://ncd.io/blog/iot-wireless-vibration-sensor-product-manual/ 8/38
9/23/23, 2:25 PM IoT Wireless Vibration Sensor Product Manual - NCD.io

Figure 6: Loading a default profile to Zigmo/Router

Modes of Operation
This module incorporates 2 modes of operation, these are
Run Mode
Configuration Mode

Run mode is the standard mode, the module will always enter Run mode if no button is pressed during
Power-up/Reset. Configuration mode is intended to configure sensor parameters and the X-bee
parameters on the sensor end. Note that the Sensor end X-bee is only configurable via the sensor
controller using the commands provided in device manual. Figure 7 illustrates these modes.

The device sends a startup packet which can be used to determine the mode in which it is operating.
These packets are shown in Table 2.

Mode Selection Process


The CFG button on the module is used to change mode. If CFG button is pressed and the module
reset button is pressed, the module will enter the configuration mode. The amount of time CFG
button has to be pressed is shown in Figure 7.

Note that settings only take effect after the reset.

https://ncd.io/blog/iot-wireless-vibration-sensor-product-manual/ 9/38
9/23/23, 2:25 PM IoT Wireless Vibration Sensor Product Manual - NCD.io

Figure 7: Mode Selection Process

Frame Communication at Power up


In figure 8, Mode bytes highlighted in red can be compared with the values provided in Table 2 to
determine the mode in which the sensor is operating. Node ID is the ID of the given sensor while
sensor type determines the type of sensor. Both of these can be used to determine the exact sensor
which is sending the information.
A shown in second column in Table 2, the sensor configures its PAN ID automatically depending
upon the mode it is working in. During factory reset it sets the PAN ID to the value given in table
therefore the factory reset frame will only be received if your Zigmo/Router PAN ID matches this
ID. Please note that right after factory reset the sensor enters configuration mode therefore its PAN
ID is changed again and a new frame is generated. All 3 type of frames are shown in Figure 9, Figure
10 and Figure 11.

The factory default settings are shown in Table 1. For parameter description please refer to the
section on configuration.

https://ncd.io/blog/iot-wireless-vibration-sensor-product-manual/ 10/38
9/23/23, 2:25 PM IoT Wireless Vibration Sensor Product Manual - NCD.io

Table 2: Mode Bytes for different sensor modes (* this frame is followed by configuration frame as
shown Figure 7)

Figure 8: Typical Communication at Power Up, Transmitted packet (left) Received packet (right)

https://ncd.io/blog/iot-wireless-vibration-sensor-product-manual/ 11/38
9/23/23, 2:25 PM IoT Wireless Vibration Sensor Product Manual - NCD.io

Figure 9: Run Mode Power up frame

Figure 10: Configuration Mode Power up frame

https://ncd.io/blog/iot-wireless-vibration-sensor-product-manual/ 12/38
9/23/23, 2:25 PM IoT Wireless Vibration Sensor Product Manual - NCD.io

Figure 11: Factory Default Power up frame

Run Mode
Run mode is the default mode of operation of this sensor. In this mode the sensor sends periodic packets
to destination receiver. During the time it is not sending packets, it sleeps and conserves power. Sensor
end X-bee operates in API mode and sends packets to the saved destination address on the network
specified by the saved PAN ID. Figure 12 illustrates an API packet transmission and reception.
Packet reception at receiver end is ensured by the device by retrying up to 3 times if no
acknowledgement is received that the packet has been successfully received. The device uses the
acknowledgement functionality available in API mode in X-bee devices therefore user does not need to
worry about sending acknowledgements for every packet.

https://ncd.io/blog/iot-wireless-vibration-sensor-product-manual/ 13/38
9/23/23, 2:25 PM IoT Wireless Vibration Sensor Product Manual - NCD.io

Figure 12: Transmit packet detail (left), Received packet detail (right)

The detail for API packet received at PC end can be read from the X-bee manual available from Digi.
The detail of Payload section of packet is shown in Table 3.

Typical response from the device in Run mode is shown in Figure 13 and Figure 14. The utility shown
in Figure 14 can be downloaded from the website.

https://ncd.io/blog/iot-wireless-vibration-sensor-product-manual/ 14/38
9/23/23, 2:25 PM IoT Wireless Vibration Sensor Product Manual - NCD.io

Table 3: Packet payload field and its description

https://ncd.io/blog/iot-wireless-vibration-sensor-product-manual/ 15/38
9/23/23, 2:25 PM IoT Wireless Vibration Sensor Product Manual - NCD.io

The detail for API packet received at PC end can be read from the X-bee manual available from Digi.
The detail of Payload section of packet is shown in Table 3.
Typical response from the device in Run mode is shown in Figure 13 and Figure 14. The utility shown
in Figure 14 can be downloaded from the website.

Frame Field Offset Fixed Description


(Payload Value
Section) (if any)

Header 0 0x7F Header to differentiate various type of packets

Node ID 1 0x00
Node ID to differentiate up to 256 nodes in a network. User configural values
Factory
Default

Firmware 2 –
Used to determine firmware version programmed in the device

Battery MSB 3 – Sampled battery voltage of the device.


Voltage
Battery Voltage=((Battery Voltage MSB x 256+Battery Voltage
LSB 4 – LSB) x 0.00322 V

Packet 5 –
It is an 8-bit counter that increments with each packet transmission. It can be used to
Counter detect missing packets.

Sensor Type MSB 6 0x00


Two bytes to determine sensor type. It can be used in conjunction with Node ID to
create sensor networks of up to 256 nodes for a single type of sensor and multiple such
networks can coexist and can be differentiated in processing software on PC end

MSB 7 0x08

Reserved 8 0x00
For future use

https://ncd.io/blog/iot-wireless-vibration-sensor-product-manual/ 16/38
9/23/23, 2:25 PM IoT Wireless Vibration Sensor Product Manual - NCD.io

Vibration 9/X[0] – Vibration RMS X-axis Data (24 bit Signed Output)
RMS
Vibration (mg) = ((X[0]<<16)+(X[1]<<8)+X[2])/100
10/X[1] –
(Saving directly to 32 bit integer will give wrong result
11/X[2] –

12/Y[0] – Vibration RMS Y-axis Data (24 bit Signed Output)

Vibration (mg) = ((Y[0]<<16)+(Y[1]<<8)+Y[2])/100


13/Y[1] –
(Saving directly to 32 bit integer will give wrong result
14/Y[2] –

15/Z[0] – Vibration RMS Z-axis Data (24 bit Signed Output)

16/Z[1] – Vibration (mg) = ((Z[0]<<16)+(Z[1]<<8)+Z[2])/100

(Saving directly to 32 bit integer will give wrong result


17/Z[2] –

Vibration 18/X[0] – Vibration Max X-axis Data (24 bit Signed Output)
Max
Vibration (mg) = ((X[0]<<16)+(X[1]<<8)+X[2])/100
19/X[1] –
(Saving directly to 32 bit integer will give wrong result
20/X[2] –

21/Y[0] – Vibration Max Y-axis Data (24 bit Signed Output)

Vibration (mg) = ((Y[0]<<16)+(Y[1]<<8)+Y[2])/100


22/Y[1] –
(Saving directly to 32 bit integer will give wrong result
23/Y[2] –

24/Z[0] – Vibration Max Z-axis Data (24 bit Signed Output)

Vibration (mg) = ((Z[0]<<16)+(Z[1]<<8)+Z[2])/100


25/Z[1] –
(Saving directly to 32 bit integer will give wrong result
26/Z[2] –

Vibration Min 27/X[0] – Vibration Min X-axis Data (24 bit Signed Output)

Vibration (mg) = ((X[0]<<16)+(X[1]<<8)+X[2])/100


28/X[1] –
(Saving directly to 32 bit integer will give wrong result
29/X[2] –

30/Y[0] – Vibration Min Y-axis Data (24 bit Signed Output)

Vibration (mg) = ((Y[0]<<16)+(Y[1]<<8)+Y[2])/100


31/Y[1] –
(Saving directly to 32 bit integer will give wrong result
32/Y[2] –

33/Z[0] – Vibration Min Z-axis Data (24 bit Signed Output)

Vibration (mg) = ((Z[0]<<16)+(Z[1]<<8)+Z[2])/100


34/Z[1] –
(Saving directly to 32 bit integer will give wrong result
35/Z[2] –

https://ncd.io/blog/iot-wireless-vibration-sensor-product-manual/ 17/38
9/23/23, 2:25 PM IoT Wireless Vibration Sensor Product Manual - NCD.io

Temperature 36/T[0] – Temperature data (16 bit Signed Output)


Data
Temperature (°C) = (T[0]<<8)+T[1]
37/T[1] –

Figure 13: Run mode packets being received in a terminal (Hex mode)

Figure 14: Run mode packets being received in our free to use LabVIEW utility (For custom made utility
for your specific requirements please contact support)

https://ncd.io/blog/iot-wireless-vibration-sensor-product-manual/ 18/38
9/23/23, 2:25 PM IoT Wireless Vibration Sensor Product Manual - NCD.io

Configuration Mode
Configuration mode is intended to setup the device over the wireless link. Entering configuration mode
was already explained in the section “mode selection procedure”. User can also setup X-bee
communication and networking parameters using this mode via PC. Note that settings only take effect
after reset and are stored inside the device.
In configuration mode, the device sets its X-bee pan id to 7BCD (Hex). Also, the destination address
used by the sensor is extracted from the incoming packet (source address). This ensures that once you
put a device in configuration mode you just need to change the PAN ID of your Zigmo to match with
sensor and start configuring your device. You can change the PAN ID of your Zigmo using XCTU from
Digi. If you use our LabVIEW utility, it will automatically change Zigmo PAN ID once you open the
configuration window. When you exit this window your PAN ID will be restored to old value.

A standard configuration packet and its fields are explained in Figure 15. Its possible responses are also
shown. The commands supported by this sensor are shown in Table 4, these can be used in the
Parameters field of Payload section. The sensor responds to these commands with an acknowledgement
if the process completed successfully or with an error if it failed to setup a parameter. The respective
Data and Reserve section length and values are shown in Table 5 for the case of acknowledgement. In
the case of error, the reserved section will be fixed and not used, while the Error number byte will
determine the type of error returned. These errors are mentioned in Table 6.
Figure 15 depicts standard communication between Zigmo/Router and sensor. Sensor commands have
variable length frames whereas responses received from sensor are fixed length. The 2 scenarios are also
shown, where a command can result in an acknowledgement reception or an error reception at the
Zigmo end.

Examples for setting parameters in configuration mode are shown in Appendix A.

https://ncd.io/blog/iot-wireless-vibration-sensor-product-manual/ 19/38
9/23/23, 2:25 PM IoT Wireless Vibration Sensor Product Manual - NCD.io

Figure 15: Configuration mode communication

https://ncd.io/blog/iot-wireless-vibration-sensor-product-manual/ 20/38
9/23/23, 2:25 PM IoT Wireless Vibration Sensor Product Manual - NCD.io

Table 4: Configuration Commands and their respective headers, sub command and Parameter field

https://ncd.io/blog/iot-wireless-vibration-sensor-product-manual/ 21/38
9/23/23, 2:25 PM IoT Wireless Vibration Sensor Product Manual - NCD.io

Table 5: Acknowledgment data for various commands and the size of reserve section in each case

Table 6: Error numbers and their description

https://ncd.io/blog/iot-wireless-vibration-sensor-product-manual/ 22/38
9/23/23, 2:25 PM IoT Wireless Vibration Sensor Product Manual - NCD.io

The UI, shown in Figure 16, can be used to configure the wireless sensor. At startup, it automatically
changes the Zigmo PANID so that it can communicate with a sensor in configuration mode
(indicated by the Led on the top right). Upon exit, the PANID of the Zigmo is restored to old value.
Individual settings can be programmed using the single command column.
The AUTO PROGRAMMING check option allows the user to setup multiple sensors with the
same settings. In such a scenario, the user will be required to enable each check box for enabling a
setting, enter the value for each setting if required and then check the auto programming check box.
Afterwards, when a sensor is powered up and enters configuration mode, the PGM MODE
DETECTED Led will flash and automatically program the checked settings. User can also program
multiple settings by clicking the APPLY SELECTED button. Moreover, settings can be read using
the individual buttons or all settings can be read using the READ ALL button.

Figure 16: Configuration mode User Interface

Appendix A

https://ncd.io/blog/iot-wireless-vibration-sensor-product-manual/ 23/38
9/23/23, 2:25 PM IoT Wireless Vibration Sensor Product Manual - NCD.io

Configuration Commands
1. Set Broadcast Transmission

Command For COPY: 7E00 1310 0000 0000 0000 00FF FFFF FE00 00F7 0100 0008 F4

2. Set ID and Delay


https://ncd.io/blog/iot-wireless-vibration-sensor-product-manual/ 24/38
9/23/23, 2:25 PM IoT Wireless Vibration Sensor Product Manual - NCD.io

Command For COPY: 7E00 1710 0000 0000 0000 00FF FFFF FE00 00F7 0200 0008 0000 0004 EF

3. Set Destination Address

https://ncd.io/blog/iot-wireless-vibration-sensor-product-manual/ 25/38
9/23/23, 2:25 PM IoT Wireless Vibration Sensor Product Manual - NCD.io

Command For COPY: 7E00 1710 0000 0000 0000 00FF FFFF FE00 00F7 0300 0008 1234 5678 DE

4. Set Power

https://ncd.io/blog/iot-wireless-vibration-sensor-product-manual/ 26/38
9/23/23, 2:25 PM IoT Wireless Vibration Sensor Product Manual - NCD.io

Command For COPY: 7E00 1410 0000 0000 0000 00FF FFFF FE00 00F7 0400 0008 02EF

5. Set PANID

https://ncd.io/blog/iot-wireless-vibration-sensor-product-manual/ 27/38
9/23/23, 2:25 PM IoT Wireless Vibration Sensor Product Manual - NCD.io

Command For COPY: 7E00 1510 0000 0000 0000 00FF FFFF FE00 00F7 0500 0008 7CDE 96

6. Set Retries

https://ncd.io/blog/iot-wireless-vibration-sensor-product-manual/ 28/38
9/23/23, 2:25 PM IoT Wireless Vibration Sensor Product Manual - NCD.io

Command For COPY: 7E00 1410 0000 0000 0000 00FF FFFF FE00 00F7 0600 0008 03EC

7. Read Delay

https://ncd.io/blog/iot-wireless-vibration-sensor-product-manual/ 29/38
9/23/23, 2:25 PM IoT Wireless Vibration Sensor Product Manual - NCD.io

Command For COPY: 7E00 1310 0000 0000 0000 00FF FFFF FE00 00F7 1500 0008 E0

8. Read Power

https://ncd.io/blog/iot-wireless-vibration-sensor-product-manual/ 30/38
9/23/23, 2:25 PM IoT Wireless Vibration Sensor Product Manual - NCD.io

Command For COPY: 7E00 1310 0000 0000 0000 00FF FFFF FE00 00F7 1600 0008 DF

9. Read Retries

https://ncd.io/blog/iot-wireless-vibration-sensor-product-manual/ 31/38
9/23/23, 2:25 PM IoT Wireless Vibration Sensor Product Manual - NCD.io

Command For COPY: 7E00 1310 0000 0000 0000 00FF FFFF FE00 00F7 1700 0008 DE

10. Read Destination Address

https://ncd.io/blog/iot-wireless-vibration-sensor-product-manual/ 32/38
9/23/23, 2:25 PM IoT Wireless Vibration Sensor Product Manual - NCD.io

Command For COPY: 7E00 1310 0000 0000 0000 00FF FFFF FE00 00F7 1800 0008 DD

11. Read PANID

https://ncd.io/blog/iot-wireless-vibration-sensor-product-manual/ 33/38
9/23/23, 2:25 PM IoT Wireless Vibration Sensor Product Manual - NCD.io

Command For COPY: 7E00 1310 0000 0000 0000 00FF FFFF FE00 00F7 1900 0008 DC

12. Enable Encryption

https://ncd.io/blog/iot-wireless-vibration-sensor-product-manual/ 34/38
9/23/23, 2:25 PM IoT Wireless Vibration Sensor Product Manual - NCD.io

Command For COPY: 7E00 1310 0000 0000 0000 00FF FFFF FE00 00F2 0100 0008 F9

13. Disable Encryption

https://ncd.io/blog/iot-wireless-vibration-sensor-product-manual/ 35/38
9/23/23, 2:25 PM IoT Wireless Vibration Sensor Product Manual - NCD.io

Command For COPY: 7E00 1310 0000 0000 0000 00FF FFFF FE00 00F2 0200 0008 F8

14. Set Encryption Key

https://ncd.io/blog/iot-wireless-vibration-sensor-product-manual/ 36/38
9/23/23, 2:25 PM IoT Wireless Vibration Sensor Product Manual - NCD.io

Command For COPY: 7E00 2410 0000 0000 0000 00FF FFFF FE00 00F2 0300 0008 0011 2211 2211
2211 2233 4433 4433 4433 444F

https://ncd.io/blog/iot-wireless-vibration-sensor-product-manual/ 37/38
9/23/23, 2:25 PM IoT Wireless Vibration Sensor Product Manual - NCD.io

Appendix B
Frame Checksum Calculation
In order to successfully communicate over the API protocol, checksum is of vital importance.
The X-bee at either end will reject packets if the checksum is not matched. Checksum is also
checked by the sensor controller and LabVIEW utility for added security.

For sending packets, checksum calculation works as follows

1. Add all the bytes and keep the lower 8 bits of result (Excluding the frame delimiter and
length)
2. Subtract this value from 0xFF (hex)
3. The resultant value is the checksum
4. Append this byte at the end of the original packet for sending
Consider the example for the command Set Broadcast shown in Figure 19 in A APPENDIX and
see that the calculated checksum matches with the checksum sent by the terminal/LabVIEW

Although checksum is matched by the X-bee itself, but for understanding follow these steps to
match checksum at reception

1. Add all the bytes including the received checksum (Exclude the frame delimiter and
length)
2. Keep only the last 8 bits
3. If the result is 0xFF, the checksum is correct and the packet can be processed.
Consider the example of the command Set Broadcast shown in Figure 19 in A APPENDIX and
see that the received packet checksum verifies since the result is 0xFF.

https://ncd.io/blog/iot-wireless-vibration-sensor-product-manual/ 38/38

You might also like