Animatronic eyelids sell the illusion of life more than any other single mechanism: a blink is the gesture audiences read as consciousness. A dual-servo gimbal drives each eyelid (upper and lower, or left and right pairs) with independent servos on a shared pivot geometry, giving smooth, synchronized motion that a single servo with linkages struggles to match. The geometry of that gimbal, pivot placement, arm lengths, and travel limits, is what separates a natural blink from a mechanical clap.

Why Two Servos Instead of One
A single servo can drive both eyelids through a linkage, but linkages introduce slop, and slop in an eyelid reads as a twitch. Dual servos give each eyelid its own drive, so the upper and lower lids can move at different speeds and ranges, exactly like real eyes, where the upper lid does most of the work. Independent control also enables expressions: a slow half-blink for drowsiness, a wide stare, an asymmetric wink. The cost is complexity in the control code and the mechanical packaging, both manageable at puppet scale.
Gimbal Geometry Basics
Each eyelid rotates about a horizontal pivot axis positioned at the eye's outer corner, roughly where a real eyelid hinges. The servo connects to the lid through a short pushrod or a direct horn-to-lid link; the geometry to get right is the relationship between servo arm length, lid arm length, and the angle of the pushrod at mid-travel. Keep the pushrod as close to perpendicular to both arms at mid-travel as possible, because that is where the mechanism spends most of its time, and perpendicular linkages transmit motion most linearly. Nonlinearity at the extremes is actually useful: it gives the lid a natural ease-in and ease-out, like a real blink's acceleration curve.
Sizing Servo Travel to Lid Travel
A typical eyelid needs about 60 to 90 degrees of rotation from fully open to fully closed. Map this to the servo's travel by choosing arm lengths so the servo uses most of its range (roughly 120 to 150 degrees of servo rotation) for the full lid motion; using only a tiny slice of servo travel wastes resolution and makes the motion steppy. Set the mechanical limits (physical stops on the lid) just beyond the software limits, so a software glitch drives the lid into a stop instead of stripping gears. Micro servos are usually sufficient for puppet-scale lids; the loads are tiny, but the precision requirement is high.
Synchronization and Blink Programming
The magic is in the motion profile. A natural blink is fast closing (about a tenth of a second), a brief hold, and a slightly slower opening. Program the two servos with easing curves rather than linear moves, and add slight randomization to blink timing (every 3 to 7 seconds, varying) so the puppet does not blink like a metronome. When both eyes are present, synchronize the blinks but allow tiny offsets (tens of milliseconds) between eyes; perfectly simultaneous blinks look robotic, while near-simultaneous blinks look alive.
Mechanical Quietness
Servo noise kills the illusion faster than bad motion. Isolate the servos from the head shell with soft mounts (foam tape or silicone grommets) so gear whine does not resonate through the structure. Choose digital servos with good centering and low deadband, and run them at the lowest voltage that still gives reliable motion, since higher voltage means louder, snappier moves. Lubricate the lid pivots with a tiny amount of silicone grease; a sticky pivot makes the servo hunt, and hunting is audible.
Power and Wiring
Eyelid servos draw little current individually, but a full animatronic head with jaw, eyes, and lids adds up; size the power supply for the peak draw of all servos moving at once, plus margin. Run a dedicated power bus to the servos, separate from the logic supply, with the grounds joined at one point near the supply. Keep servo leads twisted and away from any audio wiring, since servo pulse noise in a speaker line is unmistakable. A capacitor across the servo power bus near the head smooths the current spikes that cause brownouts and jitter.
Dual-servo eyelids are a small mechanism with an outsized payoff: the difference between a puppet that stares and a character that sees. Get the pivot geometry linear at mid-travel, use the servo's full range, program natural blink profiles, and keep it quiet; the audience will never notice the mechanism, which is precisely the goal.
Related Guides
- Dual Servo Gimbal Geometries for Lifelike Jaw Motion: A puppet jaw that just flaps open and shut reads as a puppet. A jaw that opens, shifts slightly sideways, and settles with a hint of asymmetry reads
- Dual-Axis Gimbal Geometries for Animatronic Eye Blinks: An animatronic eye that can look around needs two axes of rotation, pan and tilt, and a blink mechanism on top of that. The geometry of how those
- Servo Cable Tension Geometry for Animatronic Jaws: An animatronic jaw looks simple until you build one: a hinged lower jaw, a servo, and a cable connecting them. Then you discover that the jaw either
- Bowden Cable Routing for Compact Eyeball Servos: Animatronic puppet eyes need to move fast, precisely, and in a tiny space, but servos are bulky and their vibration shows in the performance. Bowden