A Battery Can Be Full and Still Crash Your Device
The coin cell had most of its charge left, and the device browned out and rebooted anyway. A CR2032's internal resistance caps sustained current near 3 mA — an inference burst above that sags the supply below the reset threshold. This video builds the brownout simulator with Claude Code, then drops a 100 µF bulk cap…
The coin cell had most of its charge left, and the device browned out and rebooted anyway. A CR2032's internal resistance caps sustained current near 3 mA — an inference burst above that sags the supply below the reset threshold. This video builds the brownout simulator with Claude Code, then drops a 100 µF bulk cap and shows the sag flatten above the line.
Built with Claude Code + Manim. Part of the Embedded AI with Claude series.
Nik Bear Brown · @NikBearBrown nikbearbrown.com
Transcript
A lightly formatted transcript of the video, with timestamps so you can jump to any section on YouTube.
[0:00] Nick Bear Brown. Build it with a CLI, then take it apart. The coin cell had most of its charge left and the device rebooted anyway. Not a dead battery, a brown out. A CR 2032 has a nominal 3 VTs, but an internal resistance that effectively limits sustained current to around 3 milliamps. An inference burst can demand 8 milliamps for 50 milliseconds, and the supply sags below the reset threshold. The battery was full. The reset line saw the sag and pulled the device down. Ask for the experiment in the terminal. Claude, write brownout.pi cr32 with nominal 3 volts and internal resistance limiting to roughly 3 milliamps sustained. Given
[0:41] An inference current pulse model V= VOC minus I * R over time and the brown out reset line. Read it before trusting it. The model is a single line V= VOC minus I * R internal. During the inference pulse, the current jumps to 8 millias. R internal is about 1,000 ohms for a fresh CR 2032 at high rate draw. So the sag is 8 V which crosses below the reset threshold at 2 V. The cell is not dead. The internal resistance is the floor. Run it. The supply voltage trace holds at 3 volts in idle. At 60 milliseconds, the inference pulse fires. Current jumps to 8 milliamps and the supply sags
[1:26] Sharply below 2 V. The crimson section crossing the reset line. The battery still has charge. The internal resistance is what pulled it down. That's a brown out. The fix is a bulk capacitor to absorb the surge. Iterate clawed. Add a 100 microfarad bulk cap and rerun. show the sag flatten. Rerun the original trace gray still sags below reset. The capped trace ink shows a gentle RC decay that never reaches the threshold. The cap absorbs the current spike. The supply barely dips. Same battery, same pulse, different outcome. Two power questions hide under one word. Energy. How long does the battery last? Instantaneous delivery. whether the device survives the current burst at
[2:16] All. Data sheets quote the first, the field punishes the second. A bulk cap separates those two questions. Your move. Find your targets brown out reset threshold in the data sheet. Then measure or estimate your inference burst current. If the sag crosses the threshold size of bulk cap before the device ships, the simulation runs today. The oscilloscope confirms it on hardware. Nick Bear Brown. Build it with a CLI, then take it apart at Nick Bear Brown.





