Charge Controller
v21.0
Overview
Features
Supported Hardware
Charger Concepts
Bus and port structure
Charger state machine
0. Standby
1. Bulk stage
2. Topping stage
3. Equalization stage
4. Float stage
Development
Workspace Setup
Building and Flashing
Customization
Hardware-specific changes
Application firmware configuration
Change the battery type
Configure serial for ThingSet protocol
Custom functions (separate C/C++ files)
Unit Tests
Conformance testing
Troubleshoting
Errors with STM32L072 MCU using OpenOCD
API Reference
Battery Charger
Data Acquisition
Data Objects
DC/DC converter
Device Status
Half Bridge Driver
Load Output
DC Bus and Power Port
PWM Switch
Misc
Data Storage
Hardware
Helper
LEDs
Setup
Charge Controller
Index
Edit on GitHub
Index
Symbols
|
A
|
B
|
C
|
D
|
E
|
F
|
G
|
H
|
L
|
P
|
R
|
S
|
T
|
U
Symbols
[anonymous] (C++ enum)
,
[1]
[anonymous]::DT_FOREACH_CHILD (C++ enumerator)
,
[1]
A
adc_raw_to_voltage (C++ function)
adc_update_value (C++ function)
adc_upper_alert_inhibit (C++ function)
adc_voltage_to_raw (C++ function)
AdcAlert (C++ struct)
AdcAlert::callback (C++ member)
AdcAlert::debounce_ms (C++ member)
AdcAlert::limit (C++ member)
alphabet_crockford (C++ member)
B
bat_conf (C++ member)
bat_conf_user (C++ member)
bat_terminal (C++ member)
BatConf (C++ struct)
BatConf::absolute_max_voltage (C++ member)
BatConf::absolute_min_voltage (C++ member)
BatConf::charge_current_max (C++ member)
BatConf::charge_temp_max (C++ member)
BatConf::charge_temp_min (C++ member)
BatConf::discharge_current_max (C++ member)
BatConf::discharge_temp_max (C++ member)
BatConf::discharge_temp_min (C++ member)
BatConf::equalization_current_limit (C++ member)
BatConf::equalization_duration (C++ member)
BatConf::equalization_enabled (C++ member)
BatConf::equalization_trigger_days (C++ member)
BatConf::equalization_trigger_deep_cycles (C++ member)
BatConf::equalization_voltage (C++ member)
BatConf::float_enabled (C++ member)
BatConf::float_recharge_time (C++ member)
BatConf::float_voltage (C++ member)
BatConf::internal_resistance (C++ member)
BatConf::load_disconnect_voltage (C++ member)
BatConf::load_reconnect_voltage (C++ member)
BatConf::nominal_capacity (C++ member)
BatConf::ocv_empty (C++ member)
BatConf::ocv_full (C++ member)
BatConf::recharge_voltage (C++ member)
BatConf::temperature_compensation (C++ member)
BatConf::time_limit_recharge (C++ member)
BatConf::topping_cutoff_current (C++ member)
BatConf::topping_duration (C++ member)
BatConf::topping_voltage (C++ member)
BatConf::wire_resistance (C++ member)
battery_conf_changed (C++ function)
battery_conf_check (C++ function)
battery_conf_init (C++ function)
battery_conf_overwrite (C++ function)
BatType (C++ enum)
BatType::BAT_TYPE_AGM (C++ enumerator)
BatType::BAT_TYPE_CUSTOM (C++ enumerator)
BatType::BAT_TYPE_FLOODED (C++ enumerator)
BatType::BAT_TYPE_GEL (C++ enumerator)
BatType::BAT_TYPE_LFP (C++ enumerator)
BatType::BAT_TYPE_NMC (C++ enumerator)
BatType::BAT_TYPE_NMC_HV (C++ enumerator)
C
calibrate_current_sensors (C++ function)
Charger (C++ class)
charger (C++ member)
Charger::bat_temperature (C++ member)
Charger::charge_control (C++ function)
Charger::Charger (C++ function)
Charger::deep_dis_last_equalization (C++ member)
Charger::detect_num_batteries (C++ function)
Charger::discharge_control (C++ function)
Charger::discharged_Ah (C++ member)
Charger::empty (C++ member)
Charger::enter_state (C++ function)
Charger::ext_temp_sensor (C++ member)
Charger::full (C++ member)
Charger::init_terminal (C++ function)
Charger::num_deep_discharges (C++ member)
Charger::num_full_charges (C++ member)
Charger::port (C++ member)
Charger::soc (C++ member)
Charger::soh (C++ member)
Charger::state (C++ member)
Charger::target_current_control (C++ member)
Charger::target_voltage_timer (C++ member)
Charger::time_last_ctrl_msg (C++ member)
Charger::time_last_equalization (C++ member)
Charger::time_state_changed (C++ member)
Charger::time_target_voltage_reached (C++ member)
Charger::update_soc (C++ function)
Charger::usable_capacity (C++ member)
ChargerState (C++ enum)
ChargerState::CHG_STATE_BULK (C++ enumerator)
ChargerState::CHG_STATE_EQUALIZATION (C++ enumerator)
ChargerState::CHG_STATE_FLOAT (C++ enumerator)
ChargerState::CHG_STATE_FOLLOWER (C++ enumerator)
ChargerState::CHG_STATE_IDLE (C++ enumerator)
ChargerState::CHG_STATE_TOPPING (C++ enumerator)
D
daq_set_hv_limit (C++ function)
daq_set_lv_limits (C++ function)
daq_setup (C++ function)
daq_update (C++ function)
data_objects_init (C++ function)
data_objects_update_conf (C++ function)
data_storage_read (C++ function)
data_storage_update (C++ function)
data_storage_write (C++ function)
DcBus (C++ class)
DcBus::ref_current (C++ member)
DcBus::series_multiplier (C++ member)
DcBus::series_voltage (C++ function)
DcBus::sink_control_voltage (C++ function)
DcBus::sink_current_margin (C++ member)
DcBus::sink_droop_res (C++ member)
DcBus::sink_voltage_intercept (C++ member)
DcBus::src_control_voltage (C++ function)
DcBus::src_current_margin (C++ member)
DcBus::src_droop_res (C++ member)
DcBus::src_voltage_intercept (C++ member)
DcBus::voltage (C++ member)
DcBus::voltage_filtered (C++ member)
Dcdc (C++ class)
dcdc (C++ member)
Dcdc::check_hs_mosfet_short (C++ function)
Dcdc::check_start_conditions (C++ function)
Dcdc::control (C++ function)
Dcdc::Dcdc (C++ function)
Dcdc::enable (C++ member)
Dcdc::fuse_destruction (C++ function)
Dcdc::hs_voltage_max (C++ member)
Dcdc::hvb (C++ member)
Dcdc::inductor_current (C++ member)
Dcdc::inductor_current_max (C++ member)
Dcdc::ls_voltage_max (C++ member)
Dcdc::ls_voltage_min (C++ member)
Dcdc::lvb (C++ member)
Dcdc::mode (C++ member)
Dcdc::off_timestamp (C++ member)
Dcdc::output_hvs_disable (C++ function)
Dcdc::output_hvs_enable (C++ function)
Dcdc::output_power_min (C++ member)
Dcdc::perturb_observe_boost (C++ function)
Dcdc::perturb_observe_buck (C++ function)
Dcdc::power (C++ member)
Dcdc::power_good_timestamp (C++ member)
Dcdc::power_prev (C++ member)
Dcdc::pwm_direction (C++ member)
Dcdc::restart_interval (C++ member)
Dcdc::startup_inhibit (C++ function)
Dcdc::state (C++ member)
Dcdc::stop (C++ function)
Dcdc::temp_mosfets (C++ member)
Dcdc::test (C++ function)
dcdc_low_level_controller (C++ function)
DcdcControlState (C++ enum)
DcdcControlState::DCDC_CONTROL_CC_HS (C++ enumerator)
DcdcControlState::DCDC_CONTROL_CC_LS (C++ enumerator)
DcdcControlState::DCDC_CONTROL_CV_HS (C++ enumerator)
DcdcControlState::DCDC_CONTROL_CV_LS (C++ enumerator)
DcdcControlState::DCDC_CONTROL_DERATING (C++ enumerator)
DcdcControlState::DCDC_CONTROL_MPPT (C++ enumerator)
DcdcControlState::DCDC_CONTROL_OFF (C++ enumerator)
DcdcOperationMode (C++ enum)
DcdcOperationMode::DCDC_MODE_AUTO (C++ enumerator)
DcdcOperationMode::DCDC_MODE_BOOST (C++ enumerator)
DcdcOperationMode::DCDC_MODE_BUCK (C++ enumerator)
DcdcOperationMode::DCDC_MODE_OFF (C++ enumerator)
dev_stat (C++ member)
DeviceStatus (C++ class)
DeviceStatus::bat_chg_total_Wh (C++ member)
DeviceStatus::bat_dis_total_Wh (C++ member)
DeviceStatus::bat_temp_max (C++ member)
DeviceStatus::battery_voltage_max (C++ member)
DeviceStatus::clear_error (C++ function)
DeviceStatus::day_counter (C++ member)
DeviceStatus::dcdc_current_max (C++ member)
DeviceStatus::error_flags (C++ member)
DeviceStatus::grid_export_total_Wh (C++ member)
DeviceStatus::grid_import_total_Wh (C++ member)
DeviceStatus::has_error (C++ function)
DeviceStatus::int_temp_max (C++ member)
DeviceStatus::internal_temp (C++ member)
DeviceStatus::load_current_max (C++ member)
DeviceStatus::load_out_total_Wh (C++ member)
DeviceStatus::load_power_max_day (C++ member)
DeviceStatus::load_power_max_total (C++ member)
DeviceStatus::mosfet_temp_max (C++ member)
DeviceStatus::set_error (C++ function)
DeviceStatus::solar_in_total_Wh (C++ member)
DeviceStatus::solar_power_max_day (C++ member)
DeviceStatus::solar_power_max_total (C++ member)
DeviceStatus::solar_voltage_max (C++ member)
DeviceStatus::update_energy (C++ function)
DeviceStatus::update_min_max_values (C++ function)
E
ErrorFlag (C++ enum)
ErrorFlag::ERR_ANY_ERROR (C++ enumerator)
ErrorFlag::ERR_BAT_CHG_OVERCURRENT (C++ enumerator)
ErrorFlag::ERR_BAT_CHG_OVERTEMP (C++ enumerator)
ErrorFlag::ERR_BAT_CHG_UNDERTEMP (C++ enumerator)
ErrorFlag::ERR_BAT_DIS_OVERCURRENT (C++ enumerator)
ErrorFlag::ERR_BAT_DIS_OVERTEMP (C++ enumerator)
ErrorFlag::ERR_BAT_DIS_UNDERTEMP (C++ enumerator)
ErrorFlag::ERR_BAT_OVERVOLTAGE (C++ enumerator)
ErrorFlag::ERR_BAT_UNDERVOLTAGE (C++ enumerator)
ErrorFlag::ERR_DCDC_HS_MOSFET_SHORT (C++ enumerator)
ErrorFlag::ERR_DCDC_HS_OVERVOLTAGE (C++ enumerator)
ErrorFlag::ERR_INT_OVERTEMP (C++ enumerator)
ErrorFlag::ERR_PWM_SWITCH_OVERVOLTAGE (C++ enumerator)
F
flags_check (C++ function)
flags_clear (C++ function)
flags_set (C++ function)
G
grid_terminal (C++ member)
H
half_bridge_enabled (C++ function)
half_bridge_get_arr (C++ function)
half_bridge_get_ccr (C++ function)
half_bridge_get_duty_cycle (C++ function)
half_bridge_init (C++ function)
half_bridge_set_ccr (C++ function)
half_bridge_set_duty_cycle (C++ function)
half_bridge_start (C++ function)
half_bridge_stop (C++ function)
hv_bus (C++ member)
hv_terminal (C++ member)
L
leds_blink (C++ function)
leds_flicker (C++ function)
leds_init (C++ function)
leds_off (C++ function)
leds_on (C++ function)
leds_set (C++ function)
leds_set_charging (C++ function)
leds_toggle_error (C++ function)
leds_update_1s (C++ function)
leds_update_soc (C++ function)
leds_update_thread (C++ function)
LedState (C++ enum)
LedState::LED_STATE_BLINK (C++ enumerator)
LedState::LED_STATE_FLICKER (C++ enumerator)
LedState::LED_STATE_OFF (C++ enumerator)
LedState::LED_STATE_ON (C++ enumerator)
load (C++ member)
load_out_init (C++ function)
load_out_set (C++ function)
load_short_circuit_stop (C++ function)
LoadErrorFlag (C++ enum)
LoadErrorFlag::ERR_LOAD_BUS_SRC_CURRENT (C++ enumerator)
LoadErrorFlag::ERR_LOAD_OVERCURRENT (C++ enumerator)
LoadErrorFlag::ERR_LOAD_OVERVOLTAGE (C++ enumerator)
LoadErrorFlag::ERR_LOAD_SHEDDING (C++ enumerator)
LoadErrorFlag::ERR_LOAD_SHORT_CIRCUIT (C++ enumerator)
LoadErrorFlag::ERR_LOAD_VOLTAGE_DIP (C++ enumerator)
LoadOutput (C++ class)
LoadOutput::control (C++ function)
LoadOutput::disconnect_voltage (C++ member)
LoadOutput::enable (C++ member)
LoadOutput::error_flags (C++ member)
LoadOutput::info (C++ member)
LoadOutput::junction_temperature (C++ member)
LoadOutput::LoadOutput (C++ function)
LoadOutput::lvd_recovery_delay (C++ member)
LoadOutput::lvd_timestamp (C++ member)
LoadOutput::oc_recovery_delay (C++ member)
LoadOutput::oc_timestamp (C++ member)
LoadOutput::ov_debounce_counter (C++ member)
LoadOutput::ov_hysteresis (C++ member)
LoadOutput::overvoltage (C++ member)
LoadOutput::pgood_check (C++ member)
LoadOutput::reconnect_voltage (C++ member)
LoadOutput::set_voltage_limits (C++ function)
LoadOutput::state (C++ member)
LoadOutput::stop (C++ function)
LoadOutput::switch_set (C++ member)
LoadOutput::uv_debounce_counter (C++ member)
LoadState (C++ enum)
LoadState::LOAD_STATE_OFF (C++ enumerator)
LoadState::LOAD_STATE_ON (C++ enumerator)
lv_bus (C++ member)
lv_terminal (C++ member)
P
pgood_check (C++ function)
PinState (C++ enum)
PinState::PIN_FLOAT (C++ enumerator)
PinState::PIN_HIGH (C++ enumerator)
PinState::PIN_LOW (C++ enumerator)
PowerPort (C++ class)
PowerPort::bus (C++ member)
PowerPort::current (C++ member)
PowerPort::current_filtered (C++ member)
PowerPort::energy_balance (C++ function)
PowerPort::init_nanogrid (C++ function)
PowerPort::init_solar (C++ function)
PowerPort::neg_current_limit (C++ member)
PowerPort::neg_energy_Wh (C++ member)
PowerPort::pos_current_limit (C++ member)
PowerPort::pos_energy_Wh (C++ member)
PowerPort::power (C++ member)
PowerPort::PowerPort (C++ function)
PowerPort::update_bus_current_margins (C++ function)
pub_can_enable (C++ member)
pub_serial_enable (C++ member)
pwm_active (C++ function)
pwm_signal_duty_cycle_step (C++ function)
pwm_signal_get_duty_cycle (C++ function)
pwm_signal_high (C++ function)
pwm_signal_init_registers (C++ function)
pwm_signal_set_duty_cycle (C++ function)
pwm_signal_start (C++ function)
pwm_signal_stop (C++ function)
pwm_switch (C++ member)
PwmSwitch (C++ class)
PwmSwitch::active (C++ function)
PwmSwitch::control (C++ function)
PwmSwitch::enable (C++ member)
PwmSwitch::ext_voltage (C++ member)
PwmSwitch::get_duty_cycle (C++ function)
PwmSwitch::off_timestamp (C++ member)
PwmSwitch::offset_voltage_start (C++ member)
PwmSwitch::power_good_timestamp (C++ member)
PwmSwitch::PwmSwitch (C++ function)
PwmSwitch::restart_interval (C++ member)
PwmSwitch::signal_high (C++ function)
PwmSwitch::stop (C++ function)
PwmSwitch::test (C++ function)
R
reset_device (C++ function)
S
setup (C++ function)
solar_terminal (C++ member)
start_stm32_bootloader (C++ function)
system_control (C++ function)
T
task_wdt_callback (C++ function)
thingset_auth (C++ function)
timestamp (C++ member)
ts (C++ member)
U
uint64_to_base32 (C++ function)
update_control (C++ function)
uptime (C++ function)
usb_out_init (C++ function)
usb_out_set (C++ function)
usb_pwr (C++ member)