Skip to the content
PCBKitNew board
2 layers68.6 × 53.2 mmUsbkbd vt100, the printed circuit board in 3D

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

1

README

README.md

USB 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

  1. Assemble the shield
  2. Build a keyboard cable
  3. Program the Arduino
  4. 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:

Build the Keyboard Cable

To make the keyboard cable, connect these components:

  • 1/4 inch stereo plug/cable
  • 5-pin header connector

PIN CONNECTIONS

PinPlugValue
1*-(spk+)*
2*-(spk-)*
3Tip+12V
4SleeveGND
5RingSignal

* 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.

vt100KeyboardCable.jpg

usbkeyboardshieldCable_2_1.jpg

Program the Arduino Uno

It is recommended to program the Arduino Uno before attaching the shields.

  1. Install USB Host Shield Library 2.0 and Timer1 Library into Arduino IDE.

  2. Clone or download this project.

  3. Open the sketch usbkeyboardvt100/usbkeyboardvt100.ino in Arduino IDE, and program the Arduino Uno.

Configuration Options

There are two options in usbkeyboardvt100.ino:

text
// SWAPCAPS: If defined, LeftCtrl and CapsLock are swapped on USB Keyboard.
#define SWAPCAPS

// SWAPLFBAR: If defined, swap LineFeed and '|\' key codes for VT100.
//#define SWAPLFBAR

Comment out/uncomment the #define lines as needed.

Connect the Shields and Cables

  1. Connect the USB keyboard to the USB connector on the USB Host Shield.
  2. Connect the keyboard cable for VT100 to the J1 header on the USB Keyboard Shield.
  3. Connect the keyboard cable to the keyboard port on VT100 terminal.
  4. 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).
  5. No external power supply is needed. The power is supplied via the VT100 keyboard cable.

shieldstack_2_1.jpg

Key Mappings

Some hard-to-guess keys:

VT100 KeyUSB Keyboard Key
SET UPF1, SysRq
CTRLCaps Lock
CAPS LOCKLeft Ctrl
BREAKBreak
LINE FEEDEnd
NO SCROLLScroll Lock
PF1Num Lock, F9
PF2(numpad) /, F10
PF3(numpad) *, F11
PF4Page 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

  1. Keyboard connected via a USB hub is not supported.

GPL

The code is released under the GNU General Public License.

Parts

30
QtyValueFootprintReferences
510kResistors_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_HorizontalR3, R9, R10, R13, R14
31kResistors_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_HorizontalR6, R7, R11
220kResistors_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_HorizontalR2, R4
22kResistors_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_HorizontalR1, R12
24k7Resistors_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_HorizontalR8, R16
2680Resistors_THT:R_Array_SIP7RN1, RN2
268kResistors_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_HorizontalR15, R17
1usbkbd_vt100:Diode_symbol
1.047uFCapacitors_THT:C_Disc_D5.0mm_W2.5mm_P2.50mmC1
11MResistors_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_HorizontalR5
147kResistors_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_HorizontalR18
16800pFCapacitors_THT:C_Disc_D5.0mm_W2.5mm_P2.50mmC2
174LS06NHousings_DIP:DIP-14_W7.62mm_SocketU3
1ARDUINO_FOOTPRINTusbkbd_vt100:ARDUINO_SHIELD_NOICSPSHIELD1
1BUZZERBuzzers_Beepers:Buzzer_12x9.5RM7.6U4
1LED10ARRAYHousings_DIP:DIP-20_W7.62mmU1
1LM393Housings_DIP:DIP-8_W7.62mm_SocketU2
1To_AMPPin_Headers:Pin_Header_Straight_1x04J2
1VT100_KbdPin_Headers:Pin_Header_Angled_1x05J1

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 mmSnark barker, the printed circuit board in 3D

    Snark barker

    schlae/snark-barker

    A 100% compatible replica of the famed SB 1.0 sound card

    199 parts687
  • 2 layers130 × 80 mmSmu main 1, the printed circuit board in 3D

    Smu main 1

    jaromir-sukuba/J-SMU

    DIY source-measure unit

    210 parts244
  • 2 layers100 × 85 mmVNA, the printed circuit board in 3D

    VNA

    profdc9/VNA

    Vector Network Analyzer based on the STM32F103C8T6 bluepill

    178 parts93
  • 4 layers292.1 × 88.3 mmSnark barker mca, the printed circuit board in 3D

    Snark barker mca

    schlae/snark-barker-mca

    A Sound Blaster compatible sound card for Micro Channel bus computers

    177 parts69
  • 2 layers133 × 98 mmPrecharge, the printed circuit board in 3D

    Precharge

    michaelruppe/FSAE

    Projects for Formula SAE Electric Vehicle competition (Australia 2019/2020)

    121 parts59MIT
  • 4 layers285.1 × 48.1 mmAyab esp32, the printed circuit board in 3D

    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 mmBtmdpcb v04 eval, the printed circuit board in 3D

    Btmdpcb v04 eval

    17o2/bluetooth-minidisc

    Adding built-in bluetooth connectivity to a 20-year-old Mindisc player

    115 parts45
  • 2 layers29 × 27 mmUSB C-3-way splitter V5, the printed circuit board in 3D

    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