Skip to the content
2 layers67.6 × 99.3 mmAtari keypad, the printed circuit board in 3D

A 12-key keypad for the joystick port, based on the Atari 2600 keypad

Size
67.6 × 99.3 mm
Copper layers
2
Thickness
1.6 mm
Parts
32
Nets
20
Pads
153
Tracks, vias
359, 0
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
26 Jan 2021
Updated
28 Jan 2021

Overview

Atari keypad is an open-source printed circuit board by hansliss, from the hansliss/atari_keypad repository on GitHub, published under the BSD-2-Clause licence. It is a 2-layer board of 67.6 × 99.3 mm with 32 parts on 20 nets, routed with 359 tracks and 0 vias.

Its parts include 12 diodes, 12 switches, 3 resistors and 1 connector. It belongs with the keyboards and input and retro computing and games boards of this library.

README

README.md

atari_keypad

A 12-key keypad for the joystick port, based on the Atari 2600 keypad

keypad

The keypad uses Kailh sockets for Cherry MX-compatible keyswitches, and is meant to be used with a 3d-printed box, including a faceplate to keep the switches in place. This box has not been designed yet.

keypad bottom

The keypad has anti-ghosting diodes on all keys. There are three pull-up resistors, one for each column. The original keypad only included the first two resistors, and as far as I know, the third one is not needed.

The design includes a PCB-mounted DB-9 female connector. You can use this with a straight, fully connected DB-9 male-to-female cable to connect the keypad to a computer or console, or you can just solder cables to the solder pads if you prefer that.

keypad and VIC

Included is also VIC-20 code for scanning the keypad. It includes full N-key rollover and produces two bytes of bits, one bit for each key. Debouncing is done by delaying keypress events until they have been seen by at least two scanning cycles.

There is a second machine code program that calls the poller and then "unpacks" the bit fields into a series of individual bytes, one for each key. This is because BASIC turns out to be breathtakingly slow at this kind of bit-mangling.

There are two BASIC programs, one that uses just the main subroutine and does the bit unpacking itself, and another on that uses the "reorg" subroutine to to get unpacked bytes. The second one is a little bit faster.

Finally, there is a machine code version of the BASIC code, which better demonstrates the keypad at full speed.

Parts

32
QtyValueFootprintReferences
12DDiodes_SMD:D_0603D1, D2, D3, D4, D5, D6, D7, D8, D9, D10, D11, D12
34k7Resistors_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR1, R2, R3
1DB9_FemaleConnectors_DSub:DSUB-9_Female_Horizontal_P2.77x2.84mm_EdgePinOffset4.94mm_Housed_MountingHolesOffset7.48mmJ1
1SW_0keyswitches:Kailh_socket_MX_optional_compatibleSW11
1SW_1keyswitches:Kailh_socket_MX_optional_compatibleSW1
1SW_2keyswitches:Kailh_socket_MX_optional_compatibleSW2
1SW_3keyswitches:Kailh_socket_MX_optional_compatibleSW3
1SW_4keyswitches:Kailh_socket_MX_optional_compatibleSW4
1SW_5keyswitches:Kailh_socket_MX_optional_compatibleSW5
1SW_6keyswitches:Kailh_socket_MX_optional_compatibleSW6
1SW_7keyswitches:Kailh_socket_MX_optional_compatibleSW7
1SW_8keyswitches:Kailh_socket_MX_optional_compatibleSW8
1SW_9keyswitches:Kailh_socket_MX_optional_compatibleSW9
1SW_Hashkeyswitches:Kailh_socket_MX_optional_compatibleSW12
1SW_Starkeyswitches:Kailh_socket_MX_optional_compatibleSW10

The 28 most common of 32 parts.

Similar boards

  • 2 layers50 × 23.2 mmAnalog, the printed circuit board in 3D

    Analog

    hoglet67/RGBtoHDMI

    Bare-metal Raspberry Pi project that provides pixel-perfect sampling of Retro Computer RGB/YUV video and conversion to HDMI

    32 parts1kGPL-3.0
  • 2 layers136.8 × 54.2 mmRetropie zero, the printed circuit board in 3D

    Retropie zero

    hackclub/OnBoard

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

    32 parts915
  • 2 layersMooltipass top, the printed circuit board in 3D

    Mooltipass top

    limpkin/mooltipass

    Github repository dedicated to the mooltipass project

    32 parts531
  • 2 layers16 × 20 mmESPKey, the printed circuit board in 3D

    ESPKey

    octosavvi/ESPKey

    Wiegand data logger, replay device and micro door-controller

    32 parts353GPL-2.0
  • 2 layers82 × 40.9 mmDisplay7447, the printed circuit board in 3D

    Display7447

    zmaker/arduino_cookbook

    gli sketch del nuovo progetto Arduino Cookbook e dei video di YouTube

    32 parts269
  • 2 layers40 × 38 mmShield, the printed circuit board in 3D

    Shield

    murexrobotics/electrical

    Highly integrated electronics design and printed circuit boards (PCBs) for the MATE ROV Competition. Attempt the impossible.

    32 parts192MIT
  • 2 layers47 × 39 mmQrss clock tx, the printed circuit board in 3D

    Qrss clock tx

    swharden/AVR-projects

    A collection of standalone AVR projects written in C

    32 parts184MIT
  • 2 layers30.9 × 63 mmStm32-io extend, the printed circuit board in 3D

    Stm32-io extend

    hardenedlinux/cheap-pcb

    Cheap PCB: Better understanding the current status of hardware supply chain

    32 parts170CC0-1.0

Questions

How big is the Atari keypad PCB?

It measures 67.6 × 99.3 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Atari keypad use?

32 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 Atari keypad KiCad files?

From the hansliss/atari_keypad repository on GitHub, at the commit this page was made from: the board is Atari_keypad.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Atari keypad design in my own project?

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