Motion Follow Animatronics Eyes




This Arduino project uses an Optical Flow Sensor (ADNS3080) to capture movement.

Then translate the data to move servo's making it look as eyes are following moving object.

This is not an easy build.

It requires 3d printing, soldering, some general technical understanding and problem solving as this guide cannot be 100% perfect.

I will do my best to make this as comprehensive and illustrative as I can.

Feel free to ask questions and leave your comments.

I want to thank the "maker" community and all the people who share there projects.

Now Lest make some cool motion follow eye animatronics.

Step 1: Overview

Step 2: Part List

1x Arduino Nano 3.0 ATmega328P Controlador

6x SG90 9g Mini Micro Servo

1x Optical Flow Sensor APM2.5 ADNS 3080

1x 50*70 PCB

2x Single Row Female Pin Headers

2x Single Row Male Pin Headers

x2 5 pin Dupont wire cable connectors 2.54 mm Jumper Header Housing Female

x2 2 pin Dupont wire cable connectors 2.54 mm Jumper Header Housing Female

1x Mini 3 Pin Dashboard On Off Position Rocker Switch Illuminated

1x Dc Power Jack Socket Connector (Diameter Dependent on you power source)

4x 2MM Green/Yellow/Blue/Red/ LED Light Diode

12x IR LED 850nm Infrared 5mm Diodes

1x XL4005 DSN5000 Beyond LM2596 DC-DC

16x 220R resistor

1x LM8UU Linear Bushing 8mm linear ball bearing

1x 100mm Smooth Shaft Rod Chromed stainless steel Diameter 8mm

8x M2 Stainless Steel Flat Head Countersunk Phillips Machine Screws

4x M3 Screws Hex Socket Flat Head

11x Plastic M3 Ball Buckle Tie Rod End Positioning Ball Buckle link Push/Pull Rod

6x M2 L300mm Link Stainless Steel Connecting Rod with Dual End Thread for Servos

2x 11/23 M4 screw Metal Cardan Joint Gimbal Couplings Universal Joint (see pic)

3x 3D Printer Filament White\Black\Transparent Blue

Step 3: Tools

  1. 3d printer
  2. Soldering iron
  3. Hex key set
  4. Small screwdriver (M2)
  5. Crimper Pliers Cable Cutters Electrical Wire
  6. Cable Wire Stripper (Recomended)
  7. Z-Bend Pliers Heavy Duty 90 degree up to 1/16 (Highly Recomended)
  8. Patience

Step 4: 3D Printing Eyes

All stl files are available at:

Start by printing the eyes.

I have printed eyes with 3 different colors and 4 color changes using Prusa ColorPrint.

Color change I used:

  1. z 0 - white
  2. z 13.9 - black
  3. z 14.1 - blue
  4. z 16.7 - black

If for some reason You don't want or cant print multi colors (multi-color printer not needed) you can always try printing white and painting the colors.

I have try painting the colors and found that its much harder and does not look as good.

Making the capillary I used some red wool and Acrylic varnish see (at 2:17).

I used glossy varnish to glue the wool and add a more realistic shine.

After the print is done its time to assemble Ball Buckle link and the Universal Joint.

You may need to cut Ball Buckle link screw to fit the holes (see pic).

A little superglue might be necessary depending on the fit.

Do not glue Universal Joint!

Step 5: 3d Printing

The rest of the prints are standard.

I use PETG but you can print in what ever you are custom to.

Print eyes and eyelids in highest detail you can. other parts don't need high detail.

I have printed Base and Box with 0.8mm nuzzle 0.4 layer height to give them more strength but this is not necessary.

P.S if you did not experiment using different nuzzle size I encourage you to do so, Its a lot of fun.

Step 6: Base Assembly

1- Attached SG90 9g Mini Micro Servos.

* notice orientation

** notice 2 front servos that controls swing action are mounted from bottom.

*** do not screw horns yet! Before screwing servo horns you need to set them at mid position (see init sketch in code part of this document)

2- Insert 2 rod holders.

Insert LM8UU Linear bearing inside mount.

Slide Shaft Rod through 1 holder into LM8UU all the way through second holder.

3- Cut Connecting Rods to size.

* This part is critical. Take your time and try to be precise as possible.

** Take into account the Z-bend. (z-bend pliers will make you job much easier and precise see:

4- Connect rods.

Step 7: Electronics

Create PCB.








ADNS 3080 Wiring:

PIN_MISO - Pin 12

PIN_MOSI - Pin 11

PIN_SCK - Pin 13





Servo Wiring:

pin 2 - right swing

pin 3 - right tilt

pin 7 - left swing

pin 6 - left tilt

pin 4 - eyelid tilt

pin 5 - eyelid open/close


LED Bar Wiring:

Pin A4

Pin A5

Pin A6

Pin A7

*Use 220 R resistor


IR LED Wiring:


*Use 220 R resistor


Step 8: Code

All sketches are available for download at:

Download as zip and unzip to you computer.

Upload init-servos.ino sketch into Arduino Bord.

This sketch will position all servos in mid position.

Now is the time to align servo horns and screw them.

After you screw all horns upload the eye-animatronics.ino to the Arduino.

Congratulations your eye animatronics project is Done.



    • DIY Summer Camp Contest

      DIY Summer Camp Contest
    • Stone Concrete and Cement Contest

      Stone Concrete and Cement Contest
    • Paint Challenge

      Paint Challenge

    16 Discussions


    Question 6 weeks ago on Step 2

    What are the lengths of the screws? You don't specify. I've already got this this 75% printed before I realized I don't know what length of screws to order.

    3 answers

    Answer 6 weeks ago

    M2 L300mm Link Stainless Steel Connecting Rod with Dual End Thread for Servos.
    You will have to cut therm to length.
    I will update exact length...


    Reply 6 weeks ago

    No, not the connecting rods... The lengths of the screws. Example... You list M2 and M3 screws... But what length of the shaft? M2 and M3 refer to the size of the hole they fit. You are missing the length dimensions. How does one know which ones to buy?


    6 weeks ago

    Wrong universal joints listed. I ordered these and they were far too small. :(

    1 reply

    Reply 6 weeks ago

    I am sorry abut that, I did made a mistake :(.
    The correct size: 11/23 with M4 screws


    2 months ago on Step 7

    The text of Step 7 doesn't make sense to me unless it relates to a schematic that I wasn't able to find in your Instructable.

    2 replies

    Reply 2 months ago

    Soon I will upload schematic


    2 months ago

    capilliary not capillary


    2 months ago

    now put a POE camera in one of the eyeballs. then connect it to a DVR or NVR
    POE = Power Over Ethernet = RJ-45
    DVR = Digital Video Recorder = old school BNC cameras
    NVR = Network Video Recorder = Cellphone


    2 months ago

    I LOVE it!
    All kinds of Halloween ideas...
    This might be the project that makes me buy a 3D printer.

    For anyone doing any kind if project with RC servos, I highly recommend a “servo tester”.
    They are not expensive and allow you to do all kinds of testing (like limits, binding etc.) without messing around with scripts.

    There are tons of manufacturers and levels of sophistication - some allow you to see/set the PWM value digitally.

    Here’s a link to the cheapo one I have.
    (I can’t believe this vendor is selling a three pack for much less than I paid for one).

    (I have no affiliation with or connection to this vendor).


    2 months ago

    Oh, man, this is amazing! I have had an idea for a while for a jar of eyeballs that will focus on someone when they get close to the jar. This could be the instructable that gets that project started! Thank you for posting it!

    1 reply

    2 months ago

    amazing i enjoy it congrats