A weak or small lithium cell drops in voltage when the motors draw current, and the controller resets. Measure the voltage at the board while the motors run.
What the message means
Every cell has internal resistance. Under a heavy load the terminal voltage falls by current times that resistance. A low state of charge and old age make it worse. Many packs also cut off when the voltage drops too far.
Fix it in this order
- Measure the battery voltage at the robot while the motors start. A multimeter with min-hold or a logger shows the dip.
- Charge the cell fully and retest. Low charge makes the sag larger.
- Check the cell current rating in its datasheet and keep your peak current well below it.
- Use cells in parallel to share the current, or a pack with a higher discharge rating.
- Give the electronics their own regulator with a capacitor so short dips do not reset them.
- Use protected cells or a battery management board, and do not discharge below the datasheet limit.
Why it happens
A lithium cell has internal resistance, so when current flows, the voltage at its terminals falls by the current multiplied by that resistance. A motor start can draw a large current for a moment, and the terminal voltage dips sharply. If the dip reaches the brown-out threshold of the microcontroller or regulator, the board resets. The cell may still be fully charged; the problem is how fast it can deliver current.
A sagging cell also depends on its state of charge and its age. Internal resistance rises as a cell discharges and as it wears out, so the same motor pulse causes a deeper dip later in a run. The fix is to match the cell’s continuous and peak discharge rating to the load, check the datasheet for those figures, and separate the logic supply from the motor supply with a regulator and capacitance.
If you see this, do this
| You see | Do this |
|---|---|
| Resets only when motors start | Sag from internal resistance. Add capacitors or a stronger cell. |
| Resets late in the run | The cell is nearly empty. |
Confirm the fix
- With a multimeter on the battery terminals, watch the voltage while the motors start; note the lowest value it reaches.
- Compare that lowest reading with the controller’s brown-out or minimum input voltage in its datasheet; a dip below it explains the reset.
- Charge the cell fully, repeat the motor test, and check the result against the cell’s rated peak current in its datasheet.
Common mistake: Many builders assume a fully charged battery cannot sag, but voltage under load depends on internal resistance and current, so a full cell can still reset a robot.
Related
battery pack calculator, robot battery guide, Arduino resets when the motor starts.
Last reviewed: November 2026. These are the usual causes and the order that finds them fastest. Test on your own board; clones and cables differ.