Tesla's lack of support for CarPlay saw Polish developer Michał Gapiński create an elaborate workaround, which streams CarPlay into the Tesla’s web browser using a Raspberry Pi (opens in new tab) and an LTE module.
Steering wheel controls + current state of #teslaCarPlay on video. Next step is to improve Wi-Fi connection, the stream is 2x smoother when viewed on my laptop pic.twitter.com/0wFFUQQPkxJanuary 14, 2022
The work of Tesla enthusiast Michał Gapiński (opens in new tab), this hack is a bit complicated, as it relies on a custom build of Android rather than the usual Debian-based Raspberry Pi OS (opens in new tab), making use of FlutterDev (opens in new tab), Google’s toolkit for platform-agnostic app development.
The project sees Gapiński's project stream hardware decoded video via YouTube, play music via Apple Music and use Apple Maps for navigation, in place of Tesla's own mix of its own and Google's map data. The "glue" which brings all of this together is the Raspberry Pi, but we're not sure which model is being used here. At a guess, based on the amount of processing power required, a Raspberry Pi 4 is being used.
Full control of CarPlay using the Tesla’s steering wheel buttons and the touchscreen is demonstrated in Gapiński’s videos, and while the resolution is ‘perfect’ he says the framerate needs work, as it’s twice as fast using a laptop than it is on the Tesla.
The Raspberry Pi connects to the internet using an LTE module, and uses its own Wi-Fi chip to act as a hotspot that the Tesla then connects to, with audio streamed over Bluetooth. This meant overcoming some restrictions within the browser itself, but has the added benefit of running traffic through a Pi Hole, and can be routed via a VPN if needed.
Gapiński plans to release the method to the public once it is ready.