Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.Sign up
Getting started with Crankshaft
This article (15 mins read) will guide you through the basic idea of Crankshaft, the hardware needed, set up and some safety tips.
Android Auto in a nutshell
Android Auto is more than one concept.
Whilst Android Auto may take the form of software pre-installed in your very new car's swanky head unit, in an Crankshaft context, Android Auto is first and foremost the app you run on your Android phone.
In a Crankshaft context, Android Auto is not software running on a head unit. Instead, the Android Auto app runs on your phone and serves a software projection - most simply via a USB cable - of itself, and supported apps like Google Maps, running on your phone.
The Android Auto app doesn't officially support third-party inexpensive DIY head units. However, in the first quarter of 2018, Polish developer Michal Szwaj released the OpenAuto emulator software designed to receive the projection served out by the Android Auto app running on your phone.
OpenAuto was originally developed for use on hardware such as the Raspberry Pi with a touch screen.
The combination of an Android phone running the Android Auto app, projecting the Android Auto app's output to a Raspberry Pi equiped with a touch screen and running OpenAuto, becomes a potentially very low-cost and effective car head unit comparable to the functionality offered by current-day head units.
Crankshaft: a pre-canned OpenAuto operating system for DIY head units
Crankshaft is a Linux distribution being developed to make OpenAuto more user-friendly to set up and run by providing the additional out-of-the-box helpful functionality that is not strictly part of OpenAuto.
A head unit running Crankshaft:
- has very little control over the phone and what apps are running on it
- inputs primarily touches on the touch screen (and maybe potentially sensory data) back to the Android Auto app on your phone
- can refuse to help the phone take over audio though this helpful if you want to use a Bluetooth stereo system already working in your car
- could be considered analagous to a thin client computer, with your Android phone being the server, and all the benefits and limits that entails
You need to make absolutely sure your safety does not depend on an Android Auto head unit!
Crankshaft is not an official Google product.
Crankshaft and OpenAuto are generally one-men DIY projects published in the hope that they will be useful and fun and under the assumption you will take responsibility for your safety, and that of others, if using them.
Crankshaft and OpenAuto are not endorsed, or certified by, Google.
Crankshaft could break at any moment without warning.
Crankshaft may stop functioning altogether if Google decides to block OpenAuto through updates to any of the Android ecosystem.
Please be advised that although we strive for a quality product that we love to use ourselves, this product comes with absolutely no warranty whatsoever.
If you understand and accept the above terms, please proceed and you'll be guided through the following basic stages:
- Obtain the hardware
- Assemble the hardware
- Download and write the
imgto an SD card
- Insert the SD card into your Pi and power it up
Hardware you'll need
You'll need the following
A Raspberry Pi:
The 3B or 3B+ models are the sensible choice.
The Pi 2 would be suitable but lacks WiFi and Bluetooth onboard which could come in handy.
The Pi Zero, A+ and original Pi B may underperform despite OpenAuto's GPU acceleration.
At least a 4GB microSD card
- Samsung (the EVO line) and Sandisk cards are great
- The official 7" model works great powered from the Pi via GPIO pins, such as physical pin 2 (5V) and pin 6 (GRND)
A smartphone running Android 5.0 or higher (Lollipop, Marshmallow, Nougat, Oreo or Pie) with the Android Auto app installed
A USB cable to connect the phone to your Pi
A power source such as a 12V accessory socket to USB converter.
Get a proper one with high amperage (2 Amp or more).
Don't buy the cheap ones at the dollar stores.
A USB cable to micro USB to power the Pi.
Some kind of mount for the Pi, touchscreen and maybe for your phone. Several choices are available, including:
An audio output solution such as your car stereo.
A USB microphone if you want to use the "OK Google" Assistant.
- aitesco Lavalier: Amazon.
All the links above on Amazon are not affiliated and are linked for reference only. You are encouraged to search for better prices elsewhere and buy at local stores to support their businesses. Usually, MicroCenter has better prices on at least the Pi and the touchscreen.
If you buy on Amazon, I would encourage you to use http://smile.amazon.com and select a charity of your choice or, if you don't have one in mind, please consider the Free Software Foundation (FSF) and Electronic Frontier Foundation (EFF).
Assemble the hardware
If you're confused with the touchscreen, please read the "Building the Screen" guide at ThePiHut.
The assembled screen should look like this.
After connecting the ribbon cable, you'll need to connect two more additional wires.
Here are some helpful diagrams:
You'll see this:
It corresponds to:
You'll need to connect the 2 pins: Ground (GND/black) and 5V (red) to the 2 pins labelled GND and 5V of the touchscreen. Do not connect the two others as the tutorial above said, you do not need it (but it doesn't do anything bad if you do so correctly).
Take extra caution when you connect the 5V/GND, because you might fry your screen/your Pi if you connect it wrong.
Write Crankshaft to your SD card
Go to the releases section of Crankshaft and download the 500MB-or-so ZIP file to your computer.
Caveat: You can't drag the Crankshaft Zip file you downloaded to the SD card, it won't work :)
You need a software such as Etcher to write the Crankshaft image to the SD card. It will ask you for the image you want to write, give it the ZIP file you downloaded and put the SD card in, then proceed to let Etcher write the image.
Finally, put the whole thing in and start your car, and connect your phone!
Get a nice wallpaper for your car in the pictures section of the getCrankshaft homepage.
Refer to Customizing Crankshaft if you're more technically inclined.
Credits to https://www.reddit.com/user/Khyl for the materials list. Thanks to ETA PRIME/Youtube, Hoerlis Tutorials/Youtube for the video.