Any Open Source Solutions For DIY Auto Diagnostics? 270
Posted
by
kdawson
from the data-more-data dept.
from the data-more-data dept.
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?"
Get a CAN bus analyzer. (Score:2, Informative)
It's the underlying protocol of OBD II.
OBD (Score:2, Informative)
go to autozone and have them read it for free (Score:1, Informative)
go to autozone and have them read it for free. Some of the stores may not and would require you to rent it. But either way it is cheaper than buying one outright.
Elektor OBD-II project (Score:1, Informative)
If you're electronically inclined, there are a few resources for rolling your own OBD circuits:
Software for controlling can be run through a serial port
Project design for a stand-alone unit:
http://www.elektor.com/magazines/2007/june/stand-alone-obd-2-analyser.91904.lynkx
Chips for making your own OBD II. Datasheets have schematics.
http://www.elmelectronics.com/obdic.html
scantool (Score:5, Informative)
Look at http://www.scantool.net/ [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.
obdii hw, sw (Score:3, Informative)
Re:To Expensive? (Score:3, Informative)
Thats true: you can always get something cheap like this:
http://www.gridconnect.com/canusblight.html [gridconnect.com]
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 [gridconnect.com]
which is a full featured adapter that you can actually do development and project work with.
Re:bad idea (Score:5, Informative)
http://diyefi.org/ [diyefi.org]
Get rid of the proprietary crap and tinkering can be just as much fun!
Re:bad idea (Score:3, Informative)
Who cares about the proprietary chipsets when there are ISO standards for gathering data from them?
http://en.wikipedia.org/wiki/On-board_diagnostics#Standard_interfaces [wikipedia.org]
There have been mandatory standards for over 10 years, if only to make emissions testing faster by allowing the VEIP to plug directly into the OBD-II / CAN port under your dash to get emissions readings right from your engine instead of having to hook up that chemical analyzer to your exhaust.
Re:As an engineer... (Score:3, Informative)
Re:bad idea (Score:4, Informative)
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 [mbworld.org]
http://www.carobd.com/ [carobd.com]
But yeah, agreed, the future is a dangerous place. Not everyone should dare tread there ;-)
Re:As an engineer... (Score:5, Informative)
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 [wikipedia.org].
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.
Right to Repair (Score:2, Informative)
Support your right to repair: http://www.eff.org/deeplinks/2009/05/right-repair-law-pro [eff.org]
Re:As an engineer... (Score:5, Informative)
freediag [sourceforge.net] - Open Source for Linux
OBD-Diag [obd-diag.de] - Not open source but free
Easy OBDII [easyobdii.com] - Not open source but free (I use this most often for basic diagnostics)
You might also want to check out the MP3Car forums [mp3car.com] as they're very knowledgeable on this subject over there, and there are also several source available projects being developed there as well.
Re:1. Complete nonsense; 2. google ELM327 (Score:5, Informative)
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.
Re:As an engineer... (Score:5, Informative)
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.
Re:To Expensive? (Score:3, Informative)
If $199 is to expensive for the hardware and software onyour Budget what do you expect to be able to fix on the car for cheaper?
Something that would be $199 cheaper having not had to pay for software and hardware.
Go to Autozone (Score:3, Informative)
They'll read your ODB unit at no charge. Reason is, of course, they hope that you will then elect to buy the part(s) you need from them to fix it. Just go in and ask, they'll bring out a portable unit that reads the diag codes. They'll take that back to a computer, upload the results, and give you a printout.
Re:As an engineer... (Score:2, Informative)
Re:Buy an oldtimer or get a Matlab license (Score:3, Informative)
Why don't you get rid of your current car and buy a vehicle which is old enough to be (mostly) free of microelectronics?
Easier said than done, sir. Even my '79 aircooled VW bus had a computer in it. Cars that old were much more prone to rust than current ones. The government was recently paying cash for those clunkers. They're getting rare. Not impossible, but not as easy as you make it sound to buy an old car in any kind of good shape. And not cheap if you find one in seriously good condition.
Re:As an engineer... (Score:3, Informative)
That's all well and dandy except that the scan equipment isn't actually expensive, the OP is simply looking in the wrong places.
Well, I'm not a mechanic but I do like to have some idea what's going on under the hood. I have an Android phone with a bluetooth multiprotocol OBD2 interface, and I use a program (it's in the Market) called "Torque". Works very well, and does more than those handheld scanners you buy at Sears. Even allows you to log OBD info with GPS tagging, and export it. If it finds a trouble code, it will link you to a Web site that lists the possible causes for that code for many different vehicles.
It only cost two bucks.
Re:As an engineer... (Score:2, Informative)
The reason for the high price of devices like those of Intrepid, Actia, Dearborn or Vector are that those device allow you to similate engines, ABS or transmission messages easily. If you can't do certain things common sense is that you need to pay someone who knows. Knowledge is money. If that was a larger market the prices would be much lower.
I use some of those expensive devices to test our cluster software or other devices that hooks up to the CAN (J1939, GMLAN or Ford) as well as J1850 or J1587. The price varies between $800 and $4000. When you pay $4000, about half of it is for the software.
If all you want to do is monitor things and perhaps add your own gauges or gadgets you should not attempt to go into diagnostic too often and have no need for such expensive devices. A $200 or $100 device would be sufficient, you could even create your own for cheap. Look at some STM32 with CAN or the AT32UC3C, they are quite cheap, the Atmel processor has 2 CAN.
J1850 is a pain but with most CAN protocol you can monitor faults and most information thru CAN if you know the messages. Ford, GM and Chrysler information is easily available if you know someone, it is not hidden but they don't like that data to go to Joe Blow, you have to have a legitimate reason to want the data. If you are building a device like the ones on the market you will have no problem getting them as long as you pay for them. We had to pay close to $100 for GM and it took a while while we got it free from Ford thru one of our customers. You can get the SAE specs for J1939 and J1850, it must be well over $1000 a year for a subscription.
Don't bother asking people who have those data since we are not allowed to pass those on. You want this you must pay for it.
For those who cannot afford the price of the documentation or hardware for these you have to rely on information that is published on the net and hope that it is correct or monitor the CAN for yourself and do some reverse engineering. GM, Ford and Chrysler have their own protocol in standard CAN at 500k. You must make sure that you do not create bus off conditions and that if you do, you recover quickly. Do not attempt to hook up anything on a moving vehicle unless you know for sure that the hardware is designed correctly. J1850 is still available on some vehicle but both Ford and GM have phased them out. J1850 is very tricky as it is very easy to crash the engine or transmission if you broadcast physical message when someone is broadcasting physical messages. With J1850 you must request all messages. This is not true for GMLAN or Ford which have messages that are sent on a regular basis. The GM transmission has a bug that if you try to communicate with a message that is not supported the transmission communication will crash. Do not mess with J1850 on GM engines unless you know exactly what you are doing.
For non Ford or GM trucks or RV there is J1939 (CAN 250k) and J1587 (RS485 9600 baud). J1587 is still available on all recent Allison Transmission and Wabco or Bendix ABS. It is available on most engines even though it is meant to be obsoleted. It will be around for many years because the military still use it for diagnostic. Normally when J1939 is available we use that. Allison has now J2012 for diagnostic on J1939, this is rather new, it has codes similar to OBD. Cummins and CAT are likely to follow the trend with their engine in a few years, I think that Cummins will have them in 2013 or 2014. All data is in metric on J1939 and english in J1587.
Re:As an engineer... (Score:1, Informative)
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.
The problem is that the cheap scanners will only read OBDII codes, not the really cool and useful vendor-specific codes. OBDII codes are legally prescribed and provide a nice starting point for your own diagnostics. Vendor codes will tell you, for example, "Left rear wheel ABS sensor fault." They'll give you real time readouts of raw sensor data, real time engine &c events, and worlds more information than a $40 scanner. $40 scanner won't tell you ABS, or SRS, or A/C: it will only tell you basic engine and drivetrain events.
Re:As an engineer... (Score:5, Informative)
Re: Too Expensive? (Score:3, Informative)
It depends on what you're resetting. If it's the MIL you're wanting to reset, that may be accomplished with a simple OBDII reader that places like Wal-Mart and most reputable auto parts places will sell you for about $60-90. You're going to find that it'll cost more to read CAN or the other protocols than it's worth if all you're looking for is reset capability.
However, if you're into tinkering and are looking for understanding the OBDII or a base platform for getting it into your laptop, you'll spend $200 on the gear however you do it. If you want to DIY an autotap, you'll have fun making one as there are four differing electrical signalling protocols in play on that connector (If you're being specific, you can find out which you're using and provide the interface to that. Now having said this, you can get schematics that will work against all four protocols, firmware that will work with said hardware to drive the ISO specific one, and if you don't want to muck with fully DIY, you can buy the completed device from Stern Technologies [sterntech.com] for $149 right at the moment (Regular price is $199, but the current design's firmware only supports ISO right now so they're discounting it $50...).
You will find that you're going to have a difficult time finding cheaper or the special connector (and it's a pita- because I'd had a lark of trying to make a CarChip a' la Davis Instruments and found out just how "fun" it could be getting that connector...) that you'll need for the design. It's a pretty nifty deal at $149.
Re: Too Expensive? (Score:3, Informative)
I don't want to tinker, but if I fix something simple like an air filter, I want to be able to reset the console warning lights.
If you just want to be able to read diagnostic codes and reset the warning light(s), at most you need a standalone OBDII device, not a laptop, special hardware and software. Harbor Freight has them for US$50 right now [harborfreight.com], and I got one on sale there for about $30.
The only reason I know of to go the laptop route is to get detailed engine data like an emissions-testing station or performance tuning shop would want.
True DIY (Score:3, Informative)
http://www.elmelectronics.com/obdic.html [elmelectronics.com]
Check out the ELM327 chip on that page.
$33, rs-232 control of the chip and the chip speaks to ODBII: ISO 15765-4 CAN, SAE J1850 PWM, SAE J1850 VPW, ISO 9141-2, ISO 14230-4 and SAE J1939 protocols
You set the chip up with what to monitor and/or control (Similar in style to sending AT commands to a modem) and then it does the work of giving you the data stream.
Build your own standalone test gear, with or without a PC interface.
Googling for "ODB-II Connectors" was how I found the jack ends with pins to solder to. They varied in price a bit so where I purchased from 2 years ago no doubt isn't the cheapest now.
Have fun
Re:To Expensive? (Score:4, Informative)
I have an older version of this:
http://www.sctflash.com/X3.php [sctflash.com]
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.
Re: Too Expensive? (Score:3, Informative)
If that is all you want AutoZone/AdvanceAuto will usually reset the lights and read the codes for free. They'll try and sell you the part to fix it, but they don't force you to buy it.
I use VCDS [ross-tech.com] on my VW because when I'm diagnosing a problem on my car, I don't want to simultaneously diagnosing my tools.
It takes time and money to reverse stuff. There have been a few open source projects, but all stalled or weren't kept up to date. I see there's a new VW project on SF.
And as far as development goes, don't ask what a CANape [vector.com]license and hard ware cost.
Re:To Expensive? (Score:4, Informative)
Re:To Expensive? (Score:5, Informative)
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.
Re:As an engineer... (Score:3, Informative)
We used to get a commission based on total parts and labor for the work ticket. One would think this would encourage us to be parts swappers and not actual mechanics, since parts make up more of the cost of a total ticket...and normally, I would agree with them. However, the culture of the shop I worked at was such that people who had a higher labor-to-parts ratio generally earned more, because they were granted higher commissions on labor, thus raising their base pay. The owners understood that not only was diagnosing and fixing the problem a better solution than just parts swapping, it was also more profitable for them because labor has no inherent upfront cost, unlike parts.
Because of this upfront cost, we were also encouraged to tell people to buy parts themselves when possible, especially on high-ticket items like BMW exhaust parts, engines, or anything else that we would charge for their first-born after markup. This made customers happy due to a reduced bill, it made the owners happy due to less money spent on their part, and it made mechanics happy because it raised their labor-to-parts ratios.
It really was a well balanced system. If you could find a way to fix a car using the same parts it came into the shop with, you were thought of very highly. If you exhausted that possibility to its fullest extent before changing parts out, but still fixed the problem, you were equally well regarded. Granted, because of this, it took us a little longer than most places to fix your car due to the extra diagnosis time...but we made damn sure it was fixed right the first time.
OBDII protocol & OBDII connector are not the s (Score:2, Informative)
There is a diagnostic protocol called OBDII
OBDII Connector is the connector where you find all the communication lines used.
Not all lines are used for every vehicle.
Here are the connections for one of my tools for use with GM Engines and J1939/J1587 trucks with OBDII connector. For the bigger truck I use a connector convertor since the connector is different and round.
1 GMLAN Single Wire CAN
2 + J1850 line
3 GMLAN MS CAN H
4 Chassis Ground
5 Signal Ground
6 GMLAN HS CAN H
7 K Line
8 J1708 (J1587 software)
9 GMALDL
10 - J1850
11 GMLAN MS L
12 LSFT H
13 LSFT L
14 GMLAN HS L
15 L Line
16 un-switched VBatt
Pins 1,3,6,8,9,11,12,13 and 14 are called Discretionary, meaning that they will differ from manufacturer to manufacturer. If you look in your car you will see some pins missing, those are simply not supported.