
A500kbd
Amiga 500 PS/2 controller for external keyboard
- Size
- 49.9 × 51.6 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 17
- Nets
- 35
- Pads
- 97
- Tracks, vias
- 209, 17
- Pours
- 2
- Routed
- Yes
- KiCad
- KiCad 9.0 (file 20241229)
- Created
- 18 Oct 2017
- Updated
- 4 Jul 2025
Overview
A500kbd is an open-source printed circuit board by jtsiomb, from the jtsiomb/a500kbd repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board of 49.9 × 51.6 mm with 17 parts on 35 nets, routed with 209 tracks and 17 vias.
It is built around the ATMEGA88-20PU. Its parts include 4 capacitors, 4 ICs, 4 connectors, 3 resistors and 1 switch. It belongs with the keyboards and input and retro computing and games boards and the AVR (ATmega, ATtiny) boards of this library.
Main components
1README
README.mdAmiga 500 PS/2 keyboard controller
About
This project is a PS/2 keyboard controller for the Amiga 500. It makes it possible to connect and use an external PS/2 keyboard with the Amiga.
It's based on an AVR atmega168 microcontroller, which reads the PS/2 keyboard and translates scancodes to the keyboard signals expected by the Amiga.
See pictures of the PS/2 controller in my Amiga: https://imgur.com/a/rhXS8
It has been reported that this works with the A600 too, by soldering directly on the keyboard clock and data lines. I guess it might work with the A1200 as well, so if anyone tries it please let me know.
Directory structure:
hw- hardware: kicad files and pdf schematics.fw- firmware for the AVR microcontroller.
Project website: http://nuclear.mutantstargoat.com/hw/amiga/a500kbd
License
Copyright (C) 2017 John Tsiombikas nuclear@member.fsf.org
You are free to use, reproduce, modify, redistribute any parts of this project, provided you make any derivative work you release, freely available under the same terms.
More specifically the hardware design is released under the Creative Commons
Attribution Share-Alike license (see LICENSE.hw for details), and the
software/firmware is released under the GNU General Public License v3, or later
(see LICENSE.fw for details).
Instructions
Just construct the hardware, burn the firmware, drill appropriate holes, and connect everything together. The board is designed to sit on top of the keyboard connector pins on the Amiga motherboard, and provides a new set of pins for the internal keyboard to be connected on the board. Two cables need to be connected from the board to some hole on the Amiga case: one goes to the PS/2 connector, and the other to the DPDT switch which selects between internal and external keyboard (see: https://i.imgur.com/ovFDP2b.jpg).
The default key mapping (can only be changed by modifying the source code at the moment), is as follows:
- Caps lock key is mapped to control.
- Left control key is mapped to left amiga key.
- Right control key is mapped to right amiga key.
- Scroll lock is mapped to caps lock.
- F12 is mapped to "Help".
Also the scroll lock light on the external keyboard, mirrors the drive activity LED on the amiga.
Parts
17| Qty | Value | Footprint | References |
|---|---|---|---|
| 3 | 4k7 | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R1, R2, R3 |
| 2 | 0.1uF | Capacitor_THT:C_Disc_D4.3mm_W1.9mm_P5.00mm | C1, C2 |
| 2 | 22pF | Capacitor_THT:C_Disc_D3.0mm_W2.0mm_P2.50mm | C3, C4 |
| 2 | ps2ribbon | Connector_IDC:IDC-Header_2x03_P2.54mm_Vertical | J3, J4 |
| 1 | 14.7456MHz | Crystal:Crystal_HC49-U_Vertical | Y1 |
| 1 | ATmega88-20P | Package_DIP:DIP-28_W7.62mm | U1 |
| 1 | AVR-ISP-6 | Connector_IDC:IDC-Header_2x03_P2.54mm_Vertical | J2 |
| 1 | SERIAL | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Horizontal | J1 |
| 1 | SW_DPDT_x2 | a500kbd:kbswitch | SW1 |
| 1 | internal keyboard | Connector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_Vertical | U2 |
| 1 | mainboard kb conn. | Connector_PinSocket_2.54mm:PinSocket_1x08_P2.54mm_Vertical | U4 |
| 1 | ps2conn | a500kbd:minidin6 | U3 |
Questions
How big is the A500kbd PCB?
It measures 49.9 × 51.6 mm and has 2 copper layers, 1.6 mm thick.
What parts does the A500kbd use?
17 parts, built around the ATMEGA88-20PU. 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 A500kbd KiCad files?
From the jtsiomb/a500kbd repository on GitHub, at the commit this page was made from: the board is hw/a500kbd.kicad_pcb and its schematic hw/a500kbd.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the A500kbd design in my own project?
Its repository publishes it under the GPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).
Similar boards
- 2 layers38 × 52.5 mm

- 2 layers50 × 35 mm

- 2 layers139.7 × 62.2 mm

- 2 layers29.2 × 55.9 mm

Deniseadapter
hoglet67/RGBtoHDMI
Bare-metal Raspberry Pi project that provides pixel-perfect sampling of Retro Computer RGB/YUV video and conversion to HDMI
17 parts1kGPL-3.0 - 2 layers24.5 × 36.5 mm

- 2 layers56.3 × 55.7 mm

StarNecklace
hackclub/OnBoard
💡 Join 1,000 teenagers and make your first PCB with a $100 grant!
17 parts915 - 2 layers25 × 25 mm

SmallEncoder
DDeGonge/OS-ARM
This arm is not industrial and it will not be fast, but that is not my goal. But it will hopefully be a very nice looking arm fully capable of 6dof motion, cheap enough to keep it accessable but capable enough to…
17 parts498MIT - 2 layers38.9 × 16.1 mm
