Baby, you can geek my car.
February 24, 2007 4:06 PM   Subscribe

I drive a Subaru. I'd like to have digital access to its internal state in a format and on a bus that I can read with something like a linux PC, in real time. I'd like to know RPM, speed, sensor readings, etc (essentially everything that this can display). Can I buy or build a doohickey that will do this?

I really don't want to spend $1k on an advanced engine management system when all I really want is data that, apparently, is readily available over the OBD port.

I've found a couple of open-source projects related to OBD, but none of them explicitly discuss realtime data acquisition. Likewise, while I'm sure the hardware would let me access the data, I can't find protocol descriptions for the non-standard Subaru extensions necessary for OBD data other than that mandated by law. I don't even know where to begin reverse engineering this.
posted by Netzapper to Technology (8 answers total) 7 users marked this as a favorite
I own a ScanGauge II OBD scanner/gauge and it works pretty well as a real-time display device. It's very plug-and-play - just a single connection to your car's OBD II port.
posted by jaimev at 4:33 PM on February 24, 2007 [1 favorite] seems to return real-time data of the sort you describe. Example screenshot. Obviously you'd have to make sure whatever hardware you bought also supported this data feed.
posted by Partial Law at 4:35 PM on February 24, 2007

Best answer: You may want to look into Carman. It's an OBD-II analyzer for the Nokia 770 and N800 internet tablets.

It looks sexy. It's LGPLed, and the internet tablets run Linux. Nokia endorses third party development.
posted by adamwolf at 4:36 PM on February 24, 2007 [1 favorite]

Best answer: I used to write test scripts for the AdamIII ECU used by Caterpillar in most of their heavy duty equipment. The most invaluable collection was the J1939 spec. It told me anything I wanted to know about the datalink protocol, how the bytes were formatted, etc.

It's been years, so I don't remember clearly all the specifics. Generally, the ECU broadcasts diagnostic data on the link for the dashboard and other components to pick up. All you should have do is wait for the particular parameter group number (PGN) to appear and parse the data.

According to Wikipedia, it looks like most cars now conform to J1979. Unforunately, SAE doesn't give out their specs for free. Looks like the average cost is ~$60/PDF, and you might need multiple PDF's to figure everything out.

None of this is that difficult. I had just finished my sophomore year in college when I started working on it. Within a couple weeks I knew the whole thing inside and out. But I had certain advantages you won't... like access to a library of the spec documents, a several thousand dollar test harness and rig, and computer tools to decode the frames for me.

Might be best to just buy something like what jaimev suggests.
posted by sbutler at 4:47 PM on February 24, 2007

Actually, that Scantool looks like an excellent place to start. If their code is modular enough you should be able to extract enough of it for your own application.
posted by sbutler at 4:49 PM on February 24, 2007

There is a thread on this subject at the LegacyGT forum. Some people there use Enginuity.
posted by jet_silver at 5:13 PM on February 24, 2007

I bought a sub $100 ODB tool off amazon that has a USB interface that I'm pretty sure can be used to read real-time data.
posted by Good Brain at 5:19 PM on February 24, 2007

Response by poster: adamwolf: Thank you! That's precisely what I needed. GPL'd code that I can simply tear into. And in Python, no less! I can practically just plug it into my system.
posted by Netzapper at 5:29 PM on February 24, 2007

« Older Hekp me move a div!   |   Name those balls. Newer »
This thread is closed to new comments.