Thursday, September 25, 2008

New Link

So I have been using this great program called TrailRunner to import information from my Garmin Edge 305 (hopefully someday a 705 I do love toys) into my mac.  It has the cool feature of creating a diary entry for imported routes and exporting them as html.  I have added a link to the top that allows the running entries to be seen as well as maps and some statistics about my rides.  Fun stuff.

Saturday, September 13, 2008


Nearly 3 months ago I was given one of these by Sean.  I spent some time doing proof of concept work with it, but the living situation necessitated stealing the wife's laptop and sitting in the hot car without internet access.  Due in part to the unpleasantness of the work environment and a major move, new job, etc... this fell by the wayside for a bit.  I have resumed work (and re-learned some things) this weekend with a much better working environment (read garage with work bench).  So without further adieu here is what I now know about the OBD-II portion of the carputer.

OBD-II comes in many flavors, my 2001 Honda Accord comes in the ISO 9141-2 flavor favored by Asian car manufacturers.  The scantool I have is using an ELM 323 IC for converting ISO 9141 to ASCII transported via RS-232 then further translated to a USB connection using an FTDI FT232R RS-232 to USB IC.  Forgive the detail here, but this is more for my own records than anything.  With the appropriate driver from FTDI I get handy little tty device that I can connect to.

After much investigation and new knowledge acquisition I was able to use the handy program 'cu' to connect to my scantool with the command
cu -s 9600 -o -l /dev/ttyUSB0

Using the handy dandy list from wikipedia I was able to get some information out of my ECU.  Unfortunately, not as much as I had hoped. Below is the most relevant.

41 00 BE 3E B8 10

This shows me what data is available from the ECU. 41 01 is a header telling me what mode I am in.  The remaining four bytes then tell me what PIDs our available.

BE 3E B8 10 = 1011-1110 0011-1110 1011-1000 0001-0000

Which means I only have PIDs 01, 03, 04, 05, 06, 07, 0B, 0C, 0D, 0E, 0F, 11, 13, 14, and 15. So of a theoretical 96 (though more common 64) I have 15 PIDs supported, which is a little disappointing. I can't get some of the fun data I otherwise could have. Maybe I should get a new ECU... ;)

Next step for OBD-II is interacting with the terminal in code.  I found this great tutorial that will make that a piece of cake.

That's it for now.  Next up is my Fusion Brain. This has all kinds of possibilities.