I’m not sure if you recall (or were even aware) that one of my on-going hobby projects is to construct what I think of as a Heath Robinson Rube Goldberg (HRRG) Computer (Phew! Try saying that ten times quickly).
Well, I’m afraid that this has been on the “back-burner” for a while because I’ve had so many other things going on, but I thought that it was time to recap the situation and bring us all up to speed with regard to the current state-of-play.
Before we leap into the fray with gusto and abandon, however, in this introductory article let’s first remind ourselves of a few nuggets of knowledge, tidbits of trivia, and things we need to know as follows....
Heath Robinson and Rube Goldberg
First and foremost, this project is named in honor of British cartoonist and illustrator William Heath Robinson (1872-1944) and his American counterpart Reuben (Rube) Lucius Goldberg (1883-1970).
Robinson and Goldberg were both famous for creating illustrations of machines that were intended to perform relatively simple tasks, but whose implementations were incredibly complex such that they performed their tasks in exceedingly convoluted and indirect ways.
Harry Porter’s Magic Machine
The reason I was originally roused to action was when I saw an article about a relay-based computer created by Professor Harry Porter III (no relation to Harry Potter), who is a lecturer at Portland State University. An image of Harry standing next to his computer is shown below. (You can find out more about this on Harry's Website.)
Isn't this ultra-cool? Can't you just imagine the relays clattering away in the background while this little rascal (the computer, not Harry) performs its cunning calculations? In particular, observe the way in which Harry has partitioned his computer across a collection of handsome, wall-mounted, glass-faced wooden cabinets. "A thing of beauty is a joy forever,"
as the old saying goes.
The HRRG Computer Concept
I’ve actually wanted to construct a relay-based computer for years, but I never got around to it. Seeing Harry’s computer set my creative juices flowing again, but I have no desire to simply replicate Harry's work – where would be the fun in that? Instead, I want to create something even cooler (if that's possible).
Thus, I started pondering a beast that combines multiple implementation technologies (relays, vacuum tubes, transistors, silicon chips, and much, much more). Imagine a row of glass-fronted wooden cabinets on the wall. The contents of each cabinet would be implemented in a different technology, and each would contain some portion of the computer, such as the system clock, the ROM, the RAM, the ALU, the CPU's status and control logic, the CPU's addressing logic, and so forth.
As opposed to having the cabinets linked by bunches of unsightly cables, I was thinking of providing each cabinet with a simple wireless communications system. This would (a) make things look nice and (b) allow the various cabinets to be located at arbitrary distances from each other.
One thought is that if the functionality of each type of cabinet was fully defined – along with all of the inter-cabinet communications and interfaces – then this would allow different people to participate by building their own cabinet(s).
Another thought is that if we defined a certain height for all of the cabinets while leaving the widths variable (maybe specify that the height must be three feet, for example, while that width must be an integer multiple of feet – one foot, two feet, etc.), then this would make things look nice if multiple people were to bring a collection of cabinets together.
A Virtual HRRG Computer
One of my problems is that I tend to over-engineer things. Another is that I have a habit of underestimating how much effort is required to do something while overestimating my abilities to actually get things done before I become distracted by another wiz-bang idea (“What’s that? Ooh, Shiny!”)
The thing is that I’ve come to realize that creating the entire HRRG Steampunk Computer from the ground up, using multiple implementation technologies, and getting it all to work would be a huge undertaking. What I want is some way to lower the cost of entry in terms of both time and effort with regard to getting other people involved. For example, it would be great if computer science classes at high school could create their own cabinets, but they aren’t going to do so if it involves too much time, money, and effort.
Anyway, my chum Joe Farr in England came up with a rather cunning idea, which would be to create a Virtual HRRG that runs on a PC. The idea would be that you could start off by writing and running programs on this virtual computer. When you are ready, you could swap out one of the virtual cabinets for a physical cabinet that you run in the real world.
Several cabinets in a virtual HRRG running on a PC.
For example, you could create a RAM cabinet containing as little as a single 8-bit word of RAM implemented in the technology of your choice. You could then inform the virtual HRRG that this one word was implemented in the real world and have the virtual HRRG talking to your real-world cabinet. You could even have the Virtual HRRG working over the Internet such that it communicated with multiple physical cabinets located around the world.
Joe and I have actually put a huge amount of time and effort into this. Our first incarnation was over-engineered and too complex (my fault, I’m afraid), but we learned a lot and I think we have a good handle on a workable solution. (We will return to discuss this topic later in this mini-series.)
The term "Steampunk" originally referred to a subgenre of fantasy and speculative fiction that came into prominence in the 1980s and early 1990s. As the Wikipedia says:
The term denotes works set in an era or world where steam power is still widely used – usually the 19th century, and often set in Victorian era England – but with prominent elements of either science fiction or fantasy, such as fictional technological inventions like those found in the works of H. G. Wells, or real technological developments like the computer occurring at an earlier date...
One way in which I tend to visualize this is to ponder what would have happened if Charles Babbage had managed to get his steam-powered mechanical computer working circa the early 1800s. Can you imagine the Victorian era with computers? Now imagine what those machines would look like…
In recent years, a whole bunch of folks have started to create Steampunk versions of “things” from watches to lamps to motorcycles to computers. The following are a few of my favorite examples:
As soon as I became aware of Steampunk I discovered something new about myself – I was a "Closet-Steampunker!"
I quickly decided that it was time to come out of the closet. The point is that I would very much like any physical HRRG cabinets I create to have a Steampunk look-and-feel.
But what does this mean in real terms? Well, the best way to explain this is to show an image of a Steampunk-style artifact. For example, my friend Douglas is in the process of creating a Dr. Who TARDIS control console in a Steampunk vein as illustrated below:
A portion of a Steampunk TARDIS console.
If you are interested in seeing more of Douglas's work, you can visit his website/blog at http://douglas442.livejournal.com
(he would love to hear your comments).
In Part 2 of this mini-series we will start to consider the various implementation technologies we might wish to use including a variety of cunning suggestions from readers.
About the author
Clive (Max) Maxfield is founder, president, consultant, and chief bottle-washer at Maxfield High-Tech Consulting (www.CliveMaxfield.com
). He is also editor of the EE Times Programmable Logic Designline website (www.eetimes.com/design/programmable-logic
). Max is the author and co-author of a number of books, including Bebop to the Boolean Boogie (An Unconventional Guide to Electronics), The Design Warrior’s Guide to FPGAs, and How Computers Do Math. Max can be contacted at max@CliveMaxfield.com