There’s always been interest in the computers of old, and people love collecting and restoring them. When [peterbjornx] got his hands on a DEC VT220 video terminal, it was in good shape – it needed a bit of cleaning, but it also needed a keyboard. [Peter] couldn’t afford to buy the keyboard, but the service manual for it was available, so he decided to convert a modern keyboard to work with his new terminal. (Editor’s note: Link rot. Try the Internet Archive’s Wayback Machine link instead.)
The original keyboard for the VT220 is the LK201. This keyboard communicates with the terminal using 8-N-1 (eight data bits, no parity, one stop bit) over RS232 at 4800 baud. This meant that it would be pretty simple to implement this on microcontroller in order to communicate with the terminal. [Peter] chose the Arduino Nano. However, the LK200 was more than just a keyboard for communicating with the terminal, it also housed a speaker and LEDs which the terminal used to communicate with the user. Rather than put these into the adapter unit, [Peter] decided to put these into the keyboard – a few holes and a bit of wiring, and they were in.
[Peter]’s write-up includes a description of some of the issues he encountered as well as a picture of the keyboard. He’s put the schematic online and the code up on GitHub. In case you were wondering, he used Vim on the VT220 to write his article. You could also use a Raspberry Pi to help out your dumb terminal, or just hook the terminal directly to your Linux box and go from there.
17 thoughts on “DIY VT220 Keyboard”
I wish this had happened when I resurrected my VT220 (found on the roadside). I purchased an LK201 for $30AUD from a DEC reseller that amazing came into existence for a brief period when I was working on getting it going (possibly the last DEC reseller in Melbourne…)
I managed to get the thing talking to my linux box, but after a little while the display gets garbled. The serial settings are all aligned on both sides, so I’m wondering if one of those arcane VT220 features need adjusting. Looks interesting.
“found on the roadside” and “after a little while the display gets garbled” implies hardware problems to me :/
Probably bad electrolytic capacitors. Use a can of “compressed air” inverted to blast cooling liquid on the caps one at a time and see which ones need replacement.
I thought the cool-blast trick only worked on silicon, ICs and transistors. I thought cap breakdown was a chemical thing in nature. You can tell likely failures from the bulging on top of the can.
Exactly the same happened to me. Make sure your baud rate is low enough(9600 worked for me IIRC), smooth scrolling is turned off or you have proper handshaking
I’ve noticed that with baud rates >9600 the terminal is only able to handle limited amounts of data successfully(e.g. ls at 19200 baud gets garbled about halfway through a long list). I suspect the readout from the UART FIFO is slower than required and the buffer overflows. Maybe the HW flow control will help, haven’t tried that yet (only have a tx,tx and ground cable for the link)
I wish I’d found a VT Anything on the roadside. Or in a skip, I’m not really fussy. Anyone know of a cheap source for serial terminals? I just want one, as a toy. Wyse 60 would be nice but anything will do!
It’s ironic those “thin clients” from the fad that never happened in the 1990s, you can get for peanuts now. They’re often just low-end diskless PCs. But I want an old, proper, CRT-based thing with a serial port and less brains than a working-class Tory voter. Just to hang it off the PC (or an Arduino) and make it do stuff. Any stuff, doesn’t matter what.
here is how i made my vt320 work really well with lubuntu 20.04…
It’s damned shame he couldn’t put the Ctrl key back where it belongs, left of the ‘A’ key.
It might be possible to remap the translation to swap the caps lock key with the control key.
If all else fails do away with the original controller and have the teensy handle scanning the keyboard matrix.
I’m sure he could if he wanted to, from the way he’s implemented it. As it is, a serial terminal doesn’t send anything for Ctrl. But a PS/2 keyboard does. So he just needs to swap things around a bit in the mapping.
The fact you have to tell people where Ctrl “belongs” tells me that that particular fight may be long over.
I have a new CRT Terminal with keyboard, but without video controller.
Is somebody interested in such kind of stuff?
Dangit! I had 5 of those keyboards a couple of months ago. I couldn’t find any info on them and they were really dirty so I tossed them out.
Dammit, a simple Arduino and you could’ve had them running as a PS/2 keyboard on your PC! Actually a lot of old keyboards get fanmail, so you might have benefitted from doing that. Can’t be worse than most modern cheap keyboards.
Reading this in 2020 after frying the LK201 I was using with my VT420 and sobbing silently to myself.
Now this is a pretty useful project in vintage computing as you often find the terminal without it’s keyboard and it probably could be adopted to things like classic Macs and Amigas.
how can i make it so that vt220 just output the text from raspberry pi, and use modern usb keyboard connect right into raspbbery pi usb?
Please be kind and respectful to help make the comments section excellent. (Comment Policy)