Home

Awesome

Logitech Flight Stick for Xbox Adaptive Controller

The Microsoft Xbox Adaptive Controller (XAC) ignores the hat switch on the Logitech Extreme 3D Pro flight stick. The joystick splitter project is one way to solve this problem using Arduino compatible boards.

NOTE: A few people have pointed that using joysticks, keyboards, mice, head trackers, etc. with consoles is not new. If you do not need the XAC for button and switch inputs, consider the following alternatives. Or use one of the following with an XAC if you do not want to bother with building the joystick splitter. I have not used any of them so you will have to investigate on your own.

LE3DP, joystick splitter, and XAC

What works

LE3DP with control labels

Not supported

Nice to have

Hardware components

Software

How this works

The LE3DP plugs into the ItsyBitsy M0 via the USB OTG cable. The IBM0 can talk to the LE3DP because the IBM0 works in USB host mode. The joysplit code running on the IBM0 extracts the joystick axes, hat switch, and buttons events. joysplit sends the joystick events to one Teensy LC (TLC) and the hat switch events to the other TLC. The button changes are divided up as needed so the defaults are useful. One TLC plugs into the Xbox Adaptive Controller (XAC) left USB port and the other plugs into the XAC right USB port. The IBM0 and TLCs talk to each other via UART ports.

The result is the big joystick works as the Xbox left stick and the hat switch works as the Xbox right stick. The top buttons work as A, B, X, Y, right bumper, and left bumper.

The TLCs are powered over USB from the XAC. One TLC powers the IBM0 which in turn powers the LE3DP.

Software build enviroment

joysplit

joyuart

In both cases, the IDE automatic upload will not work once the programs have been uploaded. The solution for the IBM0 is to double click the reset button to put it in upload mode. The solution for the TLC is to click the program/reset button once to upload.

Connect the boards as shown in the photo. Bread board connections can get loose and unreliable after a while. Soldering everything down on proto board results in a permanent solution.

Board with ItsyBitsy M0 and Teensy LCs

Connections between boards.

Left TLCItsyBitsy M0Right TLC
GNDGNDGND
5VUSB---
0-RX1-TX---
---10-TX0-RX

The photo is touched up to clarify the wiring connections. Due to the wonders of parallax, the wires on the far right and left appear to be off by one pin without touch up.