Archive for June 29th, 2018
The ESP8266 controller in Sophi’s blimp project suffered from random resets, which I was absolutely certain happened when the current for the three DC prop motors glitched the battery supply. So I hauled the Tek current probes + amps + scope to a Squidwrench meeting and, after considerable fiddling, we found a smoking … trace:
The purple trace shows the Li-Ion battery voltage at an inactive motor driver located on the far end of a known-to-be-too-small trace. In principle, there’s little-to-no current drawn through that trace, so it should represent the voltage at the regulator input.
The green trace shows the 3.3 V regulator output at its bulk storage cap.
The ground reference is at the PCB’s battery negative connection pad.
The bold dotted green cursor shows the regulator output hitting 2.57 V, entirely low enough to glitch the ESP. The scope triggers on negative-going edges below 2.6 V and this was the first trigger after starting and running the motors for a few seconds.
Conspicuous by its absence: any hint of a current glitch in the yellow trace from a Tek A6302 probe clamped around the battery positive wire. The current remains constant at the 400 mA (100 mA/div) level drawn by two DC motors, with no sign of any glitches whatsoever; she’s not using PWM speed control. The whole board draws about 80 mA DC and the ESP’s WiFi radio pulls 200 mA pulses, so all’s quiet on those fronts.
Which is why I like to measure actual circuit operation: I vastly prefer to solve actual problems, knowing what does (or doesn’t!) cause them helps, and I’m not at all bothered by being wrong.
The regulator output doesn’t go much above 3.3 V, which is comforting.
However, when the regulator’s input voltage falls below 3.3-ish V, its output voltage tracks right along down with it. Input variations above 3.3-ish V don’t make much difference in the output.
Although it’s a buck-boost converter, its response time isn’t fast enough to cope with something else on the PCB pulling enough current to spike its input voltage (shared with the motor driver) below 3.3 V. The dropout is barely 4 ns long, far shorter than the regulator’s switching period.
I have my doubts as to the accuracy of those voltage waveforms and, in particular, their pulse widths. IIRC, the scope can trigger on a pulse exceeding a specific width, but I’d devote more time arranging the test points and getting RF-quality connections / grounding before going further out on a numeric limb.
This single trigger event may not be the glitch causing the reset. What it does show is the regulator output dropping below the ESP’s absolute-minimum input voltage spec, at least briefly, which is cause for concern.
More testing is definitely in order …