Device Overview
This long range RS485 to Wireless Converter can be used to connect existing RS485 devices to bring them to a modern IoT framework. This RS485 to Wireless Converter can also be used to replace RS485 wired connections with a reliable long range wireless communication technology. Connect to the NCD wireless sensor ecosystem using the industry standard RS485 communications. Our new IoT RS485 to Wireless Converter makes it easy communicate with NCD wireless sensors over RS485 by simply opening a COM port and watching for incoming data to arrive as sensor data is broadcast. We have stripped away complexity and focused on what you need most, an easy way to get wireless data over a RS485 connection. With a 2-Mile range (line of sight), this device operates at 900MHz for deep penetration through trees, foliage, and even some buildings. With integrated Mesh networking, this device also acts as a repeater for sensor data. Designed to work with any operating system that supports RS485 communications. This RS485 to Wireless Converter offers a wide operating voltage range, requiring a external power supply of 5V to 32VDC.
Features
- Industrial Grade IoT RS485 To Wireless Converter
- Works With VFD, PLC, SCADA systems
- Works With HVAC Control Systems
- Ideal For MODBUS Communication Over Wireless
- Convert any RS485 Sensor/Device into a Wireless Sensor/Device
- API communication over Wireless for Robust Reliability
- Receive Wireless Sensor Data from NCD Sensors
- Ideal For using ncd.io sensors with Gateway With RS485 Port
- Converts Wireless Data to Serial RS485 Data As it Is
- Operating Temperature Range -40 to +85 °C
- 5V-32VDC Input Voltage Range
- Works With PC, MAC, Linux and Edge Gateway
- 2 Mile Range with On-Board Antenna
- Wireless Mesh Networking using DigiMesh®
- Available in 3 Versions for use with PLCs and PCs
Frame Structure
Frame Communication at Power Up
When the device powers up, depending on the mode it is going to work in, it will have a different Power Up Frame
Figure 3 provides an outline of the frame structure at Power Up, where the bytes highlighted in Red denote which mode the device has started in (Run, Configuration or Factory Default). You can look up the corresponding codes in Table 2.
If we further examine the Payload, we can use the Node ID and Sensor Type fields to determine the exact sensor that is sending the data.
A shown in the 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 Modem/Gateway PAN ID matches this ID. All 3 types of frames are shown in Figure 3, Figure 4 and Figure 5.
Mode Type | PAN ID set by Sensor (ASCII) | Frame field | Offset (Payload section) | Value |
---|---|---|---|---|
Run | ID save by user / Default | Mode bytes | 7 | 0x52 |
8 | 0x55 | |||
9 | 0x4E | |||
Configuration | 7BCD | Mode bytes | 7 | 0x50 |
8 | 0x47 | |||
9 | 0x4D | |||
Factory Reset | 7FFF | Mode bytes | 7 | 0x50 |
8 | 0x55 | |||
9 | 0x4D |
Let us look at the 3 possible power up frames to give an example:
Run Mode Power Up Frame
Field | Number of bytes | Description |
---|---|---|
7E 00 1C 90 00 13 A1 00 41 58 1C CB FF FE 00 7A 01 00 00 01 00 00 52 55 4E 00 00 00 00 00 00 0B | Example frame | |
0x7E | 1 | Delimiter |
0x001C | 2 | Length |
0x90 | 1 | Frame Type (Power Up) |
0x0013A1004158C1CB | 8 | Source Address |
0xFFFE | 2 | Reserved |
0x00 | 1 | R. Option |
0x7A | 1 | Header with Power Up value |
0x01 | 1 | Node ID |
0x00 | 1 | Separator |
0x0001 | 2 | Sensor Type |
0x0000 | 2 | Separator |
0x52554E | 3 | Mode Byte for Run Mode |
0x000000000000 | 6 | Reserved |
0x0B | 1 | Checksum |
Configuration Mode Power Up Frames
Field | Number of bytes | Description |
---|---|---|
7E 00 1C 90 00 13 A1 00 41 58 1C CB FF FE 00 7A 01 00 00 01 00 00 50 47 4D 00 00 00 00 00 00 1C | Example frame | |
0x7E | 1 | Delimiter |
0x001C | 2 | Length |
0x90 | 1 | Frame Type (Power Up) |
0x0013A1004158C1CB | 8 | Source Address |
0xFFFE | 2 | Reserved |
0x00 | 1 | R. Option |
0x7A | 1 | Header with Power Up value |
0x01 | 1 | Node ID |
0x00 | 1 | Separator |
0x0001 | 2 | Sensor Type |
0x0000 | 2 | Separator |
0x50474D | 3 | Mode Byte for Configuration Mode |
0x000000000000 | 6 | Reserved |
0x0E | 1 | Checksum |
Factory Reset Mode Power Up Frames
Field | Number of bytes | Description |
---|---|---|
7E 00 1C 90 00 13 A1 00 41 58 1C CB FF FE 00 7A 01 00 00 01 00 00 50 47 4D 00 00 00 00 00 00 1C | Example frame | |
0x7E | 1 | Delimiter |
0x001C | 2 | Length |
0x90 | 1 | Frame Type (Power Up) |
0x0013A1004158C1CB | 8 | Source Address |
0xFFFE | 2 | Reserved |
0x00 | 1 | R. Option |
0x7A | 1 | Header with Power Up value |
0x01 | 1 | Node ID |
0x00 | 1 | Separator |
0x0001 | 2 | Sensor Type |
0x0000 | 2 | Separator |
0x50474D | 3 | Mode Byte for Configuration Mode |
0x000000000000 | 6 | Reserved |
0x0E | 1 | Checksum |
Sensor Data Frame
Run mode is the default mode of operation of this sensor. In this mode, the RS485 Converter sends periodic packets with the sensor measurement data. During the time it is not sending it enters deep-sleep to conserve power. The sensor’s X-bee module operates in API mode and sends packets to the saved destination address on the network specified by the saved PAN ID. Figure 4 illustrates the API transmission/reception procedure.
Auto Encoder Sensor Data Frame
In this mode the the data coming from the RS485 device is encapsulated in a DigiMesh packet.
Example Incoming Wireless Data — 7E 00 19 90 00 13 A2 00 41 91 1B 83 FF FE C2 7F 00 04 03 FF 80 00 01 00 0F A1 F7 40 9E
The data payload is taken out of the DigiMesh frame encapsulation (as per the NCD structure in Figure 4) and is transmitted on the RS485 port.
Data On RS485 Port — 7F 00 04 03 FF 80 00 01 00 0F A1 F7 40
This way only the actual data payload is transmitted on the RS485 port, removing the NCD DigiMesh encapsulation.
Frame Field | Offset (Payload section) | Fixed Value (if any) | Description |
---|---|---|---|
Header | 0 | 0x0F | Header to differentiate various types of packets |
Node ID | 1 | 0x00 (Factory Default) | Node ID to differentiate up to 256 nodes in a network. User configurable values |
Firmware | 2 | 01 | Used to determine firmware version programmed in the device |
Battery Voltage | MSB 3 | 03 | Battery Voltage = 0.00322*(03*FF+FE) |
LSB 4 | FE | Battery Voltage = ((Battery Voltage MSB x 256) + Battery Voltage LSB) x 0.00322 V | |
Packet Counter | 5 | - | It is an 8-bit counter that increments with each packet transmission. It can be used to detect missing packets |
Sensor Type | MSB 6 | 0x03 | 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. |
LSB 7 | 0xF3 | Sensor type 1011 | |
Error/Reserved byte | 8 | 0x00 | For future use |
Data Payload Bytes | 9 | 0x0F | The value of the payload in HEX form. |
10 | 0xA1 | This can take any form as it depends on the device it is connected to. | |
11 | 0xF7 | ||
12 | 0x40 |
Transparent Sensor Data Frame
In this mode the data frame is transmitted exactly as it is received, no modification.
Example Incoming Wireless Data — 7E 00 19 90 00 13 A2 00 41 91 1B 83 FF FE C2 7F 00 04 03 FF 80 00 01 00 0F A1 F7 40 9E
This data has the standard NCD encapsulation as per Figure 4, where the value in Bold are the actual payload.
Data On RS485 Port — 7E 00 19 90 00 13 A2 00 41 91 1B 83 FF FE C2 7F 00 04 03 FF 80 00 01 00 0F A1 F7 40 9E
As you can see the data on the RS485 Port is exactly the same as the incoming Wireless Data (the encapsulation and payload), nothing is changed or pre/appended.
NCD Emulator Sensor Data Frame
This mode is similar to the Auto Encoder, however the RS485 Converter pre-pends the following to the RS485 data:
7F – Payload header
00 – Node ID
03 F3 — Sensor Type
This device will send data to RS485 port only when the incoming data contains the correct header, node id and sensor type.
Example Incoming Wireless Data — 7E 00 15 10 01 00 00 00 00 00 00 FF FF FF FE 00 00 7F 00 03 F3 85 85 85 E7
Data On RS485 Port — 85 85 85
Example Incoming Data on RS485 port — 69 20 74 68 69 6E 6B 20 69 20 61 6D 20 77 6F 72 6B 69 6E 67 20 66 69 6E 65
Data on Wireless Link — 7E 00 29 90 00 13 A2 00 41 8C 58 B6 FF FE C2 7F 00 03 F3 69 20 74 68 69 6E 6B 20 69 20 61 6D 20 77 6F 72 6B 69 6E 67 20 66 69 6E 65 A2
Configuration Mode Frame
Configuration Mode (enter via CFG key press for 7 seconds at power up) is intended to setup the device over the wireless link, you can change parameter values that are subject to change via downlink commands.
When in Configuration Mode a FLY message is sent that if responded to with an OTN message extends the configuration window to 60 seconds so you can push multiple configuration changes.
In configuration mode, the device sets its X-bee pan id to 7BCD. 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 you are sending to in your Modem/Gateway to match with the sensor and start configuring your device.
A standard configuration packet and its fields are explained in Figure 5. Its possible responses are also shown. The complete set of commands supported by this sensor are shown in тхе Appendix, these can be used in the Parameters field of the 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 6 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 in a separate section in the Appendix.
Example Configuration Commands
The following set of commands are an example on how to change some of the parameters that affect the operation of the RS485 Converter device (these are parameters that are general in nature, more on a network protocol/device level than device specific). The relate to settings that are independent of the type of probe used. You can find them in Appendix together wit the Device/Application Specific commands.
Read Sensor Network ID
The Network ID is also known as PAN ID (Personal Area Network ID). This feature may be used to build a private Wireless Sensor Network. All sensors with the same Network ID will be able to talk to modems and gateway with the same Network ID. This is useful when deploying hundreds of sensors in one area or applications which require division of sensors, modems, and gateways into different zones with independent monitoring of each zone. Each sensor, gateway, and modem in a specific zone should share identical Network IDs, allowing the separation of sensors into smaller, more manageable groups.
Large factory floors or high-rise building may consist of several groups of sensors working under different Network IDs that help characterize the different areas of the installation. Network IDs make it easy to group sensors, modems, and gateways. When broadcasting data using separate Network IDs, multiple modems and gateways may be used in each zone, allowing sensor data to be collected by several different computers or servers. This kind of redundancy is essential in large installations.
Read Sensor Network ID Command
7E 00 13 10 00 00 00 00 00 00 00 FF FF FF FE 00 00 F7 19 00 00 00 E4
Sensor will respond with the Network ID
7E 00 1C 90 00 13 A2 00 41 91 1B 83 FF FE C1 7C 00 05 00 0E 00 00 7F FF 00 00 00 00 00 00 00 7F
From the above response, following data may be extracted:
A. Sensor MAC Address
00 13 A2 00 41 91 1B 83
B. Complete Sensor Payload
7C 00 05 00 0E 00 00 7F FF 00 00 00 00 00 00 00
C. Network ID
0x07FF (data bytes 23 and 24)
Set Wireless Sensor Network ID
This command may be used to set the sensor Network ID. Please note, Network ID 0x7BCD is reserved for configuration and should NEVER be used as a network ID for general use. Please note the Modem/Gateway must also use a matching Network ID to communicate with the sensor.
Set Wireless Sensor Network ID Command:
7E 00 15 10 00 00 00 00 00 00 00 FF FF FF FE 00 00 F7 05 00 00 00 7C DE 9E
Above Command Contains the following payload:
F7 05 00 00 00 7C DE
Note that F7 is the command header byte and 05 is the sub command for setting the Sensor Network ID.
In the Above command, a new network ID of 0x7CDE is configured.
Once the sensor receives this command, it will send a response back. This response will contain information regarding command success or failure.
In his case the response was successful, responding with the following frame:
7E 00 1C 90 00 13 A2 00 41 91 1B 83 FF FE C1 7C 00 09 00 0E 00 00 FF 00 00 00 00 00 00 00 00 FA
Read Sensor Destination Address
This Command may be used to read the sensor destination address. When the Sensor is in broadcast mode, the destination address will show up as:
0x0000FFFF
This Command may be used to read the sensor destination address.
Read Sensor destination address Command:
7E 00 13 10 00 00 00 00 00 00 00 FF FF FF FE 00 00 F7 18 00 00 00 E5
Sensor will respond with the Stored destination address:
7E 00 1C 90 00 13 A2 00 41 91 1B 83 FF FE C1 7C 00 13 00 0E 00 00 00 00 FF FF 00 00 00 00 00 F1
From the above command, the following data may be extracted:
A. Complete Sensor Payload
7C 00 13 00 0E 00 00 00 00 FF FF 00 00 00 00 00
B. Sensor MAC address
00 13 A2 00 41 91 1B 83
C. Destination Address
0000FFFF (data bytes 23, 24, 25, and 26)
The sensor response 0000FFFF indicates that the sensor is in broadcast mode. Any other value will indicate the sensor is directing its data to a specific address (a specific modem or gateway). We DO NOT ADVISE sending sensor data to a specific address, we advise broadcasting data using different Network IDs (PAN IDs) to put data into clustered zones. Should a specific gateway or modem fail while in service, it will be much easier to deploy a new gateway or setup redundant gateways and modems. Otherwise, reconfiguration of each sensor for a new gateway or modem will be required.
Set Sensor Destination Address
Every sensor is designed to send sensor data either in broadcast mode or to a particular destination address (modem or gateway). By default, NCD sensors broadcast data to all available modems and gateways. Data may be restricted to a single destination address (modem or gateway), though this configuration does not provide any form of redundancy in the event of a Modem or Gateway outage. For this reason, we strongly advise against using this command. Please consider setting the Network ID (PAN ID) to Setup Zones which will allow for redundancy in the event of a service outage. The following command is provided for reference ONLY and should be used with caution as a modem or gateway failure will necessitate reconfiguration of each sensor (which would not be required if the Pan ID/Network ID were used).
What is a Destination Address? Every sensor, gateway, and modem have a unique MAC address which cannot be changed. This MAC address is also known as the destination address (printed on the side of the enclosure). By default, all sensors send data in broadcast mode. This allows all the gateways and modems in the area to receive sensors data provided they are all on the same PAN ID (Network ID) and use the same encryption key.
When a specific destination address is stored in the sensor, the sensor will send data to that specific destination address only. The sensor CANNOT communicate with any other modem or gateway in the area. The following command may be used to specify a specific destination address (modem or gateway) for all sensor data:
Set Destination address Command
This command we will send only the lower 4 bytes of the destination address (the upper 4 bytes do not change).
7E 00 17 10 00 00 00 00 00 00 00 FF FF FF FE 00 00 F7 03 00 00 00 12 34 56 78 E6
The above Command Contains the payload, including a New Sensor destination address:
Complete Payload
F7 03 00 00 00 12 34 56 78
F7 is the command header byte and 03 is the sub command for setting a specific destination address. In this example, the new Destination Address is 12345678.
Once sensor receives this command it will send a response back. This response will indicate the command success or failure.
In his example, the response will look something like this (if successful):
7E 00 1C 90 00 13 A2 00 41 91 1B 83 FF FE C1 7C 00 0E 00 0E 00 00 FF 00 00 00 00 00 00 00 00 F5
Set Sensor Destination to Broadcast
This Command may be used to set the sensor destination address to broadcast mode, which is the default operation of NCD long range wireless sensors. After setting to broadcast mode, all modems and gateways with the same PAN ID and Encryption key will receive the same sensor data. This is the preferred configuration for all NCD sensors. Segmenting sensors into groups requires a unique PAN ID (also known as Network ID) for each group. All sensors, modems, and gateways must share the same PAN ID for each group.
Set Sensor Destination address to broadcast:
7E 00 13 10 00 00 00 00 00 00 00 FF FF FF FE 00 00 F7 01 00 00 00 FC
Complete Payload
F7 01 00 00 00
F7 is the command header byte and 01 is the sub-command for setting the Destination Address to Broadcast Mode.
Read Wireless Sensor Transmission Power Level
This Command may be used to read the wireless radio transmission power. This value will indicate how much RF power the radio is emitting. The higher the value, the higher the radiated wireless power, resulting in a longer range and decreased battery life (please note that all battery ratings are shown at maximum wireless transmission power). Lower values are desirable in application that may benefit from greatly improve battery life, especially when high power data transmissions are not required.
Read Sensor Power Command:
7E 00 13 10 00 00 00 00 00 00 00 FF FF FF FE 00 00 F7 16 00 00 00 E7
Sensor will respond with the Power Level value:
7E 00 1C 90 00 13 A2 00 41 91 1B 83 FF FE C1 7C 00 09 00 0E 00 00 04 00 00 00 00 00 00 00 00 F5
From the above command, the following data may be extracted:
A. Sensor MAC Address
00 13 A2 00 41 91 1B 83
B. Sensor Payload
7C 00 09 00 0E 00 00 04 00 00 00 00 00 00 00 00
C. Power Level
0x04 (data byte 23)
The sensor will respond with a value from 0x00 to 0x04. The default value is 0x04, allowing for the greatest possible transmission range and the shortest battery life.
Read Wireless Sensor Retries
The following command may be used to read the number of retires. The number of retries is one of the most useful settings for NCD wireless sensors.
Lets say the number of retires is set to 5. In a normal case, the sensor will wake up, gather data, send data to the modem, and go back to sleep. But due to some environmental issues (lets say a few trucks were driving by and they came in between the sensor and the modem) the modem didn’t receive the data. In that case, the sensor will try 4 more times to send the data. If the modem still doesn’t get the data after all 5 tries, the sensor will quite trying and will go back to sleep. The RS485 Converter sensor will wake up after the predefined sleep time and will try again.
The highest number of retries allowed is 10.
Read The number of Sensor Retries:
7E 00 13 10 00 00 00 00 00 00 00 FF FF FF FE 00 00 F7 17 00 00 00 E6
Sensor will respond with the Retries value:
7E 00 1C 90 00 13 A2 00 41 91 1B 83 FF FE C1 7C 00 1B 00 0E 00 00 0A 00 00 00 00 00 00 00 00 DD
From the above command, the following data may be extracted:
A. Sensor MAC Address
00 13 A2 00 41 91 1B 83
B. Complete Sensor Payload
7C 00 1B 00 0E 00 00 0A 00 00 00 00 00 00 00 00
C. Retries Number
0x0A (data byte 23)
Set Wireless Sensor number of Retries
This Command may be used to change the number of retries. The highest number of retries allowed is 10:
7E 00 14 10 00 00 00 00 00 00 00 FF FF FF FE 00 00 F7 06 00 00 00 05 F2
The above Command Contains a Sensor payload which contains a new number of retries value:
Complete Payload
F7 06 00 00 00 05
F7 is the command header byte and 06 is the sub command for setting the Retries value.
In the Above command we set the retries value to 5 (byte 23).
Once the sensor receives this command, it will send a response back. This response will contain the info regarding command success or failure.
In his case the response was successful:
7E 00 1C 90 00 13 A2 00 41 91 1B 83 FF FE C1 7C 00 1D 00 0E 00 00 FF 00 00 00 00 00 00 00 00 E6
Set Wireless Sensor Encryption Key
This Command may be used to set the encryption key.
All ncd.io wireless sensors comes with 128bit AES encryption. The default encryption key secures a wireless sensor network of sensors, modems, and gateways. Users have the option to change the default encryption key. Please note this is a Write ONLY operation, it is not possible to read the encryption key from Sensors, Modems, or Gateways. Be Sure to keep records accordingly.
Once the sensor encryption key is set in the sensor, be sure to set the same key in all modems and gateways. If the modem or gateway doesn’t have the same key and PAN id as the sensor, there will be no way for sensors to communicate with modems or gateways. In this event, only a factory reset may be used to recover communications.
The following Command may be used to change the encryption key:
7E 00 24 10 00 00 00 00 00 00 00 FF FF FF FE 00 00 F2 03 00 00 00 00 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 07
Complete Payload
F2 03 00 00 00 00 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA
F2 is the command header byte and 03 is the sub command for setting the ENY Key value.
Note — There is an Extra 0x00 Right before the ENY key value. Its a reserve byte and it should be there all the time.
In the Above command, the default ENY Key value is programmed into the NCD sensor.
55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA
Once the sensor receives this command, it will change the Key immediately.
In the event a key value is lost, factory reset the device. The default key value will always be used after factory reset:
55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA
Troubleshooting
Here are some common issue one might encounter when first setting up the sensor or later on when advance configuration is performed:
1. No or low range/coverage. Data is not received by the Modem/Gateway. Make sure you have properly installed the antenna and have as little obstructions/metal surrounding the sensor.
2. Measurement data missing or values are inconsistent. This might be due to not installing/tightening the probe correctly. Make sure you screw it in all the way and that you position it appropriately where you want to perform the measurements,
3. In case data is not being received (was previously received) there might be a power issue. Check the batteries and or the status of the internal LEDs. You can also observe the battery voltage value in the Run Mode packets you last received to know if the batteries have diminished too much for the sensor to operate.
4. If there are connectivity issue where data is being received intermittently or packets are being lost/need retransmission, make sure that you are in a RF heavy noise environment and/or the sensor is not separated too far away from the nearest node. You might need to install more nodes to bust coverage. Check if the Modem/Gateway is powered properly and operation and its antenna has been installed properly.
5. In case you still can’t solve your issue head to our Community forum to get real time help from the NCD community of experts: https://community.ncd.io/
Appendix
Configuration Commands
Node-RED can be used to configure the device (check the Quick Start section), however you can use any tool as long as you adhere to the proper command structure described in this chapter.
Refer to the table below for a list of commands, their codes and an explanation of what parameter they affect.
No. | Command | Header | Sub Command | Parameter Field | Default Value | Description |
---|---|---|---|---|---|---|
1 | Set Broadcast Transmission | 0XF7 | 0x01 | - | 0000FFFF | This will set the address to Broadcast mode. All the receiver with same ENY key and PAN ID will get the data packets |
2 | Set Destination Address | 0XF7 | 0x03 | A0 MSB, A1, A2, A3 | 00,00,FF,FF | Sets the Destination Address of the sensor. The sensor will send Run mode Data packets to this Address |
3 | Set Power | 0XF7 | 0x04 | Power ( range 1-4) | 0x04 | Sets the RF power of the Sensor Radio |
4 | Set PAN ID aka Network ID | 0XF7 | 0x05 | ID0 MSB, ID1 LSB | 0x7FFF | Sets the PAN ID aka Network ID in the sensor. Only sensors, Gateway, and Modes with Same ID can communicate with each other |
5 | Set Retries | 0XF7 | 0x06 | Retries | 0x0A | Sets the number of Retries after unsuccessful transmission for the Sensor Radio |
6 | Read Power | 0XF7 | 0x16 | - | 0x04 | Reads the stored RF Power value from the sensor |
7 | Read Retries | 0XF7 | 0x17 | - | 0x0A | Reads the stored Retries value from the sensor |
8 | Read Destination Address | 0XF7 | 0x18 | - | 00,00,FF,FF | Reads the stored Destination value from the sensor |
9 | Read PAN ID aka Network ID | 0XF7 | 0x19 | - | 0x7FFF | Reads the PAN ID aka Network ID |
10 | Enable Encryption | 0XF2 | 0x01 | - | 0x01 | Enables the Encryption of the Frame Transmitted from the Sensor |
11 | Disable Encryption | 0XF2 | 0x02 | - | - | Disables the Encryption of the Frame Transmitted from the Sensor |
12 | Set Encryption Key | 0XF2 | 0x03 | 00,K0 MSB, K1,K2,K3,K4,K5,K6,K7,K8,K9,K10,K11,K12,K13,K14,K15 | 55AA55AA55AA55AA55AA55AA55AA55AA | Sets the 128 bit AES Encryption Key |
13 | Set Change Detection Parameters | 0XF7 | 0x07 | E, PR, T0 MSB, T1, T2 LSB | Enable or disable the percentage change detection. E=1 (Enable), E=0 (Disable) PR is the percentage change detection at which the sensor will send a packet. The sensor sends a packet when two consecutive readings differ by PR percent T0, T1, T2 - This is the detection time after which the sensor periodically checks for PR percent change in sensor data from last sample |
|
14 | Read Change Detection Parameters | 0XF7 | 0x1A | - | Refer to Command 15 above for the explanation. |
Command Acknowledgement Data
Each command (Appendix A) has its corresponding Acknowledgement with a specific format, size, sections, etc. Use the table below as reference for the parameter values.
No. | Command | Data bytes | Reserved bytes | Data | Calculation (if any) |
---|---|---|---|---|---|
1 | Set Broadcast Transmission | 1 | 8 | 0xFF (OK) | |
2 | Set Destination Address | 1 | 8 | 0xFF (OK) | |
3 | Set Power | 1 | 8 | 0xFF (OK) | |
4 | Set PAN ID aka Network ID | 1 | 8 | 0xFF (OK) | |
5 | Set Retries | 1 | 8 | 0xFF (OK) | |
6 | Read Power | 1 | 8 | Power | DEC value |
7 | Read Retries | 1 | 8 | Retries | DEC value |
8 | Read Destination Address | 4 | 5 | A0 MSB, A1, A2, A3 | |
9 | Read PAN ID aka Network ID | 2 | 7 | ID0 MSB, ID1 | |
10 | Enable Encryption | 1 | 8 | 0xFF (OK) | |
11 | Disable Encryption | 1 | 8 | 0xFF (OK) | |
12 | Set Encryption Key | 1 | 8 | 0xFF (OK) | |
13 | Set Change Detection Parameters | 1 | 8 | 0xFF (OK) | |
14 | Read Change Detection Parameters | 5 | 4 | E, PR, T0, T1, T2 | Detection time = (T0 x 65536) + (T1 x 256) + T2 |
Application Specific Commands
COMMAND | COMMAND | SUB COMMAND | Reserve Byte | COMMAND CODE | ARGUMENT |
---|---|---|---|---|---|
SET Baud Rate | 0xF4 | 0x20 | 0x00,0x00,0x17 | 0x0001C200 | Set the Baud Rate to 115200 |
GET Baud Rate | 0xF4 | 0x23 | 0x00,0x00,0x17 | - | Get the current Baud Rate |
Set Stop Bits | 0xF4 | 0x22 | 0x00,0x00,0x17 | 0x00 | Set stop bit to 1 |
Get Stop Bits | 0xF4 | 0x25 | 0x00,0x00,0x17 | - | Get stop bit value |
Set Parity | 0xF4 | 0x21 | 0x00,0x00,0x17 | 0x00 | Set Parity to None |
Get Parity | 0xF4 | 0x24 | 0x00,0x00,0x17 | - | Activate Accelerometer |
Set Mode | 0xF4 | 0x26 | 0x00,0x00,0x17 | 0x00 | Set Mode to Processed |
Set Mode | 0xF4 | 0x26 | 0x00,0x00,0x17 | 0x01 | Set Mode to RAW |
Get Mode | 0xF4 | 0x27 | 0x00,0x00,0x17 | - | Get the current Mode |
Set Address Timer Rate | 0xF4 | 0x28 | 0x00,0x00,0x17 | 0x07D0 | Set Address Timer Rate to 2 seconds |
Get Address Timer Rate | 0xF4 | 0x29 | 0x00,0x00,0x17 | - | Get Address Timer Rate |
Set RS IO Delay | 0xF4 | 0x30 | 0x00,0x00,0x17 | 64 | Set RS IO Delay to 100 |
Get RS IO Delay | 0xF4 | 0x31 | 0x00,0x00,0x17 | - | Get RS IO Delay |
Reboot | 0xF7 | 0x40 | 0x00,0x00,0x00 | 0x051617 | Reboot the device |
Error Code Descriptions
Here a summary is provided of what the different error codes mean (in case a valid Ack has not been received).
Error Number | Description |
---|---|
0x01 | Invalid command |
0x02 | Sensor Type mismatch |
0x03 | Node ID mismatch |
0x04 | Apply change command failed during X-bee parameter update |
0x05 | Invalid API packet command response received after Apply change command |
0x06 | Write command failed during X-bee parameter update |
0x07 | Invalid API packet command response received after Write command |
0x08 | Parameter change command failed during X-bee parameter update |
0x09 | Invalid Parameter change command response packet received after Write command |
0x0A | Invalid/Incomplete packet received |
0x0F | Invalid parameter for setup/saving |
Frame Checksum Calculation
In order to successfully communicate over the API protocol, the checksum is of vital importance. The X-bee at either end of the link will reject packets if the checksum does not match.
Calculation for transmission
For sending packets, the checksum calculation works as follows:
1. Not including the frame delimiter and length, add all the bytes and keep the lower 8 bits of result
2. Subtract this value from 0xFF (hex)
3. The resultant value is the checksum
4. Append this byte to the original packet for sending
Consider the example for the command Set Broadcast shown in APPENDIX A and see that the calculated checksum matches with the checksum sent by the terminal. Let us break the example command below:
7E00 1310 0000 0000 0000 00FF FFFF FE00 00F7 0100 0001 FB
If we extract the relevant bytes from the command we get:
10 0000 0000 0000 00FF FFFF FE00 00F7 0100 0001
Adding the bytes and taking the last 8 bits yields:
0x04
Substract the value obtained (0x04) from 0xFF
0xFF-0x04=0xFB
We get a value matching the one in the packet checksum field.
Calculation for reception
Although checksum is matched by the X-bee itself, but for understanding follow these steps to match checksum at reception
1. Not including the frame delimiter and length, add all the bytes including the received checksum
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 for the command Set Broadcast shown in APPENDIX A and see that the received packet checksum verifies since the result is 0xFF.
7E00 1C90 1310 A200 4158 1CCB FFFE C17C 000D 0001 0000 FF00 0000 0000 0000 00F3
If we extract the relevant bytes from the command we get:
90 1310 A200 4158 1CCB FFFE C17C 000D 0001 0000 FF00 0000 0000 0000 00F3
Adding the bytes and taking the last 8 bits yields:
0xFF