Skip to the content
2 layers75 × 28 mmNg2040-controller, the printed circuit board in 3D

Ng2040-controller

partlyhuman/ng20407

A cute DIY RP2040+2.4GHz wireless controller for Neo Geo

Size
75 × 28 mm
Copper layers
2
Thickness
1.6 mm
Parts
24
Nets
29
Pads
82
Tracks, vias
162, 30
Pours
1
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
28 Dec 2022
Updated
8 Feb 2026

Overview

Ng2040-controller is an open-source printed circuit board by partlyhuman, from the partlyhuman/ng2040 repository on GitHub, published under the BSD-2-Clause licence. It is a 2-layer board of 75 × 28 mm with 24 parts on 29 nets, routed with 162 tracks and 30 vias.

It is built around the MIC5205-3.0YM5. Its parts include 9 connectors, 4 capacitors, 2 resistors, 2 ICs and 2 switches. It belongs with the RP2040 boards of this library.

Main components

1

README

README.md

NG2040

A cute DIY RP2040+2.4GHz wireless controller for Neo Geo

This is a wireless joystick and receiver for Neo Geo consoles that I designed to meet these requirments:

  • Super compact joystick (6.5"x4.5" / 17x12cm)
  • Super compact receiver (extends 1.5" / 4cm out from port)
  • 3D printable
  • Can use cheap Sanwa clones or the real thing
  • No (less than 1 frame) of lag
  • 2.4GHz radio, no pairing nonsense
  • Long battery life with deep sleep
  • USB-C rechargeable battery
  • PCB using JST for tidy button wiring

It uses the ubiquitous RP2040 (specifically, the Waveshare RP2040 Tiny) and Nordic nRF24L01 radios.

Status

The project is ready for production, but there is a compatibility issue:

The DB15 connectors used are standard depth and work perfectly with supergun setups. However, to use with Neo Geo AES consoles and their extra-deep DB15 ports, a pigtail is required. There are AES specific designs in this repository that can be built using hand-soldered pins and a 3d-printed shroud, but I was never really happy with them, so they're not part of the "official" offering here - feel free to try them out if you so desire, of course.

The joystick design continues on as a BTLE joystick, which can pair with a Neo Geo BlueRetro dongle, any other console with BlueRetro, or your PC! See my ESP.Ra.Dio project.

Build instructions

Contact me for purchasing pre-built joysticks, or a build guide will be added to the wiki shortly.

Parts

24
QtyValueFootprintReferences
4MountingHole_2.2mm_M2MountingHole:MountingHole_2.2mm_M2H1, H2, H3, H4
210KResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR1, R2
10.1uFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC2
1100nFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC3
110uFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC1
11uFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC4
1AConnector_JST:JST_XH_B2B-XH-A_1x02_P2.50mm_VerticalJ1
1BConnector_JST:JST_XH_B2B-XH-A_1x02_P2.50mm_VerticalJ2
1BATTERYConnector_JST:JST_PH_B2B-PH-K_1x02_P2.00mm_VerticalJ8
1CConnector_JST:JST_XH_B2B-XH-A_1x02_P2.50mm_VerticalJ3
1DConnector_JST:JST_XH_B2B-XH-A_1x02_P2.50mm_VerticalJ4
1JOYConnector_JST:JST_XH_B5B-XH-A_1x05_P2.50mm_VerticalJ7
1LEDLED_THT:LED_D3.0mm_Horizontal_O1.27mm_Z6.0mmD1
1MIC5205-3.0YM5Package_TO_SOT_SMD:SOT-23-5U3
1OPTSButton_Switch_SMD:SW_DIP_SPSTx02_Slide_6.7x6.64mm_W8.61mm_P2.54mm_LowProfileSW1
1POWERButton_Switch_THT:SW_Slide_SPDT_Angled_CK_OS102011MA1QSW2
1RADIOConnector_PinHeader_2.54mm:PinHeader_2x04_P2.54mm_VerticalJ9
1RP2040 TinyRP2040Zero:RP2040-ZeroU1
1SELECTConnector_JST:JST_XH_B2B-XH-A_1x02_P2.50mm_VerticalJ6
1STARTConnector_JST:JST_XH_B2B-XH-A_1x02_P2.50mm_VerticalJ5

More from partlyhuman/ng2040

2
  • 2 layers32 × 31.5 mmNg2040-receiver aes, the printed circuit board in 3D

    Ng2040-receiver aes

    partlyhuman/ng2040

    A cute DIY RP2040+2.4GHz wireless controller for Neo Geo

    20 parts7BSD-2-Clause
  • 2 layers40 × 37 mmNg2040-receiver, the printed circuit board in 3D

    Ng2040-receiver

    partlyhuman/ng2040

    A cute DIY RP2040+2.4GHz wireless controller for Neo Geo

    18 parts7BSD-2-Clause

Similar boards

  • 2 layers56 × 65 mmSeaTalk1, the printed circuit board in 3D

    SeaTalk1

    dotnet/iot

    This repo includes .NET Core implementations for various IoT boards, chips, displays and PCBs.

    24 parts2.4kMIT
  • 2 layers26.2 × 45.5 mmPL18 multiprotocol, the printed circuit board in 3D

    PL18 multiprotocol

    pascallanger/DIY-Multiprotocol-TX-Module

    Multiprotocol TX Module (or MULTI-Module) is a 2.4GHz transmitter module which controls many different receivers and models.

    24 parts1.9kGPL-3.0
  • 2 layers58 × 35.5 mmHat, the printed circuit board in 3D

    Hat

    menloresearch/asimov-1

    v1 of Asimov, an open-source humanoid robot

    24 parts1.4kCERN-OHL-S-2.0
  • 2 layers21.6 × 19.5 mmMicron Logo LED, the printed circuit board in 3D

    Micron Logo LED

    DraftShift/StealthChanger

    Tool changing system for Vorons and other front mount printer motion systems, not just stealthburner.

    24 parts1.2kGPL-3.0
  • 2 layers158 × 11 mmRainbow Matchstick, the printed circuit board in 3D

    Rainbow Matchstick

    VoronDesign/Voron-Hardware

    Cool Hardware designed by the Voron Design group

    24 parts1.1kGPL-3.0
  • 2 layers85.6 × 54 mmTRACED wio1262-carrier, the printed circuit board in 3D

    TRACED wio1262-carrier

    hackclub/OnBoard

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

    24 parts915
  • 2 layers36 × 20 mmCombined, the printed circuit board in 3D

    Combined

    adamb314/ServoProject

    Getting the most out of your hobby servo

    24 parts545

Questions

How big is the Ng2040-controller PCB?

It measures 75 × 28 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Ng2040-controller use?

24 parts, built around the MIC5205-3.0YM5. 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 Ng2040-controller KiCad files?

From the partlyhuman/ng2040 repository on GitHub, at the commit this page was made from: the board is pcb/ng2040-controller/ng2040-controller.kicad_pcb and its schematic pcb/ng2040-controller/ng2040-controller.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Ng2040-controller 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).