BMW Instrument Cluster on PC via USB application Arduino MEGA board

Davide GombaSeptember 15th, 2010

Here one of the more realistic car interfaces I’ve ever seen. But let’s start from what [hrsim] posted some time ago:

Browsing around the www, I came across this simple, easy to use development board, which seemed just right for my project. As I’ve said in an earlier post, I want to reduce my efforts as much as possible, so this Arduino MEGA board was just what I was looking for, as it is built around a powerful enough microcontroller, the ATMega1280, it exposes all I/O pins (analog, digital, PWM etc), and has a simple, open-source programming language, as well as a pretty bare IDE which also allows you to upload the software via USB.

The blog is an amazing worklog of a big physical game interface. Some tips about the programming side:

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.

some more videos.

via [microcontroller] source [hrsim]

Leave a Reply

You must be logged in with your Arduino account to post a comment.

Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy