Engine Data Logger

Hi, I'm still kinda new to arduino and I need some help building a data logger for tuning an engine. I need to log 2 analog inputs ~0-5v (TPS and LAMBDA) and one pulse input for rpm. I want to be able to log 50-100 samples per second. I'm not sure where to start or if its even possible. Any help will be greatly appreciated.


People always ask for help and are never specific.

What kind of "help"?
Do you have a sketch that doesn't work?

I need help Building the sketch. I'm ok with the physical part of it (circuits and such). I just don't know much about the programming part of it. i can do the very basic stuff but that's about all.

Use Serial.print(), a fast Baud rate (say, 115200) and a PC terminal program that can write a log file (e.g. Putty, Teraterm), instead of the Arduino serial monitor.

Would it be possible to use the CAN bus to read this data?

There are Arduino shields for this purpose.

I would like to be able to log to an sd card also. Logging directly to a computer is fine for dyno tuning but I would like to be able to tune according to the way someone rides. Let go someone else haul my computer along on their motorcycle isn't really an option for me.

Can bus isn't an option because 1, almost 100% of stock motorcycles do not have or cannot read a wideband oxygen sensor (an absolute must have for tuning). 2, can bus on a motorcycle if it even uses it is not standardized like it is on cars. Each manufacturer usually has its own proprietary way to communicate.

For portable data logging, by far the easiest and cheapest way to go is the Sparkfun Openlog. Works great!

Just attach it to the serial port of your Arduino (be sure to use a level shifter or 4.7K series resistor for the Arduino TX to Openlog RX connection) and Serial.print() as before.

Look at using the OBD port, such data is available and Google will show you a few Arduino projects that have done this .