- On Terminals -
In the dark ages of computer times, computers did not have video screens and keyboards. There were computers, there were keyboards (typewriters), and there were video screens (televisions), but nobody had thought yet about combining them. Probably they were too busy to make computers work in the first place.
The first computers used switches, lights and bells to communicate with their users (and some modern old computers too). But some time in the 50's, somebody thought that it might be nice for a user to actually be able to type in letters and numbers, and receive information in human-readable in return. Teletype Corporation was already making teletypes to let people communicate with each other in text over telephone lines. So through a serial connection, a teletype was interfaced to a computer, and from that moment on the user could tell the computer their opinion in plain text, and the computer could bang letters back on a piece of paper to hammer down what it thought of it all.

Soon after, users started to have hearing problems from all those computers' opinions...
But as it was cool to work with computers, and there was really no alternative, people put up with it.
Until, that is, halfway the 60's. Finally, someone at IBM was so sick of the noise, that they invented the Video Display Terminal: the IBM 2260. And the next thing that happened was that all big computer-wielding companies massively dumped their teletypes and purchased VDTs from IBM.
Then things started to accelerate: Intel invented the 4004, then the 8008, and then the 8080, and people began to notice that maybe the computer revolution had started. And in 1974 MITS (not the University) had designed and began to sell the Altair 8800, and there was no doubt anymore. People started to quite massively (well, about 25,000 anyway) buy those kits and build them. And as these people needed to enter their opinions and listen back to the opinions of their computer, they also massively went buying up those dumped teletypes. To the despair of their households.
But luckily for those households, just one year earlier (1973), a really smart guy (Don Lancaster) had already seen the computer revolution coming, and had designed the first low cost computer terminal you could build yourself: the TV Typewriter. And what's more: he gave the designs away for the nominal fee of a magazine purchase!
And so, over time Don became the hero of many households.
And also kicked off the hobby of building your own Video Display Terminal.
And that is really where this particular story starts...
My own Video Display Terminal
I was born just before the computer revolution started, and by the time I had grown enough brain to wrap around a computer, it was 1980. Only 7 years earlier, everyone who owned a computer had to use a Video Display Terminal or a Teletype to be able to argue with it. But in 1977, the Video Display Terminal was suddenly made old news because the TRS-80 Model 1, the Apple 2, the Commodore PET, and even computer kits like my Nascom 1, came to the market and had their own keyboards and video display circuitry built-in. This caused the Video Display Terminal market to stay a business-to-business market that didn't profit from all those home users. Almost to the sorrow of DEC, Hewlett Packard, Lear Siegler, and a lot of other manufacturers, were it not that the B2B computer market blew up anyway and they made their money.These days, if you find a real Video Display Terminal in a home, the owner must surely be a die-hard vintage computer enthusiast. Video Display Terminals are heavy and large, take up a lot of desk and storage space, and regularly need light to medium surgery to keep them running. Most other people will just take their laptop, plug in a USB to RS-232 converter, and use a terminal emulator application. And so do I.
But a recent project of mine revolved around a Minato 1866 eprom programmer which used a serial port for communications. And I found myself wishing again that I had a real serial terminal instead of having to use two laptops on my desktop (one for the internets, the other to communicate with the eprom programmer).And then I remembered reading about the FabGL library, which has an implementation of an ANSI-compatible terminal. The library runs on an ESP32 microcontroller, and apart from the ESP32, needs minimal extra electronics to read a keyboard and mouse, and control a VGA display output, and at a quite high resolution as well. I also remembered that a guy called Just4Fun used the FabGL library with a PCB design of his own to use as an ANSI terminal with a serial port. And I wanted that!
But I wanted more: I wanted to do an electronics project from start to end, to find out if I still 'had it', and to see how easy it is these days to produce a more or less professional-looking and -feeling device on a hobby budget.
So, in the vein of many of Don Lancaster's followers, I decided to build my own Video Display Terminal, customizing it for my own wants along the way. So I made my own reproduction of the uTerm2-S: the nTerm2-S!
Requirements and goals
After some (not too much, to prevent overthinking and overdesigning) thought, I had devised this list of requirements:
- The terminal should be compatible with FabGL and be able to run the ANSI Terminal application (and also the Altair 8800 emulator) example straight out of the box.
- The terminal should have a real RS-232 v24 that can be used to interface to a vintage computer (e.g. I have a SYM-1).
- The terminal should be programmable by simply plugging into a computer via USB, no dongles needed.
- The terminal should be powered from the USB.
- The USB port should be a USB-C port, as per EU regulations.
- The terminal should have a few blinkenlights showing the happenings on the RS-232.
- The terminal should support XON/XOFF, RTS/CTS and DTR/DSR protocols (DTR/DSR for old printers and plotters).
- The terminal should have a crossbar switch to exchange RxD and TxD, and RTS and CTS, so that I will never have to search for a null modem converter ever again.
- The terminal's PCB should be small, and so be built with SMD components.
- The terminal's PCB should be hand-solderable, despite using SMD components. That means SOP packages as much as possible, and minimum size of 0603 for resistors and capacitors.
- Choose commonly found and cheap components, to keep the costs down as much as possible.
- The terminal's connectors and buttons should be layed out in such a way that it can be put into a case. I chose maximum dimensions of 10x15, which is called 'Eurocard' format. Of course the PCB will be smaller.
- The whole terminal should be small. It should be a device that you can quickly get out of a drawer, connect up and go, then disconnect and throw back into the drawer when done, a useful tool.
I also had devised some stretch goals:
- It would be great if the terminal could be used over WiFi. At the minimum it would be great to be able to telnet to the terminal and use the terminal as a proxy. If the ESP32 has enough resources, it might be possible to incorporate a web server that echos what the screen would show.
- It would be useful to be able to switch to a 'hex' mode where the terminal doesn't parse any codes but just shows the sent and received data on the terminal screen as hex numbers.
- If WiFi is running, I might also be able to use Bluetooth and do serial-over-bluetooth.
But above all hovered one important goal: to not fall into the Perfection Trap. Even though I had already stepped onto the dangerous path by defining stretch goals, the one and only goal was: to make and release this device. If it isn't perfect, I can always make a next, better, version.
You may have noticed that my stretch goals are all related to software. This was on purpose: if the hardware would be there, even with basic software, I would have succeeded. If the hardware exists, I might still improve on the software. But above all: it might inspire someone else to improve on the software! And then we all win. I was setting myself up for success.
Tools
My own experience with designing and building electronics was quite outdated, having done my last serious design at the end of the '90's. That was done with Orcad and Ultiboard, and it didn't even use SMD components. But over the years I have been repairing vintage computers on a regular basis, and I had learned a few SMD soldering skills since. With the requirements I defined, I thought the challenge would be doable for me, and therefore would be doable for others.
Tools, manufacturers and resources that I intended to use:
Kicking off
So here we are, the kick off of this blog. In the next few weeks I will be writing more about the journey.
But one thing I have to confess. You probably noticed that I have been using past tense throughout this blog post. To lift a tip of the veil: I have already progressed quite far towards my goal. Progress has gone far enough now for me to write these pages as a journey, hopefully inspiring a few people.
For anyone who is more interested in the end result than in the journey towards it, you can find most of the details on my Github. Be advised that it is still a work in progress. At the time of this posting, for instance, I am on the verge of making a major change. Anyway, here it is:
https://github.com/RetepV/nTerm2-S
Cheers!
Peter
P.S. As I posted the Github link here, I feel I have to make a small update. Late in the design process, I decided to make a crucial change: replace the USB<->serial bridge IC. As the design with the original IC works, I decided to keep the Github link, and create a new repository for the design with the new IC. You can find the new repository here: https://github.com/RetepV/nTerm2-S-FT231.




Reacties
Een reactie posten