FunkeyShifter Live ESP32-S3 Web Bluetooth
FunkeyShifter is an ESP32-S3 remake portal for U.B. Funkeys. It lets the game see a MegaByte-style USB hub while a browser controls which Funkey is currently present.
The ESP32 presents itself to the computer as a portal-style USB device. The game polls the ESP32 over USB and receives the same kind of raw MegaByte hub packets that the original hardware produced.
The controller website talks to the ESP32 over Bluetooth Low Energy instead of opening the USB device. That means the game can keep using the USB portal while the browser changes the active Funkey in the background.
When a Funkey is selected in the website, the app sends the decoded Funkey ID to the ESP32 over BLE. The firmware converts that ID into the raw hub packet format and serves it to the game on the USB endpoint. Removing a Funkey works the same way: the website sends a remove command, and the ESP32 reports the no-figure state to the game.
image- Flash the current firmware to the ESP32-S3.
- Plug the ESP32 into the computer running the game.
- Open funkey.jlynx.net in Chrome or Edge.
- Click
Connect BLE. - Select
FunkeyShifterfrom the browser Bluetooth picker. - Choose a Funkey from the website to change what the game sees.
Web Bluetooth requires Chrome or Edge and a secure browser context. The deployed site uses HTTPS, so it is ready to connect directly.
src/: ESP32-S3 firmware that emulates the portal USB device and exposes the BLE control service.web/: Next.js Web Bluetooth controller deployed to Cloudflare Workers.docs/: Protocol, firmware, and toolchain notes.tools/: Development and reference utilities.