Skip to main content

Getting an OpenAuto installed for Android Auto - Carpi Project pt. 4

In this part, we can look at various options that might be suitable for making the Carpi project better or easier to create in some way. Since this project is not a new or novel idea and cheap projects already exist that can be bought from China, I am sure that someone has also created software for it. After some research, it turns out that Crankshaft (GitHub) is an actual turnkey solution that makes it appear as if getting Android Auto on a Raspberry Pi is quite easy.

On YouTube, I found a YouTube tutorial that went into detail on how it might be possible and easy to do, but this YouTube tutorial is not only outdated but newer versions of Android and Android Auto have come out since then. However, because the project is open source, I do not believe it would be too difficult to rebuild the project for a newer version of Android and Android Auto.

It turns out that Crankshaft is actually an OS wrapper for the OpenAuto project. So we’re gonna try to build the OpenAuto project. The build instructions are listed here.

We’ll need the prerequisites, aasdk, Qt libraries, and the C++ 14 compiler. We don’t have to worry about the C++ compiler because it is included with the default distribution of Raspbian for the Raspberry Pi, with cmake and gcc already installed. In addition, Qt libraries also come with the Raspberry Pi if the X-server is installed, which in my case it should be, even though it is disabled.

Therefore, aasdk is the dependency that we need to build in order to get OpenAuto working. To install aasdk there are also some dependencies that we will need to install. These are:

  1. cmake
  2. OpenSSL
  3. Boost (A C library)
  4. libusb
  5. Protocol
  6. C++ compiler
Everything should be installed, but even if it isn’t, we can install the needed software with the following command:

sudo apt-get install -y libboost-all-dev libusb-1.0.0-dev libssl-dev cmake libprotobuf-dev protobuf-c-compiler protobuf-compiler

We can then clone the aasdk repository onto our Raspberry Pi:

git clone -b master

We can then create a build directory at the same level as the aasdk directory and generate the cmake files in the new folder:

cmake -DCMAKE_BUILD_TYPE=Release ../aasdk

Now that we have build aasdk, we can use it. So we will return to the OpenAuto build instructions and install the rest of the dependencies:

sudo apt-get install -y libqt5multimedia5 libqt5multimedia5-plugins libqt5multimediawidgets5 qtmultimedia5-dev libqt5bluetooth5 libqt5bluetooth5-bin qtconnectivity5-dev pulseaudio librtaudio-dev librtaudio5a

Then, you can build ilclient for your own firmware, depending on which Raspberry Pi you have. The Raspberry Pi 3 should have it prebuilt, but I have the Raspberry Pi 2. So I simply have to run


in the directory /opt/vc/src/hello_pi/libs/ilclient.

Then we can build OpenAuto, so we’ll first clone the repository down:

git clone -b master

Then we’ll make a new folder and generate the cmake files by running


OpenAuto is now installed.

Gideon Tong


Post a Comment

Hey! Keep the comments section cordial please, thanks!