WARNING: Hacking a potentiometer based wheel is infinitely easier. It's just a matter of swapping out the pot. When hacking an pc wheel that uses optical input, the physical stops must match up exactly with the stops in the controller config menu on-screen. Unless you have the ability to machine adjustable stops, this is easier said than done. I eventually got it worked out, but I could have been done a month earlier and $100 cheaper if I'd just hacked a potentiometer based wheel.
Rather than add to my old adventures in wheel hacking thread, I'm starting a new one so people won't have to wade through my gear counting and bad math.
If anyone is interested in how I got to this point, that thread is here
This thread covers newer wheels that use an optical encoder. Older potentiometer based wheels are easier to hack, but are getting harder to find and their ffb isn't always supported in newer games.
First up, the Logitech MOMO Racing (not to be confused with the older red Logitech MOMO wheel)
I'm yet to find a game that doesn't support force feedback with this wheel. Some reviews of Sega Rally Revo claim it doesn't, but it works fine for me.
So.....to recap, the problem with hacking newer wheels is that they use a geared optical encoder instead of a potentiometer mounted to the end of the steering shaft. Even if you managed to attach the encoder wheel to the end of the steering shaft, because of the gearing, you'd have to rotate the wheel many times to get one rotation on screen. The solution is to use an optical encoder or encoder wheel that will send more cycles per revolution to the wheel's board. The goal is to get a 1:1 ratio between the physical wheel and the one on the screen. In the case of the black MOMO Racing wheel, after counting teeth on gears & slots on the encoder wheel, then testing with wheels printed on inkjet transparencies, I figured this to be 900 cycles
EDIT:AFTER GETTING EVERYTHING SET UP WITH A HAPP WHEEL, WITH A 900CPR ENCODER, I WASN'T GETTING FULL ROTATION BEFORE HITTING THE ON-SCREEN STOPS. I BOUGHT SOME TOOLS FOR TESTING AND REALIZED THAT I NEEDED AN 800CPR ENCODER. AN 800 CPR ENCODER WORKS PERFECTLY WITH THE MOMO AND HAPP 270 DEGREE WHEEL. (NO ADJUSTING OF THE STOPS NEEDED)
A cycle consists of one slot and one leg on the encoder wheel. Be careful, different manufacturers use the term resolution in different ways.
Some use the term to mean cycles per revolution, some use it to mean the total number of slots and legs combined, and some use it to mean pulses per revolution (4 per cycle). Make sure you know what you're ordering.
You can print your own encoder wheel on transparency paper (it will need to be huge), but I went the expensive route and bought a small, self contained optical encoder with a 1/4" shaft because it could be swapped right in for the potentiometer on the arcade wheel.
Just cut the wires going to the opto board on the MOMO wheel and match them up to the pins on the encoder.
(The 1.14v wire will go unused)
For the MOMO board to calibrate properly, you need to have stops in place that correspond to the stops on screen.
(in other words, the wheel must be restricted to 270 degrees)
With the 800CPR encoder, the stops on the Happ wheel line up perfectly with the stops on screen.
If the onscreen wheel can move past the onscreen stops, the wheel will get out of alignment.
Here is the rest of the MOMO wiring:
At the top, is the header for the centering sensor. This sensor picks up a silver strip that runs down the center of the steering column.
The wheel doesn't seem to do anything with this input at all. As far as I can tell, it makes no difference to have it unhooked.
Below that is the header for the opto board which was covered above.
To the right is the header for the steering wheel buttons and LEDs.
If the 5th pin is used for ground with any of the pins below, it will register a button press for one of the buttons on the right side of the wheel.
If the 6th pin is used for ground, the presses will register for the same buttons on the left side of the wheel. If your hack only requires 6 buttons, this shouldn't be an issue (4 here + 2 from the shifter harness). If you need more, you will have to solder to the board in the steering wheel (or just run leads to both sides and the separate ground for each side). The board in the steering wheel has easy solder points.
I'm too lazy to tear apart the pedals right now (mainly because I have no reason to). They are an easy hack. Just swap out your 5k arcade pots for 10k ones.
For Force Feedback, you'll need a Brush Type Servo Amplifier. They are crazy expensive new, but I snagged one off fleabay for $35.
The Happ FFB motor is 37v 6.3a (although they are usually ran off 24v), so make sure the Servo Amp can handle at least that.
The one I got is Advanced Motion Controls 30A8T http://www.a-m-c.com/download/datasheet/30a8.pdf
Ignore all the fancy things this thing can do. You only need to hook up 6 wires. (It isn't necessary to remove the cover unless you need to access the DIP switches....which could have odd settings from the previous owner)
(I just have the bare wires shoved in there for testing. Properly terminate them if putting this thing in your cab)
The things at the top are tiny potentiometers to make adjustments. They don't really have a stop, they'll just make a faint click when adjusted all the way (and keep turning). If the current limit is turned all the way down, the motor won't get enough current to move. I have it turned all the way up. I started with the ref gain turned all the way down and increased it until the wheel started responding.
I'm not going to pretend that I know what half this stuff does, I'm just happy to have it working. I'll mess around with them more when I have the wheel mounted.
EDIT:IF THE WHEEL DRIFTS TO ONE SIDE OR TURNS EASIER IN ONE DIRECTION, ADJUST THE TEST/OFFSET POT.
Fire up Model 2 emulator and let the car coast into a wall to see if the wheel jerks in the appropriate direction. If not, reverse the ref in wires or the wires to the feedback motor.
It works, but nearly everyone who has done the Logitech to Happ hack experiences an issue where the steering wheel shaking violently if centering feedback is not turned waaaay down. This is far from optimal, but nobody has come up with another solution as far as I know.
I believe the issue is caused by a lack of friction in the happ setup which causes the wheel to keep overshooting center and then correcting for it, but I haven't taken the time to do anything to test that theory.