BT2USB — Bluetooth to USB Adapter¶
BT2USB turns a Raspberry Pi Pico W, Pico 2 W, ESP32-S3, or nRF52840 board into a wireless Bluetooth-to-USB controller adapter. Pair any supported Bluetooth controller and it outputs as a standard USB gamepad.
Supported Controllers¶
Pico W / Pico 2 W (Classic BT + BLE)¶
| Controller | Status |
|---|---|
| DualSense (PS5) | Supported |
| DualShock 4 (PS4) | Supported |
| DualShock 3 (PS3) | Supported |
| Xbox One / Series | Supported |
| Switch Pro | Supported |
| Switch 2 Pro | Supported |
| Wii U Pro | Supported |
| NSO GameCube | Supported |
| Google Stadia | Supported |
| Generic BT HID | Basic support (may need remapping) |
ESP32-S3 (BLE only)¶
| Controller | Status |
|---|---|
| Xbox One / Series (BLE mode) | Supported |
| 8BitDo controllers (BLE mode) | Supported |
| Switch 2 Pro (BLE) | Supported |
| Generic BLE HID gamepads | Supported |
nRF52840 (BLE only)¶
| Controller | Status |
|---|---|
| Xbox One / Series (BLE mode) | Supported |
| 8BitDo controllers (BLE mode) | Supported |
| Switch 2 Pro (BLE) | Supported |
| Generic BLE HID gamepads | Supported |
Classic BT controllers (DS3, DS4, DS5, Switch Pro, Wii U Pro) are not supported on ESP32-S3 or nRF52840. See ESP32 docs and nRF52840 docs for details.
Hardware¶
- Pico W / Pico 2 W — built-in Bluetooth, no dongle needed
- ESP32-S3 — built-in BLE, requires ESP-IDF to build (setup guide)
- nRF52840 — built-in BLE, requires nRF Connect SDK to build (setup guide)
Firmware Files¶
| Board | File |
|---|---|
| Pico W | joypad_*_bt2usb_pico_w.uf2 |
| Pico 2 W | joypad_*_bt2usb_pico2_w.uf2 |
| ESP32-S3 | joypad_*_bt2usb_esp32s3.uf2 (drag-and-drop via TinyUF2) |
| XIAO nRF52840 | joypad_*_bt2usb_seeed_xiao_nrf52840.uf2 |
| Feather nRF52840 | joypad_*_bt2usb_adafruit_feather_nrf52840.uf2 |
Pairing¶
- Flash the BT2USB firmware to your Pico W / Pico 2 W
- Put your controller into pairing mode
- The adapter automatically enters pairing mode on boot
- Once paired, the controller reconnects automatically on subsequent use
USB Output Modes¶
BT2USB supports the same USB output modes as USB2USB. Double-click the button to cycle through modes. Triple-click to reset to default.
- SInput — SDL/Steam compatible (default)
- XInput — Xbox 360 compatible
- PS3 — PlayStation 3
- PS4 — PlayStation 4
- Switch — Nintendo Switch
- Keyboard/Mouse — Keyboard + Mouse composite HID
Web Configuration¶
Connect the adapter to a computer and open config.joypad.ai in a WebSerial-capable browser (Chrome, Edge) for mode switching, input monitoring, and firmware updates.
Multiple Controllers¶
BT2USB can pair multiple Bluetooth controllers simultaneously. Currently, inputs from all paired controllers are merged into a single USB output.