NCD's Long Range Industrial IoT Wireless 4-20mA Current Signal Splitter
- Industrial Grade 1-Channel 4-20mA Current Input
- Industrial Grade 1-Channel 4-20mA Isolated Current Output
- Input Range 0-20mA with 15-bit Resolution
- Output Accuracy ± 0.05 FS
- Converts 4-20mA devices into Wireless Nodes
- 2 Mile Line-of-Sight Range with On-Board Antenna
- Superior LOS Range of up to 28 Miles with High-Gain Antennas
- Interface to Raspberry Pi, Microsoft® Azure®, Arduino and More
- Example Software for Visual Studio
- Wireless Mesh Networking using DigiMesh®
- Open Communication Protocol for Easy Software Integration
- Validates and Retries Lost Communication Packets
Introducing NCD’s Long Range Wireless 4-20mA Current Splitter Transmitter Receiver, boasting up to a 2 Mile range using a wireless mesh networking architecture. It incorporates a High resolution 1 channel 16-bit ADC that samples 4-20mA analog inputs at user defined intervals and transmits the result to remote modems and gateways, at the same time it also replicates the 4-20mA signal as isolated 4-20mA current output. This device can be used to bring old 4-20mA devices into IoT world without changing anything in the Existing structure.
This Wireless 4-20mA Current Splitter Transmitter Receiver comes with Two 4 Position M12 connector. One connector will connect to 4-20mA sensor and other will connect to PLC or any other 4-20mA receiver.
This Wireless 4-20mA Current Splitter Transmitter Receiver is powered by 4-20mA supply.
- Current Output Analog Sensor Interface
- Wireless Flow Meter Monitoring
- Long Range Wireless 4-20mA Current Monitoring
- Analog Transducer Interface
- Read Sensors Like Force, Strain Gauge, Pressure, Flow Meter
- 4-20mA Analog Input to AWS or Azure Cloud Services
This is a fairly simple device. It has two M12 Port. Each port has 4 connections.
Port 1 AKA PLC — This will connect to PLC or the 4-20mA receiver Device.
Port 2 AKA Sensor — This will connect to existing 4-20mA Output Sensor
|M12||Pin Info||Wire Color ( in case cable assembly is used)|
|2||4-20mA Out 2||White|
|4||4-20mA Out 1||Black|
This device is transmitter and in order to receiver and view the data, either a Gateway or Modem will be required. Please checkout this article to know more bout ncd.io Modems and gateway.
The device has two mode of operation.
- 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. Bellow figure 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 Below Table
|Mode Type||PEN ID AKA Network ID Set By Sensor in That Mode||Frame Field||Offset (Payload Section)||Value||Sample Packet|
|RUN||ID Saved By User/Default||Mode Bytes||7,8,9||0x52,0x55,0x4E ( RUN)||7E 00 1C 90 00 13 A2 00 41 A2 70 EA FF FE C2 7A 00 00 00 42 00 00 52 55 4E 00 00 00 00 00 00 0D|
|Configuration||0x7BCD||Mode Bytes||7,8,9||0x50,0x47,0x4D(PGM)||7E 00 1C 90 00 13 A2 00 41 A2 70 EA FF FE C2 7A 00 00 00 42 00 00 50 47 4D 00 00 00 00 00 00 1E|
|Factory Reset||0x7FFF||Mode Bytes||7,8,9||0x50,0x55,0x4D ( PUM)||7E 00 1C 90 00 13 A2 00 41 A2 70 EA FF FE C2 7A 00 00 00 42 00 00 50 55 4D 00 00 00 00 00 00 10|
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 1.
Note that settings only take effect after the reset. If Device is left in CFG mode for a long time it will drain the battery.
If the CFG button is not pressed device will boot in run mode.
Recommended Software Tools
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 Radio 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 Radio devices therefore user does not need to worry about sending acknowledgements for every packet.
The detail for API packet received at PC end can be read from the Radio manual. The detail of Complete API packet
|00||Start Delimiter||7E||This can be used to identify the Packet Header|
|01,02||Length||Variable ( depends on API packet length)||This can be used to calculate the total expected bytes in a Incoming RF packet|
|03||Frame Type||0x90||Indicates that its a Rx Packet|
|04,05,06,07,08,09,0A,0B||64 Bit Source Address||Depends the incoming RF packet Source Radio||Can be used to filter out data from any particular Radio|
|0C,0D||16-Bit Source Address||FF FE||Always Fixed|
|0E||Receive Options||C2||Always Fixed|
|XXXX||API Payload||Will depend on Sensor/Device Type||This contain all the sensor/Device Related Data|
|XX||Checksum||API checksum||Can be used for RF packet validity|
A sample API packet Example
7E 00 2D 90 00 13 A2 00 41 A2 70 EA FF FE C2 7F 00 02 03 FF 01 00 42 00 00 00 00 00 00 00 00 00 00 00 00 00 09 C4 00 00 03 5B 00 00 27 28 09 82 F3
The detail of Payload section of packet is shown in Table 3.
Sensor Type == 200 ( 0xC8)
Sensor Type 200 Payload
|Frame Field||Offset (Payload Section)||Length In Bytes||Fixed Value|
|Header||0||1||0x7F||Header to differentiate various type of packets|
|Node ID||1||1||0x00 Factory Default||Node ID to differentiate up to 256 nodes in a network. User configurable values|
Used to determine firmware version programmed in the device
|Battery Voltage||3 ( MSB), 4 (LSB)||2||–||Sampled battery voltage of the device.
Battery Voltage=((Battery Voltage MSB x 256+Battery Voltage LSB) x 0.00322 V
Use this equation to calculate battery %.
Battery % = 0.537*ADC – 449.9
|Packet Counter||5||1||–||It is an 8-bit counter that increments with each packet transmission. It can be used to detect missing packets.
|Sensor Type||6 (MSB), 7 ( LSB)||2||0xC8||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|
|Reserved||8||1||Error Code||error code = 1 ( On The FLY command)
02 — Sensor communication Error
|4-20mA input Value||9 (MSB)/Data, 10(LSB)/Data||2||–||4-20mA Value
4_20mA = (((Data>>8)+Data)/100.0)
|Raw Analog Value||11 (MSB)/Data, 12(LSB)/Data||2||–||Raw Analog Input Value
Raw ADC = ((Data>>8)+Data)
|Raw Digital Value||13 (MSB)/Data, 14(LSB)/Data||2||–||Raw Analog Output Value
Raw DAC = ((Data>>8)+Data)
Sample RUN Time Packet From 4-20mA Current Signal Splitter
7E 00 1B 90 00 13 A2 00 41 BA C4 05 FF FE C2 7F 00 01 03 FE 02 00 C8 01 00 35 03 41 00 8D E5
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 Radio 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 Radio pan id to 7BCD (Hex). Also, the destination address used by the sensor is broadcast (0000FFFF). This ensures that once you put a device in configuration mode you just need to change the PAN ID of your Receiver to match with sensor and start configuring your device. You can change the PAN ID of your radio using Digi XCTU or with Alpha Station or by sending API commands. If you use our Alpha Station utility, it will automatically change radio 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 Modem/Gateway 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 Modem/Gateway end.
|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 ID and Sleep Interval||0XF7||0x02||NODE ID, D0 MSB,D1, D2 LSB||0x00,0x00,0x02,0x58||Sets the Device node ID and Data Transmission Interval. The node id value can go from 0-255 and The Data transmission value can go from 3-0xFFFFFF Seconds|
|3||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|
|4||Set Power||0XF7||0x04||Power ( range 1-4)||0x04||Sets the RF power of the Sensor Radio|
|5||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|
|6||Set Retries||0XF7||0x06||Retries||0x0A||Sets the number of Retries after unsuccessful transmission for the Sensor Radio|
|7||Read Sleep Interval||0XF7||0x15||–||0x00,0x02,0x58||Reads the stored Sleep Interval value from the sensor|
|8||Read Power||0XF7||0x16||–||0x04||Reads the stored RF Power value from the sensor|
|9||Read Retries||0XF7||0x17||–||0x0A||Reads the stored Retries value from the sensor|
|10||Read Destination Address||0XF7||0x18||–||00,00,FF,FF||Reads the stored Destination value from the sensor|
|11||Read PAN ID aka Network ID||0XF7||0x19||–||0x7FFF||Reads the PAN ID aka Network ID|
|12||Enable Encryption||0XF2||0x01||–||0x01||Enables the Encryption of the Frame Transmitted from the Sensor|
|13||Disable Encryption||0XF2||0x02||–||–||Disables the Encryption of the Frame Transmitted from the Sensor|
|14||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|
To know more about Sensor configuration mode checkout this post
Sensor/Device Specific Configuration Commands
This 4-20mA Splitters supports few device specific commands. These commands are used to calibrate input and output 4-20mA channels. By default input and output channels come with pre set calibration values. For best accuracy ncd recommends that users calibrate each device.
4-20mA Signal Splitter Device specific Commands
|No.||Command||Header||Sub Command||Sub Sub Command||Parameter Field||Default Value||Description||Sample Command|
|1||SET Full Scale Resolution||F4||0x40||–||FSR Value||1.024 ( 0x03)||Possible values|
FSR – 6.114(0x00)
FSR – 4.096(0x01)
FSR – 2.048(0x02)
FSR – 1.024(0x03)
FSR – 0.512(0x04)
|7E 00 14 10 00 00 00 00 00 00 00 FF FF FF FE 00 00 F4 40 00 00 C8 03 F5|
|2||GET Full Scale Resolution||F4||0x41||–||FSR Value||1.024 ( 0x03)||Possible values|
FSR – 6.114(0x00)
FSR – 4.096(0x01)
FSR – 2.048(0x02)
FSR – 1.024(0x03)
FSR – 0.512(0x04)
|7E 00 13 10 00 00 00 00 00 00 00 FF FF FF FE 00 00 F4 41 00 00 C8 F7|
|3||Set ADC Calibration Point 1||F4||0x42||0x01||Low Point calibration ( 4 byte value)||0xFB6C||Calibrate to low point ( around 6mA)||7E 00 18 10 00 00 00 00 00 00 00 FF FF FF FE 00 00 F4 42 00 00 C8 01 00 01 09 CB 20|
|4||Set ADC Calibration Point 2||F4||0x42||0x02||Mid Point calibration ( 4 byte value)||0x010142||Calibrate to Mid point ( around 12mA)||7E 00 18 10 00 00 00 00 00 00 00 FF FF FF FE 00 00 F4 42 00 00 C8 02 00 01 05 E3 0B|
|5||Set ADC Calibration Point 3||F4||0x42||0x03||High Point calibration ( 4 byte value)||0x010207||Calibrate to High point ( around 18mA)||7E 00 18 10 00 00 00 00 00 00 00 FF FF FF FE 00 00 F4 42 00 00 C8 03 00 01 07 E4 07|
|6||Get ADC Calibration||F4||0x43||0x01 ( Low)|
0x02 ( Mid)
0x03 ( High)
|7E 00 14 10 00 00 00 00 00 00 00 FF FF FF FE 00 00 F4 43 00 00 C8 01 F4|
|7||Set DAC Calibration Point 1||F4||0x44||0x01 ( Low)||Low Point calibration ( 4 byte value)||0x05C4D8||Calibrate to low point ( around 6mA)||7E 00 18 10 00 00 00 00 00 00 00 FF FF FF FE 00 00 F4 44 00 00 C8 01 00 01 09 CB 1E|
|8||Set DAC Calibration Point 2||F4||0x44||0x02 ( Mid)||Mid Point calibration ( 4 byte value)||0x05C6B5||Calibrate to Mid point ( around 12mA)||7E 00 18 10 00 00 00 00 00 00 00 FF FF FF FE 00 00 F4 44 00 00 C8 02 00 01 07 E4 06|
|9||Set DAC Calibration Point 3||F4||0x44||0x03 ( High)||High Point calibration ( 4 byte value)||0x05CBDB||Calibrate to High point ( around 18mA)||7E 00 18 10 00 00 00 00 00 00 00 FF FF FF FE 00 00 F4 44 00 00 C8 03 00 01 05 E3 08|
|10||Get DAC Calibration||F4||0x45||0x01 ( Low)|
0x02 ( Mid)
0x03 ( High)
|7E 00 14 10 00 00 00 00 00 00 00 FF FF FF FE 00 00 F4 45 00 00 C8 01 F2|