This project implements an adapter to connect an SNES (Super Nintendo Entertainment System) controller to a computer via USB using a Raspberry Pi Pico (RP2040). The adapter translates SNES controller inputs into USB HID reports like a standard USB gamepad, allowing the controller to be used on modern systems. It was developed in C using Visual Studio Code with the Raspberry Pi Pico extension and uses the TinyUSB library.
- Raspberry Pi Pico (RP2040)
- SNES controller
- Micro USB cable
- Optional: Female connector or extension cable for the SNES controller for neater and more robust wiring
- Visual Studio Code with the Raspberry Pi Pico extension
- Raspberry Pi Pico SDK
- TinyUSB library (included in the Pico SDK)
- CMake and a compatible C compiler (e.g., GCC for ARM)
-
Hardware Connection
-
Firmware Loading
- Connect the Raspberry Pi Pico to your computer while holding down the BOOTSEL button.
- Download the
.uf2file available in the releases section of this repository. - Drag the
.uf2file to the Pico’s storage device. - The Pico will automatically restart and be ready to use with the SNES controller.
- Clone or download this repository.
- Open Visual Studio Code and install the Raspberry Pi Pico extension.
- In the left sidebar, select the Raspberry Pi Pico Project section.
- Choose the Import Project option and select the downloaded project folder.
- The project should now be ready to compile.
- The project assumes the use of the standard SNES controller protocol. Non-standard or third-party controllers may require adjustments.
- The adapter was successfully tested on a PC using RetroArch and on a Raspberry Pi with RetroPie.
Este proyecto implementa un adaptador para conectar un control de SNES (Super Nintendo Entertainment System) a una computadora mediante USB utilizando una Raspberry Pi Pico (RP2040). El adaptador traduce las entradas del control SNES en reportes USB HID como un gamepad USB, lo que permite usar el control en sistemas modernos. Fue desarrollado en C usando Visual Studio Code con la extensión Raspberry Pi Pico y utiliza la librería TinyUSB.
- Raspberry Pi Pico (RP2040)
- Control SNES
- Cable micro USB
- Opcional: Conector hembra o cable alargador para el control SNES, para un cableado más prolijo y robusto
- Visual Studio Code con la extensión de Raspberry Pi Pico
- SDK de Raspberry Pi Pico
- Librería TinyUSB (incluida en el SDK de Pico)
- CMake y un compilador C compatible (por ejemplo, GCC para ARM)
-
Conexión del Hardware
-
Carga del Firmware
- Conecta la Raspberry Pi Pico a tu computadora mientras mantienes presionado el botón BOOTSEL.
- Descarga el archivo
.uf2disponible en la sección de releases de este repositorio. - Arrastra el archivo
.uf2a la unidad de almacenamiento de la Pico. - La Pico se reiniciará automáticamente y estará lista para usar con el control de SNES.
- Clona o descarga este repositorio.
- Abre Visual Studio Code e instala la extensión de Raspberry Pi Pico.
- En la barra lateral izquierda, selecciona la sección Raspberry Pi Pico Project.
- Elige la opción Importar Proyecto y selecciona la carpeta del proyecto descargado.
- Con eso ya deberia estar listo para compilar.
- El proyecto asume el uso del protocolo estándar del control SNES. Controles no estándar o de terceros podrían requerir ajustes.
- El adaptador fue probado con éxito en PC usando RetroArch y en una Raspberry Pi con RetroPie.
