Hey! This thing is still a Work in Progress. Files, instructions, and other stuff might change!

Clockwork Library & Printable Clock Script

by syvwlch, published

Clockwork Library & Printable Clock Script by syvwlch Apr 22, 2011

Featured Thing!


Winner of the Pattywac Makerbot United Challenge for collaborative design: makerbot.com/blog/2011/05/16/pattywac-makerbot-united-challenge-winner/

Thank you team! :-)

Video of the first ticking powered escapement mechanism:


Several bugs have been fixed since this release, and the current tip-of-the-spear for development is a simplified 2-gear clock with only minutes and seconds.

Current development version to be found on git hub here:

Current version of the 8-Gear Clock (revision D):

Current bleeding edge development version of the test jig:

Current repository for the latest version of the clockwork library:

Thanks to RustedRobot for his continued assistance debugging the clock!

This is both a derivative of the printable clock PoC, and of my escapement library: thingiverse.com/thing:7822 . The involute gear profiles are from the MCAD library.

(EDIT: The clock got a mention by Cory Doctorow on boing boing!
boingboing.net/2011/04/23/model-files-for-a-wo.html )

I cleaned up the code so it would render faster, moved all the gear work into the library, and created a laidOutToPrint() module to facilitate creating the STLs of the individual parts. I included an optional print volume visualizer, so you can check every part doesn't exceed the printer's capabilities.

The assembled() module is still fully animate-able, and I've added colors to help see if everything meshes properly.

The clock itself now has clip-on hands, front & back frames, and most importantly, I switched to a different set of gear ratios (3.2, 3, 2.5 & 2.5) which allows for bigger shafts by keeping the ratios small.

Assuming an 80x80x80mm printing volume, you now have a bit more than 12mm (almost half an inch!) available for the overall diameter of the shaft, the two sleeves that slide over it and the necessary clearances.

I think this configuration is close to final, except for the escapement, which will need fine-tuning... but without re-printing the rest of the clock.

Recent Comments

view all

The minutes
amp; seconds only test jig version now has 3mm printed holes, stock!

I should rename it the rustedrobot edition. ;-)

Hi cambazz. I've been using M3x50MM screws (what I have lying around) in my tests so far and have been drilling out the holes to accommodate them. I've had issues with the drilled out holes not being perfectly perpendicular though. I'll probably be switching to properly printed 3mm holes moving forward in my tests though.

Oh, the discussions are a bit scattered, with important parts of them going on in the Other People's Copies link where rustedrobot has posted pictures of his prints:



Print one of each STL file, or fiddle with the script, check your work with assembled(), and then generate a new STL for each part with laidOutToPrint(), and print those.

The current configuration requires four shafts to slip the sleeved gears over, outer diameter 2mm with a clearance of half a millimeter either side. I suspect it might be possible to simply screw an M3 bolt into each end of the longest sleeves and to widen the holes in the frames a tad.

I'm unfortunately rather sure the escapement won't work properly as is, but it would be nice to know if the rest of the clock does, i.e. if you can turn the escapement wheel, and have the gear train run smoothly and the three hands spin around.

I'll be working on the escapement next, but whatever I come up with in that regard should be backwards compatible with this design, with only the need to print a new escapement wheel, escapement and pendulum.


You must be logged in to post a comment.

cambazz on Apr 28, 2011 said:

question: is this a working design? or nearly working design? :)

I have printed the gears from the 4 gear clock and playing with them, also thinking how to reduce friction.

if the shafts were build with non-printed material, maybe metal, would that help. is having an all 3d printed clock a design objective?

another thing is i would use silicone grease for the

also, i will try rotary shafts from some crashed rc helicopters instead of the m2 screws.

btw, i still have not figured out how the pendulum piece works.

i will try the silicone grease, and the steel shafts and report back tomorrow.

i really want to see this working!

syvwlch on Apr 28, 2011 said:

It is definitely still a work in progress and not a working clock, yet. :-)

I would say that a 100% printed clock is a long term objective, but we're not shooting for it right now. If you can get this to work with 'vitamins', i.e. non-printed parts, that is definitely a step forward and a major accomplishment we can all benefit from!

The pendulum piece is the most compli
cated, and we can't really fine-tune it until we get the friction problem solved. rustedrobot and I are working on a new frame-system for all the clocks which will hold that part at the right distance from the wheel that has the spiky teeth, and then you will have something to hang the pendulum from

Can't wait to hear back from your experiments, and welcome to the printable clock project!


ssd on Apr 25, 2011 said:

It would be nice if the pendulum was in parts... like, have a way to attach the weight using a dowel and a set screw or something.... that would get us closer to an adjustable pendulum without making it harder to print... does the weight of the pendulum matter? pockets for pennies? idunno.

syvwlch on Apr 25, 2011 said:

Weight does not matter per se for the period, which is set by the distance between the axis of rotation and the pendulum's center of gravity... So by placing a heavy weight at the swinging end, you keep the overall length shorter.

Having said that, you want a pendulum with enough inertia to keep swinging but not so much that the escapement doesn't provide enough impulse to keep it going.

For this clock, the escapement beats twice per pendulum period, and drives the seconds hand... so we need a two second pendulum, which wo
uld need to be a meter long. About seven and a half times longer than the clock is wide :-)

syvwlch on Apr 24, 2011 said:

Since I'm starting to get some really valuable feedback from Makers that have printed and assembled this Thing, I figured I would say thank you by entering it in the MakerbotUnited challenge (Original idea by Sir MakeALot) and opening up a comment thread for these contributors to speak up.

I can already name rustedrobot, barrychuck, and MakerBlock provided some very handy insight on how to make a design printable in the first place (tolerances for tight and loose fits, in particular)... but I think by the rules, you guys have to actually comment here:

rustedrobot on Apr 25, 2011 said:


MakerBlock on Apr 25, 2011 said:


syvwlch on Apr 25, 2011 said:

Oh, and how could I forget DaveD's help on the previous version. He found a bug in my code which would made the gears fell to mesh properly. Big help right there :-)

syvwlch on Apr 24, 2011 said:

Here is the little animated gif I threw together showing how the escapement is supposed to work with the escapement wheel. It resets after one pendulum swing back and forth, which is why it looks like the wheel's hub ratchets back. :-)

syvwlch on Apr 24, 2011 said:

Based on the animation, this escapement SHOULD work, but the tolerances are so fine we won't know until we try it... which means I need to design an add-on to the frame to hold the escapement at the right distance from the wheel.

Unknown on Apr 23, 2011 said:

Printing now!

Unknown on Apr 23, 2011 said:

Ok, so "Pro" tips if you want this to work. Use a heated build platform (ABP belts are not flat enough). Wipe down your HBP when cool with acetone (only when cool) to remove any fingerprints since any curling at an edge will ruin the print. Level your platform with extreme precision.

The main reason for these tips is that stock, there is no room for any warpage on the teeth. I know we could fix this in openscad, but even then-these tips are the only way it's going to work for "most" people.

So far-this is amazing and everything works! Really nice fit on all the parts!

ng using .32 layer height, .40 nozzle, profile tuned using the "profilinator", MK6+ heater upgrade. I also turned off reversal and will just trim the minimal number of strings until I get a better tuning on reversal. Pics soon!

syvwlch on Apr 23, 2011 said:


The previous instance of this thing ended up illustrating a post by Cory Doctorow on Boing Boing about sharing digital models. I feel like I've just earned my Maker merit badge. 8-)


MakeALot on Apr 23, 2011 said:

Deservedly so! Nice work :)

Bophoto on Apr 23, 2011 said:

simply awesome

syvwlch on Apr 23, 2011 said:

Ad majorem Thingiversi gloriam! :-)

MakeALot on Apr 23, 2011 said:

This is looking fantastic! :)

syvwlch on Apr 23, 2011 said:

Thank you. :-)

I've learned a lot getting this far, that's for sure.