[ale] Report on vehicle MP3 Player

Byron A Jeff byron at cc.gatech.edu
Mon Nov 20 11:56:04 EST 2000


Over the last year or so I've been piecing together a MP3 player for use in
my car. This weekend I finally fielded a working prototype. I thought the
list might be interested in the setup, results, and whatnot.

Hardware Setup
--------------
The box has two primary goals: Carry all my music and carry it cheap. To
accomplish the cheap aspect I fielded the box with only off the shelf 
components:

- AMD K6/2 350Mhz CPU
- PCChips M571 all in one baby AT MB with SIS video and CMI 8330 audio
- Western Digital 8.4GB disk
- 64MB SDRAM

This setup has been sitting in a normal case and functioning as an office
MP3 player for awhile now. But a scheduled trip to Savannah prompted the
move to making it portable. This is a case/PS issue.

For the power supply I bought an Aztec laptop DC/DC converter from Marlon P.
Jones and Associates (www.mpja.com). It's a 43 watt unit that generates all
the PC voltages, power good, and even a -26V reference for driving LCD
contrast all from a 12-20V DC source. The cost is $14.95. The AT power supply
cables were built by cutting off an internal flat ribbon cable from a
parallel power connector and hooking it to AT power and disk power connectors
cut from an abandoned PC power supply.

Scrounging up a case is always a task. I settled on a plastic organization
case from the Home Depot. Dimensions approximately 14x9x2.5. This case had
removable buckets and was deep enough to handle the CPU fan and RAM sticking
up from the MB. The clear plastic lid and easily drillable plastic sides
sealed the deal. $14.95. 

I mounted the HD and MB on the case using 1 inch standoffs. The power supply
takes standard 4/40 screws and is mounted to the side of the case. I settled
on but not yet installed a 1/4" mono plug for a power connector and an 1/8"
plug for the power supply switch connector. Right now the power switch is
a standard light switch in a shallow box mounted to the underside lid of
my truck console.

The unit is interfaced to the car stereo via a CD to tape adapter. RatShack
$21.95. Pricey but this unit had the correct functionality so that my auto
sensing auto-reversing tape desk didn't kick it out upon insertion.

The machine is located under one of the back seats and is powered from the
12V power socket.

Note that currently the machine has no external user interfaces. More on
that later.

Software Setup
--------------
KISS. The machine has a standard Slackware 7.0 installation and plays MP3s
using mpg123. The CMI8330 requires the ALSA sound drivers. I find that ALSA
isn't too difficult as long as you load and use the oss and oss_mixer modules.
Experimentation with the 8330 chip has shown that it just doesn't operate too
well at 44100 Khz. So currently the machine outputs sound at 22 Khz.

The play currently operates in jukebox format. It has a continous play
script that will scan all the mp3s in the /mp3 partition, randomize them,
then play the random list. At last count there were over 500 pieces taking
nearly 30 hours to play.

Results
-------
It nearly meets expectations. Basically I turn the machine on, and select the
tape player on the truck. It selects songs and plays them. Much of the music
that I own, including several CD's that are missing, cracked, or scratched
are now available in the car. And with the handy carrying handle, hole for
the KB, and flippabil lid, the unit is transportable enough to bring into
the office, drop in a network card, and upload/play music outside the truck.

Next Steps
----------
There are a few items I'm disappointed with. First and foremost is simple
sound quality. Between the 8330 sound chip and CD/tape interface there are
hiss and balance problems. At some point I'll need to search for a better
onboard sound card and also investigate the use of a stereo FM transmitter.
I tried a $30 transmitter from the RatShack but the performance was horrible.
I may investigate getting a FM10A kit from Ramsey Electronics and see if it
does any better.

The second problem is getting the unit on and off. Modern vehicles simply do
not have any simple accessory interfaces. The power sockets are on all the
time and power connectors for the radio and whatnot are inaccessible. It looks
like I'll end up intercepting a fuse connection from the fusebox and using
it to signal the system when the truck is on/off. A secondary issue is that
electronics lose power when the engine is turning over. Eventually I'll need
to add a battery to act as a UPS when the truck is starting.

Software wise there are a few directions to go. First is coupled with the
power issue above. A machine fscking the disk each boot isn't real cool. 
I've taken a look a powerd and I think it'll help. The other idea is to have
basically all the the filesystems read-only or ramdisk based so that power off
has to effect upon the system.

Also the jukebox format is interesting. You come across interesting stuff when 
you just play randomly.  However some measure of control is required:

1) All CDs do not rip at the same level of volume. Instead of trying to 
autocorrect I think I'll just KISS and simply drop a mixer volume setting in
the directory with the MP3 for an album because each album is in its own
directory. So before each song I'll reset the mixer volume.

2) There needs to be a couple of useful selection mechanisms. One is switching
from random to directed mode for the artist, album, or genre so that when a
song for a particular category pops up, you can switch to just that artist.

3) Unfortunately I'm not the only listener ;-) . So having both categories on a
per person basis, and the ability to build adhoc categories like 30% of
my stuff, 50% of the kids stuff, and 20% random. Also have 'hate em' picks so
that a group of folks can pick a consesus of tunes to listen to while rejecting
music that makes one of the group wretch violently.

4) I need to add permanancy to the random list selection. Currently the box
regenerates the list each boot. However with 30+ hours of music (and I'm
ripping 9 more CDs even as we speak) it'll never all get heard in a single
session. It would be better to play an entire session though carrying over
between reboots. So then it'll be no repeats all the time. I'm still working
out how to manage this with a all read-only filesystem. I'm thinking of
adding a small EEPROM or a PIC microcontroller with EEPROM to help manage
that. Basically generate the list once and store the index into the EEPROM.

Lastly but the one I'll probably tackle first is that picking up the title,
album, and sometimes artist on a song isn't always obvious. I had been thinking
of an LCD display interface, but the more that I think of this system as
custom radio, the more I think that a disk jockey is in order. I'm planning
to getting a speech synth hooked into the system to announce the songs that 
have played and probably the artists and albums of the ones that are coming
up. A logical next step is to extend everything to a voice interface out of
the system. I think I'll still need a button interface in however because 
the environment is too noisy to have useful voice recog. I'm trying to get
festival together so that it can announce what's played and what's coming up.

Anyway I just thought that ya'll might be interested in the project. If anyone
can suggest a onboard sound system that works really well, I'd sure like to
hear from you.

Later,

BAJ
--
To unsubscribe: mail majordomo at ale.org with "unsubscribe ale" in message body.





More information about the Ale mailing list