The Turbo Entabulator - a 3D-printable, fully mechanical computer

by chris, published

The Turbo Entabulator - a 3D-printable, fully mechanical computer by chris Jun 9, 2013

Featured Thing!

0 Share
Download All Files

Thing Apps Enabled

Order This Printed View All Apps


Use This Project

Give a Shout Out

If you print this Thing and display it in public proudly give attribution by printing and displaying this tag.

Print Thing Tag

Thing Statistics

158124Views 9726Downloads Found in Engineering


This is is a simple, 3D-printable (caveat: It requires some springs, bearings, rubber bands, and nuts/bolts), fully-mechanical computer. It has 3, single-digit base-10 counters for memory, and processes a chain of 10-position punch cards. With the included program, it will compute the first few digits of the fibonacci sequence. It is effectively an entirely mechanical reimplementation my FIBIAC project (http://www.thingiverse.com/thing:22803)

See it in action here: http://www.youtube.com/watch?v=1lMTgYoIGvo

And a full write-up here:http://www.chrisfenton.com/the-turbo-entabulator/

Take that Babbage!


This is more of a 3D-printable, mechanical computing construction kit, as replicating mine exactly might be difficult, as well as unnecessary.

  1. I laser-cut a copy of 'pegboard.dxf' to give me a useful 12"x12" work area with holes cut every 0.5" to mount everything. Mounting things is left as an exercise for the reader (feel free to craft your own solution).

  2. We need a way to process instructions! Print out one of these: http://www.thingiverse.com/thing:101077 and assemble it. This will let you drive 10 independent signals based on the cards you give it. Be sure to print out the 'conditional catch' and frame, rather than the 'unconditional' one.

  3. Print out 2 copies of the jacquard_base_and_axle_holder, along with 10 copies of the jacquard_base_pulley. It is designed to use a 5/32" brass rod as the axle (same one used in the punch card reader 'griff', and available at hobby stores). Mount the punch card reader to the pegboard.

  4. Print out 3 copies of this: http://www.thingiverse.com/thing:101068 - this will serve as the memory for the machine.

  5. Secure all three counters to the pegboard so that they are parallel to one another, and have one hole of spacing between them. The zero_detect levers need to all be able to rotate the same shaft.

  6. Print out 2 copies of the zd_shaft_frame (these support the zero_detect shaft on both ends, and allow it to rotate freely).

  7. Print out two copies of the zd_drive_shaft, a copy of the zd_drive_shaft_end, and a copy of the zd_pulley_shaft_end.

  8. Print out 2 copies of the zd_shaft_lever and zd_extended_lever.

  9. Assemble the zero_detect drive shaft such that a lever is bolted to the shaft for each counter, and the lever extends above the zero detect arm of each counter. The levers should be in the same orientation such that when any counter is reading zero, the shaft gets rotated. The pulley_end of the zero detect shaft should be near the 'conditional catch frame' of the punch card reader.

  10. Tie a string around the end of the conditional_catch lever arm. Through the creative use of pulleys, connect it to the pulley end of the zero detect shaft in such a way that when a zero_detect_arm rotates the shaft, the conditional catch lever gets lifted into position to rotate the card cylinder.

  11. Print out like 2 dozen copies of the 'plastic pulley' (or use real pulleys if you can afford them and/or want your machine to work reliably). Print out at least 3 copies of the vertical_pulley_holder (to place beneath the zero-detect arms of the counters).

  12. Route the strings from each hook to the ratchet pulling arms of all three counters, as well as the the very end of each zero detect arm on the counters. The layout I used (if you want to be instruction compatible with my Turbo Entabulator) is thus:

D=Decrement, I=Increment, Z=Zero_detect. R1=leftmost counter, R2=Rightmost counter.
Left-to-right: {R1D, R3I, R1I, R3Z, R1Z,NOP,R2D, R3D, R2Z, R2I}

Due to the size of the plastic pulleys I was using, and the layout of the registers, I had alternating strings coming from opposite sides of the card reader. The strings should go around the pulleys at the base of the card reader, before being attached to each hook with the M2 set-screws. Each hook should effectively pull straight-up on the string in order to maximize the 'throw'. I found that it works best to tie the string to the ratchet pulling arm, and then make it fairly taught on the setscrew when the hook is in its lowest position.

I used embroidery floss to connect everything, which is generally a terrible idea, but I had it lying around. Something with a little bit of 'give' is nice, as the tolerances on the machine aren't great. Fiddling with the string tension is a big part of troubleshooting this thing.

  1. Print out the four instruction cards and lace them together in order (I did this when they were 'in-place' on the cylinder, so that the spacing would be right). If you are facing the card reader with the crank-side closest to you, the embossed instruction numbers should be in the upper-left corner of each card.

An openscad model of the punch card would probably be great to use with the thingiverse 'app creator' thing, but I haven't had time for that yet. Thick cardstock should work fairly well (I think the cards I printed are 0.1" thick), I would think.

  1. Turn the crank while humming the 'Powerhouse' song by Raymond Scott and marveling at your very own Turbo Entabulator - a 3D-printed, entirely mechanical computer!

More from Engineering

view more

All Apps

3D Print your file with 3D Hubs, the world’s largest online marketplace for 3D printing services.

App Info Launch App

Auto-magically prepare your 3D models for 3D printing. A cloud based 3D models Preparing and Healing solution for 3D Printing, MakePrintable provides features for model repairing, wall thickness...

App Info Launch App

Kiri:Moto is an integrated cloud-based slicer and tool-path generator for 3D Printing, CAM / CNC and Laser cutting. *** 3D printing mode provides model slicing and GCode output using built-in...

App Info Launch App
KiriMoto Thing App

With 3D Slash, you can edit 3d models like a stonecutter. A unique interface: as fun as a building game! The perfect tool for non-designers and children to create in 3D.

App Info Launch App

Print through a distributed network of 3D printing enthusiasts from across the US, at a fraction of the cost of the competitors. We want to change the world for the better through technology, an...

App Info Launch App

I'm learning Java, so as a project, I decided to make an emulator of this "computer".
(As of this writing), it isn't complete, but it should be sometime soon.
As the "emulator" supports many 'memory banks', the punchcard system uses a boolean array as follows:
counter1 increment, counter1 decrement, counter1 check 0, counter2 increment, counter2 decrement, counter2 check 0... and so on and so forth.
If anyone is interested, it can be found here: https://github.com/dmelcer9/MechanicalComputerEmulator

I built a larger electromechanical version with the same basic architecture called the 'Numbotron': http://www.chrisfenton.com/the-numbotron/ - my website has a link to a simulator so you can play around with it. That one has 8 x 3-digit registers, and a drum that can hold 20 instructions. The main difference between the two, architecturally, is that the Numbotron will skip instructions if the 'check if zero' condition is true at the start of the instruction, whereas the turbo entabulator will still inc/dec all of the selected registers once if that's true. I haven't thought about how to do that entirely mechanically yet, but it lets you do branch predication, which enables much more complex programs for it (like finding prime numbers!). Check it out!

Great idea. Was anyone able to put it into work?

cool - but what does it do?

But, does it reduce sinusoidal deplenaration?

I had an operation for that but when they pull the plug out of your nose it's a killer !

"An Excellent Computer."

-Chef Excellence

Thank you Chef Excellence for this review.

I am very new in learning how to position pieces so that they come off of the table without a crowbar and so that clean up is clean (not too many little stubbies from scaffolding).
I noticed that you place thin things so that they print vertically. Is that the way you printed them? I have found that when I do that (not on your stuff but others) it starts to wobble at the top and does not finish well - especially round things with a small foot print.
do you have some tips on when to do it vertically and when to lay flat. Also figuring out when to raft and when to scaffold.
Thanks - your computer things look great - can't wait to print them.

I pretty much always print long/thin things with the longest dimension on the platform. I have a Thing-o-Matic which has a moving platform, rather than a moving extruder, so very tall/thin parts printed vertically rarely work.

I too am a newby at 3D printing but I think I can help your problem. Typical for me is to print a fine pyramid with a misshapen blob at the tip. If you have a fan use more cooling so tall prints are stiffer at the top. If you can't do that, try printing 2 or 3 at once so each can cool while the print head travels between them.

Very cool. I think it would be nice if you gave us an explanation of what exactly was going on in the video though.

No problem! With each revolution of the hand-crank, a little punch card on the 'cylinder' (the rectangular box that has the 4 punch cards draped over it) selects a set of hooks that get lifted up. Each hook is tied to a string, so that when the hook gets lifted up, the string gets pulled on. Each one of the three counters has two strings connected to it. Pulling on one string increments the counter, pulling on the other string decrements it (if you tried to pull both at the same time, it would just jam up!).

The 'cylinder' gets rotated 90 degrees, so that the next 'instruction' punch-card selects the hooks, when the little hooked lever-arm behind it is raised up. Each of the counters also has a little indent on its surface, so that when it reads '0', a spring-loaded lever gets raised up (three additional hooks are used to optionally force these levers downward, so that the state of the counter will get ignored), which rotates a shaft that ultimately raises the lever-arm that advances the cylinder - Voila! The machine executes an 'instruction' that looks something like this: "Increment or Decrement this set of counters until one of the counters reaches zero"

The four instruction cards on the cylinder form a little program that computes the fibonacci sequence, a number sequence where the next number is formed by adding the two previous numbers (1,1,2,3,5,8,13,21,34,etc.). In the video, I pre-load the machine so that the first two counters each read '1', and the last counter reads '0'. As I turn the crank, the counters get incremented or decremented until the result gets deposited in the right-most counter (and I left a spare hook to ring a little bell when the next result was done, but sadly, I couldn't find a suitable bell in time).

The video is of my computing the fibonacci sequence up to '8' on the right-most counter. I was really excited at the end, since I think it took me about 5 tries to get it to run without something jamming up or skipping. It was too hard to turn the crank and explain what was going on at the same time, and I was using a laptop webcam to film it, so it wasn't easy to move it around a lot. The pictures really give a better view of how the machine works.

What are the specifications for the cards?
My CAD software was giving me a bunch of issues with trying to measure position and size of the holes, and wouldn't give a round number.

The instruction holes are on 0.3" centers, and 0.5" tall x 0.2" wide. The cards are 1.8"x3.3"x.1" thick. The centering holes at the top and bottom are centered in the middle of the cards, but the hole centers are offset 0.25" from each edge (the holes themselves are 0.25" diameter).

Here is the link:
Thingiverse messed up the project, but instructions are in the description.

Customizable Punchcard

Thanks- I am also trying to learn openscad, so that will be a nice challenge.
I'll post the thingiverse link when(if) I'm done.

Congrats at being featured here and on leapfrog 3d printers.

Congrats on being Featured, I knew you had it in you!

How many gigahertz? :D

That's really awesome!!

My reaction: WOooOOAAAA!

Holy smoke, you guys are just in time to produce an analogue chesscomputer to celebrate it's a 100 years ago that the chesscomputer made its debute!
It could mate king+rook versus king at a tinier board from a specific startposition against any legal counterplay.
See http://en.wikipedia.org/wiki/El_Ajedrecistahttp://en.wikipedia.org/wiki/E...

You nutter! Love it!

Uber-mega-points for the name. I mean, it's totally awesome, and appropriate as well, so that name takes it right over the top. Well done sir!

I should make this as a ode, to my days working at Babbages before it got turned into gamestop ;)

Holy Crap! This is amazing!