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 




26 responses to "DIY Dashboard"
16:13 on April 20th, 2013
Pricey Oscar,
Thank you for halting by. From everything you say,
it seems like there may well be a foundation to take
this partnership additional. Having mentioned that, before braoching the
topic of the partnership stone chilly, my suggestion could
be to consider her out into a romantic evening meal or a night out (theatre/movie
and so on) and kiss her goodnight. And see the way it goes from there.
…good luck and you should let me understand what develops.
7:12 on February 25th, 2013
I and my friends watch the football game clips at YouTube
for all time, because they have in nice quality.
11:08 on February 15th, 2013
I’m extremely impressed with your writing skills and also with the layout on your blog. Is this a paid theme or did you modify it yourself? Anyway keep up the nice quality writing, it is rare to see a great blog like this one nowadays.
5:05 on December 29th, 2012
Marvelous, what a web site it is! This weblog provides helpful facts
to us, keep it up.
18:29 on December 28th, 2012
A luxury watch may be purchased for multiplicity of reasons, personal
satisfaction, gift for a friend, treasured keepsake, present for a special someone or an heirloom set
aside with thoughts of the passing generations.
Mechanical: this movement requires you to manually wind the spring by using the knob on the side of the casing.
The reputation from the original luxury watch brand’s founder combined innovation and quality particularly with regard for the higher precision mechanical view motion.
2:05 on December 19th, 2012
hey guys i am triing to build this box but am having a error come up. I dont know how to write code or read it for that matter but i have been wanting to do this for a long time. Is there somneone that coupld posible help me with this and guide me in the way of direction i need to go. Thank you for your time
0:52 on October 25th, 2012
Oh my goodness! Awesome article dude! Thank you, However I am going through
difficulties with your RSS. I don’t know the reason why I cannot subscribe to it. Is there anybody else having similar RSS issues? Anyone who knows the solution will you kindly respond? Thanx!!
22:07 on October 24th, 2012
Hi everybody, here every one is sharing such experience,
thus it’s nice to read this web site, and I used to visit this web site all the time.
19:14 on October 24th, 2012
Hi, I do believe this is a great web site. I stumbledupon it
I
may come back once again since i have book-marked it.
Money and freedom is the greatest way to change, may you be rich and continue to help other people.
19:27 on October 23rd, 2012
Thanks for sharing your thoughts. I really appreciate your
efforts and I will be waiting for your next write ups thanks once again.
10:27 on October 7th, 2012
Your style is so unique in comparison to other people I have
read stuff from. Many thanks for posting when you’ve got the opportunity, Guess I will just book mark this blog.
20:49 on August 23rd, 2012
What’s up i am kavin, its my first time to commenting anyplace, when i read this piece of writing i thought i could also make comment due to this sensible article.
1:05 on July 27th, 2012
Everyone loves what you guys are usually up too. This sort of clever work and coverage!
Keep up the very good works guys I’ve incorporated you guys to my personal blogroll.
12:04 on July 23rd, 2012
Have you tried the Arduino Leonardo board? Might be a way to avoid ppjoy.
“While the Leonardo appears as a virtual serial port to your operating system (also called CDC) for programming and communication (as with the Arduino Uno), it can also behave as a (HID) keyboard or mouse.”
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/
11:58 on July 23rd, 2012
I still haven’t gotten vmulti to work. Oh well.
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° ?