In-Vehicle Navigation and Entertainment Computer Project

August 11, 2005
By Christopher

I have been receiving a lot of questions on my in-vehicle computer project. It’s about time that something was posted on the site so that a web page can be referred to instead of typing something out in email all the time.

All of the software issues have been solved, including OSS -> ALSA integration so this project is now about to move from “proof of concept” to first “production prototype” for lack of a better word.

The hardware and software configuration is as follows.

Hardware

  • VIA EPIA M10000 Nehemiah (1 GHz Cyrix C3-2 CPU) mainboard w/
    • VT8235 Southbridge w/ VT1616 AC97 5.1 Audio
    • CLE266 Northbridge (S3 graphics)
  • Creative Labs Audigy 2 NX USB
  • Fujitsu 2.5″ 40GB HDD
  • 512 MB RAM
  • Morex Cubid 3688 Mini-ITX Case (wish had waited for smaller Travla C134)
  • D-Link DSB-R100 USB FM Tuner
  • Garmin GPS35PS GPS Receiver (vehicle external mount)
  • Digital World Wide motorized display panel with LCD
  • Some form of 12V power regulation

Software

Configuration

Audio

The configuration is complicated somewhat by the use of the D-Link USB FM Tuner. This device requires an analog input in order to listen to the radio. The tuning/power is done via the USB bus but the audio portion itself is done in analog output. If there was a USB tuner that was completely USB based one of the sound cards could be eliminated.

As it stands, the onboard sound card is used for system sounds and the FM tuner is fed into the MIC IN on the onboard sound. The onboard sound is then sent to the Audigy 2 NX’s LINE IN via the onboard LINE OUT. In order to do this I currently have arecord being piped with aplay but the better way to do this would be to have JACK handle the plugging. This is on the “to do” list still.

One of the caveats of this configuration is that the LINE OUT from the onboard VIA is only stereo (i.e. 2.0 sound). This is not that big of a problem given that the only audio coming from this hardware is FM audio (2.0 sound) and the system sounds (likely mono only).

When the sound is redirected to the Audigy 2 NX it is converted into surround 4.0 sound as per the standard car audio configuration (left to right (balance), front to rear (fader)).

User Interface

FVWM is used as the X Window window manager. It was chosen because it is very fast/lean and more importantly, it can be configured to look like just about anything you want.

Several looks were tried out for the user interface. In the end it was decided to make the system have the same look and feel as the vehicle’s current dash and instrumentation. It still needs work but is on track in general.

GQMPEG was chosen as the user interface to the audio system because it is so configurable. It can be made to look like anything you could want and it also has a built in interface to radio devices.

Here is the latest screenshot of the audio user interface:

This is a fully functional prototype:

  • INFO takes you to a screen showing information about the currently playing MP3.
  • PLAYLIST is the current playlist
  • PRESETS is the current set of presets (including playlists of MP3s, playlists of radio stations, etc.)
  • PREFS is shuffle, loop, etc.
  • CONFIG takes you to the GQMPEG configuration dialog

Along the bottom:

  • “/” is return to the main screen shown
  • The next button is the screen to create playlists.
  • UP/DOWN move through the playlist
  • PLAY and STOP should be fairly obvious.

The critical eye will notice some font and graphics issues. They have been noted already.

Navigation Interface

gpsdrive was chosen because it is the most highly developed Linux GPS software available and it can be made to look suitable for this project via the “pda” and “1 button” command line switches. This makes it ideal for touch screen usage.

Additionally, there is some additional code available to allow the automation/display of raster data sets on the fly via a SQL backend daemon (mapd). This part of the project still needs to be finalized.

User Interface

Here is some “eye-candy” of the GPS/mapping interface. This is standard gpsdrive functionality (PDA mode). The GTK theme for buttons, etc. still needs to be cleaned-up and polished to match the direction the rest of the interface is going.

The Map screen:

The Menu screen:

The Status screen:

In Usage

To date most of the testing with the system has been related to merely making things work and making them look half decent. The user interface has been pared down quite a bit in an effort to reduce driver workload. Several attempts were made to drive long distances with the usual tools used to control audio playback in particular. They were cumbersome and distracting and as a result the streamlined interface used by GQMPEG is what was derived from the experience.

Unfortunately, gpsdrive has not been tested in the field as of yet although there seems to be minimal complaints with respect to user interface on PDAs from users that have posted on the gpsdrive mailing list. I am not “themeing” gpsdrive so not a lot of thought has been put into this aspect of the project.

Outstanding Components

The following items still need to be finished:

  • Completion of the FVWM theme for handling the plugged-in programs.
  • Completion of the GQMPEG theme.
  • Integration of a suitable 12V power management system and application of Linux’s “HWSUSP2″ function for quick system restores from disk instead of booting each time the system is powered on. Currently from grub to fully graphically booted is approximtely 50 seconds.
  • Completion of mapd configuration/integration with gpsdrive.
  • Migration of read only operating system disk image to pure flash based configuration

Availability

It is fully my intent to make a set of documents and the bits of program themes that have been written/created fully available to everyone. These components will be made available after they have been “polished” sufficiently so that they look half decent and do what they are supposed to do consistently.

At some point in the future the components may be made available via CVS so that they can be extended and tweaked based upon what people want to do with the items or make them look like.

History

Previous articles about this project can be found here:

  • 11 Aug 2004: Jeep Navigation System
  • 3 Responses to “ In-Vehicle Navigation and Entertainment Computer Project ”

    1. Anonymous on June 5, 2006 at 11:38 am

      It’s been a while since this article was posted, I’d love to see where things are at now.

    2. Chris on July 19, 2006 at 11:03 am

      There is not a whole lot of progress on this part of my Jeep build as the mechanical hardware has been very much on the front burner. I’ve been working on building a high pinion Dana 30 axle with Jeep WJ knuckles and big brakes as well as a full float Dana 44 rear axle with disk brakes. One of these days I’ll get around to posting a page or two with content about these components.

      What little I have done boils down to making a FVWM mixer panel that can be used to control the the voume levels for the different output sources as well as dealing with balance and fade.

      Here is an old screenshot of what it looks like:

      The screen is composed of multiple “buttons” that interface to a bash shell script to set volume levels per device appropriately. Nothing very difficult but tricky nonetheless.

    3. Chris on July 6, 2007 at 9:59 am

      This is a quick update of the direction the interface is taking. It is s still rough and it’ll likely take a even more “iPhone-ish” look with respect to the widget set used. Currently I am messing around with FVWM-Crystal in an effort to add some more “eye candy” to the interface.

    Leave a Reply