Hasty Briefsbeta

Bilingual

Show HN: I wrote a small lib to turn a USB gamepad into a Bluetooth one

4 months ago
  • #USB-HID
  • #BLE-Gamepad
  • #ESP32-S3
  • 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.