Skip to the content
2 layers323.9 × 115.5 mmNes keyboard, the printed circuit board in 3D

Custom NES inspire keyboard for a friend

Size
323.9 × 115.5 mm
Copper layers
2
Thickness
1.6 mm
Parts
255
Nets
153
Pads
1,030
Tracks, vias
788, 182
Pours
14
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
9 May 2026
Updated
4 Oct 2026

Overview

Nes keyboard is an open-source printed circuit board by AryA-65, from the AryA-65/NES-Style-Keyboard repository on GitHub, published under the GPL-2.0 licence. It is a 2-layer board of 323.9 × 115.5 mm with 255 parts on 153 nets, routed with 788 tracks and 182 vias.

It is built around the RP2040, 74AHCT1G125SE and W25Q128JVEIQ, with the 1N4148W and WS2812B among its other parts. Its parts include 91 switches, 90 diodes, 27 capacitors, 12 resistors and 3 ICs. It belongs with the keyboards and input and retro computing and games boards and the RP2040 boards of this library.

Main components

5

README

README.md

NES-Style-Keyboard


Assembly

Notice


[!IMPORTANT]
It is always advised that you review the files before ordering, as there may be small issues with the current revision.

Description


A friend of mine wanted to buy a keyboard. I convinced him to let me build him one. I decided to build him a custom 75% keyboard, with some extra features based on his preferences, and styled the color scheme to the popular NES. The whole keyboard, including the case, the main PCB, the switch plate and some of the caps, are custom designed by me.

Gallery

Features


  • Sliding Potentiometer
    • One of my friend's requests was to cater the keyboard more towards CAD design. The only right solution, in my opinion, is a sliding potentiometer for zoom control in apps like Fusion. To zoom using the slider, hold CTRL and move the slider up or down. To scroll horizontally, hold SHIFT and move the slider up or down.
  • Rotary Encoder
    • The rotary encoder serves as playback control (play/pause/previous/skip), but also as volume control. If volume control is already mapped by the potentiometer, the encoder can serve to switch audio channels controlled by the potentiometer (ex: switching from the music media channel to the system audio channel)
  • Addressable RGB LEDs
    • A total of 6 WS2812b leds are included on the left hand side of the keyboard, right next to the sliding potentiometer. They indicate volume level (if controlled by the potentiometer) and/or caps lock.
  • Repairable Design
    • The power supplied to the main PCB comes from a small daughterboard at the back, middle of the case. This daughterboard consists of a 3V3 LDO as well as a fuse. The two PCBs are connected through a standard 15cm (0.5ft) USB-C cable, allowing for easy replacement by the user.
  • Unibody Body Case
    • The case for the keyboard is as a unibody case. It is built to offer comfort, whilst keeping a thocky sound (it does sound awesome).
  • Hot Swappable Keyswitches
    • Does this need to be explain at this point?

Default keymaps

text
# Base Layer
[_BASE] = LAYOUT(
        KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_HOME, KC_END, KC_PAUSE,
        KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL,                    KC_BSPC, KC_INS,
        KC_TAB,     KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC,               KC_BSLS, KC_DEL,
        KC_CAPS,        KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,                 KC_ENT, KC_PGUP,
        KC_LSFT,            KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,        KC_UP, KC_PGDN,
        KC_LCTL,    KC_LGUI,    KC_LALT,            KC_SPC,                   KC_RALT, MO(_FL), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT
    )

#Fn Layer
[_FL] = LAYOUT(
        _______, KC_PWR, KC_F2, KC_BRIU, KC_BRID, KC_F5, KC_MSEL, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_SLEP,
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, UG_SPDD, UG_SPDU,              _______, UG_NEXT,
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, UG_PREV,
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,     _______, UG_SATU,
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,     UG_VALU, UG_SATD,
        _______,    _______,    _______,            _______,                    _______, _______, _______, UG_HUED, UG_VALD, UG_HUEU
    )

Parts List


Part*Price*ShippingLink
Keycaps$34.18NaNXDA Retro NES Keycaps
Keyswitches (90pcs)$32.18NaNMMD Cream Switches (45G)
Hotswap Sockets (110ps)$12.21NaN110pcs Kailh Hot-swappable Sockets
Diodes$3.17NaN100pcs 1N4148W
Stabilizers$25.99NaNDurock Screw in Stabilizers V3 (Black)
USB-C Cable$12.64NaN6 inch USB C to USB C Cable (3 Pack)
BOM$34.96$8.00BOMs
Main PCB$31.20$43.78**Main PCB
Daughterboard$3.00$43.78**Daughterboard PCB
Switch Plate****$0.00NaNPlate PCB
Case$65.13$43.78**Enclosure
Misc.$6.50***$43.78**Misc. Parts

Total (excluding import fees): $298.66

*All prices are in CAD, check in your own currency before buying. **Combined shipping for keyboard and daughterboard PCB, misc. items and enclosure. ***Includes encoder knob, slider handle, power led bar and status bar ****I decided to print the switchplate at home, since it was much cheaper per unit and overall compared to ordering it (price will be updated soon).

Quickstart


1) First flash

This step if for first flash, right after assembling your PCBs:

  1. Download the UF2 prebuilt firmware in firmware.
  2. Connect main board to daughterboard through USB-C intercable (never connect a USB-C cable directly to the main PCB, it will damage the board).
  3. Press and hold EN button on keyboard.
  4. Plug USB-C cable from computer to daughterboard, and let go of the EN button.
  5. A USB device will appear in your file explorer, drag and drop UF2 file from your downloads folder into the USB device.
  6. If the keyboard automatically resets, the flash was successful. Otherwise, try flashing again.

2) Reflash

Since the EN button is on the opposite side of the board and not accessible once the keyboard is assembled, I added a key combo that resets the board and enables flashing new firmware:

  1. Press and release right CTRL, ESC, left CTRL and END button at the same time.
  2. Drag and drop UF2 firmware from your computer onto the keyboard.
  3. If the keyboard automatically resets, the flash was successful. Otherwise, try flashing again (step 1).

Support


Coming Soon

Tools Used


Legal Notice


The software and hardware come as is. It is up to the user to review and make sure that they understand the scope of the project before attempting the project. GPL V2 License

Parts

255
QtyValueFootprintReferences
841N4148WDiode_SMD:D_SOD-123D1, D2, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23 +68
73KeyswitchScottoKeebs_Hotswap:Hotswap_MX_1.00uS1, S2, S10, S11, S12, S13, S14, S15, S16, S17, S18, S19, S20, S21, S22, S23 +57
20TestPointTestPoint:TestPoint_Pad_D1.0mmTP1, TP2, TP3, TP4, TP5, TP10, TP11, TP12, TP13, TP14, TP15, TP16, TP17, TP18, TP19, TP20 +4
160.1uFCapacitor_SMD:C_0402_1005MetricC2, C3, C4, C5, C6, C7, C8, C9, C10, C13, C14, C25, C26, C27, C28, C29
9MountingHoleMountingHole:MountingHole_2.2mm_M2_PadH1, H2, H3, H4, H5, H6, H7, H8, H9
6100nFCapacitor_SMD:C_0603_1608MetricC17, C18, C19, C20, C21, C22
6WS2812BLED_WS2812B-4020:LED_WS2812B-4020D85, D86, D87, D88, D89, D90
510kResistor_SMD:R_0402_1005MetricR7, R9, R10, R11, R12
3KeyswitchPCM_Mounting_Keyboard_Stabilizer:Stabilizer_Cherry_MX_2.00uS85, S86, S87
3KeyswitchScottoKeebs_Hotswap:Hotswap_MX_1.25uS75, S76, S77
215pFCapacitor_SMD:C_0402_1005MetricC11, C12
21uFCapacitor_SMD:C_0402_1005MetricC1, C16
227.4Resistor_SMD:R_0603_1608MetricR1, R2
2KeyswitchScottoKeebs_Hotswap:Hotswap_MX_1.75uS47, S72
2KeyswitchScottoKeebs_Hotswap:Hotswap_MX_2.25uS59, S61
2KeyswitchScottoKeebs_Hotswap:Hotswap_MX_1.50uS32, S45
2SW_PushButton_Switch_SMD:SW_SPST_EVQP2_MiddlePushTravel_H2.5mmSW1, SW2
10Resistor_SMD:R_0603_1608MetricR5
1100Resistor_SMD:R_0603_1608MetricR13
110kResistor_SMD:R_0603_1608MetricR8
110uFCapacitor_SMD:C_0805_2012MetricC15
11kResistor_SMD:R_0603_1608MetricR4
11kResistor_SMD:R_0402_1005MetricR3
174AHCT1G125Package_TO_SOT_SMD:SOT-23-5_HandSolderingU4
1Crystal_GND24Crystal:Crystal_SMD_3225-4Pin_3.2x2.5mmY1
1KeyswitchScottoKeebs_Hotswap:Hotswap_MX_6.25uS78
1KeyswitchScottoKeebs_Hotswap:Hotswap_MX_2.00uS30
1KeyswitchPCM_Mounting_Keyboard_Stabilizer:Stabilizer_Cherry_MX_6.25uS88
1RP2040Package_DFN_QFN:QFN-56-1EP_7x7mm_P0.4mm_EP3.2x3.2mmU1
1R_PotentiometerPTA6043_2015DPB103:TRIM_PTA6043-2015DPB103RV1
1RotaryEncoder_Switch_MPRotary_Encoder:RotaryEncoder_Bourns_Vertical_PEC12R-3x17F-SxxxxSW3
1USB_C_Receptacle_USB2.0_16PConnector_USB:USB_C_Receptacle_GCT_USB4105-xx-A_16P_TopMnt_HorizontalJ1
1W25Q128JVEPackage_SON:WSON-8-1EP_8x6mm_P1.27mm_EP3.4x4.3mmU3

More from AryA-65/NES-Style-Keyboard

1

Similar boards

  • 4 layers62.3 × 29.5 mmMotokit controlsystem v2, the printed circuit board in 3D

    Motokit controlsystem v2

    S0L1DDEV/motormod-pcb-controlsystem

    CFMoto lightkit mod, driving a lightkit based on engine information read through CAN. This PCB is part of the system responsible for reading frames and outputting a animation on a neopixel lightstrip

    59 parts
  • 2 layers83 × 127 mmNumpad, the printed circuit board in 3D

    Numpad

    blafr103/pico-numpad

    Hand-wired 17-key USB numpad on Pi Pico W. CircuitPython, diode matrix, event-driven scanning.

    120 partsMIT
  • 2 layers446.9 × 141.7 mmPerson keyboard, the printed circuit board in 3D

    Person keyboard

    jtljac/person-keyboard

    My personal Keyboard Design

    374 parts
  • 2 layers347.9 × 119.3 mmSupport All PCBS, the printed circuit board in 3D

    Support All PCBS

    Jubakuba/Keycult-TKL-Kicad

    Keycult TKL PCB Replacement with per key rgb.

    401 parts
  • 2 layers308.8 × 99.3 mmHem, the printed circuit board in 3D

    Hem

    marcocampione/Hem-keyboard

    A 65% ANSI keyboard PCB with an RP2040 on the board

    302 partsMIT
  • 2 layers100 × 80 mmExitIQ, the printed circuit board in 3D

    ExitIQ

    Binita126/ExitIQ

    ExitIQ: ESP32-S3 Edge-AI Emergency Evacuation Guidance Terminal (Vishwakarma Awards 2026 Stage 2)

    74 parts
  • 4 layers50 × 50 mmFlightController Drone, the printed circuit board in 3D

    FlightController Drone

    damnitzhemanth-oss/Flight_Controller

    Custom STM based flightcontroller designed from scratch.

    157 parts
  • 2 layers135 × 90 mmCable tester, the printed circuit board in 3D

    Cable tester

    Mykola2/uart-cable-tester

    design.py is the single source of truth: parts, footprints, pin-to-net map and positions. Everything else is generated from it.

    66 parts

Questions

How big is the Nes keyboard PCB?

It measures 323.9 × 115.5 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Nes keyboard use?

255 parts, built around the RP2040, 74AHCT1G125SE, W25Q128JVEIQ and 1N4148W. 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 keyboard KiCad files?

From the AryA-65/NES-Style-Keyboard repository on GitHub, at the commit this page was made from: the board is nes_mainboard/nes_keyboard.kicad_pcb and its schematic nes_keyboard_daughterboard/nes_keyboard_daughterboard.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Nes keyboard design in my own project?

Its repository publishes it under the GPL-2.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).