DIY Dashboard
Welcome to my DIY Dashboard project using an Arduino.
Arduino is an open-source electronics prototyping board that you can use to do basically whatever you want. I had one laying around and decided to do something cool with it connecting with the iRacing API. The idea of a dashboard was the first one that came to mind. I’ve started this project back in April 2011 and you can see some early prototyping videos at the end of this post.
The dashboard I’m posting here have the following features:
- RPM lights
- Gear indicator
- Pit limiter, rev limiter and low fuel indicators
- 5 general purpose switches and buttons
- 1 rotary encoder for dialing
I bought all the components that I needed (with the exception of the Arduino itself) in a regular electronic component shop. You can see the parts list below and it’s also included in the RAR file at the end of the post. The total cost of this project was about U$ 27,00 excluding the Arduino (43,00 brazilian reais) and was really fun to do it. For it to work, I had to assemble everything into a perfboard, code the Arduino firmare to receive the data from the computer and light up the whole thing and also code the server software that grabs the data from the iRacing API and send it through a USB serial connection to the Arduino.
For the buttons to work, you’ll need to install PPJoy to emulate a joystick and receive the input from the buttons on the dashboard.
In the pictures below you can take a look on how it looks like inside the dashboard. I don’t have much electronics and soldering experience so it turned out not that beautiful, but hey, it works! You can also see the schematics for all the electronic components.
I’m releasing all the schematics, parts list, source code and firmware for this project. In the RAR is included:
- VB.NET source code for interfacing with iRacing API, Arduino serial port and PPJoy DLL
- iWrapClient.dll and PPJoyDLL.dll (I coded it too, but I’m releasing only the DLL)
- Arduino source code ready for upload to the board
- Schematics
- Parts list
The contents of this project is distributed as “donationware”. If you find them useful, please consider doing a small donation.
DOWNLOAD: http://www.fergonez.net/files/iRacingArduino_10.rar
Videos
FINAL PRODUCT
This project was featured in the InsideSimRacing TWISR episode of May 6th. I’d like to thank Shaun and Tom as well as Darin and Jessica for showing my project on the show. Really cool to see it there
EARLY PROTOTYPES
Posted by fergo 




11 responses to "DIY Dashboard"
22:03 on January 30th, 2012
Voce é brasileiro? To com dificuldades de achar o rotary encoder.
14:57 on April 20th, 2012
You can use two momentary switches, so one will be for right movement and one for left movement. Thats really a rotary encoder internally. Take a look to the schematics, it’s easy to change rotary encoder with two actuators.
22:30 on January 29th, 2012
wow, nice!
im doing something in a similar category; im using encoders and buttons to make a DIY racing wheel with an arduino. a C# app reads the encoder positions from the arduino, then adjusts a virtual joystick from the ppjoy software. the racing game then reads the virtual joystick.
has anyone ever used a ppjoy library with C#? i can figure it out.
1:17 on January 24th, 2012
Great project. I have the lights up and running, which included having to redo the arduino library for my port expander chip. I am having a devil of a time getting the buttons to work since I am running Windows 7 64 bit and ppjoy is not playing nicely (actually not at all). I am learning about coding up my own virtual HID driver so there is a bonus in that.
Thanks for the inspiration!
1:31 on January 24th, 2012
Cool! Are you using some reference to code the virtual driver? I tried searching for some documentation about virtual devices, but got no luck. If so, can you share a link?
2:44 on January 24th, 2012
I am working with the example file in the windows WDK (http://code.msdn.microsoft.com/windowshardware/HIDUSBFX2-fc6dee05).
It’s slow going for me though…I am mechanical engineer by training.
2:47 on January 24th, 2012
Ooops. I should point out that this is a Studio 11 example.
20:01 on January 25th, 2012
During further exploration I found vmulti which looks like it has done a good chunk of the work and has a test app. Looks like something for the weekend!
http://code.google.com/p/vmulti/
23:00 on January 29th, 2012
could i see you ppjoy code?
see my post above for why.
18:25 on October 13th, 2011
Hi,
Thanks for the comment.
The encoder has infinite rotation.
16:52 on October 13th, 2011
Hello
good job realy a good job
can you tell me if the the rotary encoder is unlimited rotation or is a 340° ?