Skip to the content
PCBKitNew board
2 layers100 × 56.8 mmJoyKey, the printed circuit board in 3D

A small macropad that simultaneously acts as game controller and an entertainment device.

Size
100 × 56.8 mm
Copper layers
2
Thickness
1.6 mm
Parts
64
Nets
55
Pads
233
Tracks, vias
491, 76
Pours
1
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
12 Feb 2025
Updated
28 Nov 2025

Overview

JoyKey is an open-source printed circuit board by techy-robot, from the techy-robot/JoyKey repository on GitHub, published under the CERN-OHL-S-2.0 licence. It is a 2-layer board of 100 × 56.8 mm with 64 parts on 55 nets, routed with 491 tracks and 76 vias.

It is built around the AP2112K-3.3, LSM6DS3 and 1N4148W, with the SK6812MINI-E, DMG3415U and MBR0540 among its other parts. Its parts include 24 diodes, 14 capacitors, 7 ICs, 6 connectors and 6 switches. It belongs with the keyboards and input boards and the RP2040 boards of this library.

Main components

6

README

README.md

modified: 2025-02-20T21:09:22-07:00

JoyKey

This is a small macropad that simultaneously acts as game controller and an entertainment device.

The name is inspired by the Nintendo JoyCon portmanteau (Joystick Controller) except I have replaced the 2nd word with "Keypad" (Joystick Keypad). See name ideas for other things I came up with.

My main repo were development will continue: https://github.com/techy-robot/JoyKey

Features

  • Customizable macro pad using QMK firmware
  • Game controller mimicking a joy-con
  • Offline games that can be played on the display with no connections
  • Small handheld size
  • Linear keys

Approoved Parts BOM

  • 8 Cherry mx Red keys with clear shell variant
  • 8 Black keycaps
  • 128x64 px SSD1306-based monochrome display near the top
  • SEEED Xiao RP2040 (can be replaced later w/ SEEED xiao MG24 or nRF52840 Sense for BLE and other goodies)
  • 12 Sk6812 Mini-E reverse mount RGB leds
  • 3 M3x16 screws and M3 heatsets

Extra Parts BOM

  • 1 Analog PS2 Joystick (I already have)
  • 1 Alps SRBE110301. (flat volume dial on the side). LCSC #C160861
  • AP2112K-3.3 Linear Regulator. LCSC #C51118
  • MCP73831T-2ACI/OT Lipo Battery Charger. LCSC #C424093
  • 4 10uf 0805 capacitors. LCSC #C15850
  • DMG3415 Sot23-3 PMOS. LCSC #C7202986
  • 3 10k 0805 resistors. LCSC #C17414
  • 1 2k 0805 resistor. LCSC #C17604
  • 1 0603 LED. LCSC #C2286
  • 1 LSM6DS3 LCSC #C967633
  • JST PH S2B smd LCSC #C295747
  • 12 1N4148W diodes LCSC #C2128
  • 1 MBR0540 schotkey LCSC #C78545

Pictures

Case

PCB

Bottom Top

Schematic

Sprite Credit

All icons that are converted using qmk's command line tool were originally from Nikoichu's 1-bit Pixel Icons set, which is licensed CC0 1.0

Parts

64
QtyValueFootprintReferences
1410uFCapacitor_SMD:C_0805_2012MetricC1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
121N4148WDiode_SMD:Nexperia_CFP3_SOD-123WD1, D2, D3, D4, D9, D11, D12, D14, D15, D16, D17, D22
10SK6812MINISK6812MINI-E:SK6812MINI-ED5, D6, D7, D8, D10, D13, D18, D19, D21, D23
6SW_Push_45degMX_Solderable:MX-Solderable-1USW2, SW3, SW4, SW5, SW6, SW7
310kResistor_SMD:R_0805_2012MetricR1, R3, R4
2Alps SRBE110301custom_Interface_HID:Alps SRBE110301U2, U6
2MountingHoleMountingHole:MountingHole_3.2mm_M3_PadH1, H2
12_axis_analog_joystick_buttoncustom_Interface_HID:Adafruit 2-Axis joystickU5
12kResistor_SMD:R_0805_2012MetricR2
1AP2112K-3.3Package_TO_SOT_SMD:SOT-23-5U1
1Conn_01x03_SocketConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ2
1DMG3415Package_TO_SOT_SMD:SOT-23-3Q1
1JST PHConnector_JST:JST_PH_S2B-PH-SM4-TB_1x02-1MP_P2.00mm_HorizontalJ4
1LED OrangeLED_SMD:LED_0603_1608MetricD20
1LSM6DS3custom_Interface_HID:LGA-14_3x2.5mm_P0.5mm_LayoutBorder3x4y_COSTSAVERPADsU4
1MBR0540Diode_SMD:Nexperia_CFP3_SOD-123WD24
1MCP73831-2-OTPackage_TO_SOT_SMD:SOT-23-5U8
1OLED_DISPLAYSSD1306:SSD1306-OLED096-128x64J1
1Testpad wire hole1Connector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_VerticalJ3
1Top Trigger 1Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ5
1Top Trigger 2Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ6
1XIAO-RP2040-DIPSEEED_XIAO:XIAO-RP2040-DIPU3

Questions

How big is the JoyKey PCB?

It measures 100 × 56.8 mm and has 2 copper layers, 1.6 mm thick.

What parts does the JoyKey use?

64 parts, built around the AP2112K-3.3, LSM6DS3, 1N4148W and SK6812MINI-E. 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 JoyKey KiCad files?

From the techy-robot/JoyKey repository on GitHub, at the commit this page was made from: the board is PCBs/JoyKey/JoyKey.kicad_pcb and its schematic PCBs/JoyKey/Analog Input.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the JoyKey design in my own project?

Its repository publishes it under the CERN-OHL-S-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).

Similar boards

  • 4 layers84 × 25.6 mmLittle Helper, the printed circuit board in 3D

    Little Helper

    wolkstein/minimal-esp32-ble-midi-ctrl

    A simple Bluthooth Midi DAW transport control unit based on an esp32 mc

    41 parts1GPL-3.0
  • 4 layers70 × 50 mmFinalized bluetooth remote, the printed circuit board in 3D

    Finalized bluetooth remote

    3pnguyen/esp32-bluetooth-media-keyboard

    Electronic project that provides the same control as wireless earbuds.

    62 partsMIT
  • 2 layers54.9 × 23.5 mmStdc14 adapter, the printed circuit board in 3D

    Stdc14 adapter

    arvindsa/stlinkv3-adapter

    STVlink3 Adapter

    26 parts
  • 4 layers62.7 × 35.5 mmAudioplayer, the printed circuit board in 3D

    Audioplayer

    kscz/kitzune-hw

    Hardware files for the kitzune project

    79 parts
  • 2 layers81.3 × 99.8 mmGamePulse2040, the printed circuit board in 3D

    GamePulse2040

    MAHESH-THILAK-K/ADDITIONAL-PROJECT

    74 parts1Apache-2.0
  • 4 layers120 × 89.3 mmSMK macro pad, the printed circuit board in 3D

    SMK macro pad

    mburger89/SMK_macro_pad

    4x4 wireless macro pad — RP2040 + Raspberry Pi RM2. KiCad project generated from Python; includes a 42%-smaller 'mini' variant with back-mounted electronics.

    89 partsMIT
  • 2 layers102.9 × 103.7 mmDrone ESP32, the printed circuit board in 3D

    Drone ESP32

    Asaf66/Drone_ESP32

    Rev 2 fixes the issues found while assembling the first board:

    80 parts