Linux Carputer Guide 101

Building a carputer the most difficult, expensive and rewarding do-it-yourself (DIY) projects I have ever completed.  If you own a car manufactured in the last 20 years, the chances are it has a specialized computer inside – the Electronic Control Unit (ECU) is a computer which originally only controlled fuel injection.  In today’s cars, the ECU is responsible for more than just controlling the powertrain.  Many standard features of cars produced today are monitored by the ECU, including emissions control, fuel saving, airbags, ABS braking systems, climate control, and many more.  In a few short weeks I’ve found it to be the best investment I have made in my car.  On the surface, the idea is simple, just take a computer put it in the car.  In reality, it is several times more difficult than installing a car alarm or replacing a factory head unit with an aftermarket radio.  Before you start, you need to ask yourself six questions:

How much can you spend?
What computer hardware do you need?
How will you interact with the computer?
How will the computer be powered?
Do you want any special features?
Where is everything going to fit inside the car?
Let’s find out.

Budgeting for a carputer DIY project is difficult.  Unless you’ve completed a similar project recently, you may not be able to find the tools needed for the job even if you own them.  Before buying computer hardware, tools, or even spending a dime, stop and estimate the total budget for the project.  A good rule of thumb is to take your initial estimate, and add 50% to the total.  If don’t have a significant tool collection already, be aware before you start that the right tools for the job can cost a significant amount of money.  Plan ahead and shop online for the best deals and make a checklist of everything you plan on purchasing, it can only save you money and plenty of headaches in the long run.

The hardware side of things is not a simple equation.  No two carputers are going to be the same, since each installation has different needs. I’ve seen some full size computers with quad-core desktop processors installed in a car!  Most people go for something smaller, since much more than a 1GHz is overkill for playing music and watching the occasional DVD.

Using a mouse and keyboard is impractical and not the safest way to control a carputer, so something a bit easier to use is in order.  Touchscreens provide a centralized display unit for the PC and with a driver-friendly interface, can be just as safe as any factory installed navigation system.  Two notable manufactures of touchscreens are Lilliput and Xenarc.  Both provide different sizes to fit nearly any car, features and native device drivers for Linux. 

Powering the carputer is one of the first problems you might think of when envisioning putting a car into a computer.  Some computers can be powered by a DC to AC converter, but I do not recommended for a permanent installation.  DC to AC adapters are notorious for introducing alternator whine into the audio system.  The best option in most cases is to use a specialized DC to DC converter that will take the 12 volt output from the car, and convert it into the necessary voltages for the carputer and plug right into the motherboard.  If your system will be using a laptop, it should be relatively easy to find a DC adapter that will plug into a car power socket.

Special features a carputer is capable of are endless.  Anything you can do on a regular PC can be done in the car.  Internet access provided by most mobile phones and a Bluetooth tether can provide a valuable asset for any commuter: GPS navigation with real-time traffic updates.  Another example would be backup camera that automatically switches on when you put the car in reverse.  If you can imagine something, it is not only possible, but someone has probably already done the legwork required to get it working.

Where the carputer is installed is dependant on space constraints, and is completely up to you. 

The planning stages are critical to this DIY project.  If you’re not careful and ask questions along the way, it’s reasonable to expect wasting money on components that are incompatible with each other or not suited for the purpose you need.  You will also need to be familiar with the electrical system in the car.  Wiring diagrams will go a long way towards knowing which wires you can use.  Most motherboards and all laptops have on-board sound cards which may be more than suitable for the project.  If you plan on using a FM modulator or auxiliary input on a head unit, you probably don’t need to upgrade to an external USB or PCI sound card.  You may run into unforeseen problems with on-board sound (engine noise) that may require using an external sound card to isolate the issue.

On the hardware side of things, some choices were deliberate, and others were just lying around the house.  I used the following components in my build:

Lilliput 7″ 629T LCD Touchscreen
Asus EeePC 4G
LG External DVD Burner
Pharos iGPS-500 USB GPS
Generic Bluetooth Adapter
LaCie External 500GB Hard Drive
Four-port USB Hub

I chose the Lilliput screen for the excellent sunlight-readable display and slim LCD internals with LED backlighting.  Other affordable options were explored and in the end it simply came down to what was available for the best price.  There is no “right way” to choose a display, just find one that has a few user reviews and go with it.  Don’t be tempted by the perfect product that claim to be shipping soon that have been announced yet remain in perpetual development. 

Carputer First Time Bootup

The Asus EeePC sub-notebook is a near-perfect choice for this application considering size, power, and screen.  It runs Linux to begin with, so potential problems with drivers are easily avoided.  Also it has its own battery power, so it can be powered on independently of the vehicle electrical system, avoiding unnecessary car battery discharge.  The seven inch display on the EeePC runs at the same resolution as similarly sized carputer displays.  The only downside is no optical drive, and finding one that would power on with a single USB cable was time-consuming.  For GPS capabilities, I selected the Pharos iGPS-500 after verifying Linux compatibility, positive reviews, and price.  Everything else was lying around the house.  The only item that is powered by an AC to DC adapter is the external hard drive, because of the oddly shaped power plug and reluctance to slice open the only cable I have for it.

Depending on the level of your expertise and time available, you may want to cut the project into multiple weekend projects.  I split my project up into four sections:  Radio (Head Unit) relocation, software configuration, touchscreen install and wiring.  Due to inclement weather, the touchscreen installation ended up taking one weekend for fabrication and another weekend for the actual install into the dash.

To move the radio from the dash to the glove box required adding 2 feet of wiring and removing the glove box.  I used 14 gauge wire purchased at the local hardware store and quick splice connectors lying around my toolbox.  I bought a single-DIN under-dash mounting kit from Metra.  After flipping it upside-down, it needed a little work with the Dremel tool to cut it to length for a nice fit inside the glove box.  The most difficult part was to get the wire harness for the radio around support beams inside the dash.

For software, I tested LinuxICE (In Car Entertainment) distribution.  LinuxICE is paired with nGhost front-end for a driver-friendly UI.   It is currently in development and suitable for basic needs, however I wanted a bit more.  I decided to go with the latest release of Ubuntu, and the only issues that I ran into with the UI was the size of fonts and icons with the low resolution of a 7″ screen.  A customized Ubuntu installation can be potentially more useful than a specialized distribution.  For GPS capability, the best option for this particular application is RoadNav, which has decent resolution maps and renders maps in 3D with the drivers point of view in mind.  During setup, I installed proprietary codecs for DVD playback, MP3 and WMA audio, as well as Xvid and DivX video.  Compiz Fuzion is not generally feasible to use on the small display.

The touchscreen installation was the most difficult portion of my installation and took much longer than I first expected.  I have very little fabrication experience.  After reading many fabrication how-to guides for people with no skill, I was confident enough to take the Lilliput touchscreen housing apart, and took out the Dremel tool.  I cut the original LCD bezel to fit the area provided by moving the radio.  Some initial difficulties were encountered by using the highest speed setting on the Dremel, which resulted in the cutoff disc getting too hot and melted plastic.  After switching to a lower speed setting and making shorter cuts, I had no more problems with this.  Additional removal of some plastic on the rear of the center console was needed to get a perfect fit.

To permanently mount the bezel in the dash, I tacked it in place using a hot-glue gun so it wouldn’t move around and used two-part plastic epoxy to fuse the two peices of plastic together.  The Lilliput LCD has several internal printed circuit boards which needed to be mounted behind the screen.  I did a test fitting with foam-backed poster board to electronically isolate the boards and avoid shorting them out.  After everything looked good, everything was sandwiched together.  The ribbon cables inside are extremely delicate.  After everything was all set, I powered it on to double check everything was working.  Installation into the dash once everything was fabricated was more time consuming than I expected.  There were some clearance issues, which eventually were solved by removing the audio/video/power cable and snapping the console back in place.  I was able to reach behind the dash to connect the cable once it was installed. 

The solid state hard drive and Celeron M processor of the EeePC uses very little power and was one of the main reasons why I chose it.  I purchased a car adapter for it and spliced it into the existing wiring for the power socket in my car.  To get the audio signal from the EeePC to the car speakers, I used a 1/8th inch audio jack extender from the output of the Eee to the auxiliary input on my head unit.  Lots of zip ties and electrical tape were used to get everything tidied up.  The laptop went under the driver seat, in a small tray fastened to the interior carpet with velcro to avoid having it shift while driving.

I have purposefully avoided making this article into a step-by-step how-to guide.  Each carputer is a unique creation of the person installing it.  There is no way every possible configuration could be expounded upon, so I’ve given you the basic knowledge needed to get started and some extrapolation on what, when, where, how and why my carputer installation succeeded.  The entire project emphasizes the flexibility of open source software, which is one of its core strengths.  I’ve looked into various options available for other operating systems, and although most commercially and proprietary licensed products may have undergone more spit-shine treatment than what is available for Linux, they certainly do not allow the user to exercise their personal do-it-yourself creativity as well as a Linux-based carputer can.

Wayne Richardson is a IT administrator for a startup game developer in Austin, Texas.  When he isn’t suffering from rug burned love handles (don’t ask, long story) while installing a carputer and ferociously wielding a Dremel tools, he runs a popular Linux blog called “fsckin w/ linux” at http://www.fsckin.com

Sidebars:

Reccomended Tools:

* Dremel Tool
* Screwdrivers
* Pliers
* Wire cutters
* Wire crimper
* Scissors
* Soldering Iron
* Hot-glue gun
* Bondo
* Sanding paper
* Paint

Tips and Tricks:

* Running wires along existing paths when possible, which will save time and the end result will not be a rats nest of cabling strewn about your cabin.
* To avoid possible signal degradation, do not run audio and power wires together.
* Set reasonable goals:  Plan on spending twice the amount of time you expect, just in case something doesn’t go quite as expected.
* Have backup transportation available for trips to the hardware store.
* Check local laws before using your carputer on the road.  It may be illegal in some areas to have a movies in the field of view of the driver.
* The service or parts department of your local car dealership can usually bring up very high detail views of the components in your car on demand and possibly assist you over the phone.
* An internet connected laptop or PDA in your work area can be a godsend.
* If a product is out of stock, pick a date you’ll be willing to wait for it and stick with it.

Possible Features:
*     Music: CD audio, MP3, WMA, Ogg, FLAC, Sattelite Radio, AM/FM Radio, USB Turntable
*     Video: DVD, VCD, Xvid, DivX, Rear-view camera, TV Tuner
*     Navigation: GPS, Geocaching
*     Internet: EDGE, EVDO, Wi-fi 802.11b/g, weather, live traffic data
*     Cellphone: Bluetooth, USB synchronizing
*     Diagnostics: RPM/Temp/Speedometer, ECU error codes
*     Video Games: Native or Emulated
*     Vehicle control:  Windows, door locks, trunk latch, climate control.
*     Other:  Radar detectors, Printers

References:
MP3Car Forum FAQs
LinuxICE
Car Wiring Diagrams
Customizing Ubuntu 
Sharing iPhone Internet
GpsDrive
Touchkit Drivers
Asus EeePC Car Adapter

In other news….

It’s been nearly a month since my last post – Yikes! Let’s list the new things in my life since my last post:

City – Austin is one of my favorites cities I’ve ever lived in.
Job – Doing IT for a game development company. Who can ask for a better job?
Car – I’m now a proud owner of an Infiniti G35 Coupe. It is quite possibly the best car I’ve ever dreamed of owning.
Game Console – Did I mention the XBOX 360 is compatible with Linux? Definitely topic for an article. 🙂

So what else is new? Ohhh right. Linux Journal put the kibosh on what I’ve been calling my “secret project,” since it’s the largest article I’ve ever written and took about a month to finish. The Journal decided that they don’t want it, I’ll let you guys have it. It’s in exactly the same format as submitted it to LJ. Enjoy!