A Geek’s Guide: How To Pimp Your Car With Linux

Published on November 18, 2008 in How To's, Software by Jesse Casman

Author’s note: I was intending to research and write a piece on how Linux is being used as an mp3 player in cars. I’ve owned a Linux based mp3 player for six years. I was assuming it was not the only solution. It’s not, but as of the fall of 2008, buying a Linux-based mp3 player for your car is not super easy.


If you’ve just started using Linux, you’ve probably noticed an interesting phenomenon. You’ve entered a group of rugged individualists, non-conformists, people who know how to pull things apart and put them back together, people who don’t like being spoon fed. There’s plenty about Linux and the various desktops and applications in open source that’s easy and fun to use. But real Linux nerds prefer rolling up their sleeves and getting their hands dirty.

One branch of this rugged individualism, so to speak, is running Linux in different environments. Just using Linux in your PC? Ok, that’s pretty good. But how about building a Linux system from scratch? Or on your phone? Even better, how about in your car?

Linux as Car Stereo

Using Linux for other things — not just as a stereo — in your car is possible, of course. You can connect in with the OBD-II (On-Board Diagnostics II) interface to the car’s sensor network. This interface has been required on all cars since 1996 and produces quite a bit of data on the functions of the car.

Sometimes this is called a “carputer.” Though a little dated, mp3car.com has a good “Car Computing 101.” Linux may become the operating system of your car in the near future, but that’s probably out of the hands of hobbyists.

Not for Mere Mortals

First, let’s get the really geeky, really great stuff out of the way. Time Killer is probably the pinnacle. The TITLE tag on his web page says “The Coolest Car in the World.” In this case, I would hardly say that’s hyperbole. Time Killer built the Linux car stereo from scratch, modified his dashboard, and put it all together with a touch screen monitor.

There are some other great Do-It-Yourself sites out there as well.

In reality, the quick answer to “Can I put Linux in my car easily?” would be probably… no. Please prove me wrong! But I’ve been using Linux in my car for years, and I’m pretty much a hardware lightweight. So you know where there’s a will, there’s a way.

Homage to the Empeg

The Empeg was, I believe, the very first mass produced in-dash mp3 car stereo. It was called the Empeg Car, and it was first shipped to customers in 1999. It was a fully functional Linux computer that had a “sled” that was mounted in the single DIN slot in your car, just like a pull-out car stereo. The computer’s main display was set to handle playlists and all sorts of information about your music. The faceplate lens was, by default, the blue color, as pictured here.

Lens kits, which included green, amber, and red lenses, were sold separately. In Silicon Valley, car stereo installation places generally knew of the Riocar and would do the installation. Whether they knew it or not, installing a sled and connecting good speakers and a sub woofer was not advanced work for them.

In November 2000, Empeg was acquired by SONICblue Incorporated, which continued to market an updated version of the car player – the Rio Car – until it was discontinued in January 2002. The total number of existing players in the world is about 4000 players.

It was right about this time that a friend told me he had an extra one, and I could buy it. They were considered really good mp3 players but generally too expensive. Somewhere in the range of $800 – $1200. But because they had been discontinued, the price had dropped. I paid $400.

You can still buy an Empeg Riocar at Amazon and other places. But it is often not available, so you’ll probably need to set an alert and keep checking.


Some Technical Details

Today, there’s a slowly fading but still committed Empeg Riocar owner community. This is Linux after all. The community is the real strength. The version of Linux used in the Empeg Riocar is called Hijack and it is hosted on SourceForge, the famous open source projects repository.

Disk drive size varied depending on the model. All models below 60GB were single-drive models, leaving one of the two bays free for the addition of a second disk drive. A lot of my friends added extra disk drives, though I settled for the 20GB. That is, actually, a lot of space for your music.

The player did not come with a radio tuner. An add-on AM/FM/RDS radio tuner module, that installed inside the dashboard behind the docking sled, was sold separately. One DIN-sized car docking sled with four 4v line-level outputs (stereo front/rear) and two line-level aux inputs (stereo). One AC adapter for using the player indoors. One USB cable for loading songs into the player. Here’s a great summary of the different model specs. And extreme details here.


Finally…

It’s tough if you specifically want to run Linux in your car and are looking for a ready-made product. There is nothing like that being sold currently. But with some digging and some effort, there are Do-It-Yourself projects or discontinued products that still have active support communities. The bragging rights are worth it!

About

Open source loving ice hockey playing New Mexican Japanophile

«

»

  • GregE

    I took a simpler approach. An EeePC 900 running Ubuntu Netbook Remix. A cable to link the headphone jack to the car sound system. A 16gb SDHC to store music and Exaile to play it back. A Globalsat BU-353 USB GPS dongle and Viking for software. I have a car charger to drive it all. It takes a passenger to run it, the driver should always be concentrating on driving. Lid is set to shut off screen but not hibernate for music playing. I also have a USB Digital TV stick, but I have never tried it while moving – it would need a strong signal.

    Not as cool as a home built inbuilt system, but fairly easy to set up.

    • http://www.casman.com/ Jesse Casman

      GregE,

      Sounds like a really cool little system, nicely self-contained, making it easy to set up. That’s worth a lot. Where do you mount it? Or does it basically sit between the seats like a connected laptop and the passenger (or you) pull it out to start playing mp3s?

      Jesse

      • GregE

        I have not gone as far as making a bracket or tray, just a small pillow on the center console to balance. I usually start a playlist and close the lid and leave it run. I rarely need the GPS, it would be better with some sort of cradle so I can view the map. As it is it relies on the passenger to navigate. I do not use voice instructions(apart from the passenger), but it can be done in Navit. Off road enthusiasts have all sorts of mounts available. I also use Navit. Both Navit and Viking have their uses.

        The other advantage is that you can unplug and go into a cafe or whatever that has wifi and it reverts to a netbook.

    • http://www.gpscardvd.com/8-inch-2-din-gps-navigation-special-car-dvd-player-for-honda-crv_p30887.html 8 inch gps crv

      They run a customized desktop and doc and even have a demonstration distro based on ubuntu that’s only a 300Mib iso.

  • hotspoons

    I’ve been running a Linux-based carputer in my Subaru STi for about a year and a half now. The hardware is pretty simple – a microATX i945-based motherboard with a core 2 duo 1.8GHz CPU, 1 gb of RAM, a 120 gb SATA notebook drive, and a DC ATX PS. I have a ton of USB stuff – generic audio adapter in the trunk (hooked to an amp), DeLorme GPS receiver, a 4-port hub, Tactrix OBD-II to USB cable (for Subaru and Mitsubishi, works great with Linux Kernel!), hauppauge WinHVR-950 HDTV stick, Philips UVC webcam, bluetooth dongle, the multimedia controls and hub from a modern dell USB keyboard molded into a fiberglass-resin replacement of the cigarette-lighter swing cover, a 7″ touchscreen, and a couple of spare ports in the glovebox from case extenders.

    The 7″ touchscreen (Lilliput 629GL, and Lilliput has great customer service by the way as my last more expensive carputer monitor fried, and they replaced it and credited me the difference) is mounted in a custom double-DIN billet aluminum bezel where the stock head unit goes; the computer is mounted on a metal bracket secured to the back of the glovebox, between the glovebox and the A/C blower. There is also a WRT54G R6 wired to the motherboard via cat 5 running DDWRT linux, constantly trying to get a WiFi connection, so my car can usually get on the internet given a couple of minutes in the same place next to a known or unencrypted network.

    I first loaded the computer with Ubuntu (7.04 was new at the time), but it took like 2 minutes to boot, and the USB hardware detection was flaky.

    Last winter, I pulled the computer out of the car and reloaded it; I spent almost two months of my free time making the most optimized load of Gentoo I could, as well as hacking, patching, and writing software. I used baselayout 2 just as it became stable, and was able to get the computer to boot to X in under 15 seconds, and be useable about 15 or 20 seconds later. I ended up using no desktop environment, but just an auto-logging-in X session with a tuned .xinitrc file and a bunch of looping bash scripts to launch the programs in the proper order. I use Compiz as a window manager, AWN to manage and launch programs, I have every regularly used program (JDash for OBD-II readout and logging, Exaile with a custom UI for music, Navit for GPS/navigation, and an unnamed Python script for watching and recording video and audio from my webcam via gstreamer) positioned to different viewports on the Compiz cube to make navigating my running applications easy. I wrote another unnamed Python script that binds the multimedia keys in the dell keyboard chunk to both operate exaile *and* operate Compiz fusion’s rotate and expose functionality, all view dbus. MythTV is available as a launcher on my AWN dock if I feel like watching TV or playing MAME (while parked). I learned a lot of Python and C in the process (I had to make a ton of changes to the touchscreen driver for X for it to even work with Xorg 7.4) and probably submitted 50 patches and bug reports to various open source projects over those two months.

    I got pretty far writing my own OBD-II (well, actually SSM2) *and* accelerometer (from a WiiMote) logging and viewing application in C using libcwiid and cairo clock as much of the inspiration, and I got the WiiMote to work and move animated gauges, but I couldn’t for the life of me speak Subaru Select Monitoring protocol in C or Python, so I gave up. The java guys have it down pat though.

    The shitty thing is that if I ever want to flash the rom in my car, I need to boot into windows, which resides on an 8 gig partition, to do it, because there are no flashing tools ported to linux for Subarus. That’s my story and I’m sticking to it.

    • http://www.casman.com/ Jesse Casman

      hotspoons,

      Sounds like a super cool project, and pretty excellent that you could contribute back so much. I’m curious, with all that functionality, what do you use it for most? I drive a Honda Insight, a small two-seater hybrid gas-electric car, would like to pull out more info on current consumption, average consumption, and some more data like that. Do you use your carputer for that?

      Jesse

      • hotspoons

        Jesse,

        Thanks for the props. Subarus have been hacked to all hell for a few years, so there is a wealth of information on how to speak to the ECU and modify its contents; unfortunately, I had never messed with programming for serial devices and became frustrated after a week of hacking with no results. Projects like openport, romraider, and jDash really opened up the platform, and with a tactrix OBD II cable (made specifically for Mitsubishi and Subaru) being supported by the Linux kernel with the FTD kernel driver, my car shows up as a device node under /dev/ECU with the help of a udev rule. There are other programs, written in Python or C and GTK, that work with regular OBD-II data (Subaru supports a better protocol called SSM that is higher speed and more robust) that can be used with most other cars.

        Romraider runs great on linux (its a java program), and it has a lot of useful functionality with its logger program, like calculating average fuel economy, horsepower, air consumption, etc. I used romraider to fine tune my boost tables, fuel tables, and spark tables after doing some upgrading as I have it boosted about 7psi over stock, and it supports my wideband O2 sensor through a serial port as well. However, once I got my car dialed in, I just wanted to make sure that I wasn’t knocking, my AFR was healthy, and my boost was in check, so I opted for jdash as it is much easier to see while driving, and you can set up obnoxious alerts when certain conditions are met that are audible through the car stereo.

        Being that my car isn’t exactly fuel-friendly, I haven’t bothered monitoring fuel economy since it will make me sad, but that is something I planned to do if I ever get the will to finish my native C cairo/gtk logger and dashboard. I did start programming it so you can use different data sources, not just subaru SSM.

        • Guy

          I am planning to hook a 9″ AsusEeepc up to my mates Mitsubishi Evo 8, control boost gauge, ECU etc this information was very helpfull cheers!

  • drumrolfe

    Seriously hotspoons, you are my hero and I want to have your babies.

    • http://apps.jooopa.net ret

      hehe… +1 :)

      • hotspoons

        With modern advances in genetics, this may be a possibility. I’ll ask my girlfriend if she is cool with that, and I’ll get back to you.

  • Erik

    I think carputers are cool. Two years ago, I spent days dreaming about how I’d install one in my car and have GPS and all the MP3′s I could want. The system I was looking to build was going to cost me at least $1500.

    Then I bought a Garmin Nuvi with an SD adapter, and FM transmitter for $250, along with a 16 Gig SDHC card. Does pretty much everything I was looking forward to having my carputer do.

    • hotspoons

      I probably spent about $900, not including junk I accumulated over the years (like bluetooth dongles, GPS adapters, MTX amp). It was the time thing that was a larger investment.

  • The Amigo

    Having an empeg as my in-dash player is great, but I wanted more…

    A friend gave me a small form factor P2@300. I swapped its power supply for an M1-ATX so it would auto-on/off when I start/stop the car. Running a bit of cat5 through the car, the two can talk (and having ported flite to the empeg, it can actually talk too).

    Leaving a USB cable dangling, I wrote a hotplug script that would auto-detect my camera and suck all the pictures off it, then queue the empeg to tell me when it’s done. As soon as I get close to home, it connects via wifi and uploads all the pictures.

    I’d like to have it periodically check (whenever near an open wifi) for a special file on my server at home. If present, it would tell the empeg to use its serial to OBD-II connector to stop the car. Then I can call the police and say “someone stole my car, I know exactly where it is, and it’s no longer running.” Perhaps even play some appropriate music/sfx.

  • Pingback: makin257 - A Geeks Guide: How To Pimp Your Car With Linux

  • chadc

    uh,, hotspoons, wtf,? u r like linux hackers dream.

    • hotspoons

      Thanks :) I was the first one at my work to run linux on the desktop, now about 1/4 of my office does (we’re a small IT and web development shop).

  • Kevron Rees

    In addition to the above, probably the largest Linux Car Entertainment System community isn’t listed in this blog: http://openice.org

    They run a customized desktop and doc and even have a demonstration distro based on ubuntu that’s only a 300Mib iso.

  • Pingback: The Technology Blog: A Geeks Guide How To Pimp Your Car With Linux

  • Pingback: Boycott Novell » Links 20/11/2008: IBM to Buy Transitive, China Helps GNU/Linux Development

  • http://rene.conneriver.com Rene

    I’ve also got two empegs and they are by far the best car audio players out there. The interface is still second-to-none in my opinion. Unfortunately at the price it had to be sold at not enough people would buy it. It runs a custom version of Linux and Hijack is a modification of that that offers some nice extras including a small pong-type game.

    It’s too bad that the product had to stop being developed. The programmers were a great bunch and made this thing everything it could be!

    • http://www.casman.com/ Jesse Casman

      Rene,

      Yea, the empegs were ahead of their time, in the best sense of the phrase. Have you had any issues with them? I’ve had mine since 2002 and it’s basically been flawless.

      Jesse

  • Pingback: Gerald Brandt » Weekly Links 20081123

  • Graham Bae

    Nice reads Rami, keep it up :)

    btw I submitted your blog to

    http://php.8ez.com/linuxblogs/

    :D

  • http://www.viejochoto.com.ar/ Wintch

    Cool! Linux everywhere!

  • http://www.viejochoto.com.ar/ Wintch

    Cool! Linux everywhere!

  • http://www.viejochoto.com.ar/ Wintch

    Cool! Linux everywhere!

  • Pingback: 40 Pimp Out Your Ride Blog Posts | Insurance Finder Online

  • http://pulse.yahoo.com/_HNDYQ2WNKLHIGNJOY7DF7NDX7Q Rob Brown
  • Pingback: INSURANCE ON-LINE » Blog Archive » 40 Pimp Out Your Ride Blog Posts

  • Boyd Johnson

    Wow, this is so geeky… and so awesome! If only I was as well-versed in Linux as you guys, I’d pimp my ride too.

    instant car loan approval