Skip to the content
2 layers273.3 × 101.2 mmKeyboardTest, the printed circuit board in 3D

Reproduction keyboard for Dragon 32 and 64 using modern switches

Size
273.3 × 101.2 mm
Copper layers
2
Thickness
1.6 mm
Parts
122
Nets
71
Pads
422
Tracks, vias
688, 26
Routed
Yes
KiCad
KiCad 7 (file 20221018)
Created
18 Jun 2023
Updated
24 Aug 2025

Overview

KeyboardTest is an open-source printed circuit board by jimbro1000, from the jimbro1000/Dragon3264Keyboard repository on GitHub, published under the MIT licence. It is a 2-layer board of 273.3 × 101.2 mm with 122 parts on 71 nets, routed with 688 tracks and 26 vias.

Its parts include 55 diodes, 55 switches and 1 connector. It belongs with the keyboards and input boards of this library.

README

README.md

Reproduction Keyboard for Dragon 32 and 64

This project provides the designs for a reproduction keyboard to fit the Dragon 32 and 64 home computers. The design uses modern Cherry MX compatible switch mounts to facilitate the easy use of readily available keycaps.

render of keyboard pcb

render of keyboard layout

render of keyboard switch plate

Status

The first draft of the board has been produced for testing

The good bits:

  • The layout fits the keyboard aperture in the case
  • The height of the board appears to be correct at 20mm higher than the original

The bad bits:

  • The first draft is 5.3mm too wide - but the layout is all referenced from the top left of the board and this is correct. The only fault is the right hand edge and the right hand mounting point

Changes to the original

The keyboard matrix includes a diode alongside each switch to remove ghosting issues. This isn't strictly necessary but if you want to utilise a cheap MCU like the atmega32u4 to convert the keyboard to USB HID, you are going to need those diodes.

If you decide not to use them you will need to bridge the pads for each diode position, this then replicates the original keyboard matrix

Using a microcontroller for USB

The project includes design files for use with the "Keyboard Firmware Builder" website - this generates a binary file to program a microcontroller. The design expects the rows to be wired to the "Bx" pins and the columns to be wired to the "Dx" pins.

The Firmware Builder website can be found here: Keyboard Firmware Builder link

Extra keys

The original keyboard utilises an 8u wide spacebar but these are more just a bit tricky to find in modern fittings, the next best alternative is a 6u wide spacebar which leaves gaps for two more keys, wiring the keyboard to accept extra keys is simple enough and the original matrix has space for four more keys. The original ROMs do not include scanning for those extra unused keys so they won't do anything without modifications to the ROM coding. For emulation purposes it is trivial to map the extra keys to be useful (I suggest using them as modifiers to really expand the range of keypresses or macros that can be operated).

The layout of the keyboard can be quickly prototyped using another online tool called the "Keyboard Layout Editor", you can access it here: Keyboard Layout Editor link

The link includes all of the original design settings but you can also find the settings as a config file in this repository.

render of extended keyboard layout

The reproduction boards I've designed have the potential to utilise full 8-bit character set codes (through external character generator roms and additional control lines to the VDG), where this is done it would be necessary to use the modifier keys to access the additional characters in much the same way as the petscii set on vintage Commodore computers.

Keycaps

By using standard MX switches the range of key caps readily available is immense. Brand new ready made sets are cheap enough but keep in mind that the position of some characters on the Dragon keyboard is non-standard (such as brackets appearing on the 8 and 9 keys instead of 9 and 0). You also have a small problem with the break and clear keys as these are not standard (yes there is a "pause break" that comes close).

Most key cap sets are also profiled differently for each row of the keyboard, it isn't a particular problem but some keys are in very different positions - such as the arrow keys so the profile won't look or feel right for those keys compared to others on the same row.

If however you are getting your keycaps fabricated there are options to have the same profile for all of the keys and have the right symbols on each key.

Projection

The overall projection height (from pcb to the top of the key) on the original keyboard is nearly 2cm more than you get with modern keys and keycaps. If you put those in a stock case the keys will actually be below the level of the keyboard surround.

Overcoming the difference in height needs the pcb to sit higher, the simplest option (at the moment) is to use two layers of boards. The first sits at the normal height and uses the original mounting points. The second board is mounted to the first using spacers (the pcb design includes holes for M5 sized spacers to be mounted already).

To make the keyboard really robust it should also have a stabilising frame above the PCB, this clips all of the switches together into a single unit, in a similar way to the original hi-tek switches.

Parts

122
QtyValueFootprintReferences
55DDiode_SMD:D_0805_2012MetricD1, D2, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23 +39
9MountingHoleMountingHole:MountingHole_3.2mm_M3H3, H4, H5, H6, H7, H8, H9, H10, H11
2OButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW1, SW49
2ShiftButton_Switch_Keyboard:SW_Cherry_MX_1.50u_PCBSW52, SW53
1,Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW29
1-Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW35
1.Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW41
1/Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW47
11Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW8
12Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW15
13Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW22
14Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW28
15Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW34
16Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW40
16u Switch StabiliserMounting_Keyboard_Stabilizer:Stabilizer_Cherry_MX_6.00uSWS1
17Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW46
18Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW2
18u Switch StabiliserMounting_Keyboard_Stabilizer:Stabilizer_Cherry_MX_8.00uSWS2
19Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW9
1:Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW16
1;Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW23
1AButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW10
1AtButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW3
1BButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW17
1BreakButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW21
1CButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW24
1ClearButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW14
1CtrlButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW54
1DButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW30
1DRAGON_CONNECTIONConnector_PinHeader_2.54mm:PinHeader_1x16_P2.54mm_HorizontalJ1
1DownButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW33
1EButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW36
1EnterButton_Switch_Keyboard:SW_Cherry_MX_2.00u_PCBSW7
1FButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW42
1FnButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW55
1GButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW48
1HButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW4
1IButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW11
1JButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW18
1KButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW25
1LButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW31
1LeftButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW39
1MButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW37
1NButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW43
1PButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW5
1QButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW12
1RButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW19
1RightButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW45
1SButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW26
1SpaceSwitch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_6.00uSW51
1TButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW32
1UButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW38
1UpButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW27
1VButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW44
1WButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW50
1XButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW6
1YButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW13
1ZButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW20

Similar boards

  • 2 layers108.3 × 96.3 mmKeyboard, the printed circuit board in 3D

    Keyboard

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    122 parts915
  • 2 layers65 × 56.5 mmSuperPower RPi KiCAD, the printed circuit board in 3D

    SuperPower RPi KiCAD

    SensorsIot/SuperPower

    Here you should find the best power supplies for your low-power projects

    122 parts600
  • 2 layers139.1 × 107.7 mmLotus58 Glow 111, the printed circuit board in 3D

    Lotus58 Glow 111

    TweetyDaBird/Lotus-58-Classic

    A split ergo linear keyboard derived from the Lily58 family

    122 parts390
  • 2 layers80 × 50 mmBetaBoard, the printed circuit board in 3D

    BetaBoard

    timbk/BetaBoard

    A simple and low cost particle detector for teaching

    122 parts85BSD-2-Clause
  • 2 layers100 × 100 mmBulkyMIDI-32 Channel, the printed circuit board in 3D

    BulkyMIDI-32 Channel

    tebl/BulkyMIDI-32

    A HW build of the MT32-PI project, allowing you to emulate a Roland MT-32 using a Raspberry Pi. Includes enough additional modules to build a MIDI-mountain as well as adapters for connecting to most things retro.

    122 parts80CC-BY-SA-4.0
  • 2 layers89.5 × 62.2 mmModule di, the printed circuit board in 3D

    Module di

    andreili/STM32-PLC

    The project is open source and open hardware, the purpose of which is to create a PLC based on STM32 MCU's.

    122 parts69GPL-3.0
  • 2 layers49.9 × 49.9 mmFrontend, the printed circuit board in 3D

    Frontend

    softerhardware/Hermes-Lite

    Deprecated project!!! See Hermes-Lite2 at main web site

    122 parts65
  • 2 layers98.5 × 95.5 mmMain logic, the printed circuit board in 3D

    Main logic

    tmarhguy/alu

    8-bit combinational ALU built from scratch with 3,488 CMOS transistors (KiCad + SPICE + Logisim + 1.24M tests

    122 parts48MIT

Questions

How big is the KeyboardTest PCB?

It measures 273.3 × 101.2 mm and has 2 copper layers, 1.6 mm thick.

What parts does the KeyboardTest use?

122 parts. 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 KeyboardTest KiCad files?

From the jimbro1000/Dragon3264Keyboard repository on GitHub, at the commit this page was made from: the board is keyboardTest.kicad_pcb and its schematic keyboardTest.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the KeyboardTest design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).