I've recently put in an order for a Raspberry Pi, which should arrive in about 2 months (hopefully!). The RPi is a credit card sized computer, about as powerful as a smartphone (slighly slower CPU, much more powerful GPU) with HDMI, USB, General Purpose Input/Output pins (GPIO), and an ethernet port, all for $35 (+tax and shipping). It's really amazing.
The RPi runs Linux natively, although it looks like Android is very nearly going to get released on it as well so that's pretty cool.
The project I have in mind is pretty big, and I don't expect to get it done any time soon. However, I'd like to use this page to track current progress.
First off, I should list what my ultimate/dream goals are with this.
1. Playback media - music and movies
2. Have touchscreen GPS/navigation
3. Connect to OBDII port and readout to an small LCD screen
4. Misc entertainment (emulate NES, SNES, etc)
I'm a bit uncertain about the touchscreen idea. There's a pretty good one available that would work well on ebay (http://www.ebay.com/itm/ws/eBayISAPI.dll?ViewItem&item=110659968637) which would be great in dash, but the problem is it means removing my current Pioneer deck and therefore I will require a 6 channel USB sound card (front L/R, rear L/R, Sub L/R) and a 4 channel amp to run my speakers. This means spending probably $300 right there, which is already getting a little pricey. Alternatively, I could get a smaller screen and mount it on top of the dash, or even run the Pi "headless" which means without a screen at all. In that case I would control music selection with my smartphone, I could still have the OBDII LCD, and I could use GPS on my smartphone as well. GPS is probably the most minor portion of this idea, as I barely use it as is.
There's still 2 massive issues with this project. First off, I'm not a programmer, and secondly, I'm not an electronics guy either. Yes, I like PC hardware a lot, but I've never built a circuit board.
Fortunately I've found a lot of stuff to help, at least in the hardware/electronics department.
http://www.carplugs.com/index.html - a simple male plug with wire pins for $8 shipped. Excellent. As for interfacing with the ECU, I got this one covered too! I found the STN1110 (http://www.obdsol.com/stn1110/) and, lo and behold, they will ship you a free sample!! Amazing. It actually just showed up today, I have it in my hand...
The STN1110 datasheet has diagrams for wiring it up. It runs on 5V though, as does the RPi, and I will probably need 3V as well. I'll get to that in a bit. As far as wiring into the OBDII port, my 2002 Acura RSX Type S uses the ISO standard which makes it fairly simple. One thing I'm kind of debating is wiring this up to be used on any OBD II car, by incorporating CAN and J1850 as well, though that definitely complicates the circuitry and might be beyond my capabilities. I think I'll start with just an ISO breadboard and go from there.
Also on this subject, there's a bunch of people already doing similar OBD II interfaces with Arduinos. Some examples are as follows:
The STN1110 datasheet also lists protection circuits, optional LED status lights, voltage sense and protection circuits. The key for me right now is decifering what hardware to buy. I'll be purchasing as much as I can from digikey.ca which has great prices.
As far as getting 5V and 3V goes, following the aforementioned protection circuit I will incorporate probably the MCP16323 which comes in both flavours of output. It's a switching regulator so it's got over 90% efficiency. This one supplies up to 3A which should be plenty, but again it's something I'll have to specifically figure out just how much amperage the whole unit will use.
As far as display output for the OBDII, I'm thinking something like this: http://www.digikey.ca/product-detail/en/NHD-0216K1Z-NSR-FBW-L/NHD-0216K1Z-NSR-FBW-L-ND/1701190
It's a red 16x2 char LCD (my car has red dash lights). Not sure if I want to go bigger, but it's only $10 so not a big deal.
Right now my next step is to write out the full BoM for getting the OBDII thing going. I have access to an Arduino, so first and foremost I want to proof that in my car. Hopefully once my RPi arrives it won't be too hard to connect it to the GPIO pins. If that isn't quite feasible, I may just pick up an Arduino of my own or even get the Gertboard that is in the works for the RPi (although it looks to be severe overkill).
I'll update once I have a proper BoM. As far as the software goes for GPS and Media playback goes I'm not too concerned at this point. I'm keeping an eye on things, but I feel the OBD II interface is the most pressing (and to me, important) concern at the moment.
Stay tuned for updates.
UPDATE 1 - 8/14/2012
Just a small status update. Making progress on the BoM and circuit design stuff, also just received my ECU plug. Ran into a snag though regarding switched power circuits and how the STN1110 controls them, as well as picking the right MOSFET. I'm thinking for the first prototype I'm going to skip this part of the circuit and do it slightly differently. Possibly a physical switch on the RPi that will cause it to enter sleep mode, which will in turn cause a GPIO pin to go "low" and put the MCP16323's and the STN1110 into sleep modes as well. This will certainly be the easiest option to start with, as I'd like to not have to tap into an ignition/accessories 12V line at all. This will keep the Carputer as plug-and-play as possible. Also I'm looking at maybe trying to design it in a way that will fit nicely into a dash DIN slot with the LCD, switch, and some buttons to navigate screens, check engine codes, etc.
UPDATE 2 - 10/3/2012
Time for an update! Unfortunately, nothing exciting like having my Pi already - but a few things worth mentioning. Firstly, I contacted Allied Electronics where I purchased my Pi, and was told it was a 14 week lead time, meaning I should get my Pi sometime around or just after Halloween. In the meantime I've been reading through an electronics book. I'm having some trepidation with designing my own board. It's still something I want to do, but it's quite daunting. While reading the book I've let the BoM sit on the wayside although I do have most of it priced out. I got stuck with a resonance crystal thing, and wondering how hard it will be to manually solder surface mounted resistors that are very small. Not sure what to make of that. It's probably worth mentioning that for $50 you can buy an OBD II UART that should be plug and play here: https://www.sparkfun.com/products/9555. I'll still build my own power supply, but this might be the way to go for getting OBDII interface.
On another note, I just got a media center PC (HTPC) up and running at home. It was basically a free HP Compaq with an AMD Athelon X2 5400B CPU and an MSI G210 GPU. I had to buy RAM (2GB) and a HDD to get it running, plus an HDMI and a power cable. $135 or so got me up and running. The reason I mention this is that I decided to go with Linux Ubuntu as the OS, which means I'm finally getting my toes wet in the Linux world. Considering the Pi uses Linux, it's definitely a good thing and I'm learning a lot. Hopefully when I get my Pi it will be somewhat painless to get it up and running.
UPDATE 3 - 10/18/2012
|Look How Small It Is!|
UPDATE 3 - 10/21/2012
Well, I've got the Pi up and running. Basically just figuring out what exactly I should purchase. I was originally thinking of buying the STN1100 UART board from Sparkfun, plus a USB adapter and cable, but that total comes up to $77 plus shipping. At Scantool.net there's an STN1100 based device (OBDLink SX Scan Tool) that goes from the OBD II port directly to USB for only $50 (regular $75). As far as I can tell it will do everything I need, and it's in a rather convenient package. Additionally I'm going to order a 20x2 LCD from Digikey ($15) and 12V USB car charger (5V 2A output, $12.45). This should take care of the basics in getting the Pi setup - besides programming it! I've got a 750 page C++ programming book beside me here, so I think I'm just going to try and have some fun learning. My goal right now is get these parts assembled and able to display stuff, then eventually communicate with the car and have some push buttons to switch screens (let's say an MPG screen, another with temps and pressures, whatever else). As far as media and GPS goes, that's something that I can do after all this is done. Don't want to bite off more than I can chew.
UPDATE 4 - 11/1/2012
Just a quick update. I've now received the LCD and OBD to USB cable and have been spending quite a bit of time trying to get the LCD to work and to do some coding. This weekend I'm pretty busy, but my goal is to borrow a laptop and testdrive the OBD reader which comes with some software, and also to get the LCD display working. I'll also have some pics and stuff so stay tuned!
UPDATE 11/2/12: All future updates will be on Page 2