Startup advice on my car-monitoring system?

Hello board. I’m new to Arduino, the board and almost a complete beginner when it comes to electronics. I have nevertheless decided to make an in-car monitoring system (LCD display gauges) and datalogger as my first project. I hoping I can pull this off with the help of this board and some of my friends.

Before I start out i would like to share my ideas with you. I’m hoping this can help me avoid time consuming errors and backtracking later on.

I have bought a nano-board and a 20x4 LCD to serve as a the gauge.
Step 1 will be to simply make the LCD work as a gauge/display.
Step 2 will be to make a datalogger so that i can save the data on a SD card.

Do i need to take the logging into account when writing the code for step 1?

Value Sensor/source Part aquired?
Turbo boost Freemantle MPX4250A yes
Air Fuel Ratio (Wideband) AEM UEGO inline yes
G-forces ADXL330 accelerometer
yes
RPM Coil or engine computer.
DME
Speed Square wave from gear box
Engine Knocks Engine computer.
DME. Very short duration signal
Possible future upgrades
[/tr]

GPS tracking
?
?

[/table]

Do i need to take the logging into account when writing the code for step 1?

No, but...

If the data to be logged consists of a string defined by the data that is read from the sensors, that same string could be displayed on the LCD.

Then, for logging, all you would need to do is define a time stamp, append the string that was displayed on the LCD, and write that to the SD card.

Do i need to take the logging into account when writing the code for step 1?

Yes, in two areas.

First, you'll really want to use the SPI hardware for writing to the card, rather than "bit-banging" it in software (which is much less efficient). So you'll need to make sure you don't use any of the SPI pins for sensors (this is mostly a hardware design issue, but it may affect the code, too). If any of your sensors have an SPI interface, you'll need to ensure that the code can handle switching between SPI devices.

Also, because the SD-writing code is not very efficient, you'll probably want to minmize the amount of data you store. This may mean logging data in binary form, rather than text. So your code should make sure you don't throw away the binary data after displaying it on the LCD, because you may need it later.

You may get some useful ideas from the MPGuino project, which reads other info from the car to display estimated MPG on an LCD. They've already faced some of the challenges of putting a readout in a car, and may have some solutions to problems you haven't anticipated.

Thanks.
I guess I should explain that my car is too old for the modern OBDII system, so a lot of the code available may not be relevant for me.
I’m basically preparing to build this from scratch, but I will definately check out the MPGuino forum.

What do you recommend in terms of the wide band A/F ratio. Should i use the analog or the rs232 to interface with the arduino? Which would be faster?

Should i use the analog or the rs232 to interface with the arduino? Which would be faster?

Analog or rs232 what?

In general, analog will be faster, because the value doesn't have to be converted to serial data and sent over a serial port.

Like using a multimeter to read the voltage in a socket vs. sending an e-mail to the power company requesting that information.

Only 12 here, just south of Seattle. 5" of snow in the yard. I hate snow.

Thanks for helping me out. I apreciate it.

The wideband sensor that I have is capable of sending both an analogue (0-5v) and a rs232 signal. The manual does not say what the rate of the rs232 is, but given what you told me I guess I should use the analogue one.

Any pointers as to where I can learn more about keeping the binary data? Any recommended lessons or examples on this subject?

How would I go about reading the logged binary data. Are there any programs/ libraries that could be easily adapted for doing this on a pc, or would I have to write something from scratch?