Any Open Source Solutions For DIY Auto Diagnostics?
slaxx writes "As an avid tinkerer, I really want to collect as much data about my car as possible. Using On-Board Diagnostics (OBDII) sounded great to me, but the pricetags of systems like AutoTap Scanner are a bit much for my college budget to handle. Are there any free, open source solutions available? What do Slashdotters do to tinker and record the inner workings of their own vehicles?"
When I have the time, i've been meaning to try something like this:
http://en.wikipedia.org/wiki/OBDuino
Into my Car so I can get additional performance gagues + graphs. I have the Arduino board, and can solder things here and there, I've just never gotten around to it ....
Why aren't you encrypting your e-mail?
Look at http://www.scantool.net/ . I use a Scangauge II. I went through this same thing; in the end I decided that buying a scangauge gave me 90% of what I wanted, out of the box, without having a computer clutter up the driving area, and without spending weeks hacking up something that might work but then again might not.
Thats true: you can always get something cheap like this:
http://www.gridconnect.com/canusblight.html
Which is like $99 and it will work fine but you lose out on getting stuff like CAN monitors, API's and programming examples with the better adapters... Your best bet is to go with something like this:
http://www.gridconnect.com/usbcanin.html
which is a full featured adapter that you can actually do development and project work with.
http://diyefi.org/
Get rid of the proprietary crap and tinkering can be just as much fun!
Mixing high tech electronics with automotives has always struck me as the worst fusion of the old joke: "the difference between a computer salesman and a used car salesman is the used car salesman knows when he's lying". As an engineer it may seem like a good idea to you that the equipment is expensive, but how many mechanics are also engineers? Mechanics are often not even mechanics any more. They plug in the diagnostic and whatever it says is wrong, is what is wrong. Don't try and tell them that it doesn't make sense that a stretched timing belt is causing the shimmy coming from the front passenger wheel, darn it, that's what the computer says.
No, the reality is that the reason the equipment is expensive is so that dealerships have a corner on the market. Post-sales service is one of the largest sources of dealership income. Which, if you think about it, is a truly sad state of affairs. Besides politicians, what is the one thing people are often most cynical about? It's auto dealerships. Because no matter how educated the average person gets about the way a vehicle works, a clever desk manager can always tell you the mechanic in the back plugged in a diagnostic and it said the "[techspeak] board indicated the [techspeak] [techspeak] has failed which [techspeaks] your ignition, and this is caused by road salt erosion of your [techspeak] which is obviously not covered under the warranty".
No, making the test equipment expensive, or otherwise keeping it out of reach of the public is not the answer to either the technical issue of vehicle "safety" or the PR issue of cynical consumers. The answer is open standards, common test equipment, and education. This just doesn't do anything for dealership income, that's all.
That said, the foregoing does not mean it's a good idea for the casual mechanic to diddle with his car's computer, in part because it was probably optimized in interdependent ways that he has no chance of figuring out, because they only made sense serendipitously when being coded.
I guess the unimaginative trolls are out in force on a Sunday morning. Here's some inspiration:
http://www.mbworld.org/forums/off-topic/260385-awesome-mr2-carputer.html
http://www.carobd.com/
But yeah, agreed, the future is a dangerous place. Not everyone should dare tread there ;-)
Mechanics are often not even mechanics any more. They plug in the diagnostic and whatever it says is wrong, is what is wrong.
Speaking as a former mechanic, fuck you very much. OBD II codes serve to provide you a place to look, nothing more.
Say for example the code is a misfire on Cylinder 3. Great. Do you have any idea how many different things can cause a misfire? It could be the ignition coil...or the spark plug...or the throttle body being clogged...or it could be a freak-one time thing that can't be replicated...or it could be something entirely different. Same thing with an O2 sensor. Just because it says "O2 Sensor Three is reading incorrectly" doesn't necessarily mean the O2 Sensor is bad. You could have bad wiring, the air/fuel mixture could be throwing off the reading, the person could have just put bad gas in it, or again many other possibilities. Have fun diagnosing that electrical problem that keeps causing the ECU to think that your Crank Positioning Sensor is bad (causing it to throw a code and making the check engine light come on), when in fact the sensor itself is perfectly fine.
It's not as simple as just "this is broken, please replace it." Many dealerships do this, but real shops do not.
Because no matter how educated the average person gets about the way a vehicle works, a clever desk manager can always tell you the mechanic in the back plugged in a diagnostic and it said the "[techspeak] board indicated the [techspeak] [techspeak] has failed which [techspeaks] your ignition, and this is caused by road salt erosion of your [techspeak] which is obviously not covered under the warranty".
If you go somewhere in which the guy up front tells you that, you demand that they put your car back together, take it off the rack, and go somewhere else. You didn't take your car to a shop, you took it to a lie.
Living With a Nerd
As an Engineer who owns and "tinkers" with many of my own cars I'd hardly consider OBDII a "safety critical system". in general it's designed to just be an output, it does accept inputs as well but unless you know what you're doing it's next to impossible to make detrimental changes to the programming.
If you're really all that concerned about making really STUPID mistakes it why not only tap into the outbound serial pin and then throw an opto-isolator on it. then you can do whatever the hell you want and not worry about damaging your engine computer.
to the OP... there are DOZENS of OBDII to Serial port adapters on eBay that sell for ~$30, I own several. You'd be hard pressed to build your own for cheaper, the hardware alone will likely cost you that much. There are dozens of free and or cheap (freediag. If you'd rather write your own SAE and ISO control the OBDII standard.
Any engineer who is too frightened to even perform some basic research on the workings of something as simple as OBDII should be ashamed of themselves.
Collector's Edition
forgot the links:
freediag - Open Source for Linux
OBD-Diag - Not open source but free
Easy OBDII - Not open source but free (I use this most often for basic diagnostics)
You might also want to check out the MP3Car forums as they're very knowledgeable on this subject over there, and there are also several source available projects being developed there as well.
Collector's Edition
Translation of GP: You're not smart enough to bother looking at this, it's way too complicated. And besides, I make my living working on this stuff, I wouldn't want to lose any income because you learned how to fix your own stuff!
Little girls, like butterflies, need no excuse. -- L. Long
Yeah, it still is. People have been working on, and repairing, their own safety critical equipment as long as there have been cars. Brakes are definitely safety-critical. I have done mine more than once over the years as a simple example. Just because it's safety-critical doesn't mean people can't learn how to DIY repairs, as long as the information is available. All this ODBII secrecy is just for the auto industry to extort money from the auto owners.
Little girls, like butterflies, need no excuse. -- L. Long
WRONG. OBD-II can do a lot more than that. For example in GM's, pin 2 at the ODB-II connetor will allow you to read tach signals, turn on heated accessories, control the OEM alarm and door locks, bypass the Passkey 3, etc. That's where remote start/alarm interface modules for GM cars tap into the CANbus (j1850).
The radio in GM's (2001+) also don't have an accessory wire, it uses data as well which appears to also be tagged into the same CANbus. You must use a module to keep the factory chimes and create an accessory for you (you could just run your own ACC line but you lose all the features controlled via the radio over the data link). I've heard numerous times from other installers where an idatalink rem start/alarm module wouldn't program to a GM correctly with the aftermarket radio/adaptor installed. Unplug the adaptor, plug the factory radio in, and everything programs fine. So on some makes/models there's a lot more running over that CAN interface than you have any idea about.
That's all well and dandy except that the scan equipment isn't actually expensive, the OP is simply looking in the wrong places. You can order a self-contained, portable hand scanner from Jegs or Summit (without question the de-facto shade-tree-mechanic parts and tools catalogs) for about $40, you don't even need a "fancy computer" to interface with it, just the multi-meter sized device in your hand.
And the real reason the Mechanics hate doing warranty work is because the dealership screws them over too. They get paid by the job based on the complexity, and the dealership considers the same job covered under warranty to be worth about half as much. I've got several friends who make their living as auto mechanics.
It's not different to the sales department who make their money only on commission as a percentage of the profits over invoice, so to screw over the sales people the dealership sell at barely above invoice and make their money on the financing/extended warranty/accessories/etc. I've got several relatives who make their living as auto salesmen.
Dealerships will stop being scummy when they stop treating their employees like starving dogs.
Collector's Edition
You're both wrong.
I'm a former mechanic because 5 years ago, I fractured my left and right ulna, as well as navicular fractures in both wrists. If you can tell me how to work on cars with injuries that won't fully heal for years in both wrists, I'll be glad to do it.
To the AC, I didn't want cars returned to me, which is why I always fixed what was wrong and not what I was told was wrong by a computer.
Living With a Nerd
From my original post:
Same thing with an O2 sensor. Just because it says "O2 Sensor Three is reading incorrectly" doesn't necessarily mean the O2 Sensor is bad. You could have bad wiring, the air/fuel mixture could be throwing off the reading, the person could have just put bad gas in it, or again many other possibilities.
Have a nice day!
Living With a Nerd
Currently you need a specially-adapted laptop, a highly proprietary cable, and some very expensive software. Garages can afford this: individuals can't.
I just found and bought torque the other day. Great piece of software. I've had an OBDkey for a while, and had an old palm PDA mounted in the car to run the OBD reading software. Now with Torque, I was able to ditch the palm and just use my android phone. I eventually want to play with the OBD protocol and see just what I can get my car to do or not do.
I have an older version of this:
http://www.sctflash.com/X3.php
It reads codes, but also allows me to Upload new profiles to my cars' EEC.
A warning: You can really fuck up your car with one of these, as the learning curve is pretty steep.
But being able to vary tuning setups is almost a requirement on older (late 90's) cars with obdii.
An example: The 03 PI engine going into my car has completely different tuning specs than the old engine; it will run, but will run MUCH better with a new tune.
The DOHC version has even more different tuning curves...
The only part of it I hate is the fucking encryption the government insisted on, to keep us out of the eec. That always works, lol.
Truth isn't Truth - Guliani
For OBDII http://www.thinkgeek.com/gadgets/car/aa31/ has reader, that comes with it's own software for just $99.
I'm too lazy to compose a creative sig.
"If $199 is to expensive for the hardware and software on your Budget what do you expect to be able to fix on the car for cheaper?"
More that you might expect.
Last three items that my PC based and inexpensive OBD-II diagnostics helped me diagnose on my cars were:
1. Poor connection at O2 sensor, cleaned connector cost $0.00
2. Bad water temp sensor, $15.00
3. Loose hose on air intake. Found because MAF readings were out of range. $0.00
I could have eventually fixed any of those without the OBD-II reader but it would have taken a lot more time to find the problem, or I could have bent over in front of some dealer service adviser and grabbed my ankles like a typical consumer and paid some big dollars.
The OBD-II codes didn't tell me exactly what to fix/replace on any of those but it greatly reduced trouble shooting time.
Also Google the codes the OBD-II spits out, odds are your car isn't the first with the problem. On item 2, Google told me that the water temp sensor had a high failure rate so I started there. A simple ohmeter check told me my sensor was dead.
Info for nervous Nellies, simple OBD-II readers are read only, so don't get your knickers in a knot.
"The OBD-II codes didn't tell me exactly what to fix/replace on any of those but it greatly reduced trouble shooting time."
THIS. Yes, IN CAPS.
Scanners and shop scopes are GREAT for locating problems, but they do NOT replace a well-trained mechanic. Above poster makes it sound simple, but he already had an understanding of automotive tech. For example, using out-of-spec MAF readings to diagnosis an intake leak is one thing, but those readings could also be caused by intake valve issues, worn piston rings or a plethora of other things including a bad MAF sensor.
My point is that an understanding of the underlying systems is still required.
Don't expect a scanner, or even the information provided by one, to "fix" your car. They simply point you in the right direction (sometimes) and also allow you to verify the repair worked as planned.
A side point. A cheap scanner will never have a "snap-shot" function, while a decent one will. This is CRUCIAL in diagnosing intermittent failures. Otherwise, you will be sitting there trying to make the problem occur while you have the scanner hooked up, often missing the 20ms failure. Blink and you miss it. A good scanner will store "frames" of info to go back and examine.