PicoSwitch-WirelessGamepadAdapter
PicoSwitch-WirelessGamepadAdapter copied to clipboard
Use any bluetooth gamepad on your Nintendo Switch with a Raspberry Pi Pico W.
trafficstars
PicoSwitch-WirelessGamepadAdapter
Use any bluetooth gamepad on your Nintendo Switch with a Raspberry Pi Pico W.
This project is possible thanks to Bluepad32 and TinyUSB.
https://github.com/juan518munoz/PicoSwitch-WirelessGamepadAdapter/assets/62400508/e1148028-f1f3-4d5b-980a-72534b42acf7
Multiple gamepads support (4 max)
https://github.com/juan518munoz/PicoSwitch-WirelessGamepadAdapter/assets/62400508/247b4c35-10f9-402a-9c81-fd966c905dd6
Installing
- Download latest
.uf2file from releases. - Plug Pico on PC while holding the bootsel button.
- A folder will appear, drag and drop the
.uf2file inside it.
Building
- Install Make, CMake (at least version 3.13), and GCC cross compiler
sudo apt-get install make cmake gdb-arm-none-eabi gcc-arm-none-eabi build-essential - (Optional) Install Pico SDK and set
PICO_SDK_PATHenvironment variable to the SDK path. Not using the SDK will download it automatically for each build. - Update submodules
make update - Build
make build - Flash!
Thismake flashmakecommand will only work on OSes where the mounted pico drive is located in/media/${USER}/RPI-RP2. If this is not the case, you can manually copy the.uf2file located inside thebuilddirectory to the pico drive.
Other make commands:
clean- Clean build directory.flash_nuke- Flash the pico withflash_nuke.uf2which will erase the flash memory. This is useful when the pico is stuck in a boot loop.all-buildandflash.format- Format the code usingclang-format. This requiresclang-formatto be installed.debug- Start minicom to debug the pico. This requiresminicomto be installed and uart debugging.
Development roadmap
- [x] Bluetooth connection.
- [x] Basic button mapping.
- [x] Complete button mapping.
- [x] Support multiple gamepads at once (needs better testing).
- [x] Update Bluepad32 to latest version.
- [ ] Support other platforms.
Acknowledgements
- ricardoquesada - maker of Bluepad32
- hathach creator of TinyUSB
- splork and retro-pico-switch - for the hid descriptors and TinyUsb usage examples.