Arduino Nano resets when driving a digital servo

G'day friends

I'm using aa Arduino Nano to drive two servos, a stepper (external 12v throug a driver) and serial keybord/display.

Everything works as expected when using Analog servos but when I connect a digital servo the cpu resets or locks up when it tries to move the servo to a new position , even with no load.
It appears as if there is a spike on the 5v line. (don't have a scope but my digital multimeter show a small variation in the 5v supply).

I'm using a 12v battery (1.5 amps available) through a 7805 5v regulator with a high current bypass circuit (3 amps max) to supply the servo independantly of the Arduino and using the same 5v to the Arduino 5v input.

I've tried decoupling the servo 5v supply with a 0.1uF cap across the supply as well as a small inductor in series to filter interference, to no avail.
The same digital servo works well with a standard RC unit (4.8v) and draws about 380mA under load.

Anyone got a clue?

Problem solved! A 2200uF cap on the 5v line fixed it.

The stall-current of the servo is the culprit probably - until the servo's moving there is a spike of current limited only by the resistance of the motor windings. 0.1uF would never be enough for this, such spikes are typically many ms and many amps, so mF are needed.

A 'better' solution would be a separate regulator for the servo power and maybe add a more modest capacitor on the Arduino 5V line. Or is that what your circuit actually is? ("with a high current bypass circuit")

Thanks Mark

My 5 volt supply circuit is something like the attached image except I use a 12 volt battery for the supply and the 2200uF cap is on the 5v side.

Regards

7805.png