MyCPU, the S-100, and the Mountains of Pi

Today I stumbled across a link to Dennis Kuschel's MyCPU project.

I love the fact that this guy built his own freaking 8-bit computer that has a DOS-like operating system, disk and programming tools, networking, and a web server. He used what I take to be only parts that were available in the 1970s, but you can program the thing in BASIC, assembler, C, and an esoteric language called "brainfuck". Granted, this guy is a "hardware engineer for space products" but it's still really cool to think that someone out there would spend their leisure time retracing the steps of the creators of the Altair and other groundbreaking 1970s computers.

<!-- SUMMARY_END -->

But the first thing that struck me about the MyCPU was its form-factor: it's composed of a bunch of cards/boards in a frame that makes it look like an S-100 bus computer. For some reason I really dig that form factor.

We're familiar with computers that basically consist of a motherboard with USB connectors, a hard drive, and maybe a video card hanging off it, all in a beige box. Or these days a laptop, or if you're really exotic, a rack-mounted server.

An S-100 bus computer is a very simple motherboard that is simply a series of 100-pin connectors wired in series, and a bunch of breakout cards that plug into them. The cards like like your modern-day video card, and the whole thing was housed in a frame that provided a power supply and a structure for supporting the cards.

I'm probably misunderstanding how it worked at some level, but I'm fascinated by the idea that you could assemble exactly the computer you wanted using that system. I imagine that you could have a computer that was mostly CPUs, or had 50 floppy drives, or had weird special cards that hooked up to your stereo or other parts of your mad scientist lab.

These kinds of computers are connected in my mind to the computer in Aronofsky's movie "Pi", which was basically a bunch of circuit boards hung on the walls of the protagonist's NYC apartment that seemed to have multiple keyboards, monitors, and even ants and other organic matter inside of it. That fictional computer was based on an actual, real computer assembled by the Chudnovsky brothers in their real NYC apartment (written up in an awesome New York magazine article: The Mountains of Pi). I can't find any pictures of their machine, and I'm sure it isn't (wasn't?) quite as whacked-out as the one in "Pi", but it still would have been cool to see.

It would be really cool to see an updated "S-1000" bus, which would let you connect multi-core 64bit CPU cards, cards with banks of SD-cards, multiple video cards, super-wifi cards, and sensor boards of all kinds, so you could roll our own supercomputers. Or maybe we already have all that but the data has to go through comparatively-ultra-slow Ethernet, really-slow USB, or still-not-really-that-fast Firewire cables. If nothing else, it would be cool to see what the case-modders did with those kinds of options.

Update (2011-05-03): Turns out that, like the turntable, this old idea never died -- it became a "niche" form-factor. I say "niche" because the average person (including myself) doesn't know about it, but it's anything but niche.

First, after some "research" I discovered that the S-100 bus is a "backplane". A backplane is a set of connectors that is wired in series, so that each pin of each connector is wired to the corresponding pin on all the other connectors. The card slots in the old Apple II were a backplane, as is that set of PCI slots in your average PC, and it looks like a lot of servers use backplanes for things like hot-swappable HDs. I'm still a bit fuzzy as to whether the other things referred to as "buses" would also be considered backplanes, but my guess is that a backplane is a special type of bus. Anyway, it looks like modern computers have a descendant of the S-100 bus, but it just disappeared into the computer (maybe not - a set of USB connectors would not be wired in series, but on a software level it's probably similar). Anyway, you can tell that I'm not a hardware guy. :P

The other interesting thing I discovered is that S-100-like form factors are used pretty extensively in industrial computing. S-100 itself is too slow to be useful any more, so a whole host of other standards have emerged since then: CompactPCI, PXI, VMEbus, VXI, PICMG, etc. After a bit of googling I see a bunch of modern devices that look like S-100 computers, but these are all hideously expensive and produced mostly by companies with terminally boring web sites filled with boilerplate text and pictures of men in suits making presentations and shaking hands. Either that or blurry pictures of MIL-spec hardened devices that look fascinating but you need an introduction and the promise of a hefty purchase order to even get a look. The least boring of the sites I looked at was Kontron. Turns out that EMAC Inc, which advertises in Linux Journal, sells single-board computers on PCI cards, along with backplanes to mount them on. Sadly, they have very few images.

On a tangent, awhile back some wires got crossed somewhere and I was sent a catalog of control system components for industrial computing. Sadly this catalog was swept away in one of my wife's cleaning frenzies, but I remember seeing web server modules, sensors, and networking equipment that could be mounted on rails ("DIN rails"). At the time I thought DIN rails were a type of bus (I didn't have the catalog any more and didn't remember the company so it wasn't possible to check), but on a little research it turns out they're purely for physical mounting purposes.