Skip to content

Conversation

@tmeinlschmidt
Copy link

This should fix a dangeerous situation when paths

/Debug/BatteryOperationalLimits/SolarVoltageOffset
/Debug/BatteryOperationalLimits/VebusVoltageOffset
/Debug/BatteryOperationalLimits/CurrentOffset

were not handled correctly and as a writable paths allowed to enter any value.

These values are used in _adjust_battery_operational_limits and _update_solarchargers_and_vecan

Setting a large positive voltage offset could cause overcharging of batteries, potentially leading to thermal runaway, fire, or explosion in lithium battery systems. Setting a large negative current offset could prevent charging entirely. These debug paths override BMS safety limits which exist specifically to prevent dangerous conditions.

Implemented sort of a limit, applied to all three values and based on tests I found.
Unfortunately there's no deployment code to exclude these paths from production releases.

    /Debug/BatteryOperationalLimits/SolarVoltageOffset
	/Debug/BatteryOperationalLimits/VebusVoltageOffset
	/Debug/BatteryOperationalLimits/CurrentOffset

were not handled correctly and as a writable paths allowed to enter any
value.

These values are used in _adjust_battery_operational_limits and
_update_solarchargers_and_vecan

Setting a large positive voltage offset could cause overcharging
of batteries, potentially leading to thermal runaway, fire, or explosion
in lithium battery systems. Setting a large negative current offset could
prevent charging entirely. These debug paths override BMS safety limits
which exist specifically to prevent dangerous conditions.

Implemented sort of a limit, applied to all three values and based on
tests I found.
Unfortunately there's no deployment code to exclude these paths from
production releases.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant