Friday, 12 June 2020

VGA Text Terminals - an almost off-the-shelf solution.


When working with vintage computing equipment, one of the big issues is communicating with the system. Traditionally a video terminal is used - anything from a glass teletype to a 'smart' terminal.

It is all well and good to be able to use your laptop or desktop computer as a terminal, but it ties up resources and, somehow, doesn't feel quite right.

My trusty Televideo 950 terminal (circa 1985) finally bit the dust a few years back, and I didn't have any spare gate array chips left to resurrect it once again - coupled with a fading display tube, I had to sadly wave my old friend goodbye.

Ditto the ADDS Consul 880 and the unbranded amber screen terminal I also had.

Time to build a custom terminal.

My first attempt used an Arduino and a 3.5" Graphical LCD. It was good enough as a proof of concept, but the major issue was scaling up to a decent size of display.

Since I was only interested in text mode, I tried using a 48*8 text display LCD. Better visibility, but not enough space on the screen for the desired data.

The project was put on the back burner for a couple of years.

Then I happened upon a particular library designed to create a serial terminal with a VGA output - a graphics and text terminal. What's more, the library would emulate the essential functions of a VT52/VT100 terminal (the gold standard for basic smart terminals), and would allow me to use software written to take advantage of my old TV950 terminal.

What made it even better is that it would take advantage of the vast number of spare PS/2 interface keyboards I have in the bottom of my wardrobe, (where else would you keep your spare keyboards?)

I copied the circuit diagram into my choice of electronics CAD program, downloaded the library and ordered the parts (an ESP32 development module).

After putting the parts together (on a breadboard) and connecting a VGA screen, I switched on.

Success.

Almost.

The keyboard refused to be acknowledged. I could send data to the display, but nothing was coming back. Fiddling about, I found that the keyboard was swamping the esp32 interface, locking up that part of the firmware. A couple of diodes fixed that, but there was still nothing reliable coming out of the chip. It turned out that the self-same problem was occurring with the TTL serial interface, and a similar solution fixed it.

A fairly universal terminal controller fits comfortably on a 100mm square double-sided PCB. The circuit design is still undergoing some refinement and the firmware is undergoing some modification in order to handle additional features of the keyboard.

As it stands, the controller is expected to fit inside am extruded aluminium enclosure with front and back panels to suit. Given a secondary project (a custom PS/2 keyboard controller for a POS keyboard I own), it is possible that the terminal will eventually end up embedded inside the keyboard housing.


Features:

As standard:
  • PS/2 keyboard
  • TTL/RS232 serial interface (switch selectable)
  • VGA output
  • Dual power source - 5V or 12V
Under development:
  • 8 status LEDs (one tied to the sounder output)
  • Audio alert (simple sounder circuit)
  • Firmware defined keyboard translation (F-keys etc)
Other possible features will need to wait for a later version.


References:

 FabGL Library:    Website -  http://www.fabglib.org                                              

GIT Hub -       https://github.com/fdivitto/fabgl                               



 Circuit Design: Under Development    VGAMT TRM v1.05 Terminal Mainboard Circuit    

Gerber files for the PCB will follow. Eventually.

Saturday, 9 May 2020

Intel 8052AH revisited part 1 - a little system archaeology

Back in the mists of time, during that period when the 8-bit system was in decline and the gradual rise of the 16-bit home computer - when the PC was still almost exclusively a Business System,
there was a corps of small computer enthusiasts who liked to play with microcontrollers.

I had expanded my home micro (a Dragon 32) beyond all recognition with a combination of wire-wrapped interfaces and recycled SRAM (and other) cards from embedded control systems.

It was all well and good but it was, ultimately, a slow and cumbersome system. It lacked the tiny footprint and the built-in features of a microcontroller.

Then in November 1987, Elektor Electronics published an article and design for a single board computer based arount the Intel 8052AH-BASIC chip. An 8052 microcontroller with a built-in BASIC interpreter.



The original Elektor Electronics 8052AH-BASIC SBC. Not mine - my board has been modified a couple of times, and is rather tattier than this one.

A board was bought and chips were purchased - and soon enough, there was a 4" by 6" computer on my workbench. It was used to power a number of projects over the years with the aid of a couple of protoboard interfaces.

Even after going over to PCs, I kept the board, carefully preserved in an anti-static bag and bubble wrap.

I always intended to re-work the interfaces, and to expand that machine - just because I can.

I also happen to have a project in mind that is ideal for control by an expanded 8052 control board. More on that when I get that far.

With the advent of low-cost PCB prototyping services, it has suddenly become possible to design and have made double-sided PCBs that are both properly produced and are not going to rot because of un-coated copper tracks.

For the last couple of months I've been on a bit of a binge designing the PCBs and a card cage to finally do that upgrade. It has been fun - that is to say frustrating as anything, and has required some finesse in obtaining the obsolete parts required for the project.

The most ridiculous aspect of the whole thing, though, is the terminal.

I don't want to use my PC as a terminal for the machine, so I am building an embedded serial terminal with a VGA output. It uses an ESP32 .... a 32-bit, multicore microcontroller that outclasses the 8052 in almost every way possible, except that it isn't a bus-based system.

I intend to publish the project as each stage reaches, if not completion, then the point at which the PCBs are ready to be ordered.