Description
Background:
Modular Robotics/Dexter Industries decided to depreciate the older 8-cell NiMH batteries in favor of a monolithic Li-Ion battery module and dedicated Li-Ion charger module.
- NiMH battery performance varies over wide limits based on the manufacturer and quality of the cells. This made it difficult to use the robot for any period of time and/or predict the useful runtime for the robot.
- The exposed contacts on the 8-cell battery holder created the risk of short-circuits causing potential damage to the battery holder and/or the robot.
As a consequence of all this, (along with possibly other issues), the decision was made to depreciate the 8-cell battery package in favor of a better quality, and safer, Li-Ion battery pack and dedicated charger.
Issue:
The originally designed firmware for the GoPiGo robots, including the GoPiGo3, has built-in battery voltage points that trigger:
- The power LED to turn yellow warning the user that the battery power is getting low
- The power LED to turn red to indicate that the battery power is critically low, additionally disabling the motors.
- The GoPiGo board commands a formal operating system shutdown if the battery voltage drops below a certain critical threshold.
Unfortunately, these battery voltage points were calibrated based on the discharge curves for a "typical" collection of eight NiMH batteries. Since the Li-Ion battery pack automatically cuts power at a voltage considerably higher that even the NiMH warning threshold, the GoPiGo3 does not have an opportunity to trigger a safety-shutdown. In fact, it does not even reach the "low battery - yellow power LED" warning stage before automatically cutting power.
It is an established fact that un-commanded and spontaneous shutdowns of a system like Raspbian/Linux can seriously corrupt the media and it is firmly established, (and documented on the MR/DI GoPiGo site), that a controlled shutdown is necessary to avoid corruption of the media.
Request/Proposed Solution:
The calibration constants for the battery thresholds should be changed to accommodate the new discharge curve of the new Li-Ion batteries.
- This could be hard-coded into a firmware update
-- and/or -- - Both sets of constants could be supported in firmware with a corresponding setting in the calibration routine to select which set to use - defaulting to the Li-Ion set.