adafruit / adafruit/Adafruit_TinyUSB_Arduino
Xinput support - emulate xbox 360 controllers
- Dominant language
- C
- Stars
- 654
- Forks
- 183
- PR merge metrics
- No merged PRs in 30d
Description
**Is your feature request related to a problem? Please describe.**
Existing solutions for xinput and the RP2040/pico require platform.io and other unstable solutions which are difficult to use.
I am attempting to make a 4 player xinput solution for arcade cabinets
**Describe the solution you'd like**
Add xinput to the Adafruit_TinyUSB library similar to this:
[](https://github.com/fluffymadness/tinyusb-xinput)
**Describe alternatives you've considered**
I have am using David Madison's xinput library for Arduino in my arcade cabinet now, but it is slower to initilize and not as nice for flashing. RP2040 availability is also better for building custom boards.
**Additional context**
Arduino 32U4 and Teensy xinput library:
https://github.com/dmadison/ArduinoXInput
https://www.partsnotincluded.com/understanding-the-xbox-360-wired-controllers-usb-data/ (Extremely versbose explaination of xinput)
https://www.partsnotincluded.com/xbox-360-controller-led-animations-info/ (details about the player LED data - LED data is useful for trying to build multiplayer controllers)
Example project with RP2040 and xinput option (also nintendo switch):
https://github.com/FeralAI/GP2040 (older version)
https://github.com/OpenStickFoundation/GP2040-CE (Newer community fork under active development)
https://discord.gg/kbU9FC2v (Discord channel with firmware developer channel - massive amounts of info regarding game controllers)
composite libary for ST F1/F4 with xinput AND multiple Xinput on a single MCU (This would be amazing to have in arduino)
https://github.com/arpruss/USBComposite_stm32f1
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by comparing the referenced tinyusb-xinput, ArduinoXInput, GP2040, and USBComposite implementations with the Adafruit_TinyUSB library. Define the supported MCU scope, device behavior, multiplayer requirements, and validation approach before choosing an implementation. Done means the agreed XInput support works reliably on the target boards and is covered by appropriate verification.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- arduino, c
- Domain
- embedded-iot
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100