IoT Wireless Impact Detection Sensor Product Manual


  • Industrial Grade Sensor with 3-axis Accelerometer for Impact Detection
  • Configurable Impact Detection Parameters
  • Uses Interrupts for Impact detection with little power consumption
  • Sends up to 2 extra samples with interrupt sample for acceleration history
  • Configurable Acceleration Range ±2g to ±16g
  • Configurable Interrupt Threshold ±16mg to ±15.3g
  • Configurable Data Rate 1Hz to 5.37KHz
  • Configurable Interrupt Duration 200us to 1sec
  • Configurable In-built Interrupt disable time for maximizing battery life time (sends a packet after this interval to show impact detection enabled)
  • Operating Temperature Range -40 to +85 °C
  • 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®
  • 256 Sensor Nod e per Network
  • Open Communication Protocol for custom interfacing applications
  • Small Form Factor Wireless Sensor (3×3 inch)
  • Two modes of Operation
  • Configuration mode for Sensor and X-bee Settings
  • Factory Default Option using combination of hardware buttons
  • Power efficient Built-in Sleep mode
    • User Configurable Sleep duration
    • Up to 500,000 Transmissions from 2 AA Batteries
  • X-bee API mode use for reliable communication
  • Improved reliability incorporating Re try feature in case of packet loss
  • Real time battery status

1. Description

Introducing NCD’s IoT Wireless Impact Detection 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. It incorporates a STMicro LIS3DH acceleration sensor for measuring acceleration changes. Utilizing the interrupt feature of this sensor, it is able to minimize power consumption by making most of the components go to sleep while waiting for the interrupt from the sensor.

User can configure the Impact Detection condition (interrupt settings) using the configuration mode. User can configure acceleration range, data rate, interrupt duration and interrupt threshold. Interrupt duration is dependent upon data rate. It is the duration for which an interrupt condition has to hold to generate a system interrupt and initiate data transmission to a nearby receiver. Interrupt threshold is dependent upon acceleration range and it is the acceleration in g which if exceeded causes interrupt to fire. Note that the absolute value of actual g reading is compared with it therefore it works for both positive and negative acceleration exceeding threshold.

Interrupts are fired only when the acceleration (absolute value) read form the sensor exceeds the threshold in the positive direction. All interrupts are combined with an OR gate. This allows impact detection (system interrupt) if an interrupt occurs for any axis (OR condition). User can also configure a delay time in seconds which disables the interrupt for that amount of time after a successful interrupt. This enables the user to make sure that the sensor does not drain its battery (with continuous transmissions) if an interrupt condition persists or a wrong condition is accidently programmed. This time is also used to send a periodic packet to a receiver with latest available data.

The device also sends two extra samples with the sample which caused interrupt. This enables the user to have a history of acceleration data prior and after the interrupt. In normal scenario, it will send 1 sample (n-1) prior to the interrupt sample (n) and 1 sample after the interrupt (n+1). However, if the data rate is too slow, the sensor does not wait for n+1 packet to arrive so as to save battery and instead sends 2 old samples (n-2, n-1) along with the third sample (n) which fired interrupt. It may happen that the duration and sleep delay combination is such that no old sample was saved after the last interrupt and at the time of interrupt the device may contain only 1 sample. In that case it sends 2 old samples from the last transmission along with third sample (n) being the interrupt sample. In case it has 1 old sample (n-1) and 1 interrupt sample (n), it will send the first sample (n-2) from the previously transmitted data.  

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 Impact Detection Sensor makes it an affordable choice which exceeds the requirements for most of the industrial as well as consumer market applications.



  • Wireless Impact Detection
  • Abnormal Vibration detection
  • Security Systems
  • Component of Low Power IoT System
  • Home Automation

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.

Wireless IoT Impact Detection Sensor

Sensor with Zigmo/Router

2. Getting Started

The 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
  1.  Power-up the Wireless Sensor and make sure its antenna is installed
  2. Connect your Zigmo/Router to your PC

Connect your Zigmo/Router to your PC

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


Connect your Zigmo/Router to your PC





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







Connect your Zigmo/Router to your PC







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

The sensor and Zigmo/Router come pre-programmed and work out of the box.
Figure 1: Connect Zigmo/Router to PC
Figure 2: Serial port identification
Figure 3: LabVIEW Utility for Sensor
Figure 4: LabVIEW Utility for sensor showing incoming data

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

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.











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.

Table 1: Default Parameters programmed after Factory reset sequence

Figure 5: Connecting Zigmo/Router to XCTU
Figure 6: Loading a default profile to Zigmo/Router

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


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.

Figure 7: Mode Selection Process
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)

Figure 9: Run Mode Power up frame

Figure 10: Configuration Mode Power up frame

Figure 11: Factory Default Power up frame

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

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.

Table 3: Packet payload field and its description

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 FieldOffset (Payload Section)Fixed Value
(if any)
Header to differentiate various type of packets
Node ID10x00 Factory Default
Node ID to differentiate up to 256 nodes in a network. User configural values
Used to determine firmware version programmed in the device
Battery VoltageMSB 3

Sampled battery voltage of the device.

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

Packet Counter5
It is an 8-bit counter that increments with each packet transmission. It can be used to detect missing packets.
Sensor TypeMSB 60x00
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 70x07

For future use

Acceleration Data9/X1[0]

Accelerometer X-axis Data n-1 (16 bit Signed Output)

          Acceleration (mg) = X1[0]<<8)+X1[1]


Accelerometer X-axis Data n (16 bit Signed Output)

          Acceleration (mg) = X2[0]<<8)+X2[1]


Accelerometer X-axis Data n+1 (16 bit Signed Output)

          Acceleration (mg) = X3[0]<<8)+X3[1]


Accelerometer Y-axis Data n-1 (16 bit Signed Output)

          Acceleration (mg) = Y1[0]<<8)+Y1[1]


Accelerometer Y-axis Data n (16 bit Signed Output)

          Acceleration (mg) = Y2[0]<<8)+Y2[1]


Accelerometer Y-axis Data n+1 (16 bit Signed Output)

          Acceleration (mg) = Y3[0]<<8)+Y3[1]


Accelerometer Z-axis Data n-1 (16 bit Signed Output)

          Acceleration (mg) = Z1[0]<<8)+Z1[1]


Accelerometer Z-axis Data n (16 bit Signed Output)

          Acceleration (mg) = Z2[0]<<8)+Z2[1]


Accelerometer Z-axis Data n+1 (16 bit Signed Output)

          Acceleration (mg) = Z3[0]<<8)+Z3[1]

Temperature Data27/T[0]

Temperature data (16 bit Signed Output)

          Temperature (°C) = (T[0]<<8)+T[1]

Note: The temperature output gives the change in temperature between two readings and does not provide temperature of the sensor or environment.



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)

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

Figure 15: Configuration mode communication

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

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