verified connector library

Sol-Ark 12K/15K hybrid inverter (public read-only map)

Register map(s) for this device, each at the trust rung it earned. Addresses are 0-based as on the wire. Word order and scaling are confirmed at the hardware-verified rung and at no rung below it.

interop-verified

Read + decoded cleanly over a real network vs an independent third-party Modbus test server (transport and framing; reads are remapped into the server's register window, so the map's own addresses are NOT exercised). Does NOT prove word order/scaling against the actual device.

pointaddress (0-based)typescaleunit
day_active_power60I160.10.1kWh
total_active_power63U32LE0.10.1kWh
grid_frequency79U160.010.01Hz
dcdc_transformer_temperature90U160.10.1°C
igbt_heat_sink_temperature91U160.10.1°C
fault_information_word_1103U161
fault_information_word_2104U161
fault_information_word_3105U161
fault_information_word_4106U161
corrected_batt_capacity107U1611AH
daily_pv_power108U160.10.1kWh
dc_voltage_1109U160.10.1V
dc_current_1110U160.10.1A
dc_voltage_2111U160.10.1V
dc_current_2112U160.10.1A
grid_side_voltage_l1_n150U160.10.1V
grid_side_voltage_l2_n151U160.10.1V
grid_side_voltage_l1_l2152U160.10.1V
voltage_middle_side_relay_l1_l2153U160.10.1V
inverter_output_voltage_l1_n154U160.10.1V
inverter_output_voltage_l2_n155U160.10.1V
inverter_output_voltage_l1_l2156U160.10.1V
load_voltage_l1157U160.10.1V
load_voltage_l2158U160.10.1V
grid_side_current_l1160I160.010.01A
grid_side_current_l2161I160.010.01A
grid_external_limiter_current_l1162I160.010.01A
grid_external_limiter_current_l2163I160.010.01A
inverter_output_current_l1164I160.010.01A
inverter_output_current_l2165I160.010.01A
gen_or_ac_coupled_power_input166I1611W
grid_side_l1_power167I1611W
grid_side_l2_power168I1611W
total_power_grid_side_l1_l2169I1611W
grid_external_limiter1_power170I1611W
grid_external_limiter2_power171I1611W
grid_external_total_power172I1611W
inverter_output_l1_power173I1611W
inverter_output_l2_power174I1611W
inverter_output_total_power175I1611W
load_side_l1_power176I1611W
load_side_l2_power177I1611W
load_side_total_power178I1611W
load_current_l1179I160.010.01A
load_current_l2180I160.010.01A
gen_port_voltage_l1_l2181U160.1
battery_temperature182U160.10.1°C
battery_voltage183U160.010.01V
battery_capacity_soc184U1611%
pv1_input_power186U1611W
pv2_input_power187U1611W
battery_output_power190I1611W
battery_output_current191I160.010.01A
load_frequency192U160.010.01Hz
inverter_output_frequency193U160.010.01Hz
grid_side_relay_status194U161
generator_side_relay_status195U161
generator_relay_frequency196U160.010.01Hz

link settings as documented (unverified): RTU; default 9600 8N1; unit ID 1; FC 03; The inverter's Slave ID is 0x01. This cannot be changed. The inverter must be in 'BMS Lithium Batt' mode '00' for this protocol to function.

⚠ Any damage caused to the inverter due to the use of any Modbus device is NOT covered by Sol-Ark's warranty. — Starkest reads only; we never write a control register.

bench facts as documented (unverified)
terminalsRJ-45 ports labeled 'RJ45_485', 'RJ45_CAN', 'RS-485', 'CAN', or 'Battery CAN Bus' depending on model, or terminal connectors for RS-485 and CAN.
A/B polarityPin 1/8: RS-485 B-, Pin 2/7: RS-485 A+
terminationThe inverter already has termination internally. A 120 Ohm termination resistor should be used on the master side of the communication cable.
connectorRJ-45 or terminal connectors
shield/groundGround MUST be connected between the inverter and master device (Pin 3 and Pin 6 on RJ-45).
wiring notesGround MUST be connected between the inverter and master device. Without ground connected, communication can be easily disrupted by external noise sources.
max registers/read125
broadcastnot supported
protocol notesThe inverter only supports read operations.
serial register3
identification notesSerial number is ten ASCII characters stored in registers 3 to 7.
doc revisionV1.1 (2021-04-15)

⚠ disputed: comms.notes: The inverter's Slave ID is 0x01. This cannot be changed — disputed by Sol-Ark 15K-2P-LV Installation Guide and SolarAssistant. On newer firmware versions, the Modbus SN (Slave ID) can be changed in the parallel options screen (it defaults to 00, but must be set to 01 or another unique ID for Modbus communication to function properly)

field reports — community-sourced, unverified (checked 2026-06-11)
  • Severe CRC errors occur if the Modbus SN (Slave ID) is left at its default value of 00. Users must change the Modbus SN to 01 (or another non-zero ID) in the parallel options screen to establish stable communication. [source]
  • Certain 32-bit values (such as Total Active Power / Total Active Energy) are split across non-contiguous/non-sequential registers (e.g., register 63 and 64), which causes issues for standard Modbus readers that expect sequential high/low words. [source]
  • On many Sol-Ark models, the port labeled 'MODBUS' does not work or only works intermittently depending on firmware. Users must instead use the 'BATTERY MONITORING' or 'Battery CANBus' port for Modbus RTU communication. [source]
  • confirmed: doc_revision: V1.1 (2021-04-15) — confirmed by Sol-Ark Modbus RTU Protocol Guide changelog (William Hopkins V1.0 2021-03-31, Yang Chen V1.1 2021-04-15)
  • confirmed: control_warning: Any damage caused to the inverter due to the use of any Modbus device is NOT covered by Sol-Ark's warranty — confirmed by Sol-Ark Modbus RTU Protocol Guide Disclaimer
  • confirmed: comms.notes: The inverter must be in 'BMS Lithium Batt' mode '00' for this protocol to function — confirmed by Sol-Ark Modbus RTU Protocol Guide Important Notes
  • confirmed: termination: A 120 Ohm termination resistor should be used on the master side of the communication cable. The inverter already has termination internally — confirmed by Sol-Ark Modbus RTU Protocol Guide Note 4
  • confirmed: physical.notes & shield_ground: Ground MUST be connected between the inverter and master device — confirmed by Sol-Ark Modbus RTU Protocol Guide Note 6
  • confirmed: identification.notes & serial_register: Serial number is ten ASCII characters stored in registers 3 to 7 — confirmed by Sol-Ark Modbus RTU Protocol Guide Intrinsic Attribute Table
  • confirmed: quirks.notes: The inverter only supports read operations — confirmed by Sol-Ark Modbus RTU Protocol Guide Disclaimer
  • confirmed: register_map: day_active_power @ 60, total_active_power @ 63, grid_frequency @ 79, dcdc_transformer_temperature @ 90, igbt_heat_sink_temperature @ 91, fault_information_word_1 @ 103, corrected_batt_capacity @ 107, daily_pv_power @ 108, dc_voltage_1 @ 109, grid_side_voltage_l1_n @ 150, grid_side_current_l1 @ 160, inverter_output_l1_power @ 173 — confirmed by Sol-Ark Modbus RTU Protocol Guide register tables

The trust ladder

Each rung states what it proved and what it did not. Gray until proven; green is earned by hardware only.

If your device isn't here, upload its register map. Generation is free, and the connector keeps the rung it earns under testing.

To prove a connector against your own device, order hardware verification. If it doesn't verify, you don't pay.

Platform builders can license the verified library: machine-readable maps, the firmware matrix, API access.