Skip to the content
PCBKitNew board
2 layers66.4 × 56 mmDualjoy, the printed circuit board in 3D

Retro joystick USB adapter

Size
66.4 × 56 mm
Copper layers
2
Thickness
1.6 mm
Parts
7
Nets
40
Pads
110
Tracks, vias
34, 0
Pours
1
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
6 Jan 2025
Updated
12 Oct 2026

Overview

Dualjoy is an open-source printed circuit board by ansiwen, from the ansiwen/dualjoy repository on GitHub, published under the MIT licence. It is a 2-layer board of 66.4 × 56 mm with 7 parts on 40 nets, routed with 34 tracks and 0 vias.

It belongs with the retro computing and games and keyboards and input boards and the RP2040 boards of this library.

README

README.md

DualJoy

This is a firmware for the Rapsberry Pi Pico that turns it into a USB adapter for two D-Sub 9 joysticks, as they where used for example with the Atari 2600 console and the Commodore C64 and Amiga home computers. They will appear as two digital hats/d-pads with only one button.

The code is based on the various examples of the Pico SDK and TinyUSB and keeps their MIT license.

Usage

You can use the precompiled binary from the release page if you use the same GPIOs as in the hardware example below:

GPIOD-SUB pinFunction
101 (J1)J1 UP
112 (J1)J1 DOWN
123 (J1)J1 LEFT
134 (J1)J1 RIGHT
96 (J1)J1 BTN
181 (J2)J2 UP
192 (J2)J2 DOWN
203 (J2)J2 LEFT
214 (J2)J2 RIGHT
176 (J2)J2 BTN

Additionally you need to connect pin 8 of both D-SUB connectors with GND on the Pico.

Build

If you want to use different GPIOs, you easily can build the firmware yourself. Like any other pico project, after installing the Pico SDK you do:

text
$ mkdir build
$ cd build
$ cmake ..
$ make

If building for the Pico 2 (RP2350), use cmake -DPICO_BOARD=pico2 .. instead.

Simple hardware example

First image Second image           

PCB

A ready-made PCB with a matching top and bottom plate as enclosure is available in hardware/.

DualJoy PCB

Parts

7
QtyValueFootprintReferences
4MountingHole_3.2mm_M3MountingHole:MountingHole_3.2mm_M3H1, H2, H3, H4
2DE9_PinsConnector_Dsub:DSUB-9_Pins_Horizontal_P2.77x2.84mm_EdgePinOffset9.90mm_Housed_MountingHolesOffset11.32mmJ1, J2
1RaspberryPi_PicoModule:RaspberryPi_Pico_Common_UnspecifiedA1

Questions

How big is the Dualjoy PCB?

It measures 66.4 × 56 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Dualjoy use?

7 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 Dualjoy KiCad files?

From the ansiwen/dualjoy repository on GitHub, at the commit this page was made from: the board is hardware/kicad/dualjoy.kicad_pcb and its schematic hardware/kicad/dualjoy.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Dualjoy design in my own project?

Its repository publishes it under the MIT 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

  • 2 layersEncoder, the printed circuit board in 3D

    Encoder

    byrantech/laptop

    anyon_e, a highly integrated, high end, open source laptop. Attempt the impossible.

    7 parts4.3kMIT
  • 2 layers40 × 20 mmSensor smd, the printed circuit board in 3D

    Sensor smd

    scottbez1/splitflap

    DIY split-flap display

    7 parts4.2k
  • 2 layers19.8 × 30 mmZ limit, the printed circuit board in 3D

    Z limit

    opulo-inc/lumenpnp

    The LumenPnP is an open source pick and place machine.

    7 parts3.7k
  • 2 layers35.6 × 58.2 mmDisplay Carrier, the printed circuit board in 3D

    Display Carrier

    AxxAxx/AxxSolder

    STM32 Based soldering station for JBC cartridges, 9-24 VDC and USB-PD power

    7 parts1.7kGPL-3.0
  • 2 layers20.3 × 16.3 mmMap MPX, the printed circuit board in 3D

    Map MPX

    rusefi/rusefi

    rusefi - GPL internal combustion engine control unit

    7 parts1.2k
  • 2 layers26 × 44 mmCompact carrier board, the printed circuit board in 3D

    Compact carrier board

    jamro/tiny-engineer

    A small desktop robot that brings an AI coding assistant to life, physically acting out when it reads files, thinks, writes code, and finishes work.

    7 parts1.1k
  • 2 layers26.4 × 53.8 mmAtari pickup, the printed circuit board in 3D

    Atari pickup

    hoglet67/RGBtoHDMI

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

    7 parts1kGPL-3.0
  • 2 layersRj45 breakout, the printed circuit board in 3D

    Rj45 breakout

    rene-dev/stmbl

    AC Servo Driver for STM32F4

    7 parts990GPL-3.0