Hacker News new | past | comments | ask | show | jobs | submit login
High school grad builds 8-bit computer from scratch (digitaltrends.com)
183 points by neovive on June 18, 2011 | hide | past | favorite | 70 comments



Wow, tough crowd here. When I was in high school, the extent of my computer knowledge was a little visual basic. After watching all of his videos, I'm extremely impressed - it looks like he designed (or at least integrated) a lot of the hardware, operating systems, and applications himself. After a BS and now almost a MS in computer engineering I think I could (...eventually) pull something like this off, but this guy clearly spent a lot of time and effort on learning the ins and outs of computer architecture on his own, in high school no less.

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.


Don't forget that most people here are insanely brilliant and either work for Apple or Google and contributing to an Open Source project which implements VMWare In Node.js while planning their startup.

So the stuff this teenager hacked together is just a steady soldering hand and a lazy saturday afternoon.


"Wow, tough crowd here."

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.


Not speaking against this kid in particular, what he did was cool, but there are plenty of high school kids who can write professional quality code (in a multitude of languages) and know a lot about the internals of a computer. Speaking from experience, its annoying when age becomes a matter of importance.


It might just be the high school I attended but I can only think of one kid out of about 3000 in the entire school who was intimidatingly competent with computers. I can see where you're coming from. Making too big of a deal out of his age might be annoying to some people but with age comes experience and all the anecdotal evidence at my disposal says that most high schoolers don't have this experience yet. :/


To be clear, the reason why I find this impressive is because I would assume it implies a significant amount of studying in his free time since computer architecture isn't exactly standard high school curriculum.


"one kid out of about 3000 in the entire school who was intimidatingly competent with computers."

Thats me, although there are ~2000 kids at my school.


By some definition of "scratch", we've also built 8-bit computers from scratch in my Electronics class. My respect for this student's accomplishment is proportional to how much of the processor he has designed and built himself; opcode design and management is a highly nontrivial task. On the other hand, if he has built the processor from pre-existing schematics, the accomplishment simply shows a steady soldering hand and good mental endurance.


I think you guys should look a little closer before writing him off.

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...


His enthusiasm and tenacity are admirable, but he still has a lot to learn (and the "this guy is smarter than anyone else" hype in the article is overblown). That's not an OS, it's a rudimentary shell and a couple of simple programs that can be called from it. To anyone who has ever taken an operating systems class (where you usually do have to write your own OS), it's quite obvious that he hasn't even begun to tackle the kind of problems that real OSs deal with.


No, the processor appears to be constructed from 74LSxxx TTL logic chips. The memory is 2x32KB off-the-shelf SRAM units, but there comes a point where building things out of quad J-K flip-flops just becomes an exercise in patience and unnecessary spending. The registers are FFs, why make all of the memory that way? Just to say you did it? It doesn't add to the learning experience, just the drudgery.


I think the GP comments wants to say that just soldering the TTL chips w.r.t somebody else's design is not that impressive. I too think so, I have not checked but if I found that the has designed the whole processor (custom op-codes and a whole new implementation of ALU) I would be much more impressed.


According to the website he "built and designed" the computer which I assume includes the instruction set, assembler, etc. I can't find any evidence to the contrary.

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.


It's not quite like rebuilding a classic car. It's more like a high schooler using the school workshop to fabricate car parts and building a car from his own blueprints. Sure, he may have purchased the speedometer and tires, but that doesn't really diminish the accomplishment.

Hopefully he will go on to work on a replacement for computer—car analogies.


This is Jack Eisenmann's website for the Duo Adept, which includes further project details:

http://web.mac.com/teisenmann/iWeb/adeptpage/menu.html


Yep... In the long run, I think you would get at least equal educational value by prototyping some parts of the computer in TTL logic, and then writing it in VHDL for an FPGA. Then, you could go into far more advanced things like pipelining, instruction caching and even multi-core design...

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.


Did you watch the video? This is inspiring to me on many levels.

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.


While I think the kid is awesome, I don't think it follows that skipping college is the best choice. If he's as brilliant as he seems, he ought to be able to get scholarships to some pretty good schools...where he can learn to go well beyond this, probably faster than he could on his own; even if it's just for the resources a good technical university (like MIT, Caltech, Stanford, etc.) provides.

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.


This is an excellent and important point. If your ambitions lie along the lines of "supercomputing, nanotech, quantum computing, Internet-scale problems," etc, then skipping college is a terrible mistake, obviously.

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).


I think it's important to not seem like you're looking down on people who DO chose to go to college. Because surely you wouldn't like it if they looked down upon you?

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.)


I agree with you on everything except that he should skip college. This would land him a salaried job at a lot of places, but if he's truly interested in computer design he would probably want to work at IBM/Intel/AMD research departments and they certainly require a college education to just get through the interview filters.

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.


There are thousands, probably tens of thousands of people out there who have built a 8-bit computer (usually Z80 based), according to schematics, from a microprocessor, memory chips, and a bunch of TTL chips. (I know there were at least twenty at my old school, and it was a small college.) It's one college class out of more than thirty, and by no means a replacement for college as a whole.


It used to be the case that MIT required their CS undergraduate students build an 8-bit computer from TTL (mostly 74XX) chips on breadboard in their Freshman on Sophomore year. (And no, we didn't even get a Z80; the most complex parts we got was an ALU unit and a 8250 UART so you could communicate with the computer over an RS-232 port.) It's really too bad that this isn't something which is required any more.

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. :-)


Do you mean 6.004[1]? I took that a few years ago and we virtually "built" a computer from scratch - laying down the wires with a hardware description language, writing a simple OS, etc. Unfortunately, it was all inside a simulator, so connecting the wires wasn't as tangible and satisfying as I would have liked. In the class, we heard that in the past students actually worked with physical components. Was still really fun and rewarding, though.

[1] http://6004.csail.mit.edu/


What course number was that? Is it on OCW?


I'd also like to know if it's on OCW, would be very interesting.



College is a knife sharpener. If your knife was already sharp or you figured how to sharpen it on your own and how to convince other people of this fact, you don't need it.

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.


Agreed, save the skipping college part. The debt incurred from college was paid off more than a decade ago. The gain from my education opened my mind and doors of opportunity. Even if you are smart, sometimes those doors will stay shut.


I'd like to know (for my own education), what were the benefits to you of going to college?


Making so much money that the debt wasn't really a big deal...and knowing that finding more jobs that pay the same (or more) isn't really a big deal...not hitting a glass ceiling every couple years because I wanted to enter positions that required a B.S. and then an M.S., etc. etc. etc.


My major was CS and math for undergrad:

(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.


4 years is always a huge fraction of your life.


I'm guessing that he built this computer based on some DIY project, which means he followed directions. In college, the most important things you learn involve not following directions. Instead its about teaching you how to "think" and following directions doesn't involve "thinking" at the level that it is taught at college.


From my own experience, collage only teaches you to follow directions. You get punished if you actually think and use some other "direction" than that you've been told to follow.


You make a good point. I looked at his website, and it does not seem he designed it himself. If he did I would expect to see some gate level or even block level diagrams of the actual processor. Designing a processor from scratch is pretty challenging, if you do it you would want to show your work.

He only has TTL chip diagrams which do not show the internal architecture.


It's still pretty impressive for a high school grad. Not to mention that he was able to code an OS and a few games.


AFAIK, the minimum definition for an OS usually contains either a file system or processes. I see no indication of that in this case.


Aren't most people that make computers high school graduates?


It says he just graduated high school. So I assume he isn't in college yet.

I suppose I should have worded my comment better.


Regardless of how much he actually did, this is quite an accomplishment in modern-day America. Even the most basic attempts at some task slightly related to engineering should be lauded. They are very rare these days.


Connecting this with the article about the person who smelted his own sword, I wonder if it's possible for one person to single-handedly build a computer starting from Stone Age technology and raw materials?


Sure it is, but you have to define it better. He could build a difference engine much easier than he could build a system-on-chip. The difference engine would require metalworking and precision tools; the SoC would require a working digital computer to design, which requires lasers and other production technologies that in turn require advanced production technologies to make. Even if you just wanted to make a basic 4-bit machine with vacuum tubes, you'd still have to invent all of the preceding requisite technologies just to make the constituent components.

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.


This french HAM just about has it covered. He makes his tubes from nearly scratch.

http://boingboing.net/2008/09/18/video-of-a-guy-who-m.html


That's hardly from scratch, though. Just look at all the different tools he uses. We didn't even have glasswork precise enough to use until the 18th century. Add arc welders, all of the chemicals (and chemistry, mining, etc) needed to make filaments, and everything else required and I doubt a person with full knowledge and access to all of the base materials, as they exist in nature, would be able to build a computer in their lifetime.


> full knowledge and access to all of the base materials, as they exist in nature, would be able to build a computer in their lifetime.

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.


For an electronic computer you also need a source of electricty -- and debugging is going to suck without a voltmeter, oscilloscope, logic analyzer or even LEDs.

I'd go mechanical any day. I recall the Soviets had a computer based on liquid that could compute certain differential equations.


There was a mechanical Turing machine shown at Makers Faire UK. Supposedly it was built only using hand tools and scrap parts. I'd say that's close enough to a hand-built computer.

http://hackaday.com/2011/03/25/mechanical-turing-machine-can...


Related: the Global Village Construction Set by Open Source Ecology (slightly confusing name IMO), a set of 50 machines supposed to bootstrap a small civilization. In other words, this is supposed to be enough to build your own computer, or mostly anything. (I won't say it is really enough, especially since most of those aren't even prototyped yet.)

http://opensourceecology.org/gvcs.php


I'm going to say "no", assuming that when you say "computer", you mean transistor-based.

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-!


Jeri Ellsworth has succeeded in making individual transistors on her own, but she didn't have to purify the materials herself. But it didn't take her a lifetime either.

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.


Or a mechanical computer like the Digi-Comp [1]

Getting through smelting to machine tools would be impressive enough for me. Say stone-age to mid-industrial revolution.

[1] http://en.wikipedia.org/wiki/Digi-Comp_I


The mechanical-Turing-machine link http://hackaday.com/2011/03/25/mechanical-turing-machine-can... posted by chris11 is some kind of evidence here. I've also been thinking about this problem myself.

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.


I remember a "joke" mathematical recreation in Scientific American years ago (decades ago), where they describe a computer found in the jungle, operating with levers and ropes.


I'm sure it helps to have the right parents too. When I was in elementary school, I showed great curiosity for how our old Macintosh worked, but the internet wasn't around, there were no relevant books in the public library, and my parents didn't know jack-shit about computers.

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.


On that tangent: I've always wondered how things would have turned out if my parents had been savvy enough to provide me with the right book, when it turned out I couldn't understand enough of the English (not my native language) BASIC manual that came with my dad's first PC somewhere mid-to-end-eighties (when I was < 10).

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!).


This is great. Here's another one from a 15/16 year old in 1981. http://unauthorised.org/dhog/ruse.html


Also see http://news.ycombinator.com/item?id=2667357 for his website documenting this.


The instruction set looks pretty nice — a small but practical set of opcodes and a 6502-like zero page to simplify instruction encoding and address calculation.

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.


Is it bad if I have mixed feelings about this? With such skills, why not invent something new?

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.


You have to start somewhere, don't you think? He can't just start at the top and assume he knows how to build something. And there are certainly many lessons to be learned by building something that is already well understood (as many people seem to be attesting to in these comments). Consider it "practice before the big game," where "the big game" is hopefully something he does in ten years that makes people's lives a little better.


I think there's a lot of understanding to gain from building a computer from scratch. We've abstracted computing so much that starting over gives you a unique perspective on some of the big problems still out there, as well as a definite appreciation for the innovations we've come up with--even if it's nothing new.


To choose to go to this level of depth shows remarkable curiosity in a highschool student.


You think you’re smart? Well, not as smart as this guy

Challenge accepted.

But I still think using just TTL chips is a little over the top. There are much better ways than that.


I thought we all did this?


Where is your computer?


Sold the parts to an undergrad cmpe student.



I built one in redstone in Minecraft. Did I win an internet?


Nothing new, but still pretty cool. Good for him.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: