Jon-A-Tron’s 3D Printed Animatronic Puppet
Occasionally there are projects that hang at the top of my “someday” list and refuse to budge, nagging me until I tackle them. Jonathan (Jon-A-Tron) Odom’s 3D Printed Animatronic Puppet project on Instructables is one of these projects.
When I started Maker Project Lab, the whole idea was that I was going to be rebuilding, evaluating, and elevating awesome projects that makers have shared online. It’s a process that was part of my job as a Projects Editor at Make: magazine, and it seemed like a cool thing I could continue doing. I mean, isn’t that part of what the Maker Movement is all about — sharing what you’ve done and inspiring people to build their own version and take it someplace new?
Needless to say, if you’ve been following this blog, you know that I got wonderfully sidetracked by making my own weekly show and reviewing tools. What little spare time I have left for actually making my own projects is typically sucked in to paid original project content, or personal projects for which a lot of the appeal is selfishly chipping away at something that’s just for me.
I’m sure Jonathan’s project here is not for everyone, but for me it held the key for exploring animatronics, 3D modeling, 3D printing techniques, working with servos, and model painting and weathering techniques. In addition, Jonathan’s use of manual control to puppet the servos left the door wide open for me to build on his design by adding scripted servo animation, creating automated routines that could make it more lifelike.
The Guide
Before I came across this particular project I was already a fan of Jonathan’s. At the time he was a full-time content creator at Instructables, cranking out brilliant projects at a near-weekly pace. Just like the projects themselves, Jonathan’s guides had a level of professional, detailed polish that made them stand out from the pack. If you’re new to his work, I also recommend checking out his Linear Clock, Split Flap Display, and Blade Runner Binoculars.
His lists of materials were complete and linked for easy purchasing. All of his designs were included for download, or often embedded into the guide for easy viewing. Also, owing to his love of Fusion 360 design software (which happens to be the team he works for now at Autodesk), many of his later guides on Instructables were outstanding introductions to using the software — something I still want to find time to sit down and do.
In this specific guide for making his 3D printed animatronic puppet, we get a rare glimpse at Jonathan’s history learning from John Criswell, the lead animatronics designer / fabricator / artist / mad scientist at Jim Henson Studios. As Jonathan states “the eye mechanism came straight from Criswell- it’s based on the one he used on everything from the Dinosaurs TV show to Where the Wild Things Are.”
On a similar note, the only other project of Jonathan’s like this that spends so much time revealing tips on painting and creating realistic finishes, is his Blade Runner Binoculars project. We see a lot of similar ideas presented here, which are immensely helpful as an introduction to model painting.
I also have to say how great the use of labeled and exploded diagrams are in this project and many of Jonathan’s other projects. Again, I believe it’s an artifact of his love of Fusion 360 software and finding new ways to harness all its capabilities (including 2d drawings).
3D Printing
My first step on this project was 3D printing out all the pieces. I skipped the servo control board base and bank since I was going to be connecting all the servos up to a single microcontroller board.
For filament I went with a basic silver PLA for a lot of the less important parts (internals, base, gear, eyelids) and a yellow HTPLA from ProtoPasta for most of the head pieces. I find the HTPLA has a nice, matte texture that doesn’t look too “3D-printy” after some light sanding and primer.
Painting
Despite Jonathan’s excellent write up on painting and distressing props and models, I really just sorta winged this with multiple passes of spray paint I had on hand.
I used Rustoleum matte gray primer (plastic-compatible), matte white spray paint for the head, silver spray paint for the side panels, and black enamel paint for the neck and stand pieces, with the shine knocked down with some high grit sandpaper. The yellow peeking out from the side panels on the head is just the yellow color of the 3D print filament I used.
Servos
I am still a relative noob when it comes to the world of servos, distinguishing between different types, and how to control them. Mostly, I know that I tend to break or burn through servos when I experiment with them.
This is why I’m wary of spending money on nice servos. Instead, I shop for deals on cheap SG90-type servos on Amazon and eBay, knowing that each batch will probably have a few duds, and the rest will have to hold up to my torture.
Unfortunately, Jonathan designed his robot around the Futaba S3107 servos he had handy (lucky guy), which run around $20 each. With 5 servos required, and a sense that I would probably burn a few out in the process, there was just no way that I was going to drop over $100 just on servos.
To his credit, Jonathan links to a 5-pack of compatible SG90 servos on Amazon for under $10. I recommend buying two packs of 5 to account for duds and burn-outs.
These servos are essentially the same size and mount using the same hole pattern. There are two differences worth noting, though. One is that the S3107 servos has a beveled corner on the casing where the cable exits, allowing it to bend flush with the sides of the servo in any orientation.
Some of my SG90 servos had this same feature, and some didn’t. Without the bevel, the cable will exit the casing on the side, making it nearly impossible to drop the servo into one of the many fitted slots Jonathan uses in his design. Modifying the casing with a Dremel or a saw is possible, but not always easy. With any luck, you’ll get a batch with the beveled corner.
The other difference I noticed between the S3107 and SG90 is that (I believe) the shaft of the Futaba design sits out a little further from the mounts than the SG90. That is to say that the distance between the mounting plate and the tip of the shaft is great in the Futaba servo Jonathan designed around than the SG90.
This difference is seemingly inconsequential in the eye mechanism and the neck, but becomes an issue when you’re fitting the jaw servo. The tolerance of how the jaw moves in the head is pretty tight. A few millimeters left or right can really get you stuck (and burning through jammed servos).
With some sanding, finessing, glue, and shimmed bits of plastic, I made it work — but this aspect of the project took the most trial and error.
Eye Mechanism
One of the most unique and exciting things about this particular animatronic design is the eye mechanism. The way it moves, and especially the way it blinks, is unusual.
Before settling in build this robot, I had been paying attention to a lot of animatronic projects that have bubbled up on different maker project sharing sites. Some featured no eyelids at all, but most solved the eyelid problem with a servo that would simply drop and raise eyelids over the eyes like a breadbox lid. Jonathan’s design (which he attributes to John Criswell) gives each eye a pair of eyelids that clamshell shut and meet in the middle of the eye, just as a natural human eye would.
As you can imagine, achieving this effect takes a little more work, and I had to order up some specialty rods and ball joints used for model airplanes. John’s link for 2-56 threaded push rods goes to an item no longer available on Amazon, but I found these ones on eBay worked great.
My advice for assembling the eye mechanism is to be sure to use a servo tester to center the shaft on each servo before you attach the horns. Many of the servos are setup in a way that allows a fairly narrow range of movement. Without centering, you risk plugging in a servo later and having it wildly scramble up your hard work, or burn a gear as a horn slams against the fitting.
But the very best part of the eye mechanism is that Jonathan designed it as a separate self-contained module that you can repurpose for any other animatronic design. It was the first part of the project that I tackled, and after finishing it and testing it I realized how easily I could plug this module into any future designs I might make on my own. It’s probably how Jonathan felt when he learned the design from John Criswell.
Any project is better with an animated eye, and this one is better than most.
Head
The eye may be the most essential part of this project, but the head has all the style. Jonathan designed it to look like the character Bastion from the video game Overwatch.
I found it to be really fun how it’s broken out into a skeleton-like frame and a number of panels and fittings that slot or screw into the frame. The modularity of the design also lends itself to treating each element with its own sanding, painting and finishing technique. Had it printed out as a single piece, it would have been considerably harder to create the illusion of different materials.
I did have to make a few modifications to the printed pieces along the way. I sanded away some of the plastic inside the skull with a rotary tool to get a better clearance for the eyelid mechanism. As printed, the ball joint pieces from the eyelids would catch on the inner skull and prevent the lids from closing fully.
As I noted earlier, I also sanded down the jaw piece to more easily rotate in and out without rubbing against the skull.
Base
The base of the robot wound up being the only aspect of Jonathan’s design that I went back and modified the original design file and reprinted it. Unlike Jonathan, I needed the interior of the base to be deep enough to accommodate and conceal the microcontroller board I used to drive and animate all the servos.
I’m not yet confident enough with Fusion 360 to make the change there, so instead, I brought the STL file into Tinkercad, chopped it up and essentially doubled its height and the interior space. While I was at it, I added the mounting holes necessary for my particular controller board the Pololu Maestro 12. I pulled these from a case design by Madox.
One last touch I made was to add a layer of cork to the tray section that sits under the head. I just thought it needed a little something. To get the shape just right. I printed out the first few layers and used it as a cutting template.
Controller Board
This was my second time using the Pololu Maestro line of controller boards in an animatronic project. My first time was using the Maestro 6-channel board to create a version of the Doorman project by Tjahzi. I liked it so much, I spent a little more for the 12-channel version this time around.
Sadly, though it can control up to 12 servos, this project only really needed 5. Still, compared to the smaller, less expensive 6-channel version, the Maestro 12 provides a number of extra features (including a configurable pulse rate and range) 8 times the storage capacity for animation scripts, and a quick jumper setting for powering the board and servos off the same supply. That said, I see no reason you couldn’t get the same results I had from the less expensive 6-channel version (aka Micro Maestro).
I plan on creating a whole separate video and post about my experience with the Maestro boards. From my perspective, they’re a bit of an unsung tool for creating animatronic projects with zero coding required. Instead, there’s free software you connect the board up to, and you just use it to save each frame (or step) of your animation sequence and save it right to the board when you’re done.
I think they’re pretty great (this is not a paid endorsement), and they’re the fastest way I know of to jump from the limitations of manual control into the world of scripted animatronics. I’ll tell you more about them soon.
Final Advice
This project get’s two thumbs up from me. If you have a 3D printer, you can print most of the elements you need. If you don’t, you can easily send out to have them printed using a service like Shapeways. Either way, unless you’re going with manual control like Jonathan, you can skip printing up the “ControllerBase” and “ControllerBank” files and save some time and money.
Aside from the 3D printing, it’s a fairly inexpensive project. $20 in servos, $10 for the eye mechanism rods and fittings, $5 for the bolts and bearing from a local hardware store, $12-$20 for the controller board, and whatever paint you have lying around.
There is a moderate time cost involved. I chipped away at this over 4-5 weekends, jumping in whenever my schedule and family allowed. There are a bunch of little parts to print, a few of which you’re bound to reprint due to print issues. To get a weathered paint finish like mine or Jonathan’s, you’ll need to give most pieces 2-3 rounds of painting and sanding. Mounting the servos, learning the Maestro software, routing all the servo wires, screwing and gluing it all up. If you have nothing but time, you could get it all done in two weekends (one for printing, the other for assembly and animating).
What makes it all worthwhile, though, is that that you really walk away with a better understanding and confidence around animatronics, creating realistic finishes on 3D prints, and learning a new technology. If you’ve ever marveled at the kinds of animatronic characters at Disneyland and wondered if you could bring a little of that magic home, this is a great window into that world.
Submit a comment