The Raspberry Pi Car Stereo (Double DIN size)
Before you read this page, you should know that using an Odroid C1 might be a better choice if you'd rather have an Android based stereo using all the same hardware, except for the Raspberry Pi, and the screen. You want to use a touchscreen that does not use the GPIO and uses the USB port, if your using an Odroid. If you already have a Raspberry Pi touchscreen and an Odroid, I made an Android app to enable the touch input for it. It only works for Odroids and doesn't support all gestures.
With Android, many of the problems are solved, like having everything made for touchscreens instead of keyboards and mice. Also the Odroids offer the EMMC storage option. Not only is EMMC faster than SD cards, it doesn't screw things up when you kill the power on the device without shutting down the software properly. In other words, you can just turn off the car without shutting down your stereo and waiting for it to unmount drives and whatever. Odroid with Android might actually be a better choice for many people. You can just Install Android, get whatever hardware you want your stereo to support and plug it in the USB ports and download some apps from the store. Done with a Android stereo.
Now that we got that Android and Odroid stuff out of the way...
RasPiCarStereo is an app that turns a Raspberry Pi 2 or 3 (maybe 1 too) into a car stereo complete with touchscreen, GPS navigation, bluetooth, MP3 player, FM radio and access to the vehicle's computer. It's still being worked on, but most everything works. The bluetooth stuff could be done better. Some bluetooth stuff is broken, but it should be able to pair a new device. It can connect to devices that have already been paired fine.
To use the stereo should be pretty straight forward, mostly. To change a radio station preset thats already set, press and hold for a second then let go. If there is no station set yet, just a regular tap will do. The MP3 player is set up like a juke box. To play a song, find it on the list and press the play button. To add a song to the play list, select the song on the list and press the add button. If there is no song playing, the add button will play the song instead. Currently playing songs are not listed on the playlist. To view the playlist, press the playlist button. You can also shuffle the list and remove songs here too. If there is no songs on the list, the playlist button wont do anything. In the playlist screen, if the play button is pressed while a song is playing, it will stop the song and play the new one while keeping the playlist if there is one.
Amazon links to these parts are at the bottom of this page
Parts used in this project: