3 minute read

This page describes my efforts for constructing a highly integrated indash computer system for my car. The basic idea behind this is to have a low-power, solid-state computer in the double-DIN stereo slot with an LCD display that can play mp3s, radio, show GPS maps and perform OBD Diagnostics with minimal user intervention.

Concept diagram of the indash computer

See the design notes for why I took this on and how I picked the platform, and the progress log for how it unfolded.

Hardware

The Computer

PCM-5820 is a low-power, pentium level, single board computer from Advantech. It is adequate for running a light version of linux and playing mp3s. It has built-in video, ethernet, serial ports, parallel port, USB and sound. The system runs on a single 5V supply and consumes about 8 watts typically. I attach a CompactFlash to the IDE connector for storage. This ensures that the system is solid-state (no hard disk).

Advantech's PCM-5820 single board computer

Power Supply

The power supply is based on National Semiconductor’s linear regulator — LM1084. Input voltage is in the range 6.4V to 20V and output, a steady 5V (or so it is hoped).

12V linear regulator schematic

The diagram above is for a 12V design, but the 5V version is identical, just a different chip.

Audio Amplifier

The output from the computer board is pretty low power. In order to power car speakers, I need to amplify the audio using the 10W + 10W amplifier shown below. It is available for purchase from Quasar Electronics.

10W + 10W stereo amplifier board

Radio

D-Link USB radio

The radio used for this project is an off-the-shelf USB radio from D-Link. The USB link is used for controlling the radio frequency. The audio out from the radio is connected to the audio-in on the computer board. Simple enough? Linux kernel comes with a driver to control this radio (lucky me!)

Keypad

The parallel port will be used to monitor the state of five navigation keys. There is a simple parallel port programming library called parapin for doing this. Hardware interface diagram coming soon…

LCD

I am still searching for an appropriate 320x240 TFT LCD to interface with Advantech’s PCM-5820. Another hurdle is setting Linux FrameBuffer to that resolution.

One candidate is Sharp’s LQ050Q5DR01 — a 5-inch active matrix module with exactly the 320x240 resolution I am after (76,800 pixels, 262,144 colors) in a 119.4 x 89.1 x 12.7 mm outline, which is small enough to sit in a double-DIN opening. Datasheet (PDF, 21 pages — Sharp spec LCY-02002, January 2002).

Software

There are two different components that I will develop for this project.

  1. GPS Mapping and Routing — called TMRS
  2. OBD2 Interface — software for talking with BR3 and fetching OBDII codes.

Apart from the above two, the main user interface for the system will be designed with the use of DirectFB library. X-Windows is simply too bloated for an embedded system and introduces too many dependencies.

The interface is built around big, unmissable targets — the driver should never have to hunt for a button. Five navigation keys and a menu key run everything.

Main menu — nine large buttons for Radio, mp3, GPS, OBDII, Internet, System, Contacts, Photos and Linux

Radio screen with nine station presets, signal meter and frequency readout

Photo browser showing a train, with slide show controls

TMRS runs as a server, so it can be exercised from anything that speaks to it over the network. This quick and dirty C# viewer asks the server for a map by address or by latitude/longitude and draws what comes back.

TMRS Viewer — a C# client fetching a map of Tampa from the TMRS server

Video

The prototype running in the car.

Pictures

More photos of the build are in the Indash PC gallery.

Tags:

Updated: