CarPlay on Pi

CarPlay on Raspberry Pi 4 & 7″ Touchscreen

I’m an iPhone user, so it was really important to for me to get CarPlay running for my EV project’s infotainment system. (I’m not looking to start a iPhone vs. Android spat – both have a their benefits, but its just that iPhones work for me!) I put together a platform running Apple’s CarPlay on a Raspberry Pi 4 and 7″ touchscreen. I used KonstaKANG’s LineageOS Android build for the PI 4 and a CarlinKit CarPlay USB dongle from eBay.

CarlinKit Dongle

The dongle uses a Atmel processor, so it will be interesting to try to extract the code to see what’s going on there. That’s another project for another day though. The CarlinKit dongle provides documentation pointing you towards an Android app package APK file that you download to use with the dongle.

Inside the CarlinKit Dongle

LineageOS

I downloaded LineageOS from KonstaKANG’s website. LineageOS is a free Android based open-source operating system for smartphones, tablets, and set-top boxes. The irony is that you can use a CarPlay dongle within an Android infotainment system to run CarPlay. I used the Pi 4 16.0 build to flash the SD card using balenaEtcher.  To prepare to use the dongle, I also downward the dongle’s APK file onto a USB drive. After inserting the SD card and plugging in the USB drive into the Pi, I powered it up.

LineageOS took a bit to initialize on the system, then I just had to finish up the install (Language, Date & Time, Wi-Fi/network, Location Services, etc.) Overall, it’s a surprisingly quick installation.

CarPlay

Once I was done with the LineageOS install, I used the file system to load the APK for the dongle. When that was done, I just plugged my iPhone into the dongle via a USB to Lightning cable. Immediately the Pi recognized the phone and started the CarPlay interface. The CarPlay interface is a bit slow, but its usable. (Its snappier than my other car’s infotainment system though!) Note that if you want to reorganize the apps in CarPlay, you can do this in the iPhone’s CarPlay setting (General > CarPlay).

I need to add a microphone and test with a sound system like it would be in a car, but this looks to be a good starting point to build off for my EV’s infotainment system. If this CarPlay solution holds up, I’ll add other features like the back up camera, rotary volume, etc. These will likely be done as Android apps. I’ll follow up with these in the future.

12 comments

  1. John Benefield

    Where you able to get a Microphone working? I have this working on a Raspberry Pi 4 using the 16.0 LineageOS.

    I have a Bose Soundlink II Bluetooth speaker/microphone and can use it for a speaker but not as a microphone (which it does support when I connect it to my iphone). I was thinking I may have go with a USB Mic ….

    1. evmanic

      I haven’t had a chance yet – I have a Cambridge Audio DACmagic XS that I’ve tested and it sounds great for music, but I have to get my USB mike working with it. I started looking into it, but got busy. I’ll try to get back to it soon. Let me know how you progress.

  2. Andrew

    I’m in the middle of this same project and have issues with what seems to be the dongle forcing a restart of my Pi 4. Then it gets stuck in a boot loop until I disconnect the dongle. Any ideas of why this might be happening?

    1. evmanic

      It could be so many things hardware and software related. The first thing I would check is the power supply – the Pi 4’s are more current hungry than the older Pis and need their required supply.

  3. Pati

    The problem is of this type
    I have a model: CPC200-Autokit Audio delay for voice calls with another person I have Radio android 10 vs iphone 13 there is a problem: cable and wifi connection installed Autokit application updated, please answer if there is a solution

Leave a Reply

Your email address will not be published. Required fields are marked *