Google Chat:---
+86-0755-88291180
sales@spotpear.com
dragon_manager@163.com
tech-support@spotpear.com
zhoujie@spotpear.com
WhatsApp:13246739196
WhatsApp:13424403025
| Parameter | Description |
|---|---|
| Communication Interface | RS485 |
| Communication Baud Rate | 4800, 9600, 19200, 38400, 57600, 115200, 128000, 256000 |
| Default Communication Format | 9600, N, 8, 1 |
| Modbus Protocol | Standard Modbus RTU protocol |
| Supply Voltage | DC 7~36 V |
| Sampling Resistor | 0.002 Ω 1% |
| Voltage Measurement Range | 0 ~ 36 V |
| Current Measurement Range | ± 8 A |
| Resolution | 0.8 mA |
| Indicator | Status Description |
|---|---|
| Status LED | Status indicator, flashes when the MCU is operating normally |
| TXD LED | Transmit indicator, lights up when transmitting data |
| RXD LED | Receive indicator, lights up when receiving data |
The module can measure current and voltage on four channels, each of which can operate independently. The four channels correspond to (IN1+ IN1-), (IN2+ IN2-), (IN3+ IN3-), and (IN4+ IN4-), respectively.

INx+ and INx- represent the current input and output, respectively. The module measures the differential voltage across the sampling resistor connected in series between INx+ and INx- to determine the current flowing through. The module can measure bidirectional current; reversing all inputs and outputs is also acceptable.
Special note: When measuring different power supplies, a common GND connection is required; otherwise, the bus voltage cannot be measured, and only the differential voltage and current can be measured.
Connect the USB TO 485 converter to the target board using jumper wires, connecting A-->A and B-->B as shown in the figure below:

Download the SSCOM Serial Debug Assistant and open it on your computer. Open the corresponding port number, set the baud rate to 9600, select SendHex and Receive, and choose ModbusCRC16 check for the checksum.
Send the following command; under normal conditions, it will return the 8-channel pulse input data.
01 04 00 00 00 0C F0 0F

01 04 00 03 00 01 C1 CA

For more detailed control commands, please refer to the Development Protocol.
The serial software is not convenient for data observation. You can use the Modbus Poll Software to read data. Download and install the Modbus Poll software.
Open the software, select Setup -> Read/Write Definition. Set Slave ID to the actual device address, select Function 04, change Quantity to 12 channels. Click OK to confirm.

Select Connection -> Connect..., choose the corresponding serial port, set baud rate to 9600, 8 data bits, no parity, 1 stop bit. Click OK to connect.

Once connected successfully, the 4-channel monitoring data will be displayed.

| Function Code | Description |
|---|---|
| 03 | Read Holding Registers |
| 04 | Read Input Registers |
| 06 | Write Single Holding Register |
| Address (HEX) | Address Storage Content | Register Value | Access | Modbus Function Code |
|---|---|---|---|---|
| 3x0000 | Channel 1 Voltage | Unsigned, unit: mV | Read | 0x04 |
| 3x0001 | Channel 1 Current | Signed, unit: mA | Read | 0x04 |
| 3x0002 | Channel 1 Power | Unsigned, unit: 10 mW | Read | 0x04 |
| 3x0003 | Channel 2 Voltage | Unsigned, unit: mV | Read | 0x04 |
| 3x0005 | Channel 2 Current | Signed, unit: mA | Read | 0x04 |
| 3x0006 | Channel 2 Power | Unsigned, unit: 10 mW | Read | 0x04 |
| 3x0007 | Channel 3 Voltage | Unsigned, unit: mV | Read | 0x04 |
| 3x0008 | Channel 3 Current | Signed, unit: mA | Read | 0x04 |
| 3x0009 | Channel 3 Power | Unsigned, unit: 10 mW | Read | 0x04 |
| 3x000A | Channel 4 Voltage | Unsigned, unit: mV | Read | 0x04 |
| 3x000B | Channel 4 Current | Signed, unit: mA | Read | 0x04 |
| 3x000C | Channel 4 Power | Unsigned, unit: 10 mW | Read | 0x04 |
| 4x2000 | Serial Port Parameters | High byte: Parity (0x00~0x02) Low byte: Baud Rate (0x00~0x07) | Read/Write | 0x03, 0x06 |
| 4x4000 | Device Address | Stores Modbus address directly Device address: 0x0001-0x00FF | Read/Write | 0x03,0x06 |
| 4x8000 | Software Version | Convert to decimal, then shift decimal point two places left for version 0x0064 = 100 = V1.00 | Read | 0x03 |
Transmission Code: 01 04 00 00 00 0C F0 0F
| Field | Description | Notes |
|---|---|---|
| 01 | Device Address | 0x00 indicates broadcast address; 0x01-0xFF indicate device address |
| 04 | 04 Command | Read Input Registers |
| 00 00 | Register Start Address | 0x0000 - 0x0007 correspond to input channels 1~8 |
| 00 0C | Number of Registers | Number of registers to read, up to 8 channels |
| F0 0F | CRC16 | CRC16 checksum of the first 6 bytes of data |
Return Code: 01 04 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 82 8B
| Field | Description | Notes |
|---|---|---|
| 01 | Device Address | 0x00 indicates broadcast address; 0x01-0xFF indicate device address |
| 04 | 04 Command | Read Input Registers |
| 18 | Byte Count | Data length |
| 00 00 …… 00 00 | Register Data | Represents voltage, current, power values for the 4 channels |
| 82 8B | CRC16 | CRC16 checksum of the first 6 bytes of data |
Example: Device with address 1
Read Channel 1 Voltage: 01 04 00 00 00 01 31 CA
Read Channel 1 Current: 01 04 00 01 00 01 60 0A
Read Channel 2 Voltage, Current and Power data: 01 04 00 03 00 03 40 0B
Transmission Code: 00 06 20 00 00 05 43 D8
| Field | Description | Notes |
|---|---|---|
| 00 | Device Address | 0x00 indicates broadcast address; 0x01-0xFF indicate device address |
| 06 | 06 Command | Set baud rate, set device address |
| 20 00 | Command Register | 0x2000 for setting baud rate, 0x4000 for setting device address |
| 00 | Parity Mode | 0x00 for no parity, 0x01 for odd parity, 0x02 for even parity |
| 05 | Baud Rate Value | Baud rate value mapping: 0x00: 4800 0x01: 9600 0x02: 19200 0x03: 38400 0x04: 57600 0x05: 115200 0x06: 128000 0x07: 256000 |
| 43 D8 | CRC16 | CRC16 checksum of the first 6 bytes of data |
Return Code: 00 06 20 00 00 05 43 D8
| Field | Description | Notes |
|---|---|---|
| 00 | Device Address | 0x00 indicates broadcast address; 0x01-0xFF indicate device address |
| 06 | 06 Command | Set baud rate, set device address |
| 20 00 | Command Register | 0x2000 for setting baud rate, 0x4000 for setting device address |
| 00 | Parity Mode | 0x00 for no parity, 0x01 for odd parity, 0x02 for even parity |
| 05 | Baud Rate | Baud rate value mapping: 0x00: 4800 0x01: 9600 0x02: 19200 0x03: 38400 0x04: 57600 0x05: 115200 0x06: 128000 0x07: 256000 |
| 43 D8 | CRC16 | CRC16 checksum of the first 6 bytes of data |
Example: Device with address 1
Set baud rate 4800 : 00 06 20 00 00 00 83 DB
Set baud rate 9600 : 00 06 20 00 00 01 42 1B
Set baud rate 115200 : 00 06 20 00 00 05 43 D8
Transmission Code: 00 06 40 00 00 01 5C 1B
| Field | Description | Notes |
|---|---|---|
| 00 | Device Address | 0x00 indicates broadcast address; 0x01-0xFF indicate device address |
| 06 | 06 Command | Set baud rate, set device address |
| 40 00 | Command Register | 0x2000 for setting baud rate, 0x4000 for setting device address |
| 00 01 | Device Address | Device address set, 0x0001-0x00FF |
| 5C 1B | CRC16 | CRC16 checksum of the first 6 bytes of data |
Return Code: 00 06 40 00 00 01 5C 1B
| Field | Description | Notes |
|---|---|---|
| 00 | Device Address | 0x00 indicates broadcast address; 0x01-0xFF indicate device address |
| 06 | 06 Command | Set baud rate, set device address |
| 40 00 | Command Register | 0x2000 for setting baud rate, 0x4000 for setting device address |
| 00 01 | Device Address | Device address set, 0x0001-0x00FF |
| 5C 1B | CRC16 | CRC16 checksum of the first 6 bytes of data |
Example: Device with address 1
Set device address to 0x01 : 00 06 40 00 00 01 5C 1B
Set device address to 0x02 : 00 06 40 00 00 02 1C 1A
Set device address to 0x03 : 00 06 40 00 00 03 DD DA
Transmission code: 00 03 40 00 00 01 90 1B
| Field | Description | Notes |
|---|---|---|
| 00 | Device Address | 0x00 indicates broadcast address; 0x01-0xFF indicate device address |
| 03 | 03 Command | Read device address command |
| 40 00 | Command Register | 0x4000 for reading device address, 0x8000 for reading software version |
| 00 01 | Byte Count | Fixed 0x0001 |
| 90 1B | CRC16 | CRC16 checksum of the first 6 bytes of data |
Return code: 01 03 02 00 01 79 84
| Field | Description | Notes |
|---|---|---|
| 01 | Device Address | 0x00 indicates broadcast address; 0x01-0xFF indicate device address |
| 03 | 03 Command | Read software version, read device address command |
| 02 | Byte Count | Returned byte count |
| 00 01 | Device Address | Device address set, 0x0001-0x00FF |
| 79 84 | CRC16 | CRC16 checksum of the first 6 bytes of data |
For example:
Transmission Code: 00 03 40 00 00 01 90 1B
Return Code: 01 03 02 00 01 79 84 // Address 0x01
Transmission Code: 00 03 40 00 00 01 90 1B
Return Code : 02 03 02 00 02 7D 85 //Address 0x02
Transmission Code: 00 03 40 00 00 01 90 1B
Return Code: 03 03 02 00 03 81 85 // Address 0x03
Transmission Code: 00 03 80 00 00 01 AC 1B
| Field | Description | Notes |
|---|---|---|
| 00 | Device Address | 0x00 indicates broadcast address; 0x01-0xFF indicate device address |
| 03 | 03 Command | Read software version, read device address command |
| 80 00 | Command Register | 0x4000 for reading device address, 0x8000 for reading software version |
| 00 01 | Byte Count | Fixed 0x0001 |
| AC 1B | CRC16 | CRC16 checksum of the first 6 bytes of data |
Return Code: 01 03 02 00 64 B9 AF
| Field | Description | Notes |
|---|---|---|
| 01 | Device Address | 0x00 indicates broadcast address; 0x01-0xFF indicate device address |
| 03 | 03 Command | Read software version, read device address command |
| 02 | Byte Count | Returned byte count |
| 00 64 | Software Version | Convert to decimal, then shift decimal point two places left for version 0x0064 = 100 = V1.00 |
| B9 AF | CRC16 | CRC16 checksum of the first 6 bytes of data |
Example: Device with address 1
Transmission Code: 00 03 80 00 00 01 AC 1B
Return Code: 01 03 02 00 64 B9 AF //0x0064 = 100 =V1.00
If the received command is incorrect or an exception occurs, the device will return an exception response. The exception response format is as follows:
Return Code: 01 85 03 02 91
| Field | Description | Notes |
|---|---|---|
| 01 | Device Address | 0x00 indicates broadcast address; 0x01-0xFF indicate device address |
| 85 | Exception Function Code | Exception function code = Request function code + 0x80 |
| 03 | Byte Count | Exception code |
| 02 91 | CRC16 | CRC16 checksum of the first 6 bytes of data |
The exception code is a single-byte value indicating the type of error. Several common exception codes defined by the Modbus protocol:
| Exception Code | Name | Description |
|---|---|---|
| 0x01 | Illegal Function | The requested function code is not supported |
| 0x02 | Illegal Data Address | The requested data address is incorrect |
| 0x03 | Illegal Data Value | The requested data value or operation cannot be performed |
| 0x04 | Server Failure | Server device failure |
| 0x05 | Acknowledge | Request received and processing |
| 0x06 | Device Busy | Device is busy and cannot execute the requested operation |
Monday-Friday (9:30-6:30) Saturday (9:30-5:30)
Email: services01@spotpear.com