Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Mechanical CPU Clock

Soulskill posted more than 2 years ago | from the time-flies-when-you're-watching-ALUs-flipflop dept.

Hardware Hacking 37

An anonymous reader writes "I designed this CPU clock to help people learn about how a CPU works. The Mechanical CPU Clock shows the basic building blocks of a CPU (ALU, buses, RAM, registers, and a Control Unit). It executes a set of instructions which will emulate a simple wall clock. A detailed build/explanation is available on"

Sorry! There are no comments related to the filter you selected.

Slashdotted already (5, Funny)

Ellis D. Tripp (755736) | more than 2 years ago | (#39703007)

Looks like he's trying to serve webpages with a mechanical CPU or something....

Re:Slashdotted already (2, Informative)

Anonymous Coward | more than 2 years ago | (#39703041)

youtube to te rescue

Re:Slashdotted already (2)

NoNonAlphaCharsHere (2201864) | more than 2 years ago | (#39703193)

It's just underclocked.

Re:Slashdotted already (2)

lelazary (2619181) | more than 2 years ago | (#39704163)

Yea, that my hosting provider. I think it would have been faster if I served the pages from the clock...

Re:Slashdotted already (3, Funny)

Ihmhi (1206036) | more than 2 years ago | (#39704301)

Slashdot has the same model CPU for their comment system.

I designed a mechanical penis... (-1)

Anonymous Coward | more than 2 years ago | (#39703043)

I designed a mechanical penis that I used to fuck your wife. Detailed videos can be found here [] .

Re:I designed a mechanical penis... (-1, Redundant)

segin (883667) | more than 2 years ago | (#39703265)

Actually, I think the video you want to link to is this one [] . That aside, I'd like a spec sheet and diagram, please.

Re:I designed a mechanical penis... (1)

Anonymous Coward | more than 2 years ago | (#39703311)

She sent it back. It was too small. Don't use your own as a life sized model.

Put This on Slashdot TV (5, Informative)

Anonymous Coward | more than 2 years ago | (#39703113)

Are you still listening? This is something I would watch on Slashdot TV.

Re:Put This on Slashdot TV (2, Insightful)

Anonymous Coward | more than 2 years ago | (#39703255)

YES!!! Yes Yes yes! Perfect example! Mods, pay attention!

Re:Put This on Slashdot TV (2)

Ihmhi (1206036) | more than 2 years ago | (#39704315)

Whoa, what if they, like, did an Ask Slashdot about stuff we wanted to see, and then they like, showed it to us, man? That's so Web 2.0.

Already slashdotted (1)

sandytaru (1158959) | more than 2 years ago | (#39703205)

That was fast.

Re:Already slashdotted (0)

Anonymous Coward | more than 2 years ago | (#39707929)

That was fast.

Unlike your dupe post. And the other post also contained a pertinent joke.

Not really (2)

Talennor (612270) | more than 2 years ago | (#39703715)

So this is a neat counter. But it functions nothing like a CPU. The article tries to describe some instruction set, memory, bus, and registers. But it's only as close as most car metaphors (really off the mark).

Re:Not really (1)

Anonymous Coward | more than 2 years ago | (#39703799)

>> But it's only as close as most car metaphors

So you're saying it's like an alternator?

I have only one question (4, Funny)

Hentes (2461350) | more than 2 years ago | (#39703783)

If you use this mechanical CPU to implement a clock, then how do you implement the clock of the CPU?

Re:I have only one question (0)

Anonymous Coward | more than 2 years ago | (#39704159)

Didn't RTF Instructable, did you? For the timing of the clock he used a motor that made 1 revolution per hour. If it were me I'd use a faster motor and reduce the movement through gears so the motor wouldn't run so hot. This method would also have the added benefit of being able to vary the clock speed by swaping out gear sizes to assist in retasking the device for other counting purposes.

Ahhh... that's why (0)

Anonymous Coward | more than 2 years ago | (#39704165)

I have always been wondering why my CPU would make some "clonk" noises every so often, now I know it is because of the ball. Thanks.

so? (0)

Anonymous Coward | more than 2 years ago | (#39704305)

I breadboarded a digital wall clock (typical 24 hr cheapo alarm clock circuit) in high school. It's just a bunch of decade and divide-by-six counters, the only real trick is getting a solid 1hz timing signal. Which isn't really a trick, but I'd just used the built-in freq generator in the breadboard trainer, and didn't roll my own with a 555.

The fun part, was I hooked it up to an old magnetic-dot bus-sign I'd rehabilitated. It looked pretty funkadelic when it was all done.

But anyways, I followed this instructible called a 'schematic' and there are plenty of those out there.

Nice! But confused about writeup: (3, Interesting)

yndrd1984 (730475) | more than 2 years ago | (#39704627)

Brilliant work, but I find his terminology confusing.

From what I can see, there's really only one register - since the "registers" are linked, he can only store a 4-bit number (plus an instruction counter in the form of the track "flag"). "Register B" is really an instruction to clear both the register and the instruction pointer, and "'registers A&C"' are really an [inc A, if A<11 then IP=0 else IP=1] instruction. From this perspective, it's a two-instruction, one-register machine.

I only did that because I just couldn't get nine instructions and three different registers from watching the device function.

Am I the only one to see it that way? Are both ways (at least partially) valid?

Re:Nice! But confused about writeup: (3, Insightful)

lelazary (2619181) | more than 2 years ago | (#39704853)

You are right. The [inc A, if A11 then IP=0 else IP=1] is actually one instruction that was optimised after the first prototype. Originally I had these as separate registers with three other flip flops at the top for the program counter. However, I noticed that I can remove that (which made the clock simpler and more compact) if I combined both instructions together and only use one ball drop for the inc and check. I would love to figure out other ways of explaining this to people who don't even know there is a CPU in a computer. So any suggestions are welcome.

Re:Nice! But confused about writeup: (1)

capnchicken (664317) | more than 2 years ago | (#39714659)

Your optimization kind of ruined the 'its a CPU' aspect, don't you think? It looks more like a clock inspired by how CPU's work now.

Re:Nice! But confused about writeup: (1)

lelazary (2619181) | more than 2 years ago | (#39722783)

I agree. The main driving force was size. Implementing a full general purpose CPU takes allot of room using ball logic (even more then using relays, because of gravity). This makes the CPU very tall (see [] for how to implement ROM,RAM and other gates). I originally started by trying to implement a mechanical binary clock, but it became challenging when you need to count to 12 and not to 16. So I used the concepts of a CPU (in particular a program counter, comparisons, and branches). I actually started with the assembly language program and programed it mechanically. However, I believe that this clock can still be used to explain what is inside a CPU (even though its seems confusing). Due to the mechanical nature of the clock, it makes people (not computer scientists) believe that they have the potential of understanding it, so they try. Try that with a silicon blob and a schematics, people loose interest very quickly.

Re:Nice! But confused about writeup: (0)

Anonymous Coward | more than 2 years ago | (#39727679)

As long as you're accepting suggestions (this is more or less unrelated to the CPU itself), you can't see the "minute" position for ~50% of each hour. Why not lengthen the arm, add a 3rd magnet, and put a 2nd steel ball in its own track to mark the minutes? (and move the engraved numbers outward)

Re:Nice! But confused about writeup: (1)

lexman098 (1983842) | more than 2 years ago | (#39759211)

Here's a suggestion, don't use an arcane mechanical form of logic as an explanation. I design digital logic in chips for a living and this confused even me.

It sounds like you're just implementing a counter with a 4 bit register to decode the hour. The value input to the register is either the current value plus one or 0 if the current value is 4'hB (or 0xB for software guys). This is literally a 4 bit register, incrementing adder, comparator and a mux or two. Draw a block diagram of that and people will understand a lot better, although it won't be as exciting because this is really just a tiny "circuit" which has nothing to do with a CPU. There's no fetch, decode, memory etc.

Re-label as: interesting project implementing simple ASIC using mechanic parts. I thought the most interesting thing about it was the flip-flops that actually flip-flop.

Re:Nice! But confused about writeup: (0)

Anonymous Coward | more than 2 years ago | (#39762275)

You guys need to define a CPU first before exclaiming its not a CPU (just brush up on your CS). It is a Turing Machine and therefore a computer, which is useful in explaining a CPU. It might not be a CPU, based on the definition of a Universal Turing Machine (UTM). A UTM is capable of simulating every possible Turing Machine, so you will need to prove that the instruction set can not do that. This is not that easy: see

Re:Nice! But confused about writeup: (1)

BradleyUffner (103496) | more than 2 years ago | (#39704873)

It just looks like a divide by 12 counter to me. All it does is takes the clock signal and makes it happen 12x less frequently. I don't see how it could be considered a cpu at all.

Mechanically it a very cool toy, but when trying to use it to explain the inner workings of a cpu it kind of falls flat.

His terminology is wrong (1)

Hentes (2461350) | more than 2 years ago | (#39706463)

It's not the model of a generic programmable CPU but of a purposebuilt circuit. He just used assembly logic during the planning.

Re:Nice! But confused about writeup: (0)

Anonymous Coward | more than 2 years ago | (#39707189)

You guys are missing the point. Its not meant to be a CPU and run Doom, but meant to explain the inner working of a CPU to a layman.

Re:Nice! But confused about writeup: (0)

Anonymous Coward | more than 2 years ago | (#39714715)

I think it would just confuse more than anything.

Sequential logic (2)

GrahamCox (741991) | more than 2 years ago | (#39706241)

It's neat and nicely implemented, but it's not emulating a CPU at all.

Instead, what he has made is a 4-bit counter with an AND gate to detect the count of '11' which then resets the counter. The minutes are given by the position of the ball bearing in the outer rotating ring, so the timing of the system derives from the rotational speed of this, which presumably is driven by a motor (stepper?).

The wires linking the gates are not a bus, but are equivalent to the wiring between gates. What we have here is a 4-bit counter and AND gate.

There is no stored program and the configuration of the "ALU" cannot be changed and so by any definition, this is not a computing machine.

Re:Sequential logic (1)

lelazary (2619181) | more than 2 years ago | (#39718301)

Its a bit more then a counter and an AND gate, since its also needs to check if a value is equal to a number and branch based on that (so it has a one bit program counter). You can also say that a CPU is nothing but switches, or atoms. It is the level of abstractions that give meaning to the physical properties. This particular "computer", could also be reprogrammed by reconfiguring the registers. However, the programing is done by changing the tracks or the flip-flops (see digi-compII or my tutorial on For example, the ALU can be changed to preform a different operation by rewiring or switching the T levers to L or I. Therefore, it could be considered as a fixed-program computer, which was how the early computers were programmed, by physically changing the wiring (see ENIAC). However, this "Computer" (and I do use the word very loosely) was not meant to solve-complex differential equations, but to show people how these different components act, and to get them to think about what is inside a CPU.

Digi-Comp II Reincarnated? (3, Interesting)

Pokeadot (81723) | more than 2 years ago | (#39706333)

Reminds me of the Digi-Comp II that I had as a kid. It had the same rocker type mechanisms which simulated registers. See: ""

Re:Digi-Comp II Reincarnated? (1)

cellocgw (617879) | more than 2 years ago | (#39711723)

My thoughts exactly. I remember the Digi-Comp as my first foray into machine-language programming :-)

mechanical oscillation is the source of CPU clock (1)

dermond (33903) | more than 2 years ago | (#39708177)

it is the vibration of the quartz crystal that generates the clock frequency.... []
Check for New Comments
Slashdot Login

Need an Account?

Forgot your password?