SNES Mini Wireless Gamepad
Wireless gamepads for SNES Mini (ESP32-C3 + ESP32-S2)
Wireless gamepads for SNES Mini — a two-part firmware project on ESP-IDF: a transmitter on the ESP32-C3 and a receiver on the ESP32-S2, built on ESP-NOW technology for low latency, bringing reliable wireless play to a retro console on bare metal.
About
The project consists of two repos. The main repo (snes-mini-wireless-gamepad-c3) is the transmitter built into the gamepad on the ESP32-C3: it emulates the console and reads the gamepad data over the Wii gamepad protocol, talking to the receiver over ESP-NOW for low-latency wireless input. The second repo (snes-mini-wireless-gamepad) is the receiver that fits inside the SNES Mini on the ESP32-S2 and emulates a wired gamepad, so the console sees a normal controller. The challenge there was getting the two I2C ports into master mode using the EEPROM protocol format — when the console requests an address for reading and receives the data back. To make it work I had to fork ESP-IDF and patch the HAL for I2C.
License
Released under the GPL-3.0 license.
Features
- Low-latency ESP-NOW wireless input
- ESP32-C3 transmitter + ESP32-S2 receiver
- I2C master mode via EEPROM protocol
- PlatformIO project structure
- GPL-3.0 licensed