Mirror Servo Motion

Hello! I have recently purchased Micro Maestro 6-Channel USB Servo Controller. I am going to be running 4 servos for a animatronic eye mechanism. 2 servos for each eye. Each eye will have up, down, left and right movement. My question is am I able to program one of the eyes motions and copy that script over to the other eye so they are in sequence with each other? Thank you very much.


It is not clear to me what all is involved in your system, so it is hard to make any specific suggestions. Can you be more specific about what are doing and how you want the servos to behave? Are you using multiple Maestro controllers (i.e. one controller for each eye) or are you controlling all 4 servos from a single Maestro?


I am only using one 6 channel Maestro controller for all 4 servos.

trying to post a picture of the setup. here is a link to the website I’m making the project from. Compact and Robust 3D Printed Animatronic Eye Mechanism

not using the two servos in the back.

Thank you for the additional information. The Maestro does not have any built-in “mirror” function, but if you can tell me more about how you are controlling the Maestro, I might be able to offer some suggestions. Are you using a sequence, script, TTL serial commands, USB, or some combination?


I was planning on running a sequence on a loop that can be activated with a sensor. Its for a Halloween prop. As you can see in the diagram the servos are in opposite positions.

If your sequence is short, you could load each frame one at a time, add your additional 2 servos to it, and save over the current frame.

If your sequence is longer, it would probably save some time if you take advantage of being able to copy frames into a spreadsheet program as described in the “Sequencer” section of the Maestro user’s guide. For example, you can select all of your frames by Shift+Clicking, cut them out with Ctrl+X, then paste them to a spreadsheet program with Ctrl+V. You will see that each frame is a row, starting with the frame’s name and duration as the first two columns, followed by the servo positions for each channel. So, you could write a simple equation to mirror the positions of your already sequenced servos to the servo channels for the other eye. When you’re done, you can copy the whole table, and paste it back in to the Sequence tab of the Maestro Control Center.

By the way, if you are planning on reading your sensor directly with the Maestro, you will need to copy the sequence to a script and add the code for handling the sensor. This post showing how to start a script with a button might be helpful as a starting point.


I like keep it simple approach. Most eye movement is conjugate (both up/ down,straight ahead left right) unless you want to create a lazy eye. If you need 4 servos use y connector leads to the up/down and a separate y lead for L/R… if you use only 2 servos use linkages from each servo to both eyes.
Either way two channels runs both eyes together 2 or 4 servos.