
SunSpec Model 64112 — OutBack FM Charge Controller
The OutBack FLEXmax charge controller is an MPPT solar charge controller used in off-grid and hybrid battery systems, commonly paired with the OutBack MATE3 or AXS Port gateway for remote access. SunSpec Model 64112 is the vendor-specific configuration block for this device, accessed over Modbus TCP. The template reads the full charge profile: absorption voltage and duration, rebulk threshold, float voltage, maximum charge current, equalization settings, and temperature compensation limits. It also exposes the complete auxiliary output configuration and retrieves historical data log records including daily kWh, amp-hours, peak power, and battery voltage extremes. This gives installers a permanent audit trail of charger behavior without manual log retrieval.
- Protocol
- Modbus TCP
- Connection
- Ethernet, Modbus TCP
- Registers
- 66, read only
- Brand
- SunSpec
- Last updated
Registers (66)
66 read, 0 write
| Name | Unit | Access | Address (Hidden until you enter your email) | Function (hidden) | Type (hidden) |
|---|---|---|---|---|---|
| id | Read | ||||
| l | Read | ||||
| port | Read | ||||
| v_sf | Read | ||||
| c_sf | Read | ||||
| h_sf | Read | ||||
| p_sf | Read | ||||
| ah_sf | Read | ||||
| kwh_sf | Read | ||||
| cc_config_fault | Read | ||||
| cc_config_absorb_v | V | Read | |||
| cc_config_absorb_hr | Tmh | Read | |||
| cc_config_absorb_end_a | A | Read | |||
| cc_config_rebulk_v | V | Read | |||
| cc_config_float_v | V | Read | |||
| cc_config_max_chg_a | A | Read | |||
| cc_config_equalize_v | V | Read | |||
| cc_config_equalize_hr | Tmh | Read | |||
| cc_config_auto_equalize | Tmd | Read | |||
| cc_config_mppt_mode | Read | ||||
| cc_config_sweep_width | V | Read | |||
| cc_config_sweep_max | V | Read | |||
| cc_config_u_pick_duty_cyc | Pct | Read | |||
| cc_config_grid_tie | Read | ||||
| cc_config_temp_comp | Read | ||||
| cc_config_temp_comp_llimt | V | Read | |||
| cc_config_temp_comp_hlimt | V | Read | |||
| cc_config_auto_restart | Read | ||||
| cc_config_wakeup_voc | V | Read | |||
| cc_config_snooze_mode_a | A | Read | |||
| cc_config_wakeup_interval | Tms | Read | |||
| cc_config_aux_mode | Read | ||||
| cc_config_aux_control | Read | ||||
| cc_config_aux_state | Read | ||||
| cc_config_aux_polarity | Read | ||||
| cc_config_aux_l_batt_disc | V | Read | |||
| cc_config_aux_l_batt_rcon | V | Read | |||
| cc_config_aux_l_batt_dly | Tms | Read | |||
| cc_config_aux_vent_fan_v | V | Read | |||
| cc_config_aux_pv_triggerv | V | Read | |||
| cc_config_aux_pv_trg_h_tm | Tms | Read | |||
| cc_config_aux_nlite_thrsv | V | Read | |||
| cc_config_aux_nlite_on_tm | Tmh | Read | |||
| cc_config_aux_nlite_on_hist | Tms | Read | |||
| cc_config_aux_nlite_off_hist | Tms | Read | |||
| cc_config_aux_error_batt_v | V | Read | |||
| cc_config_aux_divert_h_time | Tms | Read | |||
| cc_config_aux_divert_dly_time | Tms | Read | |||
| cc_config_aux_divert_rel_v | V | Read | |||
| cc_config_aux_divert_hyst_v | V | Read | |||
| cc_config_majorfwrev | Read | ||||
| cc_config_midfwrev | Read | ||||
| cc_config_minorfwrev | Read | ||||
| cc_config_datalog_day_offset | Tmd | Read | |||
| cc_config_datalog_cur_day_off | Tmd | Read | |||
| cc_config_datalog_daily_ah | Ah | Read | |||
| cc_config_datalog_daily_kwh | kWh | Read | |||
| cc_config_datalog_max_out_a | A | Read | |||
| cc_config_datalog_max_out_w | W | Read | |||
| cc_config_datalog_absorb_t | Tms | Read | |||
| cc_config_datalog_float_t | Tms | Read | |||
| cc_config_datalog_min_batt_v | V | Read | |||
| cc_config_datalog_max_batt_v | V | Read | |||
| cc_config_datalog_max_input_v | V | Read | |||
| cc_config_datalog_clear | Read | ||||
| cc_config_datalog_clr_comp | Read |
Loading registers…
Send your device list
If a device is not in the library yet, we build the template for free as soon as we have the register data.
Use cases
- Verify absorption voltage and float voltage settings match the battery manufacturer's specification after commissioning.
- Track daily kWh and amp-hours from the data log registers to monitor seasonal PV yield trends over time.
- Alert when the configuration fault flag is set, indicating a charge parameter conflict requiring on-site review.
- Compare logged minimum and maximum battery voltages across days to detect early signs of battery degradation.
- Confirm firmware revision registers after a controller update to verify the correct version is running.
Installation
On the OutBack MATE3 or AXS Port, navigate to Settings and enable the SunSpec Modbus interface; the default Modbus TCP port is 502.
Connect the MATE3 or AXS Port to your LAN using a CAT5 Ethernet cable, then connect the ModbusCloud Gateway to the same network segment.
In the ModbusCloud portal, add a new device, import the SunSpec Model 64112 template, and set the unit ID to match the charge controller's port number (0 to 10) on the OutBack network.
Read register address 0 and confirm the returned value is 64112 to verify the correct SunSpec block is mapped before enabling scheduled polling.
Things to watch for
Voltage and current registers show implausible values. What is wrong?
All voltage, current, power, amp-hour, and energy values must be multiplied by their corresponding scale factor registers (v_sf, c_sf, p_sf, ah_sf, kwh_sf). Each scale factor is a signed int16 representing a power-of-ten exponent. For example, a v_sf of -1 means divide the raw voltage integer by 10. Failing to apply scale factors is the most common source of incorrect readings.
The gateway connects but all registers return zero or NaN. Why?
SunSpec blocks on the OutBack AXS Port and MATE3 are dynamically addressed: the absolute Modbus register offset of the 64112 block changes depending on how many OutBack devices are on the network. Scan from base address 40001 for the SunSpec identifier, then walk the block chain to locate the 64112 block before reading offsets within it. Hardcoded absolute addresses will fail after any network change.
The MATE3 SunSpec interface was enabled but the gateway still cannot connect.
Confirm the MATE3 is reachable on the network at TCP port 502 (the default Modbus port). If OPTICSre cloud polling is also active, it can interfere with concurrent Modbus TCP connections. Reduce the polling frequency in the ModbusCloud portal to reduce connection contention, and ensure no other Modbus client is holding the connection open.
Data log registers return stale or repeated values. How do I step through log days?
The data log uses the cc_config_datalog_day_offset register as an index pointer. Incrementing this value shifts the log window to a different historical day. Always read cc_config_datalog_cur_day_off to confirm which day the controller has loaded before reading daily totals. Note: cc_config_datalog_clear can erase log data permanently; do not write to it unintentionally during testing or portal setup.
Knowledge base articles for this device

SunSpec Modbus: one register map for many inverters
SunSpec Modbus is the open register map SMA, Fronius, SolarEdge and Kostal share. The layout, int+SF vs float, the TCP port per brand and reading a mixed fleet.
Fronius Modbus: read a Symo GEN24 over Modbus TCP
Fronius Modbus explained: enable Modbus TCP on the Symo GEN24 on port 502, choose between int+SF and float, read the right SunSpec registers and scale them correctly. Practical guide for solar installers.
SMA Modbus: reading a Sunny Boy over Modbus TCP (installers)
SMA Modbus explained: enable the Modbus TCP server on port 502, choose between the SMA profile (unit ID 3) and SunSpec (unit ID 126), read the right registers, and handle the NaN values at night. Practical guide for installers.
Want to see how it works?








