Everything about this Turing machine is absolutely brilliant. A Turing machine uses a strip of material to record, calculate, and change data. [Mike Davey] built this one using servo motors, a Parallax Propeller, felt-tipped pen, and 1000 feet of film leader. The machine writes characters to the leader, reads them using a grayscale camera, and erases them with a rotating felt cylinder.
Watch the video after the break, it covers every one of the intricate details that add up to [Mike’s] perfect build. We loved his Nickel-O-Matic but he really outdid himself with this one. With our mouths still agape we’re going back for our fifth viewing.
[youtube=http://www.youtube.com/watch?v=E3keLeMwfHY]
[Thanks SheeEttin via Slashdot]
Simply wahhh…. Wonderful machine !
Hats off!!! Great work!
electrical engineering at its best! this is what we’re doing it for guys!
Brilliant, after the slightly disappointing ‘hacks’ a bit previously, the last ones completely make up for them!
I love the nickel-o-matic too that I seem to have missed before :(
Something for me to aspire to!
Mowcius
Absolutely incredible craftsmanship on this. Perhaps the most impressive part is just how professional and complete the build is, to say nothing of the actual concepts it operates on.
This is seriously something I could see sitting on display in a museum somewhere, running through operations all day.
I wish this could be mass produced and sold at this level of quality. I would love to have one sitting on my desk.
but WHY
…is this needed?
It’s needed, John for the same reasons we climb mountains: because.
I agree with MS3FGX, this should be in a museum. Very cool! The felt-tipped pen is perfect.
OMG.., this is just a great project, awesome!
it is great….
…but…
…it would be perfekt, if you could also see the program graph with its states and transisions…
Turing would be proud.
but the tape is only finitely long!
A turing machine can follow any algorithm if it has an infinitely long tape, but not all algorithms need an infinitely long tape.
Unfortunately this is not actually a Turing machine, based on my understanding. It’s just a binary display. A Turing machine’s tape contains characters that are instructions to perform various operations like incrementing and moving the tape.
@macegr: i thought it’s very clearly explained in the narration that the camera reads the instructions?
Nah, it’s a Turing machine but that’s not why. I was remembering Brainf*ck which is supposed to be Turing-complete, but the program you write is actually the action table and the tape is where data is stored. It doesn’t have to be ones and zeroes on the tape but it’s just where the data is stored and retrieved, it doesn’t contain the program.
Hmm yes indeed, my bad, the tape only stores the data. The instructions are not really obvious in this machine.
It’s a Turing Machine (TM) viz it has a Finite State Machine (FSM) that can make transitions based on the bit it reads off the tape, and based on the state it can move the tape a unit left or right and mark the tape with a new bit.
The FSM in this case is implemented as a microcontroller in this case, but it could have been done with brass gears. The important point about TMs is that you can set up the FSM in such a way that it can read a description of any TM from the tape and implement that other FSM’s transitions, reading, writing, and tape moving. (i.e. you give Turing Machine A a tape where the first 1000 cells are marked with a description of Turing Machine B, and let it run, you will end up with a tape where cells 1001…infinity are the same as you would have gotten in cells 1..infinity if you had implemented TM B directly. If you are a purist you can make it slide the contents of the tape down to overwrite the TMB description to get exactly the same tape as TMB would have produced.)
The fact that a TM can be set up to take as input a tape with a description of ANY possible TM, and then act as if it were that TM, makes it a Universal Turing Machine (UTM). Designing the transition table for the FSM to implement a UTM on this machine is an exercise for the reader, but it is not ridiculously hard. (It’s the equivalent of writing a language interpreter instead of a compiler.)
Once you have a UTM you can hoopsnake it by giving it a tape with its own description on it. The interpreted UTM can then emulate a third TM, which can also be a description of itself and so on. It’s not very computationally efficient, but it works if you are patient.
@RustyBadger actually, science has shown that regularly climbing mountains is necessary to the continuity of the space time continuum
also… Wicked sweet machine!
This is an absolutely awesome piece of work. I also like his answer to the question “Why didn’t you use an Arduino?”: “I just didn’t want to upset the people that read Hack A Day.”
Although almost all digital computers are technically Turing Complete, this one is nothing short of a piece of artwork. The fact that he actually took the Turing example and made a computer out of it is nice. The quality of the build makes it the artwork. I am sure that Turing is smiling with teary eyes at this example in digital heaven.
There is no need to explain why here. Why is there a Mona Lisa? Why is there a Venus Demilo? Why is there Peperoni? Because. Thank you HaD, this one was very nice.
A masterpiece of art and engineering… a really fine piece of work.
I agree that this really needs to be in a museum someplace, or possibly in a remote monastery calculating the 9 billion names of God. ;)
BTW, looking into this I saw a link to Lego-based Turing that’s not as classy, by a neat machine none the less:
http://legoofdoom.blogspot.com/
This is a superb piece of kit.
I wonder how much time it took to build this.
Very nice.
Now if only it were steam powered:
http://www.cs.washington.edu/general/sptm-caption.html
Just beautiful!
Hi Gang, this is Mike the builder. Sorry I hadn’t commented before this, I am a Hack a day regular, but this has been a hectic weekend. First of all a big think you for all the kind comments, it was fun to build but hear comments from people like you , that understand what it takes to build something like this is very rewarding.
I’m guessing I have between 150 and 200 hours into the project, but I was never counting. I have had interested from The Computer History Museum and Bletchley Park. Because I build for the joy of building and not that of ownership, I have always planned that I wouldn’t keep it forever. To have museums interested in it is very cool.
beacon had said with would be nice if it showed the states and transitions as it runs, it actually does on on the LCD display, it’s just not visible on the video.
Mike
@bob he might as well have used an arduino, he’s using a propeller. An 8-core processor running each core at 20 MIPs (80 MHz), and I think the things need like 8 connections to function… though what he had looked like a prebuilt dev-kit edition.
Mike,
Only 150-200 hours???? You, sir, are a zen-level hardware hacker.
naah. its bullshit :D
Beautiful!
This is ab absolute work of art
Thank you very much for this explanation!Very useful!!