Monday, April 12, 2010

Joystick Cruelty

It all began with a brand new, unsuspecting force feedback joystick, completely unaware of what was going to happen to it. Little did it know, it was going to meet its destiny.

So, the torture began...

... and it carried on for about 10 whole minutes. You can see the tormenting tool at the bottom of the picture below.

However, it was all for a good cause. After some cutting and drilling, the old joystick became an H-Shifter, mounted right in the place of the actual gear shifter in the BMW E36 center console.

In case you're wondering how the joystick is going to act as a H-shifter, it's all thanks to a great and simple software called FFShifter.

Note. No hardware was harmed while making this blog post. Except for a Logitech 3D Pro joystick.

Thursday, April 8, 2010

Getting Real

I've just made one more step towards building my simulator, by getting a complete BMW E36 dashboard from the scrapyard.

I will probably cut off the passenger side, and keep only the driver side and the center console, where I'm planning to accommodate a H-shifter, which I'm going to build off a force feedback joystick. I have already bought a Logitech 3D Pro which I'm planning to take apart... but more about that in a future post, so stay tuned.

Here's how the dash looks like.

Tuesday, April 6, 2010

Going Live

Both the Arduino and the PC side software are now updated to process the speed and RPM signals coming from Live For Speed.

What's interesting, is that the Arduino (ATMega1280) being single-theaded, I had to write all the code in one function. So, there is only one thread which reads data from the serial port, and as soon as a complete package is received, it updates the control lights and speed / RPM signals.
The speedometer and rev counter are fed with clock signals, whose frequencies vary according to the speed / RPM to be displayed on the dial (the actual speed and RPM sensors on the real car read their values from the rotating wheels/engine crankshaft, thus sending clock-like signals to the instrument cluster). These signals are generated by means of two dedicated timers, also implemented in the same single thread.

Here's a video of the real thing working in LFS.

Moving the Needles

I've finally succeeded in moving the RPM and Speed dials! It took some months, some burned integrated circuits, a useless H-Bridge and two 2N2222 transistors to get them working.

Here's a video showing a test program.