Department of Electrical and Computer Engineering


Design Project

Car MP3 Player


The following document describes the progress made on the car mp3 player. The car mp3 player was proposed to play compressed music stored digitally on a hard drive through a car stereo, as a replacement for conventional car stereos. The device will have a simple interface that is unobtrusive, easy and safe to operate while driving the vehicle. Also, the device will need to be shock and temperature resistant due to the harsh environment the vehicle will provide.

The computer contains 1 hard drive for storing audio, and a sound card which is hooked up to the car stereo. Songs are stored on the hard drive in mp3 format, a compressed format capable of storing a 4-minute stereo song sampled at 44.1 kHz CD-audio quality in about 3 to 4 megabytes. There is no detectable difference between the audio heard from the mp3 player vs. the audio heard from a CD player. Each gigabyte (GB) of drive space will hold approximately 25 audio CDs. The driver will use a keypad to select and play songs.


There are several assigned tasks:

  1. Power supply:

Investigate power supply strategies. Document various options and the pros and cons. The most efficient power supply will be a 12V DC-DC converter that can take the shaky car battery power and convert it to a stable source for a motherboard. This power supply will also need to monitor the accessory line of the car to see when the car is turned on and off. This is the same line that is used to tell conventional car stereos when to turn on and off. A major difference between this and a normal car stereo is that this one can be damaged if power is simply shut of. A read/write file system can be destroyed if it is powered off before a write to the file allocation table is completed. To avoid this catastrophic problem, our software will have to monitor the accessory line and when it sees that the car has been turned off, it will shutdown the computer properly. The power supply will also have to monitor the accessory line and turn itself off after a time delay that allows the computer the shutdown first. Likewise, when the car is turned on, the power supply will have to turn on as well.

2. Operating system:

Get to know Linux real good. Set up a sample system that is as slimmed down as possible. A default install of Red Hat Linux takes about 700 MB. We will only use a couple of megabytes of that. Also, RedHat may not be the best choice for making a small distribution. Check out other options which specifically for sound card functionality, some basic network services (Telnet, ftp, etc.), Perl, and the software. The system should also mount the file system as read only and it should boot itself from a RAM disk so that if it is powered down accidentally, it cannot corrupt its file system. It is important to slim down Linux for a few reasons. We dont want to waste space that we could be using for extra mp3 files and in the long run, it might be nice to burn the operating system and software to a ROM chip so that we can have truly embedded linux stereo system.

3. Interface:

Design the interface for the system using Perl. The interface should be as similar to a regular stereo as possible. The interface will need to read in mp3 file names from a default directory and display them in a usable fashion. While building the interface, it is important to make the most common tasks require very few keystrokes. For example, user must be able to change the volume at any time and from any menu.

4. Software & output device:

Mpg123 will be the program used to decode mp3s. Write code to play mp3 files from Perl. Design the display screen that will be used when the software is playing songs. This should display the song name and album. Search for hardware, with emphasis on small components. Try to put together a single board system in a small rack mount case. Investigate the cost of wireless NICs. Write Perl code that monitors a line on the serial port and performs a system shutdown when the line goes low.

Here is the proposed date for the completion of each task:

January 15th, 2001 All hardware parts ready.

January 22nd, 2001 Progress report 1, Linux OS, and mpg123 software ready

February 19th, 2001 Progress report 2, interface, and display screen ready

March 17th, 2001 Alpha version of the design, Poster presentation

March 26th, 2001 Networks interface ready and revision of all different tasks.

April 6th, 2001 Final Design, Prototype, and final report

Completed Tasks


All the parts have been made really for the project. The parts are provided by the group members or ordered from electronics suppliers. Here are the parts:

1. Power supply

  1. Keypad
  2. LCD display
  3. Motherboard
  4. Chassis
  5. Memory
  6. Hard drive
  7. Operating system
  8. Sound card
  9. Network card
  10. CD-ROM

Linux operating system

The Linux operating system has been installed in the hardware. The size of the OS has been slimmed to about 75 MB at this moment. Further reduction in the size is necessary as our hard drive has only1.2 GB, and we want to install as many songs to the hard drive as possible. There are several spots can be eliminated such as the GNU C compiler and development libraries under Linux. This will make the OS start-up time even shorter and also the size will be reduced.


The mp3 decoder, Mpg123, is a real time MPEG Audio Player for Layer 1,2 and Layer3. It has been tested working fine on our Intel 100 MHz machine with Linux OS.

Uncompleted Tasks

The following tasks must be completed before the final report will be completed:

1. Design the display screen from Perl. The screen displays song names and album.

2. Design the interface for the system using Perl.

3. Second progress report

4. A poster presentation will be created to present our proposal.

5. Design networks interface to offload the mp3 storage to another machine via over the Ethernet.

6. Revision of the design

7. Final report