

Usbkbd vt100
USB Keyboard Shield for VT100
- Size
- 68.6 × 53.2 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 30
- Nets
- 50
- Pads
- 139
- Tracks, vias
- 327, 7
- Pours
- 2
- Routed
- Yes
- KiCad
- KiCad 4
- Created
- 15 Jun 2018
- Updated
- 14 Jan 2022
Overview
Usbkbd vt100 is an open-source printed circuit board by ryu10, from the ryu10/usbkbdshield_vt100 repository on GitHub. It is a 2-layer board of 68.6 × 53.2 mm with 30 parts on 50 nets, routed with 327 tracks and 7 vias.
It is built around the LM393. Its parts include 18 resistors, 4 ICs, 2 capacitors and 2 connectors. It belongs with the keyboards and input boards of this library.
Main components
1README
README.mdUSB Keyboard Shield for VT100
Rev. 2.1
About
This shield connects a standard USB keyboard to the DEC VT100 terminal.
Features
- All keys on the VT100 keyboard are mapped to the USB keyboard keys.
- VT100 keyboard LEDs and bell are emulated on the shield PCB.
The Gerber file, BOM, schematics and Arduino sketch for the shield are included in this repo. For the steps to assemble, program and connect the shields, please see the sections below.
Note: this shield uses the USB Host Shield from Circuits@Home.
Please use the information in this repo at your own risk. No warranty or guarantee is provided.
Required Components
- USB Keyboard Shield for VT100 (the shield from this repo)
- USB Host Shield by Circuits@Home, the "full-sized board"
- Arduino Uno
- Keyboard cable for VT100 (see "Keyboard Cable" below)
- USB Keyboard
Steps
- Assemble the shield
- Build a keyboard cable
- Program the Arduino
- Connect the shields and cables
The details of each step are described in the next few sections.
Assemble the Shield
The USB Keyboard Shield for VT100 can be assembled using the following info:
- PCB Gerber File: usbkbd_vt100_2_1_gerber.zip
- Schematic: usbkbd_vt100_sch.pdf
- BOM: usbkbd_vt100_BOM_2_1.pdf
Build the Keyboard Cable
To make the keyboard cable, connect these components:
- 1/4 inch stereo plug/cable
- 5-pin header connector
PIN CONNECTIONS
| Pin | Plug | Value |
|---|---|---|
| 1* | - | (spk+)* |
| 2* | - | (spk-)* |
| 3 | Tip | +12V |
| 4 | Sleeve | GND |
| 5 | Ring | Signal |
* optional
The pin connector is attached to J1 header on the USB Keyboard shield for VT100. The stereo plug is connected to the keyboard port on VT100 terminal.


Program the Arduino Uno
It is recommended to program the Arduino Uno before attaching the shields.
-
Install USB Host Shield Library 2.0 and Timer1 Library into Arduino IDE.
-
Clone or download this project.
-
Open the sketch
usbkeyboardvt100/usbkeyboardvt100.inoin Arduino IDE, and program the Arduino Uno.
Configuration Options
There are two options in usbkeyboardvt100.ino:
// SWAPCAPS: If defined, LeftCtrl and CapsLock are swapped on USB Keyboard.
#define SWAPCAPS
// SWAPLFBAR: If defined, swap LineFeed and '|\' key codes for VT100.
//#define SWAPLFBARComment out/uncomment the #define lines as needed.
Connect the Shields and Cables
- Connect the USB keyboard to the USB connector on the USB Host Shield.
- Connect the keyboard cable for VT100 to the J1 header on the USB Keyboard Shield.
- Connect the keyboard cable to the keyboard port on VT100 terminal.
- Stack and connect the Arduino Uno, the USB Host Shield, and the USB Keyboard Shield, in this order, from the bottom to the top (see the iamge below).
- No external power supply is needed. The power is supplied via the VT100 keyboard cable.

Key Mappings
Some hard-to-guess keys:
| VT100 Key | USB Keyboard Key |
|---|---|
| SET UP | F1, SysRq |
| CTRL | Caps Lock |
| CAPS LOCK | Left Ctrl |
| BREAK | Break |
| LINE FEED | End |
| NO SCROLL | Scroll Lock |
| PF1 | Num Lock, F9 |
| PF2 | (numpad) /, F10 |
| PF3 | (numpad) *, F11 |
| PF4 | Page Up, F12 |
| (numpad) , | (numpad) + |
The key mappings are defined in usb_key_tbl[] in usbkeyboardvt100.h. Also see "Configuration Options" above.
Reference Configuration
The following configuration was used during development of this shield:
- USB Host Shield 2.0
- Arduino Uno R3
- VT100-WA / VT-180
- USB Keyboards: HP K1500 / Logitech K310
Known Issues
- Keyboard connected via a USB hub is not supported.
GPL
The code is released under the GNU General Public License.
Parts
30| Qty | Value | Footprint | References |
|---|---|---|---|
| 5 | 10k | Resistors_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal | R3, R9, R10, R13, R14 |
| 3 | 1k | Resistors_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal | R6, R7, R11 |
| 2 | 20k | Resistors_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal | R2, R4 |
| 2 | 2k | Resistors_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal | R1, R12 |
| 2 | 4k7 | Resistors_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal | R8, R16 |
| 2 | 680 | Resistors_THT:R_Array_SIP7 | RN1, RN2 |
| 2 | 68k | Resistors_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal | R15, R17 |
| 1 | usbkbd_vt100:Diode_symbol | ||
| 1 | .047uF | Capacitors_THT:C_Disc_D5.0mm_W2.5mm_P2.50mm | C1 |
| 1 | 1M | Resistors_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal | R5 |
| 1 | 47k | Resistors_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal | R18 |
| 1 | 6800pF | Capacitors_THT:C_Disc_D5.0mm_W2.5mm_P2.50mm | C2 |
| 1 | 74LS06N | Housings_DIP:DIP-14_W7.62mm_Socket | U3 |
| 1 | ARDUINO_FOOTPRINT | usbkbd_vt100:ARDUINO_SHIELD_NOICSP | SHIELD1 |
| 1 | BUZZER | Buzzers_Beepers:Buzzer_12x9.5RM7.6 | U4 |
| 1 | LED10ARRAY | Housings_DIP:DIP-20_W7.62mm | U1 |
| 1 | LM393 | Housings_DIP:DIP-8_W7.62mm_Socket | U2 |
| 1 | To_AMP | Pin_Headers:Pin_Header_Straight_1x04 | J2 |
| 1 | VT100_Kbd | Pin_Headers:Pin_Header_Angled_1x05 | J1 |
Questions
How big is the Usbkbd vt100 PCB?
It measures 68.6 × 53.2 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Usbkbd vt100 use?
30 parts, built around the LM393. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
Where can I download the Usbkbd vt100 KiCad files?
From the ryu10/usbkbdshield_vt100 repository on GitHub, at the commit this page was made from: the board is usbkbd_vt100_KiCad/usbkbd_vt100.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Can I use the Usbkbd vt100 design in my own project?
Its repository states no licence, so its author keeps all rights: ask ryu10 before reusing the design.
Similar boards
- 2 layers231.1 × 106.7 mm

- 2 layers130 × 80 mm

- 2 layers100 × 85 mm

- 4 layers292.1 × 88.3 mm

Snark barker mca
schlae/snark-barker-mca
A Sound Blaster compatible sound card for Micro Channel bus computers
177 parts69 - 2 layers133 × 98 mm

Precharge
michaelruppe/FSAE
Projects for Formula SAE Electric Vehicle competition (Australia 2019/2020)
121 parts59MIT - 4 layers285.1 × 48.1 mm

Ayab esp32
AllYarnsAreBeautiful/ayab-hardware
Contains the schematics and layouts for the AYAB Arduino shield
246 parts50CC-BY-SA-4.0 - 4 layers72.4 × 44.4 mm

Btmdpcb v04 eval
17o2/bluetooth-minidisc
Adding built-in bluetooth connectivity to a 20-year-old Mindisc player
115 parts45 - 2 layers29 × 27 mm

USB C-3-way splitter V5
bluepylons/USB-C-3-way-splitter
A splitter board (for making a cable splitter) for turning a 5V 3A USB power source to 3 5V 1A USB sources
39 parts40MIT