Car + Arduino = display data on the screen???


Looking to get my hands dirty in a new project. Car + arduino??..

I am looking to build something which will display data on the lcd screen in my car. So far, the things that come to my mind: Accelerometer – to be able to calculate G force during launching of the car or rapid acceleration (this would need to be displayed in decimals. Then it would need to display it on the lcd screen whether just the highest value or update it live. Temp sensor (which I have one already built in) but maybe measure temp of the intake or temp of the manifold – I want this displayed live (meaning constantly pulling data and recording/displaying it) I would love to be able to display speed AND/OR RMPs (I do have a tachometer I just want to have one on the lcd) – I don't know how to build this?.is this possible without tapping in TOO much into the car? What are my options? I am running nitrous and I have a purge set up. Is there any way, I can calculate how much of something is going thru? Or even better how long the button has been pressed for and display the number on the screen (im sure this can be done, any hints)? Can I have a few buttons performing different functions? Button is enter, move down arrow, reset the field, next screen and so on? How many buttons at most? This would be ultimate set up???.as you would see it on the screen, say a 16x4 or a 20x4?

Speed G-Force RMPS Temp

I press a button NEXT it would display a different screen which would display data such as:

Intaketemp howlong nitrous button has been pressed (it would need to update per button press) manifoldtemp some other data

Is something like this even possible? Can my Arduino Mega handle this? All this data and multiple buttons? I am aware of MPGduino and OBDuino but that's not quite what I want.

What are some other ideas that you think would be cool? Im just brainstorming but definitely want to put this into work.

But am I dreaming or can this be done?

Thanks all


Can my Arduino Mega handle this? All this data and multiple buttons?

Yes, those aren't really a problem and can be solved even on a Duemilanove. More interesting are your sensors to allow you to acquire the data. The processing is probably rather harmless.


Roman G does your car have an ECU? I have built an ECU Terminal already, using a PIC16C877, however a duemilanove could handle the project just as easy

Korman thanks for the reply. I would imagine that coding would the biggest issue for me. I would probably need just one sensor for the G force data however measuring speed and rpms I don't see how it can be done without tapping into the ecu

P18F4550 tell me more please. Yes my maxima has an ecu and wat does ur project display? please tell me more

Roman G, there's some info about acquiring data from an ECU (such as speed and RPM) in the Vehicle Telemetry Platform project in Practical Arduino:

If your car is newer than about 1996 you should be able to get data via the OBD-II port. Also check out the info on the Geek My Ride wiki about what other people have done:

Jon Ethernet shield with PoE support:

Ronan, i don't have the info at work with me, but i'll post some tonight, but the OBDII system is as easy as talking RS232, I have register values for my Nissan Primera, you would have to find the values for your car, my own terminal displays Speed, RPM, Battery Volatge, Engine Temp Fuel, and Timing advance but there are load of other values right down to exaust co2.

pm sent

Ok Ronan and anyone else that might be interested, this is specific to my Nissan Primera, so any other make model of car you will have to find your own info, plus my original code was for PIC16C877 so is useless for Arduino, Besides so much for keeping backups it apears my backup HDD is dead, anyway, here are the sites i used to source info but in a nutshell you send 0xFF 0xFF 0xEF to say hello if all goes well the ECU will say hello back with 0x10.

e.g. Send (0xd1)(0xf0) , Ecu replies (0x2e)(0xff)(0x02)(0x55)(0x00). Where 2e is the inverted command, FF is the frame start byte, 02 is the number of data bytes to follow, 55 is the fault code (55 = no fault), 00 is fault code MSB.

This page gives you the relevent ECU Registers

This page shows the protocol to talk to the ECU

and if you don't want to or are unable to make an interface, this is the type i use, they are connector specific

So now that my backup code is gone it makes a good excuse to knock up some Arduino code and maybe an interface shield