Upgrading a Car to Android Auto for Cheap Using Just a Screen and Raspberry Pi 4
Integrate Android Auto functionality into your old vehicle by simply attaching a Raspberry Pi 4 and accompanying touchscreen.
What is Android Auto?
If you've been in nearly any modern car equipped with a touchscreen, you have probably noticed that ability to use Android Auto. It is an application that runs in a car's infotainment system that allows your phone to provide Google Maps directions, play music/podcasts, and sometimes even cast content from YouTube to the center screen when parked. This makes it a great convenience for hands-free driving and lets users override the default navigation provided by the vehicle manufacturer. However, older cars do not have this ability, which is why Element14 Presents host David Edwards wanted to add his own infotainment screen that could use Android Auto.
Gathering the required components
To begin, the most important part of this project was the screen, as it is what users interact with when viewing navigation or selecting which music they want to listen to. Edwards went with a large 10" screen that came with a couple of built-in features, including the ability to directly accept 12V power and send 5V at a high amperage to the attached Raspberry Pi 4. Edwards also soldered a board containing a real-time clock module for tracking the current time and a capacitive touch sensor that can be used to put the system to sleep and wake it up.
The software stack
In order to run Android Auto on a Raspberry Pi, Edwards loaded up a Crankshaft OS iso onto an SD card which then got placed into the Pi. Crankshaft is a distribution of GNU/Linux that is based on the OpenAuto project which allows a device to receive the Android Auto projection coming from a phone via USB and display it. Audio can be outputted through a couple different ways such as Bluetooth and over the 3.5mm audio jack.
Providing adequate power
Because typical 12V to 5V USB car converters can only output limited amounts of power, Edwards had to come up with a more robust solution. His plan involved taking a fused 12V port adapter and soldering a short cable to it that terminates in a barrel plug. Due to the fact that the 12V port can supply up to 10A, adding a fuse was necessary to prevent too much current from being drawn and potentially causing a fire.
Mounting the system in a car
The last step of the build was to add a way to mount the new Android Auto system to the dashboard over the previous center screen. To accomplish this, Edwards modeled his screen assembly in Fusion 360 and created a small plastic chin on the bottom for holding the touch sensor and LED. The top of the screen's mount simply attaches to the upper cover for the infotainment stack.
Test drive
As seen in the video, after the system was powered on and a phone was plugged into a USB port, this DIY Android Auto system worked great.
And even though the navigation and music systems work fine currently, Edwards also wishes to integrate the Pi into the car's OBD2 CAN bus to get real-time monitoring for things like the engine, lights, warning, and open door alerts.