Here's a project for costumes, cosplay, cats, dogs, and lovers of tailed creatures.

 The bulk of the project is 3D printed... only a few additional items are needed.

  • Silicone tubing ~12 mm (outer diameter)
  • Beadalon stringing wire .61mm
  • Standard Metal Gear Servo
  • 30mm screws (almost any kind wil do - you only need two)
  • 10mm screws
  • 8mm screws
  • Spring from a ballpoint pen

And, some basic tools.

  • Hot glue gun
  • Silicone adhesive
  • M4 tap (optional)
  • Wire cutters
  • Screwdriver

Silicone tubing has an outer diameter of ~12mm and an inner diameter of ~9mm.

Thicker stringing wire is better - your tail will last longer and will be more durable.

Fire-up your 3D printer... and lets print the parts to make an animatronic tail - operated with a single servo.


Tweak / edit the design on Tinkercad... or get printer-ready files on Thingiverse.

All the parts except for the servo body and tail base can be printed without support material. 

You'll be printing several of the pieces in halves - mostly to optimize the parts for FDM printing.

Sand the facing edges on a flat surface...

Don't blow the plastic particles away. When added to Super Glue, it creates an amazingly strong bond and helps fill gaps.

You'll do this for the main servo wheel...

...and both pulleys.

Clean-up excess glue with an Xacto knife after it dries.

Attach the servo with 10mm screws.

Hot-glue the servo horn onto the pully wheel... make sure it centered!

Attach the pully wheel to the servo.

Rotate the servo carefully and check to make sure that the servo horn has appropriate clearance.

Tap holes, or carefully warm the screw with a hand-torch before driving it into place.

I used two cabinet screws (30mm) to join the outer plate.

Use 8mm screws and printed washers for each pully.

Make sure that the servo wheel and pullys are aligned... to keep the tail a waggin'

My first attempt at making a tail used all 3D printed parts... which caused too much friction and failed after only a half-hour.

While digging through a box of project supplies, I found a length of silicone tubing that I used to make a peristatic pump a while back.


You'll need to print-up a whole bunch of tail rings... take the length of your tubing and divide it by ~3cm to get an approximate count.

The diameter of the hole in the middle of the ring is slightly smaller than the tube, which holds them in-place.

You might want to add silicone adhesive to this end... as the tail wags, it can work its way out of the socket. 

Attach the tail base to the servo body with 8mm screws.

Don't let the size fool you, Beadalon is incredibly strong... 40 - 50 lbs test!

Cut a length of bead-wire that is twice as long as the tail - adding an extra foot for safety and attachment to the servo wheel.

Divide the length in half and loop at the top, and add a bit of hot-glue or silicone adhesive to hold the cap and wire in-place.

Then, thread the wire down the tail.

We need to make reference marks on the wheel to guarantee maximal wag.

  1. Carefully rotate the wheel to the far right and make a mark perpendicular to the servo body.
  2. Carefully rotate the wheel to the far left and make a mark perpendicular to the servo body.
  3. Then, divide the distance between the two marks in half... make your final mark.

This, will be your guide when lacing the wheel.

At the mid-point, drill a hole into the wheel.

Flatten the area to that the screw sits flush against the wheel.

Either tap the hole or pre-thread with a warm screw.

Lace the beading-wire through each pully, around the servo wheel, and secure at the mid-point of the servo wheel.

Rotate the wheel carefully to make sure that the wag looks right... asjust as necessary.

When you're satisfied, add a little hot-glue to make sure that the beading-wire won't budge.

Trim excess beading-wire...

Grab a spring off an old and dead ballpoint pen... we're going to use it for automatic slack adjustment.

This will help prevent the beading-wire from falling off a pully.

Getting the tail to wag is super simple... and can be done with the example sketches that ship with the Arduino IDE.

File > Examples > Servo > Sweep

// Sweep
// by BARRAGAN <> 
// This example code is in the public domain.

#include <Servo.h> 
Servo myservo;  // create servo object to control a servo 
                // a maximum of eight servo objects can be created 
int pos = 0;    // variable to store the servo position 
void setup() 
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object 
void loop() 
  for(pos = 0; pos < 180; pos += 1)  // goes from 0 degrees to 180 degrees 
  {                                  // in steps of 1 degree 
    myservo.write(pos);              // tell servo to go to position in variable 'pos' 
    delay(15);                       // waits 15ms for the servo to reach the position 
  for(pos = 180; pos>=1; pos-=1)     // goes from 180 degrees to 0 degrees 
    myservo.write(pos);              // tell servo to go to position in variable 'pos' 
    delay(15);                       // waits 15ms for the servo to reach the position 

This works for Arduino UNO... or you can go less expensive with Trinket (requires adjusting the code for SoftServo library) or Pro Trinket (which is plug&play)


Here's what the automatic slack adjustment looks like.

The real question now is... what are you going to use your animatronic tail for / in?


This guide was first published on Nov 10, 2014. It was last updated on Nov 10, 2014.