2006 2.5i Limited Manual
Background:Crankshaft is an open source project based on OpenAuto which makes it possible to easily install, setup, and run Android Auto on a Raspberry Pi. Paired with a touchscreen this makes for a cheap way to install Android Auto in cars that weren't available with it. This post isn't meant to serve as a complete guide, as there are already a ton of resources out there for how to set up a system like this. Instead I'm going to provide some details on my setup and how I made it work specifically in my 3rd gen. Here are some links to some of the guides I used:
Setup/Config Specific to 3rd gen OB:Power:
I found the wiring harness for the clock to be the best place to get power, it's right there and it's fused with enough overhead to support the RPi, screen, and phone charging. It also has some other fun pins that could be useful for a more complex setup that I wish I had the time/motivation to implement. Here's a pinout diagram for the clock connector I found on the legacyGT forums.
There are a lot of options when it comes to how to power/boot up/shut down the Raspberry Pi. You could just connect the whole system to the ignition pin on the clock connector, but you run the risk of corrupting the raspberry pi's storage if you pull it's power before it has had time to shut donn. I went with the next simplest setup, which is to connect the 12V side of the 12 to 5V step down to a switch and manually power on/off the setup when I want to use it. This is nice because of it's simplicity, but means I have to remember to power on/off every time I want to use it which is kind of a pain. Leaving it on and shutting off just the raspberry pi isn't an option because the latent draw of the 12 to 5V step down is enough to drain your battery after a day of sitting (ask my how I know). I routed the switch (and the USB connector) down past the radio and out in the drivers foot well. EDIT (6/16/20): An updated schematic & description is below. Here's a visual of my setup:
A better way to set it up, which I might do for an upcoming road trip, would be to use a combination of the constant 12V and the ignition signal wire to gracefully boot up/power down the raspberry pi without cutting power. This would require a combination of relays, potentially timers, and to leverage the GPIO on the raspberry pi to send a power down command. Fortunately this is something that's supported by crankshaft and easily setup in software (see the CS Env section of this page). Another cool thing to do would be to send pin 1 of the clock connector, which is the one that sends the dashboard illumination signal, into a GPIO and configure it to change Crankshaft from day to night mode. I leave my headlights on all the time, but this would be an easy way to make the screen's brightness and Android Auto's color scheme match with the rest of the dashboard.
Audio is a little complicated because Android Auto assumes it's integrated with the head unit of the car and wants to take all the audio signals from the phone, which may or may not be what you want depending on your setup. I already had a bluetooth aux setup so I chose to pipe audio through the phone instead of through the raspberry pi, although with a sound card you could integrate that as well. Configuration details are on the crankshaft wiki here.
Once the cubby is removed from the cubby/vent assembly, the official raspberry pi touchscreen fits nicely in the space where the cubby used to be, and provides a mounting point for Rapsberry Pi as well. I used some custom 3D printed hooks to hold the display in place (I'll share the file if people want it). The cubby/vent/clock assembly snaps in and out pretty easily, but the dashboard is surprisingly easy to damage so be careful.
My first next step for this project is going to be figuring out how to power up/down the setup with the ignition so I don't have to worry about manually powering up and down every time I want to use it. I might update here once I come up with a good solution for this. I'd also need to find a good spot to mount switches to kill power to the system if I want, and for other features like switching between day/night, skipping songs, switching apps, etc. There's a lot of functionality you can bind to GPIO/keyboard inputs which I'd like to explore more. My biggest obstacle right now is honestly figuring out where to mount switches/buttons. I can't find an easy obvious place to mount them, looking for suggestions on this. Another wish list item is to use a webcam to integrate a backup camera. The software is all setup for something like this, I just need to find a good webcam position and an easy way to run wires, anyone know if it's possible to run wires through the headliner and down the A pillar? Also is there an easier place to find a reverse signal then tapping into the reverse lights all the way in the back of the car?
I think that's it, I'll be monitoring this thread to answer questions/add things I'm missing. This was an awesome addition and made navigation/media so much easier in my car, plus it really impresses people to see the newer tech in the older car.