Building the marble adding machineThis is based on an article I wrote for Make magazine at their request in early 2008. An article based on this content was published in Make Magazine issue 20 in late 2009 - more than a year and a half after I submitted it to them.
How I came up with the ideaMy marble adding machine had its roots with an automated Lego marble machine that I had built many years ago. Lego and marbles make a great combination, because most marbles fit nicely in the space of a two by two stud Lego piece (16x16 mm). I had built an elevating device and was adding more and more crazy and noisy ways for the marbles to descend. To add more variety, I decided it was desirable to have something that alternately sends marbles down different paths.
This shape is hard to make out of Lego. My attempt at building this worked, but it was
big and inelegant, and the force of the marbles hitting the tail of
the 'Y' would cause it to frequently disassemble itself.
The one at left is built with one side open to better illustrate how it goes together. This seesaw design proved itself to be very durable and reliable. And as an added advantage, the marbles come out the left and right, so less vertical height is lost, leaving more height for the marble tracks.
Naturally, the next logical thing to do is to cascade several of these together
so that the stream of mables is split into more than two directions.
We can increase the counter's value by two at a time by dropping marbles directly onto the middle rocker, or by fours by dropping them directly onto the third rocker. Moving from 'counter' to 'adder' is just a matter of controlling which rockers the marbles fall onto.
However, if such an 'adder' were to become part of a larger marble computer, it would still
be necessary to have some means of transmitting the state of the counter as a pattern of marbles.
I spent some time thinking about this, and came up with a simple way to retain the marble
in the adding element. That way, the computer's stored number could be released
as a series of marbles when the counter is 'read out'.
The cavity to the right of the rocker keeps the marble from falling out until the rocker is rocked back to the left. This one-bit counter is shown in a state of a '1' (rocker rocked to the right). When the counter is reset, by manually flipping the rocker back to the left, the marble in the cavity to the right can roll out and is released as the counter value. Getting this to work reliably is tricky, and I experimented with different shapes for the rocker and cavity. But as it turned out, the original Lego rocker shape was close to ideal, and I ended up nearly copying its dimensions. The cavity needs a gentle slope to hold the marble so that it doesn't push too hard against the rocker, and the granularity of Legos was just a bit too coarse to prototype that aspect. If you want to build your own adding machine, I highly recommend prototyping a one-bit adder first, because getting this to work reliably is tricky. It's best to assemble it with just hot glue, so that it's possible to pry pieces off when making alterations. Also note the relatively high drop at the top of this prototype. With the marbles falling a fair distance before hitting the hole on the left most (most significant) bits, I found the marble would on occasion bounce off the rims of the hole, so testing it with a large drop is helpful for debugging that.
How the machine worksHaving come up with an effective adder element, I set out to build the adding machine. This is a rather detailed description of how the machine works.
The internal state of the machine is held by the toggles, such as C and D. Toggle C is in a '0' state, while toggle D is in a '1' state. Toggles in the 1 state have a captive marble E Above each toggle is a hole K exactly above the pivot P of the toggle. The role of the hole is to make sure that the marble falls straight and directly onto the toggle. When a marble falls onto a toggle in the '0' state such as C, the marble is deflected to the right by the tooggle's peak. It then rolls off to the right, causing the toggle to flip to the right, and trapping the marble, such as in position E. This results in a '1' being stored such as the toggle in position D. When a marble falls onto a toggle in the '1' state, the marble is deflected to the left. It rolls off to the left, causing the toggle to flip and release the captive marble in position E. After rolling off the toggle, the marble falls through the hole K to the left of the toggle, and onto the top of the next toggle. The marble effectively acts as a carry, adding a '1' to the bit in the next most significant position. In addition to the carry marble, an input marble may also fall onto the same hole K through path L. However, the carry marble is always slightly delayed compared to the marble falling directly down path L so that the marbles will not jam each other trying to fall down the same hole at the same time. When a toggle flips from a '1' to a '0', the captive marble is released and falls down path M. The marble must pass through a hole at position F which helps to steady the marble, before falling through the holes in position G and rolling off the ramp J into a container. To release the result from the machine, and reset it, the result slider H is pushed to the left. This first closes the holes at G, and then forces all the toggles to the left, releasing all the marbles held in the machine down path such as M, through hole F, to finally come to rest above the holes at G, which are blocked by the slider which was moved left.
Once the result is read, the slider is moved back to the right. This releases all the
marbles down ramp J, and also unblocks all the toggles.
The machine is left with all zeros in it and ready for the start of another addition.
It's hard to find a spring soft enough for this purpose. A rubber band would work just as well, though rubber bands do tend to go bad after a few years.
The diagonal slider is a piece of birch 5 mm thick and 23 mm wide. It's best to size this off your machine,
rather than from plans. To get the location of where the notches need to go, just push the piece against
the nails, and mark where the nails touch it to know where to cut the notches.
Building the machinesIf you would like to build the machine, you can use my plans for this machine
The photo at left shows me doing a check of the parts on the paper layout. I hadn't cut
the uprights to their final length yet when I did that.
For my original machine, I used a 5/8" forstner drill bit. Only about half the marbles I tried would pass through a 5/8" hole, so I had to carefully sort the marbles. I also had to be very careful because even the slightest burr on any of the holes could get the marbles stuck.
For this machine, I used a 11/16" drill. It's not a common size, so
it needs to be bought or mail ordered from a woodworking supply place. I got mine
from Lee Valley Tools, but you could
can also mail order it from places such as rockler.com, woodcraft.com,
or
Amazon.com
Final assembly
After cutting out the parts, the next step is to glue everything together.
It's enough to just use carpenters glue and glue the pieces straight down on the plywood.
For the main part of the machine, I glued down the rails at the top and bottom first, along with the rightmost upright. After the glue for those dried, I glued in the sets of two uprights and one horizontal for each bit position. The image shows the two leftmost sets of parts just loosely positioned (not glued yet).
To mount the slider for releasing the marbles on top, I added a temporary spacer made of
cereal box cardboard to the slider, and then glued the rail that goes above the slider
pressed against that. That way, there will be enough slack for the slider to slide freely.
Use the same approach for mounting the support blocks for the result slider on the bottom.
To make a base for the machine, bevel the edge of a piece of 2x6 at 17 degrees, and screw the machine to it. Hopefully, this angle should be sufficient to keep the marbles from getting ejected out the front of the machine. If you find the marbles falling out the front, it may help to carve out the back edges of some of the holes that the marbles pass through, or just to increase the lean of the machine.
Chances are, your machine may need a little bit of debugging after you finish it to get it working perfectly.
My original page about the adding machine (version 1) Plans for the marble adding machine (version 2) To my Woodworking website
|