Looking to use an Arduino as a hardware Keyboard to Xinput adapter.

Hello,

I've been looking into making a custom all-buttons fight stick for playing fighting games. Something like the Hitbox. Every product like this is way too expensive, and since keyboards are cheap and just as functional, I've been looking into ways to make them work properly as controllers.

I've tried Xarcade-Xinput as a software solution, but had some issues with it that I won't go into here.

In any case, the issue could be solved if I made a hardware implementation of Xarcade-Xinput, so I've been looking into doing that with an Arduino.

I came across this tutorial, which is really close to what I want using an arduino leonardo, but it doesn't go over how to connect a usb device as input.

Before I start buying anything, I thought I would ask here to make sure that I was going about this in the best way possible. If there's any arduino model that I could use that would be cheaper and achieve the same function, I'd like to know. I also would need to know how to hook up a USB keyboard with the arduino board as input, preferably not by splicing the wire and rather over a actual USB port.

Thanks for helping!

A USB keyboard can be connected to a Leonardo using a USB host shield.