Skip to content

usb2dc

USB/BT controllers to Dreamcast console.

Overview

Connects USB and Bluetooth controllers to a Dreamcast via the Maple Bus protocol. Supports analog triggers, rumble (Puru Puru Pack) feedback, and up to 4 players. Player slots are indicated by NeoPixel LED color.

Input

Output

Dreamcast Output -- Maple Bus PIO protocol.

Core Configuration

Setting Value
Routing mode MERGE (all inputs blended to one output)
Player slots 4 (fixed assignment)
Max USB devices 4
Profile system None

Key Features

  • Analog triggers -- L2/R2 mapped to Dreamcast L/R analog triggers.
  • Rumble -- Puru Puru Pack vibration forwarded to compatible controllers.
  • Player LED colors -- Orange (P1), Blue (P2), Red (P3), Green (P4).

Supported Boards

Board Build Command Notes
KB2040 make usb2dc_kb2040 Maple pins: GPIO 2/3
RP2040-Zero make usb2dc_rp2040zero Maple pins: GPIO 14/15 (USB4Maple-compatible)

The RP2040-Zero build uses the same pinout as USB4Maple, so existing USB4Maple hardware can run Joypad OS as a drop-in replacement.

RP2040-Zero Wiring

USB2DC RP2040-Zero Wiring

Build and Flash

make usb2dc_kb2040
make flash-usb2dc_kb2040

Troubleshooting

Controller not detected by console: - Check Maple Bus cable connections (SDCKA, SDCKB, 5V, GND). - Verify the data pin assignments match your board variant (KB2040 uses GPIO 2/3, RP2040-Zero uses GPIO 14/15).

Rumble not working: - Only compatible USB/BT controllers support Puru Puru Pack feedback. - Check USB power supply -- rumble requires more current.

Analog triggers not responding: - Verify your input controller has analog L2/R2 triggers (digital-only triggers map to full press).