PDA

View Full Version : OBD I LCD Screen



xeudoxus
01-23-2006, 06:16 PM
Hello, this is my first post in this forum. I am having problems understanding how to interface the bs2 to my 3000gt ecu.
·
The car is OBD I (ALDL Port) I currently have a max232 to convert the data from the ecu to an rs232 port. I have a palm datalogger that is currently hooked up to the system and works flawlessly.
·
What I want to do is use a LCD screen connected to my bs2 to display ecu data. Similar to the lcd screen in the dash of a newer vette.
·
What I am having problems with is how to receive the serial data from the ecu. By using a serial port monitor I found out that the ecu does not send ANY data. So does that mean you would need to send a request for the information? (Example, request data from 0x1D and wait for data?)
·
Anyways to sum up.. I need to request values from·the ecu·to display the calculated value on an lcd screen.
·
The baud rate is 19200, none, 8, 1
·
ECU Protocal Inforation
http://forums.parallax.com/attachment.php?attachmentid=73966
·
·
Thanks,
-Matt

Bruce Bates
01-23-2006, 07:25 PM
Matt -

First, I wasn't aware that any vehicle output ordinary RS-232 data on the OBD interface, without the use of a converter chip. When you say "I have a palm datalogger that is currently hooked up to the system and works flawlessly." do you mean to say that it is displaying appropriate OBD data?

What does your SERIN statement look like in your BS-2 program? You might want to show us the entire program, if it's not too long.

Regards,

Bruce Bates

Clock Loop
01-23-2006, 08:36 PM
xeudoxus said...
I currently have a max232 to convert the data from the ecu to an rs232 port. I have a palm datalogger that is currently hooked up to the system and works flawlessly.



Does this mean that you downloaded, or purchased a program to datalog onto your palm? Or did you program the data logger?

I am guessing you downloaded/purchased it.

It sounds like to me that the palm is communicating to the 232, and the 232 is communicating to the ECU.

With a stamp you will still need the 232 convertor, you'd just hook up the stamp in place of the palm.

Now comes the key part, you need to know HOW to communicate with the ECU. Basically you need the data that the maker of your "palm datalogger" has.

The palm datalogger sends commands to your ecu to tell it to send stuff. Standard com ports signal to eachother when each is ready to send or receive data.

You need to find out the typical communication sequence from start to end result of getting the value of a particular sensor.

Without detailed ODI I information, you and I are in the dark.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Meh. Nothing here, move along.

Clock Loop
01-23-2006, 08:40 PM
I posted a similar question here:

http://forums.parallax.com/showthread.php?p=566746

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Meh. Nothing here, move along.

xeudoxus
01-24-2006, 12:33 AM
I have not started making the code for the bs2. I dont have enough information to start. That is why I posted here.

Here is a link to the datalogging software that I am running on my palm.
http://www.3si.org/forum/showthread.php?t=203226


Here is the schmatic for the max233 circut I am running.
http://mmcdlogger.sourceforge.net/ecu-rs232.jpg

I am looking for how the imforation get sent and received but no luck finding anything.

Thanks,
-Matt

xeudoxus
01-24-2006, 04:21 AM
I email one of the creators of my datalogging software and this is what he said.

--------------------------------
PROTOCOL
ODB1 protocol is very simple command-response - one byte requests/one byte
responses. No checksums / startup etc.
--------------------------------

Here is the source to the palm datalogging software. Should provide communication protocol
http://prdownloads.sourceforge.net/mmcdlogger/mmcd-1.5d-src.zip?download

Thanks,
-Matt

Post Edited (xeudoxus) : 1/24/2006 3:44:57 AM GMT

Clock Loop
01-24-2006, 09:59 AM
I'll see if i can figr it out.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Meh. Nothing here, move along.

xeudoxus
01-24-2006, 08:02 PM
I found more information on the protocol http://www.syndicate.evilsoft.org/projects/DSMDatalogger/Datalogger_Protocol.html

Here is what I think might work, but I need to get the display working first before I can test.


' {$STAMP BS2}
' {$PBASIC 2.5}
rpm VAR Word ' RPM VAR
rpmD VAR Word ' Final data
rpm = $21 ' ECU Code for RPM

readRPM:
DO
SEROUT 16, 84, [HEX rpm] ' Send ECU Data Request( Correct baud is SEROUT 16, 32)
SERIN 16, 84, [HEX2 rpmD] ' Waiting for ECU data
rpmD = rpmD */ $1F19 ' Multiply by 31.25
DEBUG DEC rpmD ' Debug for display
LOOP
END

I have a HD44780 2x16 lcd screen that I need to get working on this project. I do not know how to write the "rpmD" to the lcd screen. (I do not want to store my values in EEPROM) If you guys can help me out on the display I can start to do some testing http://forums.parallax.com/images/smilies/smile.gif

Thanks a bunch,
-Matt

firestorm.v1
01-24-2006, 09:16 PM
I have to say that This is a very very interesting project idea. I recently discovered the fun that is basic stamps and I have a couple of LCDs as well. Thanks for the great idea!! I have a 2005 toyota corolla and I think it's ODB-II but I'll do some additional research and find out. :)

This oughta be schweet!

Matt

Kaos Kidd
01-25-2006, 01:13 AM
My GOOD Jeep, (1999) HAD ODB-II, but that Jeep is gone, and my two year 1994 replacement Jeep doesn't have a data port :(
I'de love to do this project... Hmmm... well, when I move into my fifth Jeep I can do it... :)

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
------------------------------------------------

Just tossing my two bits worth into the bit bucket
------------------------------------------------
KK
·

Clock Loop
01-25-2006, 04:28 AM
After replacing the timing belt and water pump on my dodge spirit 3.0L 6cyl 1993 car, verified the timing is correct, and car still won't start.

Thats my reason for wanting a ODI-I reader.. I can't figure out whats wrong with this car.

And today I did a spark test of the spark plug coil... After nearly stopping my heart, and throwing the screwdriver across the room from the shock (my gloves were oil soaked LOL) I had to take a breather, and consider the stupidity of allowing my elbowes to touch the car frame, even tho I was wearing gloves, and a long sleve shirt, the spark went thru my gloves, thru my shirt, and back into the car frame. a small amount of the shock made it across my heart out the other elbow, but apparently not enough to even make it flutter thankfully. But I am young.

So I now sit back and appreciate the power of the electron, and still question what the hell is wrong with the car.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Meh. Nothing here, move along.

xeudoxus
01-25-2006, 04:32 AM
BPM: What does the car do when you try and start it?

Clock Loop
01-25-2006, 04:41 AM
cranks over, but after a few seconds it starts to make funny noises, almost like something inside the engine is severely damaged. LOL Like a piston, or cam, or valve. Yea, I can't wait to tear apart the head. Oh joy.

This all started suddenly, at first I didn't know what was wrong, untill I figured out the timing belt was split in half...

So I took apart half the engine to get at it all, and while im there, replaced the water pump. I figured i'd test the engine before I put all pumps etc back on to make sure it goes. And it dosen't. The engine should start even tho the air compressor, the steering pump, and the alternator are not connected. I have the battery hooked up to a secondary car to fill the void of the unconnected alternator.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Meh. Nothing here, move along.

Post Edited (BPM) : 1/24/2006 8:51:03 PM GMT

xeudoxus
01-25-2006, 06:01 PM
Well tested the code tonight. Didnt work http://forums.parallax.com/images/smilies/mad.gif

I still cannot get the lcd screen the way I want it.

I·will look over the datalogger source again http://forums.parallax.com/images/smilies/rolleyes.gif

·EDIT: Sending the hex $21 I was getting a responce from the ECU (But it was a consistant value [error code???])

-Matt

xeudoxus
02-06-2006, 01:44 PM
Here is·some of the programming from the datalogger for the palm (Written in C) Still having a hard time communicating with the ecu.

//·····E - exists, C - capture, G - graph
//················ ··· addr·· slug·· format· E· C· G· Sn P Thr· clr· value······· descr
/* 17>·X--- */·{ 0x21, "RPM",· f_ERPM, 1, 0, 0, 0, 0, 0, 119, "?\0····· ", "Engine speed",· },
/* 18·X--- */·{ 0x26, "KNCK", f_DEC,· 1, 0, 0, 0, 0, 0,·· 0, "?\0····· ", "Knock sum",· },
/* 19>·X--- */·{ 0x29, "INJP", f_INJP, 1, 0, 0, 0, 0, 0,·· 0, "?\0····· ", "Inj pulse width",· },

Int16 f_DEC(UInt8 d, Char *s);
Int16 f_HEX(UInt8 d, Char *s);
Int16 f_ERPM(UInt8 d, Char *s);
// Engine speed, 0..8000 rpm
// 31.25 * x
Int16 f_ERPM(UInt8 d, Char *s) {
·Int32 v = 2048000L * d;
·return StrPrintF(s, "%ldrpm", v >> 16);
}

Series8217
08-08-2006, 04:28 PM
BUMP!

Any progress on this? I'm working on a similar project trying to communicate with an OBD I Chevy 3.4 DOHC.

Roth
02-13-2007, 07:35 AM
I would like to do this on my ODBII. Any word on that yet also?