/TerminalUSB

A modified firmware for Geoff Graham's ASCII Video Terminal to support USB keyboards

Primary LanguageC

TerminalUSB

This is a modified firmware for Geoff Graham's ASCII Video Terminal which changes it to use a keyboard connected to the USB port instead of the PS/2 port. All other features of the terminal are identical to the original, except for the USB-to-serial bridge functionality (since the USB port is now used for the keyboard).

Hardware

No modification to the original hardware is necessary. There are a couple of things to note:

  1. USB Connector. The USB connector on Geoff's terminal is used to plug the terminal into a computer as a client device, therefore the socket on the board is a USB type B client side connector. To plug in a keyboard, you need a type A host side connector. You can use an adapter like this (or this or this depending on your socket).

  2. Power supply. Since the USB socket is taken up by the keyboard, it can no longer be used to power the Terminal. You need to power the terminal from the external 5V power connector. Additionally you need to place a jumper on the "USB PWR" jumper pad so the keyboard receives power.

Software

The new software can be applied as a firmware update to the Terminal. Just follow Geoff's instructions from his V1.3 firmware update, When loading the HEX file, use this instead of the HEX file in Geoff's archive. It is always possible to revert the Terminal to the original state by (re-)applying Geoff's original V1.3 update.

Keyboard Compatibility

This firmware requires the USB keyboard to be directly connected to the Terminal's USB socket. If there is a USB hub in between the terminal and the keyboard then the keyboard will not work. Some keyboards have built-in USB hubs and those will not work either. If your keyboard has one or more USB sockets on it (to connect a mouse for example) then it likely contains a USB hub and will not work.

Source Code

The source code is provided in the "firmware" subdirectory. The main parts are almost identical (with minor modifications) to Geoff's code, except for the USB keyboard support. To compile, use MPLAB X version 4.05 or later. There are two different configurations, "Bootload" and "Programmer". Use "Bootload" to create a .hex file that can be uploaded via the bootloader. Use "Programmer" to create a .hex file that can be uploaded directly via the MPLAB (IDE or IPE). Note that when the "bootload" configuration is selected you will not be able to run or debug the code from within the MPLAB X IDE (will upload but not run properly).