What It Is and What It's Not

Since the DEC VT100 was the gold standard for serial terminals in the early years, that's what I will base my design on, and since it will be a driver for a 2:3 scale PDP-8I I'll scale my design accordingly.

I will not be making a true replica VT100. The plan in fact is not even to make a real serial terminal. I want to make something that is clearly a VT100 derivative as close as possible in look, but sourced with modern components. So for instance it will have an LCD screen disguised as a CRT, and the 2:3 scale precludes having a full sized keyboard with number pad like the original.  The display will be hooked directly via HDMI to the Raspberry Pi running the PDP software, and the keyboard will be USB connected to the Pi as well.

Creating a Model

I managed to find a VT101 Video Terminal User Guide online, and basically, for someone that often does reproductions of artifacts that they can't actually afford to buy, struck gold.  

Figure 6-1 is all I need to create a suitably scaled VT100 3D model.

So just a couple of hundred hours of 3D printing (seriously the keyboard alone is 30+ hours or so), and shoehorn in a keyboard and display and I'll be done. 

At a point where I had already printed about half of the terminal pieces I found this photo.

Notice the back of the terminal has a bend in it like the sides do, and unlike the drawing in Figure 6-1. Too late to adjust my design. Sigh, a small miss here.

Who Knew Keyboards Were Such a Big Thing?

Probably most of the people reading Hackaday knew, but not me. I think because I'm not a touch typist (long story), one keyboard is pretty much the same as another to me. That is certainly not the case for the large and vocal group of keyboard enthusiasts out there.

When I scaled down the keyboard frame and measured, I found that at most I had an area of 295 x 110 mm to fit the actual keyboard. Yikes! So I began my quest for the perfect keyboard for this project. 

I have a couple of smallish Bluetooth keyboards around and thought something along those lines would do the trick, but after a pretty extensive search could find nothing suitable. 

For a while I thought about creating a custom keyboard based on the SICK-68 design I found in these very pages. But that felt too much like a complete project inside of my project.  So no.

After that it didn't take long before I stumbled upon the wild world of mechanical "gaming" keyboards.  40%, 45%, 60%, linear vs tactile, Cherry MX, ortholinear vs staggered, so much to learn. The good news for me was the many of these designs had a form factor small enough to fit into my VT100 keyboard frame. 

Case in point, the Planck EZ is only 234 x 82 mm, well within the limits for my build.  However the cost of this absolutely gorgeous piece of technology was prohibitive for this project, and the ortholinear layout not in keeping with the original VT100's.  But I felt I was on the right track here. 

Eventually I found the MOTOSPEED CK61

At 290 x 100 mm the CK61 just fit into my design. It was well reviewed and reasonably priced enough that I could afford to use it for this project. I ordered the version with the "Blue Switch" which I assumed were Cherry MX BLUE (or clones) and in fact turned out to be nice and "clicky". The more conventional staggered layout is definitely a better look for this reproduction. I knew that I would never find a keyboard with a number pad that would fit, so I feel that this keyboard is a reasonable choice.

And here is the result.

On the left is the VT100 keyboard frame. I had to print it in two pieces which I glued together and reinforced with the cross piece you can see, also glued on, which supports the front of the keyboard at the proper height. On the right the finished keyboard. 

I'm happy with the result which is authentic looking enough for me. Until it was all together, I had not realized how uncomfortable some of these early keyboards must have been to use.  Again as a hunt and peck guy I didn't notice back in the day when I'm sure that I used said keyboard at some point in my career. 

Logo

The VT100 design is basically done. but even at 2:3 scale this is a still a pretty big artifact to 3D print. Because of the limited size of my print bed, I will have to split the console into 14-16 pieces, each of which will take 15-20 hours to print. So that leaves me with a lot of time on my hands to work on some of the other project details, like the Logo.

I had to print the Logo full size because at 2:3 scale the letters fell below the resolution of a .4 mm print nozzle. So it's ready to slap on when I get enough of the console printed and assembled.

Timing

According to Wikipedia, the PDP-8/I was launched in 1968, while the VT100 wasn't available until August of 1978. While it is conceivable that an old PDP-8/I at some point was connected with a brand new VT100, it far more likely that early PDP-8/I's were connected to some brand of teletype machine like the Teletype Model 37.  By 1970 early VDUs like the Datapoint 3300 or DEC's own VT05 (I love the Jetson's futuristic look) were probably used.

If anyone in the Hackaday community has actual first hand knowledge of terminal usage I would be very curious to know. 

At any rate, I guess I get low marks for historical accuracy matching a VT100 with Oscar's PiDP-8/I reproduction. On the other hand, the DEC VT100 is probably one of the most iconic VDUs of all time, both in terms of its look, and the protocols (the emerging ANSI X3.64 standard) that it supported, to the point where VT100 emulators are ubiquitous even today.

Update

Jim Beatty was kind enough to share his experience with PDP-8 machines.

I cut my teeth on PDP-8s from about 1968-78.  Early on an ASR-33 teletype was the terminal of choice, at 110 baud.  Later there was a terminal called a Decwriter (I believe it was dot matrix).  Video terminals were a rarity until the mid-to late 70s.

ASR-33 on the left and Decwriter on the right.

Display

As with the keyboard I determined the optimal size for the scaled down display to be 168 x 126 mm, aligning with the common 4:3 screen ratio of the day. Well you can imagine how hard it is to find a small 4:3 display today. However 7 inch LCD screens a very common, fairly cheap, and their width at around 165 mm is practically perfect for my needs. The 16:9 screen ratio though does shrink the screen height from optimal, but there is not much that can be done about that.

I eventually decided to purchase a GeeekPi 7 inch 1024 x 600 HDMI Screen LCD Display with Driver Board from Amazon.

I prepared the screen for mounting by printing a shallow container to hold the driver board used a Velcro strip to secure the PCB in place. Then I used additional Velcro strips to attach the driver board and caddy to the back of the display.

I had already sliced off the front 25% or so of the terminal model and printed it out as four pieces that I glued together with a CA based gel adhesive (LePage ULTRA-GEL). I couldn't resist adding the Logo that I had printed earlier.

I also designed and printed the front piece to mount the display as well as some tabs to hold it in place.

Mount the display on the back of this piece into the frame provided and secure it in place with the tabs.

Finally insert the display frame and the curved piece at the top into the terminal model and secure it with glue.

And that's it for now.  When I was positioning the actual display in the model, I centered it onto the frame that was holding it. Looking at the integrated unit above with the top curved piece in place it feels a little low to me now.  Not sure yet if it's enough for me to spend another nine hours plus filament costs to change it though. 

The Façade

It occurred to me at this point that I could almost stop here having achieved most of what I set out to do.  With a nice back piece and heavy base holding everything upright, I wouldn't be missing much sitting in front of and using this terminal Façade.  I'm going to push on and print the rest but it feels like a viable and even kind of cool option.

Display Update

I wasn't happy with the way the 7 inch 16:9 display looked. 

For one thing it was mounted too low. That could easily be fixed by adjusting and reprinting the black frame. But even then I'm not sure it would look right. So I started searching for an alternative and found a display that I had missed on my first go around that is practically perfect.

This is a PIM372 (Digi-Key part number 1778-1225-ND), an 8 inch 1024x768 XGA display.  From the description:

     The display's 4:3 aspect ratio makes it a great upgrade for retro gaming builds. 

Or retro terminal builds. I had mentioned that the optimal size for a scaled down display to be 168 x 126 mm. Well the viewing area for this display is 165 x 124 mm. It doesn't get much better than that. I reworked the display panel model with the dimensions from the data sheet (outside dimensions 174 x 136 x 3 mm) and found that it will just fit.

So I have one on order. Unfortunately it is delayed in transit at the FedEx Fargo ND facility due to the weather situation down there. I guess I'll just have to be patient.

Update: The display arrived and I was happy to see that it is not in fact monochrome as the Digi-Key description implied. 

Almost There

My 3D printer was going non-stop for ten days or so. When I finally finished printing and installing last piece of the main terminal body I thought I would share.

Unfortunately the join lines are clearly visible. Fortunately I was able to confine the worst of the misalignments to the back of the terminal. Some were due to the print pulling off the bed slightly despite my best efforts to mitigate this. The rest are too bad so I'm NOT tempted to go the bondo and sanding route (I hate sanding).

4:3 Aspect Ratio Makes a Bigger Difference Than I Thought It Would

When my new screen finally arrived, I prepared the display the same way as I did the 16:9 aspect ratio panel.

I printed a carrier for the driver board and used two sided tape to hold the PCB in place. Then I attached the carrier and board to the back of the display also with two sided tape. I redesigned the front panel to accommodate the larger screen and mounted the display with painters tape as the was no room to use tabs like I did with the smaller screen. Also note that I added a 90 degree HDMI “elbow “ so that the cable would go straight out the back. Finally I snapped the front and top panels into the terminal frame.

And voila.  My finished VT100 2:3 Scale Reproduction. To me this looks so much better than with the smaller screen. I adjusted the font to get as close to an 80 x 24 character layout as I could. Here is a photo of the reproduction and Oscarv's PiDP-8/I.

I think they look great together.

Wait, There's More!

When I found the perfect screen for this project, and I saw the following in the product's description:

   The display's 4:3 aspect ratio makes it a great upgrade for retro gaming builds. 

I knew I was going to try and prove them right. I'll let you be the judge if I succeeded or not.

I purchased an arcade controls kit from Amazon.

I modified the VT100 keyboard model and designed a new front face to accept the controls. 

I mounted the joystick in a frame printed on the bottom of the front face and held it in place with some printed "tabs". The longer tabs also join the two front frame pieces together.  Wiring is pretty straight forward as the kit comes with a USB interface board and all the cables necessary to build a working arcade console. 

I had an Raspberry Pi B laying around which should be OK for the older classic arcade games that I like.  I added it to the terminal body and connected it to the display with a short HDMI cable. 

The black cable is the USB connection to the arcade controls, and the two grey cables are power to the Pi and the display. I suppose I could clean this up further with a powered USB hub, but for now it's fine.

I flashed an SD card with the RetroPie image and booted everything up. It all works really well.  A scaled VT100 reproduction makes for a pretty funky and unique arcade cabinet.

Wrapping Up

So I started this journey wanting to build something that I could use as a "front-end" when showing off Oscarv's wonderful PiDP-8/I to my maker mates.  The iconic DEC VT100, despite not quite being era authentic, fits the bill nicely.  They look great together.

Along the way I was inspired to make a fun variation with my VT100 mini arcade cabinet. 

I think of this as my "mullet" project now, business in the front, party in the back. With the addition of an HDMI switch and powered hub you could have both wired up at the same time be able to easily switch between the two modes.

The one thing that I didn't do was create an actual RS-232 terminal. I don't have the bandwidth or a use case for this now, but based on projects like PiTERM, it looks like it would be pretty easy create a third variation that did just this.