Math Monday: Marbinary Counter

by Glen Whitney for the National Museum of Mathematics

Last week’s accomplishment may not seem like much: a minimal “machine” that holds one marble and then dumps both marbles when a second one rolls in. This week we will see how to replicate that simple motif to create a full-fledged binary counter that will record the number of marbles deposited in the machine.

Here’s the idea: if the trap discussed last time is to operate as a binary digit, either holding no marbles (to record a zero) or one marble (to record a one), then when a second marble comes along to “overflow” that digit (and the trap dumps), then one marble should carry to a next trap, which will represent a digit twice as significant as the first trap.

Mechanically, however, the trap dumps both marbles when it dumps. And so we need to introduce a second component, pictured at right, that allows different marbles to take different paths — what the Chaos Toy company calls a “paddle switch,” but which a circuit designer might call a “flip-flop.” Here’s how it works: in the configuration shown, when a marble drops from above onto the middle of the component, it tilts the central paddle to the left and exits from the left end of the switch. But that leaves the switch in its other configuration, which will cause the next marble to tilt the paddle to the right
and exit from the right end of the switch. And so on; successive marbles dropping from above exit on alternate sides of the switch, as the paddle in the middle alternately tips left and right.

So it’s a paddle switch that will allow us to carry just one of the two marbles dumped when a trap overflows (and send the other to some kind of holding bin). Thus, to extend last week’s one-digit counter by another digit, we just need to add a track that the marbles will dump into, arrange that track to lead to a paddle switch, and then connect one exit of the paddle switch to a next trap. Here’s last week’s machine with such a track and paddle switch added:

(You may be wondering why the added track has that S-curve in it. That’s to slow down the two balls that were dumped by the overflow so that the don’t fall into the paddle switch too close together in time and either jam the switch, or both go the same direction because the paddle doesn’t have enough time to tilt all the way before the next marble arrives.) And here’s a side view of the machine with the second trap in place:
At this point it should be clear that the structure so far can simply be repeated (materials and space permitting) to add as many binary digits to the counter as you would like. I decided that four traps fit nicely in this framework, leading to this completed binary counter.

In the picture you can also see a basket on the right which catches all of the extra balls that are not used in carrying from one trap to the next, as well as an additional basket on the left which catches both of the marbles dumped when the entire machine reaches capacity and overflows.

When will that happen? Thinking of each of the traps as a binary digit, I’ve arranged them as closely as possible to the “usual” way, with the most significant digit on the left. In that leftmost trap, a single marble represents eight marbles deposited into the machine. In the next place, a marble represents four; in the place one from the right, it represents two deposits; and finally of course a single deposited marble runs into the leftmost trap. (Unfortunately, the more significant digits also have to be lower, rather than only to the left, because of the direction of gravity powering the machine. Nevertheless, it’s still pretty easy to read off the current number in the counter from left to right in binary.) Adding up the values of all of the digits, this machine should be able to count fifteen deposited marbles before overflowing on the sixteenth marble. Let’s see it in action!

Tune in next week when we turn up the dials on this simple counting machine…