For this project I got inspired by a forum member on the biggest German T4 forum. The idea was to use a Raspberry Pi as CarPC and use an OEM head unit to take care of the audio amplification and in my case the control of the application. I do not want a touch screen inside my 1999 VW.
By a fluke i got a working VW MFD Radio Navigation System from a friend as a base for this project. This head unit consits of three parts. The display unit, the radio unit and the navigation unit. The MFD also has a TV input, so it is easy o get the video signal of the Pi into it. So I designed an interface board which reads the buttons of the MFD and cares about starting and stopping the Pi. The interface board is based on a Atmega16 and a simple buck converter to power the Pi. The Buttons of the MFD are realized as resistor matrix so i needed to solder some wires to them and read the voltage values with the AVR. The AVR and the pi communicate via UART and some GPIO.
As I mostly want to listen to mp3 audio files and rather need bradcasted media I made a music player which used the music player deamon to play audio files and attached a simple Qt GUI.
In the very near future the integration of navit into the hardware will follow. With a lot of help from the navit team I am currently developing a MPD based audio plugin for NavIt.
The interface board, the Raspberry Pi and a 4-port USB hub fit into a small plastic box. I use a Raspberry Pi A+ for the Qt-mp3-player. That's why I need the USB hub. For Navit I will use a Raspberry Pi 2B, because NavIt will need a 'bit' more power.
Update: November 2015
I finished the MPD based player for NavIt and replaced the Pi A+ with a Pi 2B. Now the Raspbian boots into GUI within 30s and so saved me about 20s on startup. After connecting a USB-GPS-Device and setting it up with gpsd I have a working positioning and alsways correct system time.
The on screen displays are fully customizable and are just some alpha state in my setup. Maybe I lack some graphical abilities. ;)
The Hardware is accessed by one rotary encoder and the 'Back'-button right beside the NAVI-Button.
Update January 2016
By default the OEM Headunit switches its color when light comes on, to gurantee best readability. I wanted that too, and added it to my navit (fork). Here you can see it in testing and in real life.
Really great work! I have started doing something similar on a RPi 3B+ using navit and have it working rather well. My desination vehicle is a Mini R53, so I dont need to worry about controls/aux input to the screen as I am using a 6.5" HDMI unit..
However I love the idea and what you have achieved with the GPIO controlled night/dark mode.
Do you have a link to your forked code so I could take a look.. I am looking to pull the night/day data either using the backlight illumination or the relevant messages over CAN.