Then I found a post about LM2917 IC that converts the PWM IGN pulse to an analog output. Add a 12v to 5v voltage divider and it would be easy to interface to read the RPMs with an Arduino and display it on one of those 16x4 LCDs. I ordered some free samples, but still kept on looking for better.
I came across the OBDuino32k (for atemga 328 style MCUs) project and turned out to be the ultimate solution! It reads info from the OBDII engine computer and can gather much more than just RPM. Things such as MPG, miles left in tank, fuel remaining and more.Then I sample some of the Freescale MC33660 chips for the OBD interface which converts the ISO K line from the OBD to RX and TX to the Arduino. Only one signal wire is required to get ALL of this data! The Vishay part Si9243A also will work instead of the MC33660.
MC33660 or Si9243A
OBDII Male plug part #1000 or #1090 for international people
220ohm resistor (or any resistor sutible for a LED on a 5v digital output)
3 push buttons
3x16 character HD44780 style LCD
Cable for OBD to the arduino
Arduino - Uno etc, or a homemade board
Homemade board needs:
Atmega 328P w/ Uno boot loader or a plain 328p if you have a ICSP and can flash the bootloader
A 16mhz Crystal
Two 22pf capacitors
Simple push botton
USB to UART or RS232 to UART cable for uploading sketches
Here is a scheme i made in Fritzing for OBDuino: Link
This scheme is if you are using an actual Arduino board (like the uno)
Ta da! The atmega was too close to the bottom of the board so I had to make a little extension thing.
The back side of the board. This is actually the second prototype and this turned out much better. I used protoboard (has the little copper solder holes) which made it way easier to make this. The ISP and FTDI connectors are at the top. 5v Voltage Regulator in the center, and the MC33660 is at the bottom.
Here is a Fritzing scheme of a simple breadboard Arduino with a ISP and FTDI conenctor
Here is a scheme of a Serial LCD version of the OBDuino. It would greatly simplify the hardware, but i have only just began modifying the code for it.
Currently, it wont upload a sketch via serial, so I'm trying to fix that. Altough the ISP header works and i burned the UNO bootloader. I also manually burned the sketch via ISP and it didn't work correctly, so i have some stuff to figure out.
To fix that issue, i put some switches in line with the serial lines going from / to the ISO chip so that it couldn't interrupt the Arduino programming signals.
The new LCd came and i wired that up but it still didn't work. I checked the wiring and two of them were switched, so the old LCD could still be good, but i didn't try it.
I also didn't check the LCD orientation, so i had to flip it and redo the wiring again.
yay, right side up.
But i ran into this contrast issue when not powering it from the USBASP. Strange, i know. look here for more.
Update: I still can't for the life of me can't figure out why it wont init correctly, so i have abandoned it for now and will be just going for RPM from the TACH signal from the ECU of the car.