device library

Kohler Decision-Maker genset controller

Register map(s) for this device, with a note of how far each has been checked. Addresses are 0-based, as on the wire. Scale and byte order are confirmed only at the hardware-verified rung.

coherence-checked

Round-trips through a real Modbus stack with no overlapping addresses and a word-order-sensitive codec — the map is internally coherent and wire-decodable. Does NOT prove byte-order or scaling match a real device: the emulator is seeded from the map's own types, so a uniformly wrong byte-order still round-trips. Only hardware-verified confirms byte-order/scale on the wire.

pointaddress (0-based)typescaleunit
System status0U161
Remote input status1U161
Master switch position2U161
Engine RPM3U161RPM
Shutdown fault number4U161
Flags and warnings5U161
Oil pressure6U161kPa
Coolant temperature7U161°C + 273
L3 Current8U161Amps AC
Frequency9U160.01Hz
Total kW10U161kW
Percent of Rated kW11U161% Rated kW
Total Power Factor12I160.01PF
L1 kW13U161kW
L1 Power Factor14I160.01PF
L2 kW15U161kW
L2 Power Factor16I160.01PF
L3 kW17U161kW
L3 Power Factor18I160.01PF
Total kVAR19I161kVAR
L1 kVAR20I161kVAR
L2 kVAR21I161kVAR
L3 kVAR22I161kVAR
Total kVA23U161kVA
L1 kVA24U161kVA
L2 kVA25U161kVA
L3 kVA26U161kVA
Current Lead/Lag27U161
Reserved For Future Use28U161
Reserved For Future Use29U161
Reserved For Future Use30U161
Reserved For Future Use31U161
Oil Pressure32U161kPa/psi
Coolant Temperature33I161Degrees C/Degrees F
Engine Speed34U161RPM
Local Battery Voltage35U160.1Volts DC
Fuel Pressure36U161kPa/psi
Fuel Temperature37I161Degrees C/Degrees F
Fuel Rate38U160.01Liters/Hour or Gallons/Hour
Used Last Run39U161Liters/Gallons
Aux 2 Delay Time40U161sec.
Aux 3 Delay Time41U161sec.
Aux 4 Delay Time42U161sec.
Aux 5 Delay Time43U161sec.
Aux 6 Delay Time44U161sec.
System Voltage45U161volts
System Frequency46U161Hz
ATS Rating47U161A
Connection48U161
Time in Normal55U32BE0.1hours
Time in Off57U32BE0.1hours
Time in Emergency59U32BE0.1hours
Shutdown #1 Code61U161
Designation94U161
Load Description99U161
Location109U161
Model No.119U161
Spec. No.132U161
Serial No.140U161
Controller Serial No.143U161
Timed Run Time299U161minutes
Base Box Digital Input 05892U161
Base Box Digital Input 15893U161
Programmable I/O Module #0, Input 06148U161
Device ID9998U161
Frequency10630U160.01Hz
L1- L0 Voltage10631U161V
L2- L0 Voltage10632U161V
L3- L0 Voltage10633U161V
L1 Current10637U161A
L1 kW10641I161kW
L1 kVAR10645I161kVAR
L1 Power Factor10649I160.01PF
Total kVA10654U161kVA
Total Run Time12391U161Hours
Engine Speed12394U161RPM
Coolant Temperature12397I160.01°C
Fuel Temperature12399I160.01°C
Oil Temperature12400I160.01°C
Fuel Level12405U160.01%
Oil Pressure12408U160.01Bar
Battery Voltage12419U160.01V
Total Fuel Consumption, metric33066U1610Liters
Base Box Digital Output 043656U161
Device ID49998U161

link settings as documented (unverified): RTU/TCP; default 19200 8N1; unit ID 1; FC 03,06,16; Supports Modbus RTU and TCP protocols depending on the controller model and connection interface.

⚠ Accidental starting can cause severe injury or death. Disconnect battery cables before working on the generator set. — Starkest reads only; we never write a control register.

bench facts as documented (unverified)
terminalsTB10 on APM802, TB5 on Decision-Maker 3+, TB1 on Decision-Maker 340, P20/P19/P18 on Decision-Maker 550, P21 on APM402/DM3000, TB12 on DM3500, TB1 on MPAC 1000, TB2 on MPAC 1500
A/B polarityPositive (+) connects to A terminal, negative (-) connects to B terminal.
termination120 Ohm resistor is located on the base module (APM802) or external 121 Ohm resistor on last device in network.
connectorRJ45 for Ethernet, terminal blocks for RS-485.
isolationSupports both isolated and non-isolated RS-485 connections depending on port used.
shield/groundShield wire should be taped to insulate unused end or connected to shield terminal.
max registers/read100
sentinel values0xFFC0 for unsupported register, 0x7FE0-0x7FFF for unknown signed values, 0xFFE0-0xFFFF for unknown unsigned values.
model register401400
serial register401421
firmware register401002
identification notesRegister 49999 (or 409999) contains the Device ID.
power12 or 24 VDC battery voltage for controllers; 240 VAC/60 Hz power supply connections for APM802 control panel heater.
certificationsMarine third-party approval option (Lloyd's option) supported on select models.
doc revisionTP-6113 12/21p
field reports — community-sourced, unverified (checked 2026-06-11)
  • Kohler APM603/APM604 controllers can abruptly terminate Modbus TCP communications and immediately reset TCP connections if the port is overloaded or multiple concurrent connections are opened without being gracefully closed. [source]
  • Addressing confusion occurs due to Kohler's documentation using 6-digit register formats (e.g., 400001 to 409999), which require standard Modbus clients to drop the leading memory-area digit and address them as 5-digit registers (e.g., 40001). [source]
  • confirmed: Register map (l1_l2_voltage @ 0, oil_pressure @ 32, coolant_temperature @ 33, engine_speed @ 34, local_battery_voltage @ 35) — confirmed by Kohler TP-6113 Modbus Protocol Manual [3.2.1]
  • confirmed: Sentinels (0xFFC0 for unsupported register, 0x7FE0-0x7FFF for unknown signed values) — confirmed by Kohler TP-6113 Section 1 Configurations and Definitions
  • confirmed: Physical terminals (TB10 on APM802, TB5 on Decision-Maker 3+, P20 on Decision-Maker 550) — confirmed by Kohler TP-6113 and related installation manuals
  • confirmed: Default communication settings (19200 baud, Unit ID 1) — confirmed by APM802 configuration documentation

The trust ladder

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

Device not here? Upload its manual and get a checked map back. It's free.

Want it confirmed against your own device? Order hardware verification. If it doesn't check out, you don't pay.

Building on a lot of devices? License the library — machine-readable maps, the firmware matrix, and API access.