device_protocols

SK120X Power Supply Modbus RTU Protocol Reference

1. Communication Settings

The SK120X uses the standard Modbus RTU protocol over a TTL serial interface.

Parameter Value
Interface TTL Serial
Baud Rate Configurable (Default: 115200)
Data Bits 8
Stop Bits 1
Parity None
Flow Control None
Slave Address 1-247 (Default: 1)

Frame Timing

2. Data Format & Scaling

All data is transmitted as 16-bit Integers (Big Endian). To get the actual physical value, the raw integer must be divided by a Scaling Factor (determined by the decimal points defined for that register).

Scaling Examples

Unit Decimals Scaling Divisor Raw Value Actual Value
Voltage (V) 2 / 100 2400 24.00 V
Current (A) 3 / 1000 1500 1.500 A
Power (W) 2 / 100 1250 12.50 W
Temp (°C/°F) 1 / 10 355 35.5 °
Time 0 / 1 60 60

3. Function Codes

The device supports the following Modbus function codes:

Code Name Description
0x03 Read Holding Registers Read current values, settings, and status.
0x06 Write Single Register Set a single parameter (e.g., Set Voltage).
0x10 Write Multiple Registers Set multiple parameters (e.g., Set Volts & Amps).

4. System Register Map (Real-time Data)

These registers control the active state of the power supply.

Address (Hex) Address (Dec) Name R/W Unit Scale Description
0x0000 0 V-SET R/W V 100 Target Output Voltage
0x0001 1 I-SET R/W A 1000 Target Output Current Limit
0x0002 2 VOUT R V 100 Actual Output Voltage
0x0003 3 IOUT R A 1000 Actual Output Current
0x0004 4 POWER R W 100 Actual Output Power
0x0005 5 UIN R V 100 Input Voltage
0x0006 6 AH-LOW R mAh 1 Accumulated Capacity (Low 16-bits)
0x0007 7 AH-HIGH R mAh 1 Accumulated Capacity (High 16-bits)
0x0008 8 WH-LOW R mWh 1 Accumulated Energy (Low 16-bits)
0x0009 9 WH-HIGH R mWh 1 Accumulated Energy (High 16-bits)
0x000A 10 OUT_H R H 1 Runtime (Hours)
0x000B 11 OUT_M R M 1 Runtime (Minutes)
0x000C 12 OUT_S R S 1 Runtime (Seconds)
0x000D 13 T_IN R °C/F 10 Internal Temperature
0x000E 14 T_EX R °C/F 10 External Probe Temperature
0x000F 15 LOCK R/W - 1 Key Lock (0: Unlock, 1: Locked)
0x0010 16 PROTECT R/W - 1 Protection Status Code (Read-only mostly)
0x0011 17 CVCC R - 1 Mode (0: CV - Constant Voltage, 1: CC - Constant Current)
0x0012 18 ONOFF R/W - 1 Output Enable (0: OFF, 1: ON)
0x0013 19 F-C R/W - 1 Temp Unit (0: Celsius, 1: Fahrenheit)
0x0014 20 B-LED R/W - 1 Backlight Brightness (0-5)
0x0015 21 SLEEP R/W M 1 Screen Sleep Time (0-9 minutes, 0=Always On)
0x0016 22 MODEL R - 1 Product Model ID
0x0017 23 VERSION R - 1 Firmware Version
0x0018 24 SLAVE-ADD R/W - 1 Modbus Slave Address (1-247)
0x0019 25 BAUDRATE R/W - 1 Baud Rate Index
0x001A 26 T-IN-CAL R/W °C/F 10 Internal Temp Calibration Offset
0x001B 27 T-EX-CAL R/W °C/F 10 External Temp Calibration Offset
0x001C 28 BUZZER R/W - 1 Buzzer (0: OFF, 1: ON)
0x001D 29 EXTRACT-M R/W - 1 Quick Load Data Group (Write 0-9 to load M0-M9)

5. Data Group Registers (Presets M0-M9)

The device stores 10 groups of settings (M0-M9).

The table below shows offsets for Data Group N (where N is 0 to 9).

Offset Function R/W Unit Scale Description
+0x00 V-SET R/W V 100 Preset Voltage
+0x01 I-SET R/W A 1000 Preset Current
+0x02 S-LVP R/W V 100 Low Voltage Protection (LVP)
+0x03 S-OVP R/W V 100 Over Voltage Protection (OVP)
+0x04 S-OCP R/W A 1000 Over Current Protection (OCP)
+0x05 S-OPP R/W W 10 Over Power Protection (OPP)
+0x06 S-OHP_H R/W H 1 Max Runtime (Hours)
+0x07 S-OHP_M R/W M 1 Max Runtime (Minutes)
+0x08 S-OAH_L R/W mAh 1 Max Capacity (Low 16-bit)
+0x09 S-OAH_H R/W mAh 1 Max Capacity (High 16-bit)
+0x0A S-OWH_L R/W 10mWh 1 Max Energy (Low 16-bit)
+0x0B S-OWH_H R/W 10mWh 1 Max Energy (High 16-bit)
+0x0C S-OTP R/W °C/F 1 Over Temperature Protection
+0x0D S-INI R/W - 1 Power-On Output State (0: OFF, 1: ON)

Example Addresses:

6. Enumerated Values

6.1 Protection Status Codes

Read register 0x0010 to determine why the output was cut off.

Value Code Meaning
0 Normal Operating normally
1 OVP Over Voltage Protection triggered
2 OCP Over Current Protection triggered
3 OPP Over Power Protection triggered
4 LVP Low Voltage Protection (Input undervoltage)
5 OAH Max Capacity (Ah) limit reached
6 OHP Max Runtime limit reached
7 OTP Over Temperature Protection triggered
8 OEP External Temperature Protection
9 OWH Max Energy (Wh) limit reached
10 ICP In-Circuit/Reverse Protection (Specific to model)

6.2 Baud Rate Index

Read/Write register 0x0019.

Value Baud Rate
0 9600
1 14400
2 19200
3 38400
4 56000
5 57600
6 115200

7. Communication Examples

Example 1: Turn Output ON

Write 1 to Address 0x0012.

Example 2: Set Voltage to 24.00V

Write 2400 (0x0960) to Address 0x0000.

Example 3: Read Live Voltage and Current

Read 2 registers starting at 0x0002.