Simulated dashboard for a simulated race

Simulators might have lost their cool for a lot of gamers, but [Fergo] is trying for a comeback. He built an electronic dashboard for a car racing simulator.

[Fergo] spends most of his track time on iRacing, an MMO racing simulator. Possibly due to a little bit of influence from Formula 1 steering wheels, he wanted to add to his dashboard that included Microsoft racing wheel. The dashboard includes RPM lights, a gear indicator, five general buttons, a rotary encoder, and a pit limiter, rev limiter and low fuel indicators.

The build is powered a VB.NET app that connects the iRacing API to an Arduino. To get all those buttons and LEDs talking to the Arduino, [Fergo] used an IO expander that communicates over an I2C bus. It’s a surprisingly simple design that should scale well if [Fergo] ever decides to expand his cockpit. We’re not sure if it could handle controlling a 737, but it would be more than sufficient for a Cessna 172 or Mercury capsule.

Check out [Fergo] tearing around the track with his buttonbox dashboard after the break.

Comments

  1. jameswilddev says:

    That looks like a fun little project. I do find it a bit odd that you’d keep the dashboard on screen. I don’t know if it’s just me but whenever I play with a wheel I use bonnet cam.

  2. biozz says:

    and i will simulate interest
    KIDDING i love driving simulators i really want to get a nice one for my self when i make some room

    interesting project and well done!

  3. fartface says:

    buddy of mine took a Grand AM dash and made a duino drive all the gauges.

    Problem is all the racing sims are crap at giving real data, he had to simulate Temp, volts, etc based on throttle position and time racing.

    he wishes someone would write a real racing sim instead of the kids toy software out there.

  4. Satiagraha says:

    I would kill for a decent F1 sim with an API that you can interface with! Really sad that there’s nothing like that for the F1 2011 game.

  5. MrX says:

    @Satiagraha You can do the same as some game “trainers” do. Disassemble the game and find out where interesting variables (acceleration, break etc..) are located in the stack. Then inject a loader into the game executable and use it as an external interface to the in-game variables.

    • Satiagraha says:

      This is very true! maybe I could find the variable locations using Cheat Engine?

    • NewCommentor1283,ihatetorx says:

      i dont know much about “injecting” code into an executable, but i do know (IN THEORY aka DOS) how to hack into running programs (IN THEORY aka DOS)
      and watch the memory change as its working…

      like in The Matrix, spit it out over a serial, scratch that, HIGH-SPEED port and onto a 2ndcomputer, maybe with an external IDE port

      http://eds.dyndns.org/~ircjunk/tutorials/elex/ata2isp/main.html

      you need to write software to analyse in real time the TOTAL memory used by the game

      as well as write software to “read”/”scrape” the GUIscreen/dashboard

      main problem it seems to me, would be one program accessing another program’s memory… in windoze… ugh. it would probably set off win’s “illegal instruction” or anti-virus…

      once u have written those two then write a script that monitors the scraped/OCR’d RPM and “spots” the concurrently-timed change of the value in memory, dont look for the same value, it could/would be stored differently, just look for a data that change AT THE SAME TIME as the RPM. might want to start by examining ONLY memory that doesnt change AT ALL while the RPM is idling but car moving… CAN I GET A NETURAL GEAR??? lol :)

      then all you have to do is tell the difference between the keyboard (reason car RPM going up) and the actual RPM (they change same time)

      one will be on\off and the other will vary over a range, 7 bits i think in my racing game:
      00 up to ” 64(6bit) < 79 < 128(7bit) "

      PS: the keyboard gas pedal might be only one bit, but the RPM will be at least a nibble(half-byte) maybe even a byte, mmm now im hungry

      PPS: and again, in dos i would have already done this, but in windoze… its not bad enough im hacking a program with the connotation of the word "hack" sounding bad and all, but the word "ILLEGAL-INSTRUCTION" have to make it sound so much more "UNDESIRABLE FOR SOCIETEY"
      -insert rage and anger here-
      -end of post-

    • Secretpants says:

      Yes this is a good approach. I’ve done it on a few games using C++ and you can access in-game variables directly from their memory address using things like int* accel = *(int*)0xDEADBEEF or whatever. Well it was years ago so the syntax is probably wrong lol anyway here is to get started:

      http://www.codeproject.com/Articles/4610/Three-Ways-to-Inject-Your-Code-into-Another-Proces

      I recommend the CreateRemoteThread + LoadLibrary method because you can put all your code in a nice DLL and access all the game’s memory good luck =)

  6. Dug says:

    I have the old joystick-port style version of this controller. The force feedback works fantastically well – in Windows ’95/98.

    It works okay as a steering wheel in XP/Win7, but it seems there’s no support for the force-feedback for it anymore.

    Anyone have any ideas what I can do with it?

  7. deadlydad says:

    FWIW, If you want to get more use out of your wheel, this script for GlovePIE works very well for games that only support keyboard steering, like Flash games or World of Tanks.

  8. deadlydad says:

    Now what he needs to build is a collimated display.

  9. Mike says:

    My dashboard needs more buttons!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 93,990 other followers