Dec 19, 2017

Avoid arduino resets caused by servo current spike

Dealing with relatively high torque servo motors powered by the USB port or a power bank through the arduino board may cause a current spike that lowers the voltage and makes the arduino reset... keep reading for a solution for this problem.

When using a weak/limited power supply to feed a servo that carries a load, the initial movement can cause the voltage to drop due to the current demand. If the voltage drops below the microcontoller limits, it will reset, start and try to move it again causing and endless loop that will seem quite odd.
In order to atenuate the effects of the sudden current sinked by a servo motor when it starts a movement, specially if it is moving a load, you can use the combination of a current limiting resistor and a high value capacitor. The resistor should be a low value so that doesn't drop the voltage too much.
In this example schematic I use a 2.2 Ohm resistor and a 1500uF capacitor rated 6.3v (or even better 10v).


  1. Thanks for this tutorial, this helped me a lot five days before a robotic contest :)