I got my VT420 working

Many thanks to Steve Davidson. His blog post “Vintage Digital VT420 Terminal on Raspberry Pi” was very helpful in figuring this all out.

A little over a year ago, a strange bug bit me and I had a sudden craving for a VT420 terminal. I don't know, it just looked pretty on the pictures I saw. Soon I'd found an amber VT420 on eBay for $89. When I bought it, I'd assumed the terminal would come with a standard DB9 port, but that turned out to be naive.

The VT420 was produced in several regional variants, and the one I ordered was the North American version, which inexplicably comes without DB9 ports. It instead has two MMJ (Modified Modular Jack, sometimes referred to as DEC-423) ports—a proprietary cable/plug manufactured and sold by the now defunct Digital Equipment Corporation. These days it's only available at specialized cable companies, and the few ones I found were US-based and quoted ludicrous amounts for cable and shipping.

The nice thing about MMJ is that it's essentially an RJ11 plug with a displaced locking pin to distinguish it from other RJ11-like ports. Another conveniently ubiquitous type of cable that uses RJ11-based plugs is LEGO Mindstorms cable, and I happened to still have one taking up (very little) space in my electronics drawer. After filing off the locking pin, the plug fit into the MMJ port perfectly—if you ignore how easily it slips out. My “solution” to this problem is touching the setup as little as possible.

Jumper wires on the serial adapter

I then cut the other plug off the cable, removed the insulation and stuffed the wires into female-to-female jumper wires. I did this because the USB-to-serial adapter I ordered for this project had a male RS-232 connector on it. Putting wires on the pins was not feasible, but I also didn't want to order a female-to-female RS-232 adapter and wait another few days when I was this close to success. I tried putting the jumper wires on the male DB9 plugs pins directly. The wires ended up holding surprisingly well.

MMJ PinRJ11 Wire ColorMale DB9 Pin
1 DTR White 6 DSR
2 TXD+Black 2 RXD
3 TXD-Red 5 GND
4 RXD-Green 5 GND
5 RXD+Yellow3 TXD
6 DSR Blue 4 DTR

Since the Mindstorms cable isn't configured as a null-modem cable, I essentially had to mirror the pins. You can find some interesting diagrams for wiring MMJ adapters on this page. The diagram for the BC16E MMJ crossover cable was especially useful to me.

Soon after connecting the cables and starting a Getty instance for /dev/ttyUSB0 on my Raspberry Pi, beautiful results ensued.

Here's a YouTube playlist with videos of the terminal.

$ man man