Hey guys, great thread. I'm looking to do a Carputer (CarPi) and definitely want OBDII interfacing. In my case, I just want to read from it - get things like MPG, IAT, timing advance, coolant temp, oil pressure, intake manifold pressure, etc.
Firstly, while I like the effort in this thread, I wish it would focus on more OPDII protocols than just CAN. Most cars out there are not CAN compliant - I'm in a 2002 Acura RSX-S which uses ISO9141 (afaik). CAN has only been mandatory since 2008, and as a cheapo computer system, I think the RPi is going to appeal to people that aren't driving modern cars lol.
In that regards, while the MCP2515 is a great CAN chip, why not go with a more "open hardware" friendly STN1110, which is still lightning fast with CAN but also compliant with other protocols? Additionally, it supports the "AT" command set (basically the same as used with modems) so I'm sure programming for it wouldn't be too difficult for someone of moderate skill (not me, sadly). Also, you can get a free sample (1 to 3). I asked for one and apparently it will arrive at my door in a few weeks. Can't beat free.
Finally there's a few hurdles besides just communicating with the RPi. My research is currently at this stage:
-Needs protected power.
Luckily this is covered for us by the STN1110 datasheet. See the datasheet on this page, go to page 12 on the PDF http://www.obdsol.com/stn1110/
-Needs 5V and 3.3V
This should be fairly simple. Use a pair of MCP16323 or similar buck chips after the power protection circuit, as described in the STN1110 data sheet. Additionally, the datasheet on these buck chips layout the ideal setup, just needs a few capacitors.
http://www.digikey.ca/product-detail/en ... ND/2835024
Or buy a pre-fabbed, here's a 5V at any rate: http://www.futurlec.com/Mini_5V_High_Power.shtml
-Needs to interface with the RPi
This is probably the hardest part. Building an STN1110 breadboard shouldn't be too bad, and you can certainly connect the 3 or 4 wires from the ECU directly to the inputs as listed in the data sheet, although it might get messy. Connecting it to the Pi is something else. One option is GPIO pins, possibly using the WiringPi library which is similar to Arduino. A lot of my info comes from researching the OBDuino projects that work quite well.
http://code.google.com/p/opengauge/wiki ... oInterface
Additionally, there is an OBDII UART breakout board available that is compatible with ELM327/STN1110:
Although at $50, I hope we can just copy a similar design and DIY. Buying an OBDII interface to RS323 isn't too expensive. This kit includes the cable: https://www.sparkfun.com/products/10769
Alternatively there's a CAN board like this for $13:
Only issue for me is the micro controller is the MCP2551
From here it's either GPIO or USB interfacing, no idea which would be better nor how to actually accomplish a hand-shake.
Here's one small list of OBDII software that might be a starting point, some of it is for Linux:
That's most of what I have right now. Only addition is that it would be awesome to real-time update a 16x2 char LCD (in conjunction with a regular LCD like a 7" touchscreen for in car media and GPS) just like the one shown in one of the OBDuino links.
Since there is talk of GPS, I've done a limited amount of digging. For example here is another Arduino project that data logs both OBD II data and GPS information:
http://www.practicalarduino.com/project ... y-platform
I'd prefer real-time GPS/Navigation, though. I know it won't be easy. It seems like there's a decent selection of USB GPS devices.
There's also a selection of free Linux open source GPS software. I know for sure Google allows use of their maps and such as long as the software is open source. Ideally I'd like to have local maps pre downloaded to remove the need for a 3G component (city/province/state/country/continent/world/whatever you need)
http://tuxmobil.org/linux_gps_navigatio ... tions.html
http://www.fsckin.com/2008/04/06/review ... -packages/
Anyway, I'm really a noob and quite possibly overlooking many important factors, but this thread seems quite promising.