This project has not been updated in quite a while, as I've moved on from the G27 pedals and shifter. I recommend checking out n-e-y-s' fork for recent/active development, which includes a calibration GUI: https://github.com/n-e-y-s/G27_Pedals_and_Shifter/tree/n-e-y-s_devel
Arduino-based USB interface for Logitech G27 pedals and shifter:
- SparkFun Pro Micro or clone (must be a 5V/16MHz ATmega32U4 with onboard USB)
- DB9 Connectors 1 male, 1 female
- Hookup wire in assorted colors (I used red, black, blue, green, purple, yellow, orange, and white)
- Some kind of project box (I used an Altoids tin)
Connect the female DB9 connector for the pedals to the board using the pins in the table in the .ino file. Do the same with the male DB9 for the shifter.
NOTE: when wiring the male connector for the shifter, remember that the pins will read right to left rather than left to right.
Open the .ino file in the Arduino IDE, select the proper board type and COM port under "Tools" (you will need to install the SparkFun board library). You will probably need to adjust the thresholds for SHIFTER_XAXIS_12 and friends, the values that decide which gear you're in based on the x/y axis of the shifter. Uncomment the #define DEBUG_SHIFTER true
line near the top to get debugging information to aid in this process.
The pedals are self-calibrating, meaning the system determines the min/max value for each pedal in realtime. What this means is that each time the device is powered on, you'll need to push each of the three pedals all the way to the floor once to let it know what the maximums are.
When configuring the shifter and buttons, gears 1 - 6 are buttons 1 - 6, reverse is button 7, and then the rest of the buttons enumerate from there starting from the top black button.