×Read this message from Erik, founder of YouMagine

A 3D Printed Snake Automaton.

Assembles and disassembles a two chained "snake".


Creative Commons Attribution Noncommercial Share Alike

Commercial use is not allowed, you must attribute the creator, you may remix this work and the remixed work should be made available under this license.

Learn more or download attribution tags


Just prior to designing an enclosure for "A 3D Printed Snake Automaton", family, friends and followers who viewed the mechanism became mesmerized watching it in action, so mesmerized that they were disappointed that I would hide it from view in an enclosure. So here is "A 3D Printed Snake Automaton" for all to see in "open format" form!

During operation, this mechanism assembles two chains into one "pseudo rigid" chain to create a snake and raise it out of its cartridge. When completely assembled and raised, the mechanism mechanically reverses direction and disassembles the snake back into two chains as it lowers the snake back into the cartridge.

The mechanism uses a rotary gear carriage for mechanical reversing. When the carriage rotates to the ascend position, the carriage gears drive an ascend gear to assemble and raise the snake out of its cartridge. And when the carriage rotates to the descend position, the carriage gears drive a descend gear to disassemble and lower the snake back into its cartridge.

However, without intervention the rotary gear carriage will continually rotate via the gear motor and as such must be paused to drive the ascend and descend gears in order to assemble / raise then disassemble / lower the snake. To pause carriage rotation at the proper positions, the carriage wheel has two stop tabs; one for the ascend position and a second for the descend position.

A mechanical switch assembly moves a single pin alternatively between the ascend and descend carriage wheel stop tabs in order to pause the rotation at the ascend and descend positions. The mechanical switch is positioned by an arm attached to the chain drive sprocket that sets the travel limits of the snake as it ascends and descends.

At 6VDC, the mechanism draws an average of 15MA, low enough for solar powered operation which was one of my numerous design goals.

As usual I probably forgot a file or two or who knows what else, so if you have any questions, please do not hesitate to comment as I do make plenty of mistakes.

Designed using Autodesk Fusion 360, sliced using Ultimaker Cura 4.8.0, and 3D printed in PLA on Ultimaker S5s.

Materials and methods


I acquired the following parts:

β€’ One N20 100RPM 6VDC gear motor.
β€’ One 4AAA battery holder with on/off switch.
β€’ Four AAA batteries.
β€’ One 6.35 by 10.3 spring.
β€’ One R08 (11mm ID, 2.5mm Section) o-ring.
β€’ 2mm diameter music wire.

The attached file "Parts.pdf" contains the name, quantity, infill, layer height and support of all 3D printed parts I printed for this mechanism. Note parts with a ".3MF" extension are dual extrusion prints.

This mechanism is a high precision print and assembly using at times very small precision 3D printed parts in confined spaces with highly precise alignment. I printed the chains, gears, levers, arms, cams and wheels using the Ultimaker Cura 4.8.0 "Engineering Profile" on my Ultimaker S5s, which provides a highly accurate tolerance requiring minimal if any trimming, filing, drilling or sanding. However, prior to assembly, I still test fitted and trimmed, filed, drilled, sanded, etc. all parts as necessary for smooth movement of moving surfaces, and tight fit for non moving surfaces. Depending on your slicer, printer, printer settings and the colors you chose, more or less trimming, filing, drilling and/or sanding may be required to successfully recreate this model. I carefully filed all edges that contacted the build plate to make absolutely certain that all build plate "ooze" is removed and that all edges are smooth using small jewelers files and plenty of patience to perform this step.

This mechanism also uses threaded assembly, so I used a tap and die set (6mm by 1, 8mm by 1.25) if required for thread cleaning.


The mechanism uses two metal pins (one 14mm in length, the second 8mm in length) for ascend / descend control. I made these pins from 2mm diameter music wire as follows:

β€’ Used a cutoff blade in a hand held rotary tool to round one end of a length of the 2mm diameter music wire.
β€’ Marked the music wire at 14mm from the rounded end.
β€’ Cut off the 14mm length.
β€’ Filed the cut end smooth.
β€’ Repeated the previous four steps for the 8mm length pin.

With the pins complete, using small dots of thick cyanoacrylate glue, I glued the 14mm pin into the hole in "Slide, Switch.stl" and the 8mm pin into "Switch.stl".

Next, I:

β€’ Positioned the switch assembly in the base.
β€’ Slid the switch slide through the base, pressed through the switch assembly, then slid though the base.
β€’ Aligned the switch assembly exactly between the two marks on the slide assembly.
β€’ Using small dots of thick cyanoacrylate glue, secured the switch assembly to the slide assembly.
β€’ Positioned "Arm, Slide, Switch.stl" over the pin on the slide assembly, then rotated it into position on the base.
β€’ Made certain the assembly slid with ease in the base.


To assemble the carriage, I performed the following steps:

β€’ Slid the spring over the pin on "Carriage, Arm.stl".
β€’ Placed "Gear (.75m 16t).stl" onto the pin on the carriage assembly.
β€’ Placed "Gear, Motor (.75m 16t).stl" into the center hole in "Carriage, Wheel.stl".
β€’ Aligned the carriage arm and wheel assemblies then pressed them together.
β€’ Soldered the battery pack wires to the motor terminals such that the motor rotated clockwise as viewed from the motor shaft end of the gear motor.
β€’ Pressed "Axle, Motor.stl" onto the gear motor shaft.
β€’ Positioned the carriage assembly into the base.
β€’ Pressed the motor into the base.
β€’ Slid the motor towards the carriage assembly, aligned the motor shaft with the center hole in the carriage assembly motor gear, then pressed the motor shaft into the carriage assembly motor gear.
β€’ Adjusted the motor carefully in the base assembly such the carriage assembly was centered between the motor mount and carriage towers and rotated with ease.

Ascend and Descend Gears and Axles.

To add the ascend and descend gears and axles, I performed the following steps:

β€’ Positioned "Gear, Ascend.stl" into the base assembly and secured in place with "Axle, Gear, Ascend.stl", making certain the ascend gear rotated freely.
β€’ Positioned "Gear, Descend.stl" into the base assembly and secured in place with "Axle, Gear, Descend.stl" and "Gear (.75m 16t) And Axle.stl".

Snake and Cartridge.


To assemble the snake and cartridge, I performed the following steps:

β€’ Positioned the o-ring on "Axle, Sprocket.stl".
β€’ Positioned the head mount ends of "Snake, Chain, Green, 1.2mm pins.stl" and "Snake, Chain, Yellow, 1.2mm pins.stl" together.
β€’ Starting at the head mount ends of the chains, slid my fingers up the two chains to link them together.
β€’ Pressed "Head.3mf" onto the head mount ends of the chains.
β€’ Placed "Sprocket (15 Teeth).stl" into the sprocket hole in "Cartridge.stl", positioning the small indexing hole in the sprocket as shown.
β€’ Inserted the end of the snake assembly into the cartridge assembly, engaged the green chain with the sprocket, then carefully slid the snake into the cartridge assembly noting the final sprocket indexing hole position when fully inserted.
β€’ Pressed "Cartridge, Lid.st" onto the cartridge assembly.
β€’ Pressed "Sprocket.Arm.stl" onto the sprocket such that with the sprocket indexing hole straight up, the arm points straight down.
β€’ Pressed "Gear, Sprocket.stl" onto the sprocket assembly.

Final Assembly and Test.

For final assembly, I performed the following steps:

β€’ Moved the slide arm to the ascend (full right) position.
β€’ Carefully positioned the cartridge assembly onto the base assembly aligning the cartridge assembly sprocket hole with the base assembly threaded hole.
β€’ Inserted the sprocket axle assembly into the sprocket axle hole and tightened it slightly.
β€’ Inserted one "Bolt, Cartridge.stl" through the cartridge mount hole into the base and tightened it.
β€’ Inserted the remaining cartridge bolt through the cartridge mount hole into the base and tightened it.

With final assembly completed, I turned on the battery pack and slightly tightened / loosened the sprocket axle assembly until the snake descended smoothly into the cartridge.

And that is how I 3D printed and assembled "A 3D Printed Snake Automaton".

I hope you enjoyed it!



Issues are used to track todos, bugs or requests. To get started, you could create an issue.


Mini %db%b2%db%b0%db%b2%db%b0%db%b0%db%b2%db%b2%db%b0 %db%b1%db%b5%db%b3%db%b4%db%b2%db%b3abdolla shabibi added this to the اسباب بازی collection ago
Mini lora and iGreg Zumwalt published this design ago