Car PC Introduction

This is a project that has been evolving over the last several years, almost since I bought my first car. Standard car head units are usually quirky or difficult to use; constantly plugging in a phone can be annoying every time you want to take a 5 minute drive (not to mention the dangers and possibility of getting a ticket), and keeping a permanent mp3 player in the car will quickly get out of sync with your music library when it isn't taken out to be updated. A Car PC should solve all of these issues, by combining the strengths of each.

I'm currently working on the second generation of my Car PC. The first was a MSI WindPC Windows-based desktop connected to a 7-inch touchscreen display. That unfortunately had some power issues leading to its eventual demise, thus paving the way to the second generation which I'm actively working on now.

This new Car PC is based on the Cubieboard (http://www.cubieboard.org), which uses the same SoC that is used in some tablets but is broken out on a development board. Its small size and power requirements make it ideal for an in-dash setup, and because the SoC is used in tablets that means there is great Android support for the device. It has 96 IO pins on the headers with a ton of multiplexed outputs including LCD, I2C, ADC, VGA and more, making it more than sufficient for my needs. You can think of it as a Raspberry Pi on steroids.

I'll be reusing the same screen that I used for my first installation, which is a Innolux display. For an extra challenge I'll be wiring this up directly to the cubieboard rather than through the VGA board that came with the screen (this will allow me to integrate better with the OS with things like backlight control and powering down the display). The cubieboard also has a compatible resistive touchscreen controller, which I'll also be using.

The first thing I'm tackling is integrating the steering wheel controls to act as button inputs to the Android system. The controls are configured as a resistor network, where 370 ohms represents volume up, 2k next track, etc. The board has a LRADC that is designed for this use case, so the progress here is coming along nicely now that I have all of the hardware in place. I'll be documenting the details of modifying the sun4i-keyboard driver in an upcoming post once I have the final details worked out.

Once I get all that finished I'll need to start working on how I'll be mounting the hardware in the dash. Maybe I'll do my first laser cut order or 3D print to get that nice and cleanly done. That's a little way down the line though, just before the final installation in the car.

Other than that the project is mostly just a matter of USB devices and software configuration, so fairly dull there. I'm sure I'll come up with more things to do with all the GPIO pins at my disposal but for now this is what's keeping me busy in my spare time.

If you have any questions feel free to drop me a line in the comments.