If you’re looking for a controller for your computer or mobile device, you could certainly do worse than one of the latest iterations of the Xbox pad. They might not be perfect, but they’re fairly well-made, not particularly expensive, use standard USB and Bluetooth interfaces, and even have decent support in the open-source community. So if you’re gaming on Linux or working on any other kind of retro gaming rig it’ll likely be plug-and-play.
This wasn’t the case with the first generation Xbox controller, though, and although its proprietary connector was actually using USB, the controller scheme wasn’t as open. This is [Tom]’s effort of upcycling his original Xbox controller to work indistinguishably from a stock Xbox 360 controller.
For those asking why anyone would want to do this, [Tom] is actually one of the few who enjoyed the original bulky Xbox “Duke” controller that released with the console in 2001. It wasn’t a popular choice in the larger gaming community and a year later Microsoft released a smaller version, but we all have our quirks. A Teensy 4.1 is attached to the end of the controller cable and acts as an intermediary to intercept the proprietary signalling coming from this controller and convert it into something usable. Since the controller doesn’t even show up as a standard USB HID device it took a little more sniffing of the protocol to decipher what was going on at all, but eventually some help was found within this other driver that gave [Tom] the clues he needed to get it working.
There were some other headaches to this project as well, especially since USB debugging USB connections while using USB isn’t exactly a streamlined process, but after a couple of breakthroughs the Teensy pass-through interface began working and [Tom] can use his controller of choice across multiple platforms now. If you’re looking to upgrade in other ways take a look at this build which seeks to recalibrate, rather than replace, an older Xbox controller experiencing drift on its analog control sticks.
As somebody with larger hands I get the appeal, the original Xbox controller actually felt nice to hold and easy to use. Where the other controllers out there, (especially at the time) are mostly from Japanese rivals, who tend to make really quite uncomfortable in comparison much smaller controllers – which makes an awful lot of sense when you realise the hardware is being designed and tested by folks that tend to be much smaller.
Do wonder if this is really worth the effort on that score though – there are other controllers out there that are not bad for large hands and have better HID tech in them, the steam controller for one. Obviously not saying the project is a bad idea, we do this stuff for the ‘fun’ along the way and the satisfaction of getting it working anyway.
Also curious how much added latency the conversion gives.
Those old Dukes were actually USB controllers with a proprietary connector on the end. If you wired them up to a USB connector they’d show up in Windows as a standard HID, and you could either use XBCD to map the controls or use a custom driver.
The hardest part here is doing all that with a Teensy instead. If you didn’t mind splicing cables it was definitely the easiest and most popular mod for Duke controllers back in the day.
Another Duke lover here. I thought the original controller was amazing. The 360 Controller isn’t bad, but it never felt _quite_ as good to me.
Surprised that Tom had to do all this work though to get it going. I just opened up the connector and soldered on a USB cable (so I could use either) and it worked perfectly fine in Windows.
Odd, could of sworn you could just use an adapter from a wired 360 controller on a OG Xbox controller and it would work.
Yeah, the original Xbox controller is a USB 1.1 interface.