verified connector library

Pylontech US2000/US3000 battery (RS485)

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 only confirmed at the hardware-verified rung.

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
cell_1_voltage0I160.001
cell_2_voltage1I160.001
cell_3_voltage2I160.001
cell_4_voltage3I160.001
cell_5_voltage4I160.001
cell_6_voltage5I160.001
cell_7_voltage6I160.001
cell_8_voltage7I160.001
cell_9_voltage8I160.001
cell_10_voltage9I160.001
cell_11_voltage10I160.001
cell_12_voltage11I160.001
cell_13_voltage12I160.001
cell_14_voltage13I160.001
cell_15_voltage14I160.001
cell_16_voltage15I160.001
bms_temperature16I160.1
cell_temperature_117I160.1
cell_temperature_218I160.1
cell_temperature_319I160.1
cell_temperature_420I160.1
current21I160.1
module_voltage22U160.001
remain_capacity23U160.001
module_total_capacity24U160.001
cycle_number25U161
cell_high_voltage_limit100I160.001
cell_low_voltage_limit101I160.001
cell_under_voltage_limit102I160.001
charge_high_temperature_limit103I160.1
charge_low_temperature_limit104I160.1
charge_current_limit105I160.1
module_high_voltage_limit106I160.001
module_low_voltage_limit107I160.001
module_under_voltage_limit108I160.001
discharge_high_temperature_limit109I160.1
discharge_low_temperature_limit110I160.1
discharge_current_limit111I160.1
charge_voltage_limit200U160.001
discharge_voltage_limit201U160.001
max_charge_current202I160.1
max_discharge_current203I160.1

link settings as documented (unverified): ASCII; default 115200 8N1; unit ID 2; Uses proprietary Pylontech RS485 protocol (based on B.12 front-end smart devices protocol) with HEX-ASCII transmission, not standard Modbus.

⚠ Please contact PYLONTECH first, before doing any change on these settings. — Starkest reads only; we never write a control register.

bench facts as documented (unverified)
wiring notesRS485 asynchronous serial communication.
protocol notesFor manual charge/discharge management settings, the command must be sent periodically. If the battery does not receive the command again within 10 seconds, it automatically reverts to the latest automatic values.
identification notesDevice serial number is retrieved via command 93H. Software version is retrieved via command 96H.
FC 43 device IDnot supported
power48V battery module with BMS
doc revisionV3.3

generated by gemini:gemini-3.5-flash · harvested from https://github.com/Frankkkkk/python-pylontech/raw/master/RS485-protocol-pylon-low-voltage-V3.3-20180821.pdf (Pylontech); manual-faithful — the document's claims, panel risk: ELEVATED — panel is not confident; proved interop-verified on 2026-06-10 · recorded 2026-06-10

The trust ladder

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

Have a device that isn't here? Upload its register map — generation is free, and the connector earns its rung by being proven, not claimed.

Need it proven on your own device? Hardware verification — if it doesn't verify, you don't pay.

Building a platform? License the verified library — machine-readable maps, firmware matrix, API access.