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 adapter — controlleradapter.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
- Disconnect the board from everything
- Hold BOOT on the KB2040
- While holding, plug the USB-C cable into your computer
- Release BOOT
RPI-RP2drive appears
Flash
- Drag and drop the
.uf2file onto theRPI-RP2drive - Drive auto-ejects — firmware is flashed
- Done!
Step 5: Test It
On the Nuon Player
- Power off the Nuon DVD player
- Connect the adapter to the controller port
- Plug a USB controller (or USB mouse for Tempest 3000) into the USB-A port
- Power on the Nuon player
- 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_SCALEcan 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?
- USB23DO Guide — USB controller on 3DO
- USB2DC Guide — USB controller on Dreamcast
- USB2GC Guide — USB controller on GameCube
- USB2USB Guide — Simpler build for USB-to-USB
- Community Discord — Share your build, get help
Estimated build time: 60–120 minutes (includes soldering; connector sourcing may take longer). Difficulty: Hard.