I wanted to present you an older project I was playing with.
An AVR USB Joystick! It has 6 axis that you can add potetiometers and 24 buttons, enouph to create a small aircraft panel. Its axis assignments are as follow: X, Y, Rudder, Throttle, Z, Rx
Although its designed to work with flight sim vehicles, you can attach those axis to a car sim controls to have a complete set: Wheel, full set of pedals, including clutch, even an analog handbrake if you like! And if you already have a force feedback wheel you can just make the rest of the controls custom.
I designed the PCB layout for this joystick along with a second smaller PCB that has the button matrix connections for the 24 buttons. The button matrix PCB can be mounted on top of the main PCB for saving space. You can use simple wires to connect the two boards as their ports are numbered!
I was made prototype PCB based on it last year that I was intended to use to add custom flight simulator controls to my Joyrider but lack of time let me add it only on the rudders.
I didin't programmed it, its programmed by Mindaugas Milasauskas, before some years now but he seems to be dissappeared along with his site.
Another variation of this (SMT compoments) exists here:http://www.mictronics.de/?page=avr_usb_joystick
Here is the Firmware for the ATMega8 chip that you can program it with PonyProg using the ISP serial port of my AVR Motion controller! To power it while programming, just plug it on a USB port!
If you like to have the source code in assembly to see how it works or modify it, contact me PM.