We take a look at a maker’s reproduction of the classic Digital Computer Lab H-500, a training tool from the late 60's aimed at teaching people the basics of logic circuits.
Computers have certainly come a long way; from their mammoth mainframe size to pocket-size smartphones and smart wrist watches. In the late 60’s, learning about digital logic and how computers worked was made easier thanks to the Digital Equipment Corporation (DEC) and their H-500 Computer Lab shown here.
While not a true computer, the H-500 could be "wired" to perform many of the underlying operations of a true computer using a point-to-point patch cord mechanism. This introduced students and engineers to binary arithmetic, Boolean algebra, digital logic, etc.
Fascinated by the H-500, maker and retired programmer, Michael Gardi, decided to make his own. We caught up with Michael to find out more about this curious project.
We take a look at a maker’s reproduction of the classic Digital Computer Lab H-500, a training tool from the late 60's aimed at teaching people the basics of logic circuits.
Please tell our readers a little about yourself, Michael.
I am a retired programmer. I had a productive career developing software primarily for large financial institutions. Yes, in my early days I did do a bit of Fortran and COBOL development, but worked mostly with C, C++, and Java. I have a BMath/CS degree from the University of Waterloo and currently reside in Waterloo, Ontario, Canada.
Some classic programming languages that we haven’t heard mentioned in a while. What first got you interested in electronics?
I have always been interested in computers. This interest led me to make relay-based tic-tac-toe machines as a kid, take programming classes in high-school, and ultimately to enroll at the University of Waterloo in Computer Science (class of '82). My first "real" computer was a SYM-1 single board trainer (https://en.wikipedia.org/wiki/SYM-1).
It was very bare bones, so to do anything interesting with it I needed to learn to solder to add more memory and a cassette interface.
In the early 2000s I got pretty interested in digital electronics primarily using PIC processors. I even had a couple of my projects published in Nuts & volts magazine. Here is one that I could find online https://www.nutsvolts.com/magazine/article/an_automatic_audio_video_switch
Hello to our friends at Nuts and Volts. We love your computer lab reproduction, Michael. What was the motivation behind building it?
I have a "maker" origin story. I am not going to repeat it here, but you can read it on my website: https://www.mikesmakes.ca/
I started building the H-500 in the Summer of 2020. Between the Spring of 2018 and the Summer of 2020 I had already made 8 vintage computer reproductions. All of these were what I would consider "toy" computers.
While looking for project ideas, I first saw the DEC H-500 on the System Source Computer Museum website (https://museum.syssrc.com/artifact/exhibits/250/). I was initially attracted to it because of the rocker switches which were the same ones used on the DEC PDP-8I. I had done a side project where I had created a rocker switch using magnets and reed switches (https://www.instructables.com/Mostly-3D-Printed-Toggle-Switch/) that I thought I could apply to the H-500. Upon further investigation I learned the H-500 was designed and built in Canada. As a proud Canadian I knew I had to create a reproduction. It would be a challenging build, but I felt at this point that I had enough experience to pull it off. I would be progressing from toy computers to a computer trainer.
For our readers who may not be familiar with Digital Equipment Corporation, can you give us a little history lesson about the company and what the H-500 is used for?
In the mid 1960s Digital Equipment Corporation (DEC) introduced the PDP line of minicomputers. The PDP-8 and PDP-11 were among the most successful minis in history, and they helped to bring down the cost of computing by an order of magnitude or two (from the millions a typical mainframe cost at the time to mere tens of thousands of dollars). That dominance carried on through the 70s and into the 80s with their VAX line of supermini computers.
The success of their minicomputers, especially in the education market, lead to a sharp increase in demand for engineers familiar with digital electronics. As a result, DEC developed the H-500 COMPUTER LAB as a training device to teach basic concepts, theory, and operations of digital computers.
How does it work?
The COMPUTER LAB was a complete educational package. The H-500 has a patch-cord panel with numerous Boolean logic gates and flip-flops, switches and lamps, and a variable speed digital clock source, all of which can be connected into circuits with over 100 taper-pin patch-cords of assorted colours and lengths. The kit also contained a student workbook filled with step-by-step instructions to experiments, and a teacher’s guide for all the lessons. The COMPUTER LAB assists the student in mastering the basics of the binary number systems (machine language), gates and switches, two state memory devices, and Boolean algebra.
Our regular readers will know that we love talking about logic gates. We have numerous educational pieces on the subject. What parts does your project use and where did you source those?
In addition to the printed parts you will need:
- 1 x Arduino Mega 2560
- Range of 74xx Logic ICs:
SN7400 - 2 Quadruple 2-Input Positive-NAND Gates
SN7410 - 2 Triple 3-Input Positive-NAND Gates
SN7420 - 2 Dual 4-Input Positive-NAND Gates
SN7450 - 2 Dual AND-OR-Invert Gates
SN7473 - 4 Dual J-K Flip-Flops with Clear - 11 x N.O. Magnetic Reed Switches
- 1 x Panel Mount Centre Positive 5.5 x 2.1mm Power Socket
- 20 x M3 x 12mm Bolts for the switch assembly
- 6 x M3 Nuts for the switch assembly
- 24 x 2-pin 2.54mm Male Headers
- 48 x 1-pin 2.54mm Single Row Female Headers
- 350 x Rolled Flange Head Eyelets
- 1 x 180mm length of 1/8" Steel Rod
- 8 x 3mm Super Bright White LEDs
- 1 x 10KΩ Single Gang Linear Potentiometer w/ On/Off Switch
- 45m (150+ feet) x 22 AWG Coloured Stranded Hookup Wire
- 30m (100+ feet) x 22 AWG Solid Core Hookup Wire
- 8 x 3.9KΩ 1/4 Watt Resistors
- 1 x 9V 2A AC/DC Power Adapter
- 1.8m (6 feet) - 1/2" x 3 1/4" timber for the frame
I have these listed in more detail on my Instructables web page, which I sourced from a variety of online and retail stores including Digi-key, Spaenaur, Lowes and Amazon.
Great. How did you go about building your reproduction, and how does it compare overall to the original?
Here were my design goals for the H-500:
- Visually my reproduction will be clearly recognizable as an H-500. I will strive to provide an outwardly accurate appearance of the original to the best of my ability and within the constraints of the implementing technologies. Bear in mind that I can't afford one of these so I will be working from images and the kindness of actual owners to provide me with details.
- Operationally my H-500 will perform like the original. A user will be able to work through the experiments in the Lab Workbook without change or issues.
- I would like for this project to be easy to well, reproduce. To this end I will only be using 3D printed parts and readily available components and materials.
- I will try to keep the total project cost to a minimum.
- A complete set of instructions, parts list, and STL files will be posted to Instructables at the completion of this project so that others could make one should they choose to.
So, to meet these goals, I built my H-500 reproduction with technologies that I was familiar with and that others would have access to and could afford. While I believe I met my “outwardly accurate appearance” goal, the underlying implementation was quite different.
The patch panel surface of the original H-500 is actually two layers. The top layer is a white plastic sheet with the component symbols silk screened on. The bottom layer was a PCB that was affixed to the top layer by soldering the patch panel rivets to the PCB panel. Recreating the PCB and overlay would have been prohibitively expensive for me and would have added a significant cost to anyone that wanted to use my design files to make their own copies. 3D printing the patch panel brings the cost down to a few cents.
Another major difference between the original and my reproduction was the power supply, switch debounce, and clock circuitry. The original used discreet components to accomplish these tasks. My reproduction uses an Arduino MEGA to accomplish this functionality.
Other injection moulded parts of the original were replaced by 3D printed equivalents.
You certainly gave yourself a great challenge. Can you talk us through the 3D printed parts, and provide advice for our readers who may want to print some for themselves?
Sure. See the Instructable for a full list of the parts required (there are a lot of them).
I printed the parts with the following settings (unless otherwise specified):
- Print Resolution: 0.2 mm
- Infill: 20%
- Filament: AMZ3D PLA
Notes:
- No supports
- Print the parts in their default orientation.
We love how you made your own rocker switches. Can you go into a little more detail about those?
In all honesty I probably could have modified mechanical rocker switches to have that iconic look rather than using my magnetic design, but what’s the fun in that.
As I mentioned earlier, the rocker switches first attracted me to this project. I had created some magnet/reed-switch based components for some of my other projects.
- A rotary switch (https://www.instructables.com/Mostly-3D-Printed-Rotary-Switch/) for my Minivac 601 project (https://www.mikesmakes.ca/1960s/minivac-601).
- A slider switch (https://www.instructables.com/Mostly-3D-Printed-Slider-Switch/) for my WDC-1 project (https://hackaday.io/project/168833-wdc-1-a-working-digital-computer)
Just for fun, without a project in mind, I decided to apply my learnings to the rocker switch (https://hackaday.io/project/168833-wdc-1-a-working-digital-computer). At the end of that Instructable I wrote:
“And now I have a workable and customisable rocker switch in my tool kit. When I look at the front panel of the PDP-8/I pictured above it makes me smile.”
Well, I never did attempt a PDP-8/I reproduction because there is already a good one out there (https://obsolescence.wixsite.com/obsolescence/pidp-8). The H-500 uses the same switches, so I was when I saw it, I knew I wanted to build one.
There is a lot of information about the switch construction in both my Instructable and Hackaday project logs. What I might not have mentioned is how amazing it is to actually use these rocker switches. The “feel” is fantastic. You can hear the satisfying clicks in the following video:
https://youtu.be/IDwU7PWhVic
The Patch Panel looks amazing. That is 3D printed as well, and what is the "Hilbert Curve" option that you mention?
I used a couple of my favourite “tricks” creating the patch panel. The first is to use the “Canvas” feature of Fusion 360. Canvas allows you to insert a photo as a background to your design. Furthermore, the photo can be calibrated so that the size of the image in the photo matches the coordinates used in your design. I was able to load and calibrate a photo of the patch panel and use it to “trace” the symbols and text and precisely position where the rivet holes would go. The panel was then extruded in two steps, the white base (minus the holes), then the text and symbols in black (after the print was paused and the filament changed).
The Hilbert Curve is simply the pattern that is used to print the top layer of the panel. This pattern tends to reflect light in all directions, giving a flat diffuse look to the panel. Other patterns with parallel lines of filament often lead to a “banding” look depending on lighting conditions.
Looks like a lot of rivets in the panel. Is there anything special about the kind of rivets you used? Also, it looks like you needed to make small 3D printed fitting that press-fit over the rivets?
Nothing special about the rivets. I was just looking for a rivet with an inside diameter would accommodate a 2 mm banana plug a shaft length sufficient to extend well past the plug panel holes. I ended up with Rolled Flange Head Eyelets (Spaenaur part number E-412).
My plan was to solder the wires coming from the break-out boards directly to the brass rivets. It turned out that this was a lot harder than I thought it would be. I really should have tested this much earlier in the process. I don't know if the brass was coated with something, but the soldering iron had to be applied to the rivets way too long to get a good join.
As a result, the panel holes melted and got too large to hold the rivet securely in place. I needed a plan B.
They say necessity is the mother of invention, and I think the solution I came up with is actually better than if the soldering had worked. I made some mechanical "fittings" to securely attach the wires to the rivets:
Just insert the wire into the horizontal hole and slide the fitting over a pair of rivets representing a circuit lead. These work great, are quick and easy to install, and actually, reinforce the rivet's attachment to the panel. An additional benefit is that a whole PCB "circuit" can be removed from the panel should the need arise to troubleshoot. Here's a closer look.
Choosing PCB breakout boards for your logic chips does look a lot neater and obviously helps with the wiring and any troubleshooting. How did you design and manufacture those?
I decided to make my life a little easier by creating some breakout boards for the 74XX chips. My initial thought was to just "dead-bug" the chips and solder the leads directly to the pins. It would have worked but the appeal of re-arranging the pinouts to be more consistent with the layout of the panel, plus having a label on each pin won out. Here's the PCB:
I used DesignSpark PCB (https://www.rs-online.com/designspark/pcb-software) to do the layout, and JCLPCB (https://jlcpcb.com/) to manufacture the boards.
It looks like you are also very handy at working with timber. The box looks great, albeit, not looking redder as you would have liked. Any tips for our readers who want to build a timber frame with 3D printed brackets for their project?
I consider myself just an average woodworker. I made the H-500 during the pandemic and as a result, did not have access to my local makerspace Kwartzlab (https://www.kwartzlab.ca/). If I had access I probably would have ripped something down to the required 1/2" x 3 1/4" board size that I needed, but I was "lucky" enough to find some "craft board" at Lowes in the required size.
The other maker-space thing that I missed was access to their fine selection of corner clamps to put the frame together, so I had to improvise. I ended up printing some corner guides that worked quite well.
I mitred the corners of the frame and used the guides to align the boards while I glued and popped in a few brads.
We assume you needed an Arduino MEGA because of the number of IO ports needed. Can you go into more detail about how you went about using it and the coding involved?
Ya for sure this project needs a lot of IO ports and the MEGA fits the bill nicely. Best to look at the following wiring diagram.
The MEGA has a number of tasks to perform:
- Monitors the input state of the rocker switches and sets the state of the appropriate switch output after “debouncing” the input.
- Reads the Clock Range Course inputs and sets the minimum and maximum clock pulse to the selected input range.
- Using an ADC input reads the value of the Clock Range Fine potentiometer and sets the clock pulse frequency to a value within the currently selected Course Range accordingly.
- Outputs continuous clock pulse based on the Course and Fine Range currently selected.
The coding to perform these tasks is fairly straightforward. The sketch for this can be found on GitHub at https://github.com/kidmirage/DEC-H-500-Reproduction
What power supply have you used?
Everything on the H-500 is powered through the Arduino MEGA. I have used a 9V 2A AC/DC Power Adapter.
With a project of this size, we’re sure there were many challenges you needed to overcome to make it all come together?
I’ve already mentioned the biggest challenge, figuring out how to connect the rivets to the PCBs once I determined that soldering was not a viable option. I’m super happy with my mechanical “fittings” solution. There were some frustrating part delivery delays due to Covid-19, and not having access to my local maker space didn’t help, but all-in-all the build went pretty well.
If our readers want to build one for themselves, are all the build details on your Instructables page and Hackaday blog?
- Step by step instructions for building a DEC H-500 Computer Lab can be found on Instructables:
https://www.instructables.com/DEC-H-500-Computer-Lab-Reproduction/ - For a more in-depth look into my design process and decisions see my Hackaday page: https://hackaday.io/project/170232-dec-h-500-computer-lab-reproduction
Is there anything we haven't discussed that our readers should know about?
The H-500 Computer Lab is one of many reproductions that I have made over the past few years. To see all my work, check out my web page at: https://www.mikesmakes.ca/
Thank you so much for sharing your project with us. What are you working on next?
Happy to share. I am currently working on a reproduction of an obscure Canadian microcomputer from the 1970s the MCM/70: https://hackaday.io/project/184646-mcm70-reproduction
You are certainly keeping yourself out of trouble with all of these projects. All the best, Michael.