I have been running my GoPiGo3 for 45 hours over the prior 12 days, and just today saw my first
5v throttling event.
********* CARL Basic STATUS *****
2018-09-07 10:44:46 up 25 min, 2 users, load average: 0.02, 0.07, 0.13
Battery Voltage: 9.21
5v Supply: 5.05
Estimated Life Remaining: 4 h 18 m
Processor Temp: 49.4'C
Clock Frequency: 1.20 GHz
throttled=0x50000
Distance Sensor: 3.9 inches
I traced it to some executions of my center.py routine which centers both tilt and pan SG90 mini-servos. There is a possible overlap in the durations of re-positioning the servos, which apparently can cause the 5v supply to sag below the processor “low voltage” threshold.
Rotation spec on the SG90 mini-servo is 0.12s / 60 degrees, so I’m trying 0.2s delay.
With this delay, and both servos rotated 90 degrees from center, the rotation of the first servo has started, but not completed by the time the second servo is commanded to center. I am not seeing another 5v throttle event. Perhaps two “startup” current draws is too much, but one running and one starting is acceptable.
When the GoPiGo3 powers up the “inrush” causes the tilt and pan servos to jump left and down.
Due to the 0.5oz tilt servo, head, and distance sensor out at a 1.5" moment arm from the pan servo shaft, the pan servo probably calls on most if not all of the 50oz-inches of max torque (stall force) to start panning when asked to “center”.
Nearly simultaneous, the program was asking the tilt servo to center, which meant accelerating that same servo, head, and distance sensor upward with a 0.5 inch moment-arm. Although this arm is less, overcoming inertia to accelerate to reach the specified 60 degrees per 0.1 sec rotation seems to draw enough additional current for a very short period of time that the GoPiGo3 5v supply sagged below the 4.7v low-voltage detector of the RPi.
When I put a 0.2s delay before starting the second servo moving to center, the problem went away.
No. I am using 8 individual NiMH AA cells which seem to yield a little over 2100mAh to the voltage cliff. (Six of my cells that test out a little above 2200mAh and two cells that test around 2000mAh. )
(Each cell was tested individually in a BC-3000 Universal Intelligent Charger at 500mA charge rate with negative-deltaV peak charge detection, timed 500mA discharge to 0.9v, then charged again to full.)
Before this particular run, I did not recharge the pack. I had used an hour of charge the night before and Carl was estimating 4-1/2 hours remained (9.6v at power up).
In practice, I don’t let the cells fall below 20% remaining charge, which is at 8.5v or 1.0625v/cell. This minimizes weak cell reversals and gives about five years of drain-charge cycles.
Well, I haven’t had that happen on mine though - that’s when I’m using 2 servos at the same time. I’ve had that happen when I wasn’t using our battery, but a portable one I had around.
Anyway, @Matt, can you take a look at this? What do you think? What specs does our battery have?