Universal USB to USB controller adapter running the open-source JoypadOS firmware. Plug a USB controller into one end and a console or PC into the other; the adapter re-presents the controller as the one the system expects.
Reads: DualSense, DualShock 4, DualShock 3, Xbox 360 / One / Series, Switch Pro, Switch 2 Pro, GameCube adapters, Steam Controller 2, 8BitDo, HORI, Logitech, Sega Astro City, PlayStation Classic, Stadia, plus generic USB HID and XInput controllers, keyboards and mice.
Outputs as: Xbox 360 (XInput), PS3, PS4, Switch (docked), Original Xbox, PlayStation Classic, GameCube adapter (Wii U / Switch), PC Engine Mini, generic HID, SInput (Steam / SDL), keyboard + mouse.
XInput mode passes the Xbox 360 XSM3 authentication check on real consoles
Switch output mode on the fly from the controller or the browser
Remapping, stick response and deadzones via WebSerial at config.joypad.ai
Bluetooth by plugging a USB Bluetooth dongle into the host port
Drag-and-drop UF2 firmware updates from joypad.dev/releases
Built on an Adafruit Feather RP2040 with USB Host in a custom case. Includes USB-C cable.