Беспроводной геймпад для SNES Mini
Беспроводные геймпады для SNES Mini (ESP32-C3 + ESP32-S2)
Беспроводные геймпады для SNES Mini — firmware-проект из двух частей на ESP-IDF: передатчик на ESP32-C3 и приёмник на ESP32-S2, построенный на технологии ESP-NOW для низкой задержки, приносящий надёжную беспроводную игру на ретро-консоль на чистом железе.
О проекте
Проект состоит из двух репозиториев. Основной (snes-mini-wireless-gamepad-c3) — это передатчик на ESP32-C3, встроенный в геймпад: он эмулирует консоль и считывает данные с геймпада по протоколу геймпадов для Wii, общаясь с приёмником по ESP-NOW для беспроводного ввода с низкой задержкой. Второй репозиторий (snes-mini-wireless-gamepad) — это приёмник на ESP32-S2, который встраивается внутрь SNES Mini и эмулирует проводной геймпад, так что консоль видит обычный контроллер. Главным вызовом там было заставить два I2C-порта работать в master-режиме по формату протокола EEPROM — когда консоль запрашивает адрес для чтения и получает данные. Чтобы это заработало, мне пришлось сделать форк ESP-IDF и пропатчить HAL для работы с I2C.
Лицензия
Опубликовано под лицензией GPL-3.0.
Возможности
- Беспроводной ввод с низкой задержкой на ESP-NOW
- Передатчик на ESP32-C3 + приёмник на ESP32-S2
- I2C master-режим через протокол EEPROM
- Структура проекта PlatformIO
- Лицензия GPL-3.0