Saturday, October 6, 2018

Shield Block Diagram

In this post, I will describe the functional blocks of USB Keyboard Shield for VT100.


The figure below shows the block diagram of USB Keyboard Shield for VT100 (the center column), along with other components necessary for the keyboard functions of VT100 (left and right columns).

Fig of USB Keyboard Shield for VT100 Block Diagram
Fig. USB Keyboard Shield for VT100 Block Diagram
As shown in the diagram, the shield is composed of three major functional blocks:

  1. Transceiver for VT100 Keyboard Signal
  2. LED Array
  3. Buzzer Driver
A bit more details of each block will be discussed below.

1. Transceiver for VT100 Keyboard Signal


The VT100 keyboard cable has only one signal line, where the incoming signal (VT100 to keyboard) and the outgoing signal (keyboard to VT100) are mixed.

The transceiver circuit on the shield extracts only the incoming signal from the mixed signal line, and applies a low-pass filter to it. The resulting signal is sent to Arduino Serial RX (Arduino Uno pin 19). Arduino interprets this signal as the keyboard status bytes from VT100 terminal, and sends back a set of codes for the keys that are currently pressed down. The key code signal comes out of Serial TX (Arduino Uno pin 18). This outgoing signal is mixed into the keyboard cable signal line, after properly level-shifted.

2. LED Array


This shield has an on-board LED array. Each LED is directly connected to an output pin of the Arduino. The LEDs are turned on/off, as indicated by the keyboard status bytes from VT100 terminal.

The Arduino controls these LEDs dynamically, and up to only one LED is lit at a time, in order to reduce the power consumption by the LEDs. 

3. Buzzer Driver


The sound output (beep signal) from the Arduino is connected to an inverter on the 74LS06, which drives the piezo buzzer on the shield. A 800Hz beep sound is triggered by the Keyboard status bytes. 

Optionally, the beep signal can be routed to an external amplifier, and then the amplified signal can be fed to an external speaker attached to the keyboard cable. This routing to the external speaker is based on the original design of the VT100 keyboard cable. 

***

If you read the Keyboard section of VT100 Technical Manual, you will see that these functional blocks represent some part of the VT100 keyboard functions. The other functions, UART and the keyboard matrix, are taken care of by the Arduino UNO, the USB Host Shield and a USB keyboard.

You can find the schematic, shield sketch and other details of USB Keyboard Shield for VT100 in the GitHub repo.