cFos Power Brain Controller - Modbus Registers

These registers are available for Modbus RTU and Modbus TCP. The cFos Power Brain Controller supports the Modbus functions

  • 03 read multiple holding registers
  • 06 write single holding register
  • 16 write multiple holding registers

There are three devices:
2 S0-Meters and 1 EVSE, they are distinguished by Modbus Slave ID and (for Modbus TCP) by TCP port.

Note: Write access to the Modbus registers causes writing to the flash memory of the cFos Power Brain Controller and should therefore not take place regularly. The following registers are not permanently stored and can therefore be changed regularly: reg_charging_cur_limit, reg_fixed_current, reg_charging_enable, reg_disconnect_cp. For all other registers, changes are written to the flash, so the number of write operations should be limited!

Default Slave IDs

EVSESlave Id 1TCP port 4701
S0 Meter 1Slave Id 2TCP port 4702
S0 Meter 2Slave Id 3TCP port 4703

Depending on which device it is and whether, for example, a meter is attached to the EVSE, the following registers apply:

Registers (r = read-only, w = write-only, rw = read/write)

Registers for S0 Meters and the EVSE

NameAddressRegistersDescription
vendor_id80002 rUnique vendor id, 0xcf05
product_id80021 rProduct id, 1
device_id80031 rDevice id inside the product, 0x100
product_version80042 rProduct version, major.minor
product_build80051 rProduct build number
mapping_version80061 rmajor.minor version of this register mapping
padding_180071 rReserved
serial_no80088 rSerial number string
name801616 rProduct name, "cFos Power Brain Controller"
slave_id80401 rwModbus slave ID

Registers for S0 Meters

NameAddressRegistersDescription
input80411 rReserved
pulsesperkwh80422 rwImpulses per kWh for input S0
phases80441 rwBitmask of simulated phases, bit 0 = L1, bit 1 = L2, bit 2 = L3
voltage_l180451 rwNominal Voltage L1 [V]
voltage_l280461 rwNominal Voltage L2 [V]
voltage_l380471 rwNominal Voltage L3 [V]
pulses80504 rwAbsolute number of pulses on S0 input
timeperpulse80542 rTime between last two pulses on S0 input [ms]
level80561 rCurrent input level of S0 input
0 = current flows, 1 = current does not flow
meter_flags80571 rbit 0: 1=has individual phases
energy80584 rwActive import [Wh]
power80622 rActive power [W]
current_l180642 rPresent current L1 [0.1 A]
current_l280662 rPresent current L2 [0.1 A]
current_l380682 rPresent current L3 [0.1 A]
reset_pulses80701 wReset pulse counter [1]
reset_energy80711 wReset energy [1]

Registers for the EVSE

Default values after reboot:

NameAddressRegistersDescription
def_fixed_current80801 rwDefault reg_cable_current [0.1 A] (*)
def_charg_cur_limit80811 rwDefault charging current limit [0.1 A] 6-63 (*)
def_charging_enable80821 rwDefault charging enabled [0/1] (*)
(*) This value will be set accordingly after a reboot.
fail_safe_duration80832 rwNumber of seconds without reading/writing before charging_cur_limit and charging_enable are restored. Default value is 300 (5 minutes)
fail_safe_current80851 rwPower during inactivity, 0 = disable charging
disconnect_cp80861 rwWrite: Number of seconds of switch-off CP, Read: Seconds remaining
cable_current80901 rPP: Cable max current [0.1 A], 0: no cable
fixed_current80911 rwOverwrite cable_current [0.1 A]
charge_pilot_state80921 rCP: 0 = A (waiting),
1 = B (vehicle detected),
2 = C (charging),
3 = D (charging with ventilation),
4 = E (no power),
5 = F (error)
charging_cur_limit80931 rwCharging current limit [0.1 A] 6-63A, may be limited due to model limitations (e.g. for cFos Power Brain Wallbox 11kW, it's limited to 16A)
charging_enable80941 rwCharging enabled [0/1] 0 = disable, 1 = enable
charging_current80951 rCharging current [0.1 A] 6-63
last_rfid809615 rLast seen rfid (hex-string)
detected_rfids81111 rNumber of RFID inputs
has_meter81121 r1, if a meter is pinned (then the registers 8058-8068 are readable), otherwise 0
count_restart81202 rwNumber of restarts of the hardware