Firmware v1.74 MPPT pause breaking dynamic script control loops

I guess I need to introduce my system first so this makes sense… I have a “significant” marine system that includes some solar panels, 4 SmartSolar MPPT 100/30 charge controllers, a couple of 70A MultiPlus chargers, two 85A alternators with WakeSpeed hooks into Cerbo, and some large battery strings. Because the sun doesn’t always provide the charge required to satisfy the batteries, I sometimes have to toss a couple hundred amp-hours toward the batteries via charger while at anchor. The boat moves from time to time and the alternators like to charge the batteries while underway. Those are two other charging sources that contribute to the reason for the rest of this topic.

The MPPTs are programmed to charge a little harder than either the AC chargers (also Victron) or the alternators (WakeSpeed network controlled via Cerbo). When the batteries have been fully or partially charged using the AC chargers or alternators, this occasionally brings the battery charge high enough that the MPPTs don’t properly cycle through their charging stages. In this case, the MPPTs will charge the batteries hard enough they cause the batteries to gas enough to set off the propane detector in the engine room (NOT cool). I got tired of the propane detector screaming only to find MPPT SoC at 100% and used Ah at zero but the charge controller still in bulk or absorb. This only seems to happen when the batteries have been previously charged using another sources inside the same solar day. In the heat of the summer when all charging is done by the MPPTs, the chargers bulk, absorb, and float properly.

The fix I put in place was to monitor SoC, used Ah, and the battery voltage via MQTT and adjust them as necessary to slow the charging down where the MPPT failed to do so with an external script. The change is made to the MPPT’s current limit which effectively reduced the MPPT’s current output to a more appropriate level for that point in the charge cycle (W/XXXXXXXXXXXX/solarcharger/XXX/Settings/ChargeCurrentLimit). When the current was adjusted (generally to adjust for changes in system current), the change was always within a couple seconds of system current changes and simply raised or lowered the current applied to the batteries. This worked fine until the last firmware upgrade (1.74) when this “feature” was introduced (this is from the release notes):

Several internal improvements to overall product reliability. The solar charger will shortly pause charging (for less than 1s) when settings are changed, and nominal operation should resume in less than 30s.

The pause now means the script has to wait 60-120 seconds for the battery voltage to settle after the chargers completely stop charging for (supposedly) one second to keep the script from causing more issues than it was solving. While the charging may “only” stop for 1 second, it appears to take significantly longer for the the MPPT to ramp back up to the previous charge voltage. By the time it gets back to doing what it was prior to the change, the bank voltage drops a couple volts and due to the bank size (approximately 1300 Ah), it takes at least 30 seconds for the voltage to recover. The additional 90 seconds were necessary to prevent the script from correcting its own corrections.

Is it possible to consider excluding ChargeCurrentLimit from the “pause” or providing a control so the pause can be disabled? ← This is a request to change how the MPPT behaves via firmware.

Presume these are wet cell lead batteries? This indicates that the hydrogen level is setting off the propane detector (why is there a possibility of that gas in the engine room?), so better ventilation for battery gasses is needed.

Yes, this is typical of lead batteries, Lithium batteries as well as being more efficient, don’t have this voltage shift problem when moving from charge to discharge. (Also don’t have the gassing off problem).

However, I totally agree that changes to the Charge current limit should not cause the MPPT to stop charging for 1 sec and then ramp back up over 30s - this will also cause severe problems with BMS control loops where the charge current limit is updated every 3 - 5 seconds!!