adafruit / adafruit/Adafruit_TinyUSB_Arduino

Xinput support - emulate xbox 360 controllers

Open
#185 6 comments 0 reactions 0 assignees View on GitHub
Feature
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.