Propeller and OBD-II interfaces
awesomeduck
Posts: 87
Does anyone have experience interfacing a Prop (or BS2 for that matter) to the OBD-II interface on their car? I am specifically interested in the CAN flavor.
From another post there is the Microchip MCP2551 CAN Transceiver which seems to be an OBDII to RS232 converter. But I have found the ELM323 from http://www.elmelectronics.com/ which is an OBD-II interpreter. It looks like this should require less code on the Prop, but I am not certain.
I didn't see any objects in the object exchange, so I was looking for any insight from people that may have already looked into doing something with OBD-II. My main concern is that the protocol to run the OBD-II will require a lot more memory than can fit in the Prop RAM.
Any insights on interpreter versus dumb conversion would be...well...insightful.
From another post there is the Microchip MCP2551 CAN Transceiver which seems to be an OBDII to RS232 converter. But I have found the ELM323 from http://www.elmelectronics.com/ which is an OBD-II interpreter. It looks like this should require less code on the Prop, but I am not certain.
I didn't see any objects in the object exchange, so I was looking for any insight from people that may have already looked into doing something with OBD-II. My main concern is that the protocol to run the OBD-II will require a lot more memory than can fit in the Prop RAM.
Any insights on interpreter versus dumb conversion would be...well...insightful.
Comments
http://forums.parallax.com/showthread.php?p=750908
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Aka: CosmicBob
You simply RX and TX to and fro with FullDuplexSerial or the like. I connected a keyboard and a composite screen and I could type queries to the ELM chip, and it replied with the vehicle data. It worked quite nicely. I never really had time to take it much further than that. I planned to create a program with an infinite loop that continuously checked a set of parameters and feed to another cog to display that data.
The stumbling block I ran into is that I seemed to get responses in a different format depending on what type of vehicle I was connected to. It made it difficult to parse the data and extract the needed variables.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Brian
uController.com - home of SpinStudio - the modular Development system for the Propeller
PropNIC - Add ethernet ability to your Propeller! PropJoy - Plug in a joystick and play some games!
SD card Adapter - mass storage for the masses Audio/Video adapter add composite video and sound to your Proto Board
I'd really just like to monitor things like RPM and speed, and then compare that to the speed I am getting off the GPS module.
There is a sourceforge project called freediag I have been looking at...I just started, but it might be possible to reverse engineer the protocol from that code. If only someone would write a J1979 for Dummies book.
The following code successfully resets the ELM327/RS232 module every few seconds (I see the LEDs cycling and the reset command is echoed back to the Prop). However, I know that the module is supposed to send an identification on startup / reset, which I don't appear to see. The code seems to 'garble' the first message received (as if some bits aren't aligned) - have I missed something with the intialisation / use of FullDuplexSerial?
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Hugh - the thinking woman's Geoffrey Pyke.
does each manufacturer have their own protocol, or 'sub protocol' ?
> As it turns out it looks like the cheapest way to figure OBD II out is going to cost $300 to buy a copy of the HS-3000 book from SAE.
Well, if you get paid say $20 an hour and it takes you 16hrs to reverse engineer the protocol... no wait,·you'll also loose maybe $30 for the needed Excedrin Extra Strength
Does that book reveal the entire protocol, including different manufacturers?
I was in a Dodge shop the other week and overheard on of the mechanics/techs talking to their SnapOn Tools rep about 'getting the latest OBD with the·whatever attachments, and ... make sure it's got the latest flash memory.'·· You could see the ($)^($) in the reps eyes.·
Guys I think there's money to be made here if we could come up with a cool, cheaper -extensible- OBD interface device... I've had that in the back of my head for at least a year or so. But the dang thing would be complicated to support all the manufacturers/models. (Not to mention the state of the Auto industry!)
cheers
- Howard
( Who learned his old truck even had a computer once it stopped working after a small, arc welding repair ~~~ zap )
·
http://www.blafusel.de/obd/obd2_kw1281.html
Click on the British flag to translate to english.
For Porsche 964·protocal , it's the ISO 1914-1 first written in1989 and is prorietary. The stream of xmitting bytes·consists of an address byte sent at 5bbs connecting the the disignated ECU, followed by a sync byte, then your connected.· I suspect there's something similar to your car, especially if the manufacture date is around the time OBD wasn't standardized.
Kevin
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Bad spellers of the world untie!
I'm playing with a Saab 9-3 Viggen, but haven't started with the ISO/OBD layer yet - I'm still tinkering with the RS232 portion. It doesn't help that:
* some responses have an additional '>' and carriage return after the initial response and CR
* my PC is inside, my car is outside, so I keep having to walk between the two!
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Hugh - the thinking woman's Geoffrey Pyke.