Tesla doesn’t support Apple CarPlay nor Android Auto in its vehicles, and it’s basically the only major automaker that still doesn’t at this point. For any other company the omission of such an otherwise ubiquitous feature would be inexcusable, but Tesla manages to get away with it. One clever owner has devised a workaround that enables phone projection on the manufacturer’s vehicles, and it’s about as far away from “plug-and-play” as you could imagine.
It’s the work of a Polish developer named Michał Gapiński, whose handiwork is available to download off GitHub. Now, while I do consider myself somewhat adept at tech, I have never messed around with a Raspberry Pi before and apparently you need two of those for this to work — one to run Android and the other to hold up the network side of things, with Linux installed. You also need, per MacRumors, “an LTE modem and a Wi-Fi access point, running a custom Android-based firmware, as well as a micro-HDMI to HDMI cable and Ethernet cable.”
The internet stuff is necessary because, as my colleague Steve explained to me, this is all possible through Tesla’s in-car web browser. “The Pi running Linux is just running PiHole and generating a local Wi-Fi network that the Tesla and the Pi running Android connect to,” Steve told me.
That seems like a few too many hoops to jump through to get CarPlay or Android Auto on an infotainment display, but I must commend Gapiński here because they can still be controlled using the buttons on the Tesla steering wheel, just like regular media. Unfortunately, the install guide gives me anxiety and takes me back to my Android rooting days:
Gapiński knows this, though, and down the line he hopes to reduce both the hardware involved and some of the command line fussing. From the Tesla Android blog:
Right now the focus is starting to shift towards better integration and simplification. Dropping the two boards requirement will help in reducing both cost and entry barrier by reducing the install guide to something that can be done in a matter of minutes.
For example, in this first release, Gapiński notes that CarPlay might jitter when displaying on the Tesla’s screen. His fix for that at the moment is overclocking the Raspberry Pi. I recall doing that on my first-generation Motorola Droid so it was actually usable about a year into ownership. Problem is, if you do that you might also need to pick up a little radiator for the Pi running Android, because it tends to overcook under all the aforementioned stress.
None of this is meant as a criticism of the developer, of course — he’s working magic with supply-limited Pi boards that are being scalped everywhere and some chicken wire. It’s a miracle any of this works, but it’d also be nice if Tesla just gave their customers the same luxuries that the owners of every other new vehicle gets, without requiring them to buy out half of Newegg.