- ESP32-S3 firmware converts USB HID gamepad to BLE gamepad.
- Supports Seeed Studio XIAO ESP32S3 as the target device.
- Requires USB-C OTG adapter or powered hub for some controllers.
- Optional UART adapter for debug logs on GPIO12/GPIO13.
- Power note: Some controllers may need a powered hub.
- Flashing and development done via USB-C connection.
- Runtime setup involves connecting controller via OTG adapter.
- Pair BLE device like a normal Bluetooth controller.
- PlatformIO project with USB Host and debug UART enabled.
- Build and flash commands provided for PlatformIO.
- Development environment available for quick flashing/monitoring.
- Custom partition table used (partitions_4MB.csv).
- Firmware decouples USB and BLE via GamepadState.
- Normalizes HID reports into canonical button layout.
- Adjust HID→canonical mapping in hid_parser.cpp if needed.
- Debug logs help identify button toggles.
- Key files: usb_host, hid_parser, gamepad_state, ble_gamepad, main.cpp.