If this is in the wrong place, feel free to move it. Also if you need more details, just ask - I am trying to keep it to the essential parts, but might be missing something important...
I am making a project that uses a high power 1/4 scale digital servo, driven by an Arduino UNO. I am getting random movement of the servo when the Arduino is being reset, reloaded, or between the time I release the reset and I get into the Loop function of my sketch.
This is a bad thing, because it could potentially result in a moderate safety hazard under some conditions.
The basic circuit is a 110VAC in / 15VDC 3A out power brick, feeding a TI LM22679 based buck converter board with a 7.2VDC nominal output, that is connected directly to the power wires of the servo, and the +Vin and Gnd pins of the Uno (the onboard regulator of the UNO provides it's power.) The servo control pin is connected to pin D9 on the Uno.
There are a bunch of other things wired up to other pins, but none are active - just data input switches and status LED's - I can supply details, but I don't think they are part of the problem.
The servo specs say that it has a maximum full load power draw of 3A at 7.2VDC, and the buck board is supposed to be able to put out at least 4A, so there shouldn't be any power shortage.
I'm doing it this way in part because it's what I could find inhouse for parts, and partly because the servo requires the 7.2V supply in order to get it's rated speed and power output.
If I push the external reset button (ties the reset pin to ground), and especially if I hold it, the servo often moves to a random position, that does not seem to have anything to do with the code in my sketch. Sometimes it stops after an initial movement, sometimes it will move back and forth a few times. Usually after a few seconds it will settle into a single position and stay there.
If I then release the button, I will sometimes, but not always get some more random movements before the "good status" LED that my sketch turns on as the very first action of the loop function.
Similarly if I upload my sketch via the USB cable, I get more random movement. Judging by the LED's it seems to be happening between the last few lines of "AVRdude" and the start of the Setup code.
As soon as the loop section starts, the servo moves to the position specified by the sketch code as I expect it to.
How can I prevent this random movement? Ideally I'd like the servo to go to it's maximum CCW position (2300uSec pulse width) but it would be OK if it just didn't move.
Thanks,
ex-Gooserider