Skip to content

f-io/pi-carplay

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Release     TS Main Build Main     TS Dev Build Dev

pi-carplay pi-carplay

pi-carplay brings Apple CarPlay and Android Auto to the Raspberry Pi, with support for Linux (ARM/x86) and macOS (ARM) as well. It is a standalone Electron app, optimized for embedded setups and ultra-low-resolution OEM displays.

Requirements: A Carlinkit CPC200-CCPA (wireless & wired) or CPC200-CCPW (wired only) adapter.

Build Environment

Node npm electron chrome release

Images

CarPlay

No PhoneMedia

InfoSettings

Installation

Raspberry Pi OS

curl -LO https://raw.githubusercontent.com/f-io/pi-carplay/main/setup-pi.sh
sudo chmod +x setup-pi.sh
./setup-pi.sh

The setup-pi.sh script performs the following tasks:

  1. check for required tools: curl and xdg-user-dir
  2. configures udev rules to ensure the proper access rights for the CarPlay dongle
  3. downloads the latest AppImage
  4. creates an autostart entry, so the application will launch automatically on boot
  5. creates a desktop shortcut for easy access to the application

Not actively tested on other Linux distributions.


Linux (x86_64)

This AppImage has been tested on Debian Trixie (13). No additional software is required — just download the -x86_64.AppImage and make it executable. Depending on your distro and how you run the app, you may need a udev rule to access the USB dongle. It presents as a composite (multi-class) USB device, and unlike single-class devices, its interfaces often require explicit permissions. The optional install script can create this rule for you.

SUBSYSTEM=="usb", ATTR{idVendor}=="1314", ATTR{idProduct}=="152*", MODE="0660", GROUP="plugdev"
chmod +x pi-carplay-*-x86_64.AppImage

Mac (arm64)

Just download the -arm64.dmg, open it, and drag pi-carplay.app into Applications. Then remove the Gatekeeper quarantine once and launch the app. This step is required for all non-Apple-signed apps and future in-app updates will preserve this state.

xattr -cr /Applications/pi-carplay.app

For microphone support, please install Sound eXchange (SoX) via brew.

brew install sox

System Requirements (build)

Make sure the following packages and tools are installed on your system before building:

  • Python 3.x (for native module builds via node-gyp)
  • build-essential (Linux: includes gcc, g++, make, etc.)
  • libusb-1.0-0-dev (required for node-usb)
  • libudev-dev (optional but recommended for USB detection on Linux)
  • fuse (required to run AppImages)

Clone & Build

git clone --branch main --single-branch https://github.com/f-io/pi-carplay.git \
  && cd pi-carplay \
  && npm run install:clean \
  && npm run build \
  && npm run build:armLinux

Android Auto

Provisioning not supported. This app does not perform the Android Auto first-time provisioning/pairing flow.
Your phone must already be paired/enrolled on the dongle.

How to provision AA on the dongle:

  1. Use the dongle with a regular head unit or the vendor’s mobile app to add your phone once.
  2. After the dongle knows your phone, connect the dongle to pi-carplay — it will attach without running provisioning again.

Disclaimer

Apple and CarPlay are trademarks of Apple Inc. Android and Android Auto are trademarks of Google LLC. This project is not affiliated with or endorsed by Apple or Google. All product names, logos, and brands are the property of their respective owners.

License

This project is licensed under the MIT License.

About

Carplay for the rest of us. Cross-platform CarPlay & Android Auto via Carlinkit (Linux ARM/x86, macOS ARM).

Topics

Resources

License

Stars

Watchers

Forks

Contributors 4

  •  
  •  
  •  
  •