Wyse Terminal – An amber raspberry

I have always been a fan of serial terminals. In so many old films you see ranks of people in front of their ‘computers’ when in fact they were more likely to be terminals. The ‘computers’ were somewhere else. Either in a back room or another building. Such was the case for corporate computing for many years. The change from thin to think client seemed to flip several times during the 80s and 90s. In fact, we are still on the crest of one of these waves today, replacing dumb terminals with relatively dumb browsers (yeah yeah… settle down all you JavaScript devs!)

The design of these terminals are very distinctive:

The point is where the data is being processed. Either on a large central computer(s) or at your desktop. These days there is quite a good mix of front and back with web technologies, allowing for some amazing user experiences. Back in the day, that was not the case. Go back 20 years, and it was still common to go into a shop or travel agent, and they would have a text-only terminal to find products or book hotels. The good ones would zip around the screens with dozens of shortcut keys in a blur of fingers. Even with relatively low bandwidth connections, they could get stuff done quickly, assuming the central computers were up to the job.

An example I found online from a public library. You search and you get the results. Simple and easy. I wonder what the difference in speed would be between a modern system and this?

For me, the best combinations were green or amber text on black screens. Something about it appeals to my nostalgic (retro) self. These days, such devices are hard to get hold of. In my case, a rather battered amber screen Wyse-150 amber screen terminal It has a printer socket and two serial connectors. One can be used for serial printer or as another terminal connection. The main serial can go up to 115200 baud which is superfast for a terminal. In fact, I have used it to my Z80 project for a while, and it really is lovely to use, and the keyboard is fantastic. Also, the screen refresh is nice and high, so the picture is very stable.

Linux terminal

As used in a number of other places on this site, there is a Linux machine that acts as a serial console. For this project, I am going to use my Raspberry Pi 4 and a level convertor to RS232 into the GPIO. I wanted to use this rather than a USB Serial convertor as it felt more real somehow.

Here is a block diagram showing what we have:

Putting that together, you get:

My trusty Pi 4 with the RS232 convertor, also know as a level shifter

Getting one is easy, just search for RS232 level shifter and you can find one.

In this case the serial connection is 25pin to 9pin D cable.

The configuration of Linux depends on the build being used. For the stadnard RAspibarry Pi OS all you need to do is configure is:

sudo nano /boot/config.txt

Add the following line to the end:

enable_uart=1

Then update the following:

sudo nano /boot/cmdline.txt

Ensure that the following is defined:

console=serial0,9600 console=tty1

With that you just reboot your Pi and:

Searching for terminals in Lynx console browser! It can be useful, but is mostly just fun. Virtually all websites are painful to use in Lynx.

Wyse Terminal settings

To make the experience smoother, I used the following settings on the terminal itself:

ScrollJump
Rcvd CrCR
EncON
Auto ScrollON
MonitorOFF
StatusON
Wrap EOLON
Recognize DelOFF

Baud rate blues!

Before all this was working, it was simply not working at all. The default baud rate I started with was, 115200 as that was the same as the Z80 project. It worked, to a point, but the screen formatting on LS commands and Nano editor were always messed up. I spent ages messing with the settings, thinking it was a protocol emulation issue. Trying VT52 and VT200. Running out of options, I dropped the baud rate to 9600 as a typically very compatible rate and boom, everything just worked.

That is not the best experience as the refresh is a little slow, but does feel authentic and retro. It is usable for sure. I tested it with an SSH session to another Linux VM on the network, and it was good enough to manage it for sure.

Future updates

The next steps for this setup are:

Printer

Hook up my serial thermal printer to the ‘printer’ serial port.

You can print full screens, but I think there are other options of print formatting. The Silent 700 printer I have it not very feature rich, but it is a lovely little thing to use, and I really want it to be ready.

Speed

Try higher bandwidth levels. I want to keep using the GPIO native UART but perhaps high bandwidth levels are possible. Want to do some testing to see what the upper limit it.