🔧

Build a USB-to-Nuon Controller Adapter

Hard60–120 minutes💰 $34–61🧩 5 parts

🛒 Don't want to build? Buy a ready-made adapter and support Joypad.

Build a USB-to-Nuon Controller Adapter

What Is This?

USB2Nuon lets you use any modern USB controller on a Nuon DVD player — the multimedia game console hidden inside select Samsung, Toshiba, and Motorola DVD players. It also turns a USB mouse into a spinner for the best Tempest 3000 experience.

Why would you want this?

  • Use modern controllers on Nuon — original Nuon controllers are extremely rare and expensive
  • USB mouse as spinner — play Tempest 3000 with precise spinner control via mouse X-axis
  • In-Game Reset (IGR) — reset or power off your Nuon without getting up (L1+R1+Start+Select combo)
  • Full button mapping — A, B, Start, Nuon, C-pad, L, R all mapped

The Nuon uses a unique bidirectional serial protocol called Polyface. The adapter emulates a Nuon controller using PIO state machines for precise timing.

Parts List

Part Price Where to Buy
Adafruit KB2040 $8.95 Adafruit
USB-A female breakout board $2.50 Adafruit
Nuon controller port cable $5–15 Salvaged from donor controller or custom wired
22–26 AWG wire $3–5 Any electronics supplier
Soldering iron + solder $15–30 If you don't have one
USB-C data cable ~$5 For flashing firmware

Total: ~$25–40

Or buy pre-built: NUON USB Adapter at controlleradapter.com

Getting a Nuon Connector

Nuon controller connectors are not standard parts you can buy off the shelf. Options:

  • Salvage from a Nuon controller — cut the cable from a broken/donor Nuon controller
  • Custom wire directly — solder wires to the Nuon player's controller port pins
  • 3D print a connector — community-designed connector shells exist
  • Buy the pre-built adaptercontrolleradapter.com includes the connector

Step 1: Identify the Nuon Controller Port Pins

The Nuon uses a proprietary "Polyface" connector with a bidirectional serial data line and a clock line.

The key signals you need:

Signal Description
DATA (DATAIO) Bidirectional serial data line
CLK (CLKIN) Clock input from console
+5V Power from console
GND Ground

Step 2: Wire the Nuon Connection

KB2040 → Nuon Controller Port

KB2040 Pin Nuon Signal GPIO Notes
GPIO 2 DATA (DATAIO) GP2 Bidirectional serial data (PIO-driven)
GPIO 3 CLK (CLKIN) GP3 Clock from console (must be DATA + 1)
GPIO 4 POWER GP4 In-Game Reset: Stop button trigger
GPIO 11 STOP GP11 In-Game Reset: Power button trigger
RAW/5V +5V Power from Nuon player
GND GND Common ground

Important: DATA and CLK must be on consecutive GPIO pins (GPIO 2 and GPIO 3) — the PIO state machine requires them as a consecutive input group.

In-Game Reset (IGR) Wiring

The IGR feature uses GPIO 4 (Stop) and GPIO 11 (Power) to trigger the Nuon player's internal buttons. These pins pulse low to simulate pressing the physical Stop and Power buttons on the DVD player:

  • Tap L1+R1+Start+Select (release before 2 seconds) → triggers Stop (returns to DVD menu)
  • Hold L1+R1+Start+Select (2+ seconds) → triggers Power (powers off the player)

Step 3: Wire the USB Host Port

KB2040 → USB-A Host

KB2040 Pin USB-A Pin Signal Wire Color (typical)
GPIO 16 Pin 3 D+ Green
GPIO 17 Pin 2 D- White
RAW/5V Pin 1 VBUS (5V) Red
GND Pin 4 Ground Black

Wiring Tips

  • ⚠️ D+ and D- are the #1 mistake — if your USB controller isn't detected, these are swapped
  • Keep USB wires under 15cm (6 inches)
  • No USB hubs — PIO-USB only supports direct controller connections
  • For spinner mode, plug a USB mouse in instead of a gamepad

Step 4: Flash the Firmware

Download the UF2

Go to github.com/joypad-ai/joypad-os/releases and download:

Board Firmware File
KB2040 joypad_*_usb2nuon_kb2040.uf2

Enter Bootloader Mode

  1. Disconnect the board from everything
  2. Hold BOOT on the KB2040
  3. While holding, plug the USB-C cable into your computer
  4. Release BOOT
  5. RPI-RP2 drive appears

Flash

  1. Drag and drop the .uf2 file onto the RPI-RP2 drive
  2. Drive auto-ejects — firmware is flashed
  3. Done!

Step 5: Test It

On the Nuon Player

  1. Power off the Nuon DVD player
  2. Connect the adapter to the controller port
  3. Plug a USB controller (or USB mouse for Tempest 3000) into the USB-A port
  4. Power on the Nuon player
  5. Insert a Nuon game disc and test

LED Status

  • 🔴 Red breathing = no controller connected
  • 🔴 Solid red = controller connected (Player 1)

Button Mapping

Standard Controller

Your Controller Nuon Button
Cross / B A
Circle / A C-Down
Square / X B
Triangle / Y C-Left
L1 / LB L
R1 / RB R
L2 / LT / ZL C-Up
R2 / RT / ZR C-Right
Select / Back Nuon
Start Start
Touchpad / Capture Nuon
D-pad D-pad
Left Stick D-pad

Spinner Mode (USB Mouse)

For Tempest 3000 — plug in a USB mouse instead of a gamepad:

USB Mouse Nuon Spinner
X Movement (left/right) Spinner Rotation
Left Click Fire (A button)

Tips for best spinner experience:

  • Use an optical mouse (not ball mouse)
  • Lower DPI settings may feel more natural
  • Some gaming mice have on-the-fly DPI adjustment

In-Game Reset (IGR)

Button Combo Hold Duration Action
L1 + R1 + Start + Select Tap (< 2 sec) Stop — returns to DVD menu
L1 + R1 + Start + Select Hold (2+ sec) Power — powers off player

Compatible Nuon Players

  • Samsung DVD-N501
  • Samsung DVD-N504 / N505
  • Toshiba SD-2300
  • Motorola Streamaster 5000
  • RCA DRC300N / DRC480N

Compatible Games

Standard Controller

  • Iron Soldier 3
  • Ballistic
  • Space Invaders XL
  • Merlin Racing
  • Freefall 3050 A.D.
  • The Next Tetris

Spinner (USB Mouse)

  • Tempest 3000 — the premier spinner experience
  • VLM-2 (audio visualizer)

Troubleshooting

Nuon Player Doesn't Detect the Adapter

  • Check DATA (GPIO 2) and CLK (GPIO 3) connections
  • Verify 5V and GND from the Nuon controller port
  • Some Nuon players may have voltage differences (3.3V vs 5V) — check your specific model
  • Try reseating the connector

Controller Not Detected (USB Side)

  • D+ and D- swapped — GPIO 16 → D+, GPIO 17 → D-
  • Try a different controller

Spinner Too Sensitive or Too Slow

  • Adjust your mouse DPI settings (lower = slower rotation)
  • The NUON_SPINNER_SCALE can be modified in firmware for fine-tuning
  • Try a different USB mouse

IGR Not Working

  • Hold all four buttons (L1+R1+Start+Select) simultaneously
  • Tap for Stop, hold 2+ seconds for Power
  • IGR requires additional wiring to the Nuon player's internal button pads — see Step 2

Buttons Not Responding in Games

  • Different Nuon games expect different button configurations
  • The C-pad buttons (C-Up, C-Down, C-Left, C-Right) are mapped to L2, Circle, Triangle, and R2

What's Next?


Estimated build time: 60–120 minutes (includes soldering; connector sourcing may take longer). Difficulty: Hard.

More Build Guides

Need help with this build?

Join our community for build support. Get help on Discord →