High school grad builds 8-bit computer from scratch
digitaltrends.com
digitaltrends.com
To those complaining that this could be done on a fpga in verilog or something, I think that might be kind of missing the point. There is just something about building the logic up from the ground that is very satisfying. Hooking up the physical wires makes it all that much more real. A huge time investment, but i got the feeling the kid spent a good deal of his free time on it.
So again, mad props. Hope it gets him into a sweet school.
So the stuff this teenager hacked together is just a steady soldering hand and a lazy saturday afternoon.
Yeah, no kidding. I just graduated from a computer engineering program and I still find this impressive, especially for a high school student. What could I do with a computer right out of high school? Code some java or c++ (poorly) and install linux on it? That's about it.
Thats me, although there are ~2000 kids at my school.
This probably earned him a salaried job at essentially any place he wants to work. Or at the very least an internship.
I hope he considers skipping college. There's no reason for him to be driven into ~$50k worth of debt, and I've certainly been happy with my decision not to go.
Not to mention there is a lot of stuff he could learn at college that would actually be tremendously useful if he wants to continue in this path. Everything from the physics of conductors to more advanced electronics design are things that can be quite hard to pick up from tutorials online.
Instead undergraduates are taught how to write Java programs, which is one of those languages where it's impossible to worry about silly things like cache-line misses, because there are too many layers of abstraction between you and the hardware.... (And yes, you youngsters should get off my lawn, while you're at it. :-)
(1) in-depth knowledge of math, which has always been an asset. Those that don't go to college have issues here.
(2) met like-minded friends that were inspiring and most are quite successful now.
(3) allowed me to go to grad-school and specialize in machine learning. This specialty opened doors that ultimately resulted in company ownership (yes it ended well)
(4) personal satisfaction in knowing that I can finish something with long term vision. College is only four years, but when you are young it seems daunting.
He could be working with supercomputing, nanotech, quantum computing, Internet-scale problems, etc. in a couple of years at one of those schools. It would take much longer to get there on the DIY path. I know of what I speak: I went the path of most resistance and I was in my late 20s by the time I really started working with people I considered on or above my level and getting paid fairly for it...i.e. building things that millions of people use. I'm probably not as smart as this kid, admittedly, but I'm enough above average to know what his career path will most likely look like if he opts to skip university.
I'm not suggesting he won't be a monstrous success in the future. I'm pretty confident he will be. But, why not take the short cut?
It's the folks who aren't brilliant, that I think should skip college, or choose a super cheap school. Brilliant people should at least spend a few years in the environment of a great school so they can get a feel for how wide and accommodating the world is for a brilliant individual with drive and ambition.
It comes down to what he wants. Personally, I wanted freedom from debt, freedom from high school, and the freedom to work with creative people. Those factors made me decide to drop out of high school (after I had landed a game development internship, i.e. a solid job and therefore a solid resume for the future).
Truth is you do get a lot more from college for your debt load than just job training.
(And just so you know, I went, but didn't finish, largely because I found myself making a very good living developing software and also because my personality has never accommodated being part of the student-underclass.)
Most people need it, because they can't do all this on their own. Furthermore, some of them have such good steel in their knife, that sharpening will be a great leap, and it would have been a waste, in some sense, to miss it. The tragedy is that we convinced everyone that they NEED the sharpening to have a good life, even if they have tin knives, as if a sharp knife is the only tool.
And it would be a lot faster (both in terms of building the thing, and in terms of how fast the processor would clock) and cheaper.
It's definitely cool -- not groundbreaking, because after all, people used to do this by hand :) It's a bit like rebuilding classic cars. Its fun to touch the hardware and imagine what Woz may have been thinking when he designed the Apple I 30+ years ago.
Hopefully he will go on to work on a replacement for computer—car analogies.
I suppose I should have worded my comment better.
He only has TTL chip diagrams which do not show the internal architecture.
He pumped the OS in one bit at a time using DIP switches, wrote his own hex editor, and then wrote his own assembler and emulator, in javascript/canvas: http://web.mac.com/teisenmann/iWeb/adeptpage/adept_compiler....
The OS code is here: http://web.mac.com/teisenmann/iWeb/adeptpage/DUO_OS.txt
Run it through the emulator, it works.
Definitely not just a bit of light soldering...
I am not an expert on the subject, but I suspect making a facility that can manufacture thousands or millions of transistors, and then operating that facility would take obscenely more man-hours than one man has. Even if his goal was only a 4004, or even just a bunch of breadboards full of TO-92's.
Vacuum tube based might be possible for a very simple computer, if automating the glass-blowing and delicate assembly isn't too hard. After all, at least it's macro- rather than micro-!
Getting through smelting to machine tools would be impressive enough for me. Say stone-age to mid-industrial revolution.
In "Designing Analog Chips", Hans Camenzind tells the story of designing the 555 timer chip; he did the whole design, without a computer, up to cutting the masks out of Rubylith. It took him several months of nonstop work.
Based on these, I extrapolate that one person could do all the physical steps involved in bootstrapping to a computer from stone-age technology. (I won't say "one man", because that person might have to be Jeri.) And I think they could probably do it in substantially less than a lifetime.
But I don't think it would be possible for one person to do all the intellectual work, or it would have happened long before the advent of agriculture.
And I think it would be a lot more fun to do it with some friends.
A mechanical device would be much easier, and would be well within the capability of a single person with all of the prerequisite knowledge to make. Just look at the Antikythera Mechanism.
Even that's a huge head start over having to mine the raw materials.
It would probably take several lifetimes to build even the most basic computer from complete scratch even with all the manufacturing knowledge available.
I'd go mechanical any day. I recall the Soviets had a computer based on liquid that could compute certain differential equations.
http://hackaday.com/2011/03/25/mechanical-turing-machine-can...
http://lists.canonical.org/pipermail/kragen-tol/2010-June/00... are some thoughts about possible low-tech digital logic techniques. https://github.com/kragen/calculusvaporis has some thoughts about how to build a reasonably practical non-bit-serial CPU out of only about 1000 NAND gates (or the equivalent.) I think that with the height-field approach described in the kragen-tol post, you could probably make it out of 1000 moving parts — although most of them would have to be machined to fairly tight tolerances. I think the level of mechanical difficulty is similar to a 1960s V6 engine (fewer parts, but much higher force and demands on precision), or a little higher than that of a Curta calculator (600 parts for Type I).
The Clock of the Long Now uses steel gears on stone and ceramic bearings. It contains some mechanical binary calculation (and the prototypes are the most beautiful machines I've ever seen) but it's not a programmable computer.
My point is, with the right upbringing, we would all be like this. I'd like to learn more about this kids childhood. I wonder if, like me, he also went to run-down public high school and had technologically illiterate parents. If that the case, I'd be super impressed. Until then, I'm just mildly impressed and slightly jealous.
However, I don't think any advantages in that regard detract from this achievement. Even if our parents had nudged us in the right direction, we may have been content doing many 'half' programs. Technical abilities are independent of the persistence required for a larger project such as this (or beginning a startup, for what that is concerned!).
The article is pretty bad. For me, http://web.mac.com/teisenmann/iWeb/adeptpage/menu.html is much better, although it doesn't contextualize the project as well as it might.
I think if I were to build some stuff from scratch, maybe I would try to build a gene assembler (whatever they called that thing, where you can feed a gene sequence into it and it assembles a real gene from it). That's something you can't buy in every supermarket yet.
Challenge accepted.
But I still think using just TTL chips is a little over the top. There are much better ways than that.
http://www.linuxfordevices.com/c/a/News/DIY-CPU-demod-runnin...