vinceherman:
If you user servo.write() for all 4 servos sequentially, I would expect the servo signals to go out nearly simultaneously.
Me too... read on....
elvon_blunden:
(I will meantime dust off my scope (only 2 channels) and see how far apart (if it's even discernible) two servo signals start when their calls are on consecutive lines of code, and how different in length (if it's even discernible) the pulses are for write()'s of the same length.)
Ok I finally dug my scope out, and very interesting findings. Alas, I can't grab the scope screenshots. When I bought my scope I had Windows Vista, and EasyScope worked. Now I have Win 10, and can't get an Easy Scope driver. So as a side note, if anyone has a Win 10 EasyScope driver for my AA-Tech ADS-2102B scope, please send me a link...
I only have a 2-channel scope, but wrote a sketch for 4 servos and scoped the first one always, and moved the probe from the second to third to fourth to pretend I had 4-channels. All I did was have 4 successive servo.attach() commands, each preceded by a servo.writeMicroseconds()
Turns out that servo2's first pulse only goes out after servo1's pulse has finished and gone low. When scoping 1 and 4 (servo number being the order of the commands in the sketch) there's a gap on the scope where servo2's and servo3's pulses would have been. (Grrrr. wish I had a 4-channelscope.)
I used various servo.writeMicroseconds(). Whatever the value, subsequent servo pulses only go out on the tail of the previous one,once the previous one has gone low.
Not saying the way the servo pulses work is the casue of the problem here in this thread, but it certainly was not what I expected. The 4 outputs remain in the same relationship once they start of course, just that they're apart by the pulse width to start. Since the cycle time of 20ms stays the same, the pulses remain out of synch by that same amount; it doesn't get worse.
Send me a Win10 driver for EasyScope and I'll grab shots.
(In contrast, scoping blink with delay style output with digitalWrite() on two pins, the pins go high together to start and if of the same length, return to low together.)