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.
Parts list
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
Hookup wire
Code
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
10k resistor
USB to UART or RS232 to UART cable for uploading sketches
5volt regulator
Connecting wire
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.
this interface would serve to connect the car to arduino?:
ReplyDeletehttp://www.skpang.co.uk/catalog/high-speed-iso9141-interface-module-p-131.html
not out-of-box that board converts the 5v serial lines (acceptable to arduino) to PC serial (NOT for arduino). to fixt his youd have to sodler your own TX and RX wires. also, that boards 5v regulator (arduino needs 5volts) can only do 100ma output. you will need more of a ~1A 5v regulator to power the obduino project.
DeleteThis is what you will have to do if you get that board (not much):
https://dl.dropboxusercontent.com/u/28052258/untitl1212ed.png
(the following are the ones i drew in)
Blue: to arduino RX
Dark Grey: to arduino TX
Black: to arduino GND
Maroon: to arduino 5v
The brown box is a LM7805 5v regulator and you have to also put that in there.
i couldnt really find any other boards, but look for one that is uart or 5v serial out.
the problem is to solder smd components is very difficult for me, so I thought of buying a ready-made interface, I have not found another that uses the si9243a or mc33660 MC33290 or, if you already made some saves please pass me the link. thanks for your help
Deletebit pricier, but this'd do the job. has holes for the OBD side and the connector, so both ways work.
Deletehttps://www.sparkfun.com/products/9555
yes, but my car is iso 9141 protocol (renault europe i am from spain) and de obd-II uart of sparkfun I think it works, if your saves if it works please tell me as much money to spend without saver that will work.
DeleteThanks
i have a renault 21 turbo with iso 9141-2 protocol,
Deletenot if the product of sparkfun obd-II UART work in my car, mi intention is use with lcd and arduino, everything that has to do with the pc does not interest me because I'm not interested in connecting to pc.
hello?
ReplyDeleteyes?
Deletethe article that you put me in esparkfun is to connect to pc and not my purpose idk if this product works with my old 9141 iso renault 21 idk if could also connect it to arduino, saves me something like that if I aclarases theme a little as it is an expensive product and I would like to buy it and then not work on my car, (at least in some way) either pc or arduino and that if run with the pc at least would not have lost all money but as I say my intecion is arduino use only.
ReplyDeletethanks
no, that is obd to UART. uart is the arduino type serial
Deleteahhh ok,the question is that my vehicle is iso 9141-2 but that is supposed to obd I and according to the device that you show me only serves to obd II? is that if the product is not used for old cars or yes?
ReplyDeleteThis is my first time i visit here. I found so many entertaining stuff in your blog, especially its discussion. From the tons of comments on your posts, I guess I am not the only one having all the enjoyment here! Keep up the excellent work.
ReplyDeleteJeep Patriot
Hi, I can use your adaptor with Renault Car KWP2000(5 Baud) ?
ReplyDeletefind out what interface it uses...CAN, ISO etc
Delete