Skip to the content
PCBKitNew board
2 layers58.4 × 38.1 mmNES, the printed circuit board in 3D

WASD-style joystick for vintage computers. With an added Arduino Pro Micro you can use it as a USB-keyboard, so if you wanted a DIY streamdeck or Macro-keyboard - then the C64 JoyKEY can do that as well.

Size
58.4 × 38.1 mm
Copper layers
2
Thickness
1.6 mm
Parts
20
Nets
14
Pads
73
Tracks, vias
181, 6
Pours
1
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
3 Dec 2020
Updated
14 Jan 2025

Overview

NES is an open-source printed circuit board by tebl, from the tebl/C64-JoyKEY repository on GitHub. It is a 2-layer board of 58.4 × 38.1 mm with 20 parts on 14 nets, routed with 181 tracks and 6 vias.

It is built around the CD4021S. Its parts include 8 resistors, 3 connectors, 1 capacitor, 1 IC and 1 switch. It belongs with the retro computing and games and keyboards and input boards of this library.

Main components

1

README

README.md

C64 JoyKEY

The C64 JoyKEY was born out of the desire to build my own joystick, and after having a look at the various options available I chose to build one using Cherry MX keyboard switches. They are around a dollar per piece, so after getting it all to work properly on my beloved Commodore 64 I looked into using it with a whole selection of vintage computer systems as well. There are two main versions of the C64 JoyKEY, the keyboard-variant already described and a board designed for use with Sanwa arcade parts instead.

Last build Last arcade

With options to handle multiple types of systems comes complexity, you'll have to make a few decisions on what you want out of the C64 JoyKEY. Do I only want to use it as a joystick replacement on vintage systems, ideally with 2-3 fire buttons where supported? If so, then you won't need the Arduino Pro Micro.

Want to use it on a modern system as a WASD-style keyboard or a gamepad, then install it - a common use of these types of devices is as a macro-keyboard or a stream-deck. Note that compared to many similar solutions, the microcontroller is not required for use with any of the vintage systems - the adapters actually follow the original circuit descriptions for controllers used with the actual vintage computers. What that means is that there is truly no chance of lag added by the controller. Ever.

The pictures below show the unit when connected to my Commodore 64, including the jumper settings used with it. As I've tried to keep things as close to the standard usually associated with Atari-style joysticks, there are two joystick connectors - this is because a lot of the Commodore 64 games supported using a second joystick for specific game functions.

Commodore 64 C64 Configuration

As with most C64 games port 2 is the one to use, port 1 is just there to connect additional fire buttons. When in doubt, just connect a cable for port 2 and you should have a good time. This was labelled after the way the controller is used on the Commodore 64.

Getting one

I won't be selling these, so if you want one you will probably have to build it yourself (or call your favourite friend, ideally someone with a reasonable quality soldering iron). I've created a separate documents on building a C64 JoyKEY, this is also where you'll find the BOM for this project (a list of needed parts and links to where PCBs can be ordered).

As with all things you're soldering together by yourself, the one who soldered it takes responsibility for it. I'll try answer any opened tickets as far as I am able, but know that this is a hobby-grade project and I might be busy on spending the little energy I have on other things (be patient, check out the schematic while you wait).

Setting it up

The C64 JoyKEY has a handful of jumpers that need to be set correctly in order to: A - function, B - not destroy your precious vintage computer and/or consoles. The necessary details have been put into a separate configuration-document, check it out for some information on the systems I've attempted to use the C64 JoyKEY with.

Parts

20
QtyValueFootprintReferences
81kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR1, R2, R3, R4, R5, R6, R7, R8
4Mountingmounting:M3_pinM1, M2, M3, M4
1100nFCapacitor_THT:C_Disc_D4.7mm_W2.5mm_P5.00mmC1
1CD4021Package_DIP:DIP-16_W7.62mm_Socket_LongPadsU1
1LOGOlogo:c64_joykeyG***
1NES_GamepadNES:NES_OutputJ3
1Port 1C64 IDC:IDC_JoystickJ1
1Port 2C64 IDC:IDC_JoystickJ2
1STARTswitch_cutout:SW_PUSH_6mmSW1
1VCC_ENConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJP1

Questions

How big is the NES PCB?

It measures 58.4 × 38.1 mm and has 2 copper layers, 1.6 mm thick.

What parts does the NES use?

20 parts, built around the CD4021S. 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 NES KiCad files?

From the tebl/C64-JoyKEY repository on GitHub, at the commit this page was made from: the board is adapters/NES/NES.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the NES design in my own project?

Its repository states no licence, so its author keeps all rights: ask tebl before reusing the design.

More from tebl/C64-JoyKEY

12
  • 2 layers99.7 × 74.9 mmC64 Joykey 2040, the printed circuit board in 3D

    C64 Joykey 2040

    tebl/C64-JoyKEY

    WASD-style joystick for vintage computers. With an added Arduino Pro Micro you can use it as a USB-keyboard, so if you wanted a DIY streamdeck or Macro-keyboard - then the C64 JoyKEY can do that as well.

    69 parts27
  • 2 layers99.7 × 74.9 mmC64 Joykey, the printed circuit board in 3D

    C64 Joykey

    tebl/C64-JoyKEY

    WASD-style joystick for vintage computers. With an added Arduino Pro Micro you can use it as a USB-keyboard, so if you wanted a DIY streamdeck or Macro-keyboard - then the C64 JoyKEY can do that as well.

    62 parts27
  • 2 layers99.7 × 55.2 mmC64 Arcade, the printed circuit board in 3D

    C64 Arcade

    tebl/C64-JoyKEY

    WASD-style joystick for vintage computers. With an added Arduino Pro Micro you can use it as a USB-keyboard, so if you wanted a DIY streamdeck or Macro-keyboard - then the C64 JoyKEY can do that as well.

    49 parts27
  • 2 layers58.4 × 38.1 mmAmiga CD32, the printed circuit board in 3D

    Amiga CD32

    tebl/C64-JoyKEY

    WASD-style joystick for vintage computers. With an added Arduino Pro Micro you can use it as a USB-keyboard, so if you wanted a DIY streamdeck or Macro-keyboard - then the C64 JoyKEY can do that as well.

    30 parts27
  • 2 layers81.9 × 52.7 mmArcade 2040, the printed circuit board in 3D

    Arcade 2040

    tebl/C64-JoyKEY

    WASD-style joystick for vintage computers. With an added Arduino Pro Micro you can use it as a USB-keyboard, so if you wanted a DIY streamdeck or Macro-keyboard - then the C64 JoyKEY can do that as well.

    29 parts27
  • 2 layers58.4 × 38.1 mmNEC PC Engine, the printed circuit board in 3D

    NEC PC Engine

    tebl/C64-JoyKEY

    WASD-style joystick for vintage computers. With an added Arduino Pro Micro you can use it as a USB-keyboard, so if you wanted a DIY streamdeck or Macro-keyboard - then the C64 JoyKEY can do that as well.

    26 parts27
  • 2 layers58.4 × 43.8 mmGameport, the printed circuit board in 3D

    Gameport

    tebl/C64-JoyKEY

    WASD-style joystick for vintage computers. With an added Arduino Pro Micro you can use it as a USB-keyboard, so if you wanted a DIY streamdeck or Macro-keyboard - then the C64 JoyKEY can do that as well.

    24 parts27
  • 2 layers70.7 × 46.7 mmAdapter 9 from 2040, the printed circuit board in 3D

    Adapter 9 from 2040

    tebl/C64-JoyKEY

    WASD-style joystick for vintage computers. With an added Arduino Pro Micro you can use it as a USB-keyboard, so if you wanted a DIY streamdeck or Macro-keyboard - then the C64 JoyKEY can do that as well.

    21 parts27
  • 2 layers58.4 × 38.1 mmSega Mega Drive, the printed circuit board in 3D

    Sega Mega Drive

    tebl/C64-JoyKEY

    WASD-style joystick for vintage computers. With an added Arduino Pro Micro you can use it as a USB-keyboard, so if you wanted a DIY streamdeck or Macro-keyboard - then the C64 JoyKEY can do that as well.

    21 parts27
  • 2 layers29.2 × 31.8 mmAtari 7800, the printed circuit board in 3D

    Atari 7800

    tebl/C64-JoyKEY

    WASD-style joystick for vintage computers. With an added Arduino Pro Micro you can use it as a USB-keyboard, so if you wanted a DIY streamdeck or Macro-keyboard - then the C64 JoyKEY can do that as well.

    10 parts27
  • 2 layers10.4 × 55.2 mmC64 SkeletonKey, the printed circuit board in 3D

    C64 SkeletonKey

    tebl/C64-JoyKEY

    WASD-style joystick for vintage computers. With an added Arduino Pro Micro you can use it as a USB-keyboard, so if you wanted a DIY streamdeck or Macro-keyboard - then the C64 JoyKEY can do that as well.

    5 parts27
  • 2 layers29.2 × 18.4 mmSega Master System, the printed circuit board in 3D

    Sega Master System

    tebl/C64-JoyKEY

    WASD-style joystick for vintage computers. With an added Arduino Pro Micro you can use it as a USB-keyboard, so if you wanted a DIY streamdeck or Macro-keyboard - then the C64 JoyKEY can do that as well.

    4 parts27

Similar boards

  • 2 layers66.9 × 74.5 mmDeskHop Rev1, the printed circuit board in 3D

    DeskHop Rev1

    hrvach/deskhop

    Fast Desktop Switching Device

    20 parts7.9kGPL-3.0
  • 2 layers86.4 × 64.8 mmSlot machine, the printed circuit board in 3D

    Slot machine

    google/google-ctf

    Google CTF

    20 parts5.1kApache-2.0
  • 2 layers36.2 × 26.8 mmEsp32 minimal, the printed circuit board in 3D

    Esp32 minimal

    atopile/atopile

    Design circuit boards with code! ✨ Get software-like design reuse 🚀, validation, version control and collaboration in hardware; starting with electronics ⚡️

    20 parts4kMIT
  • 2 layers108.1 × 393.8 mmSweep compact ble, the printed circuit board in 3D

    Sweep compact ble

    davidphilipbarr/Sweep

    Sweep - a small promicro based keyboard inspired by the Ferris.

    20 parts2.1k
  • 2 layers26 × 15.9 mmTPS54340 Buck Regulator, the printed circuit board in 3D

    TPS54340 Buck Regulator

    rusefi/rusefi

    rusefi - GPL internal combustion engine control unit

    20 parts1.2k
  • 2 layers67.6 × 30.5 mmRgb to hdmi, the printed circuit board in 3D

    Rgb to hdmi

    hoglet67/RGBtoHDMI

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

    20 parts1kGPL-3.0
  • 2 layers44.3 × 28.7 mmLin bus adapter esp32, the printed circuit board in 3D

    Lin bus adapter esp32

    hackclub/OnBoard

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

    20 parts915
  • 2 layers89.5 × 61.6 mmFreeDeck TH 2020-02, the printed circuit board in 3D

    FreeDeck TH 2020-02

    FreeYourStream/freedeck-hardware

    all the stuff you need to build your own FreeDeck

    20 parts772