As usual I have an unusual hobby project simmering away on metaphorical stove...
Here’s the deal. As you may recall, I’m working on a hobby project with my chum Joe Farr in England. This little beauty is going to be a 4-bit Heath Robinson Rube Goldberg (HRRG) Steampunk computer. I’ve talked about this before, but things have picked up steam recently (pun intended), so let me briefly bring you up to speed…
This machine is going to have a 4-bit data bus and a 12-bit address bus. Since the machine is going to be used for educational purposes, we’ve decided that it will support a simple interrupt structure along with a stack pointer and the ability to handle subroutines. We’ve already decided on a mega-cunning instruction set. We bounced all over the place on this, but the mega-cunning way we eventually decided to do things means that we actually require only 15 of the 16 possible instructions that can be represented using a 4-bit field – we’re still debating what to do with the spare opcode (I will write about all of this in more detail in a future column).
As I said, things are really bouncing along. Thanks to Joe, we already have a virtual version of this machine up and running under Windows. We’re also going to support virtual laboratories. As one example (this is the one we’re currently working on), close your eyes and visualize your computer screen depicting a graphical representation of an industrial / factory setting, in the middle of which is a great big tank of water. (Open your eyes again; otherwise you won’t be able to read the rest of this column.)
Now, imagine that there’s a cold water feed coming into the tank – this feed is controlled by a valve, which has 16 possible positions ranging from 0 = fully off to 15 = fully on. Also imagine a set of gas burners located under the tank. The gas supplying these burners is also controlled by a valve that has 16 possible positions…
When the water in the tank heats up it turns to steam, which is used to drive a steam turbine, which powers an electric generator whose output is connected to an electric light. The amount of steam coming out of the tank is controlled by a valve, which… but you get the idea. Also, as the steam is used, the level of the water in the tanks will gradually fall.
There will be three meters associated with the main tank; these will reflect the water level, the water temperature, and the steam pressure. There will also be a meter associated with the electric generator; this will reflect the voltage. All of these meters will output 16 values ranging from 0 = fully off (no water, no steam pressure, no voltage etc.) to 15 = fully on (maximum depth of water, maximum steam pressure, etc.).
Our 4-bit computer will be able to read the values from the meters and control the state of the valves. The idea is to make the light bulb glow as brightly as possible without it burning out and without anything else catastrophic happening to the rest of the system. If the electric generator spins too fast, for example, it will generate too high a voltage and the bulb will burn out. If the steam pressure rises too high, the tank will explode; if the water level falls too low (and the burners remain on) the system will melt down; and so on and so forth.
I would show you some sketches of all of this, but I’ve already sent them off to the graphic artist for him to start performing his magic. Suffice it to say that this is going to look so cool that even a grizzled old engineer will squeal like a schoolgirl!
All of the above is just a tempting teaser if what is to come, but…
…this isn’t what I wanted to talk to you about!
A Steampunk hex keypad
Do you remember the old KIM-1 (Keyboard Input Monitor) microcomputer? This was originally created by MOS Technology, the inventor of the 6502 microprocessor, as a way to demonstrate the power of the 8-bit 6502 to the industrial community.
Note in particular the hexadecimal keypad in the lower right-hand corner of this image. Above this keypad are some 7-segment LED displays. The keypad and displays were used to enter programs into the computer and display results.
The Kim-1 came equipped with 1024 bytes of ROM and 1024 bytes of RAM, which equals a total of 2048 8-bit bytes of memory. By some strange quirk of fate, our HRRG has a 12-bit address, which allows it to address 4096 4-bit bytes of memory, which means that both machines support the same number of bits.
The point is that we’re going to create a physical version of the 4-bit HRRG. This will be presented as a hex keypad, plus control buttons/switches, plus display devices – all presented in a classic Steampunk style in a cabinet-quality wooden box and a front panel made out of brass. In my mind’s eye, I’m envisaging something about 8 inches wide by 10 inches tall by 3 inches deep. The really cool thing is that we will be able to connect this little beauty to a PC and use it to control the virtual water tank laboratory on the PC (or a physical water tank laboratory in the real world).
As I say, this is going to look amazingly cool. I’m visualizing the keys on the hex keypad and the various control buttons as having antique typewriter keys in a similar style to the two Steampunk keyboards shown below (I’m also envisaging that the on-off switch could be controlled by an antique Victorian key).
In order to get the specific annotations we want on our antique typewriter-like keys, we might have to create these little rascals from the ground up. “How can you do this?”
I hear you cry. Well, in my youth I underwent a six-month apprenticeship in mills, drills, lathes, grinders, welding, etc. Of course, that was a long time ago and I’m a tad rusty (I can’t help myself, the puns just keep on coming). Fortunately, I have a friend who owns a full-up machine shop that is jam-packed with goodies like multi-axis computer controlled fabrication machines and which is located just a couple of minutes’ walk from my office.
I bet you are currently visualizing what this keypad will look like and drooling all over your desk, but…
…this isn’t what I wanted to talk to you about!Nixie Tubes or similar displays
As we discussed above, the Kim-1 used 7-segment LED displays. But we are aiming at a Steampunk look and feel, which means we want our physical 4-bit HRRG hex keypad to look as though it would not be out of place in a Victorian setting.
So what are we going to use for our main displays? What we would really like to use would be Nixie Tubes as shown below.
If you visit www.electricstuff.co.uk/count.html
you can animations of these tubes along with a variety of other display devices.
In our case, we need three hex digits to display the address and one hex digit to display the data. But did Nixie tubes ever come in hexadecimal versions (most machines used Octal in those days of yore)? If there were hexadecimal versions, is there anywhere that still supplies these little rascals?
An alternative would be to use hexadecimal versions of the old Dekatron counter tubes (you can see images of these on the Electric Stuff
website mentioned above). But I don’t think they made hex versions, so we would have to build these ourselves.
The bottom line is that I’m looking for ideas… I need to display four hexadecimal digits and I want to use display devices that have a Steampunk look and feel… do you have any suggestions?
If you found this article to be of interest, visit Programmable Logic Designline
where – in addition to my blogs on all sorts of "stuff" (also check out my Max's Cool Beans
blog) – you will find the latest and greatest design, technology, product, and news articles with regard to programmable logic devices of every flavor and size (FPGAs, CPLDs, CSSPs, PSoCs...).
Also, you can obtain a highlights update delivered directly to your inbox by signing up for my weekly newsletter – just Click Here
to request this newsletter using the Manage Newsletters tab (if you aren't already a member you'll be asked to register, but it's free and painless so don't let that stop you [grin]).