Alternate, equally out-of-date site.
CAVE stands for
Compressed Audio for Vehicle
Entertainment. CAVE is a
hard disk-based MP3 player that can play audio files from FAT32 disks
written on a Windows PC. The player unit uses a removable IDE hard disk
tray. The caddy can be removed from the vehicle and placed directly into a
drive slot on a PC, or into a special USB dock so that new songs and
playlists can be loaded onto the drive.
A custom head unit with a large graphics LCD and an off-the-shelf
Sony "stick" type controller are used to control the player. An infrared
receiver has been added, making it possible to control the player using any
infrared remote control. In the future
it will also be possible for the passenger of the vehicle to use a Palm
Pilot or other PDA to navigate the music library and cue songs for playback.
An FM tuner option has also been prototyped, providing a complete
solution for those with no existing radio in their vehicle.
The core of the player unit is a Dallas
Semiconductor DS80C320 enhanced 8051 with a Waferscale PSD813 for Flash
program storage and other necessities. A Micronas MAS3507D MP3
decoder IC with a DAC3550A digital-to-analog converter are used for
MP3 decoding and playback. The prototype player was constructed from a
Waferscale PSD evaluation board and an evaluation board for the MAS3507D
from the now-defunct company IMBDEV. The head unit prototype is constructed
from a smaller Waferscale PSD evaluation board
and an Optrex RGB color 240x64 LCD with a SED1353 graphics controller and
The project is a collaboration between Steve Richardson (firmware & hardware
design & debug, prototype construction) and Bill Groves (hardware design & debug).
- Uses removable 3.5" hard disks for up to 128GB (approximately 100 days
non-stop at 128kb/sec)! Consider that at the time of writing that 30
gigabyte hard disks are selling for about $100!
- Removable hard disk carrier inserts directly into PC or into external
for easy management of your song library. The disk uses the
standard FAT32 filesystem for PC compatibility.
- Supports up to 256kbit/sec MP3 playback in the prototype. Production version
will support up to 320kbit/sec. All versions support variable bit-rate
- Volume, bass, treble are adjustable. Auxiliary inputs allow you to
connect other devices or connect the CAVE player in a pass-through fashion,
in-line with your existing CD changer.
- Custom switch mode power supply allows operation from 8-16VDC. Protection
is included for automotive power (protects against double battery, reverse
polarity and load dump). This is in stark contrast to some commercially
available units which actually supply the hard disk with the unregulated
12-14.5V voltage from the vehicle!
- CAVE follows the paradigm of an in-trunk or under-seat CD changer. The
player unit contains the electronics for reading the hard disk and playing
audio. The remote head unit, which can mount in or to your dashboard,
controls the player. Various head units will be available, encompassing the
range from a simple alphanumeric LCD to a full-color 240x64 graphics LCD
- Varying degrees of information display are possible with the head unit.
Artist, track, album, color thumbnails of album covers, etc. are all
- Many control sources are supported, including:
Sony RM-X4S steering column controller,
Sony CD player infrared remote controls and Palm-compatible PDAs. In
addition the head unit offers softkeys or a touch screen.
- Sonique playlist files are supported. The PC
management software will likely use one of these formats for its internal
- Random-play with an adjustable no-repeat feature is planned. This
will allow the user to set a window of 2 to 50 songs during which no repeats
- Your music library is managed via a Windows, BSD, or Linux
application. Playlists are created manually and automatically (e.g.
auto-generation of genre playlists). Eventually "smart agent" type software
is envisioned, where the system will automatically download new music from
the internet and load it on to your player.
- FM Radio has been prototyped and tested, and may be a possible option in the
- April, 2001 - Presently working on the new player design.
- March, 2001 - Designed and manufactured the
color head unit PC board. Here are
two PCBs attached to color displays, ready
to go into the enclosure.
- February-March 2001 - Schematic capture and PCB design for color head
unit controller PCB.
- December 2000-January 2001 - Took a break from Development.
- November 15-30, 2000 - On vacation. Rented a car with a NeverLost GPS
system. Took some pictures of the unit for mounting
- November 5, 2000 - Built an adapter socket to add 32KB of SRAM to the
prototype head unit PCB. Now it should be possible to further prototype
features using real code instead of kludgy prototype code. Changed the play
screen stuff so it looks pretty slick. Next
up is a major design-fest and re-coding for the head unit to player
- November 4, 2000 - Re-connected the development system and brought the
old kludgy firmware up-to-date with the color
display drivers. Only infrared control is available at present (need
to build the touch screen interface circuit).
- September 25-November 3, 2000 - Took a break from development.
- September 18-24, 2000 - Working on mechanical design for the player.
Produced a rendering showing the
drive being removed and another rendering with the drive installed.
The blue part of the case and the end panels are aluminum. The drive bay
and MP3 printed circuit board mount inside of the case.
- September 16, 2000 - Mocked up touch
screen keypad to verify size of on-screen keys. Seems to be reasonably
sized to have a full QWERTY keyboard implemented on the touch screen. This
will be used for searching for artists/tracks.
- September 10, 2000 - Successfully rewrote proportionally-spaced font
rendering routines. Most of the elements are now in place to re-build the
head unit with the color display for actual operation. Until now it has
been used standalone to develop code for the display.
- September 9, 2000 - Experimented with album cover thumbnail display (see
screenshots above). Results are very encouraging. Due to limitations with
the configuration of the display controller, only 16 colors are available
on-screen at any time. Fortunately the palette can be chosen from any of
4096 colors, so with some creative color reduction techniques, an album
cover can use 14 custom colors plus black and white (used for text display
on the left of the screen). It won't be possible to display the 'skins'
while album covers are on-screen because of the color limitations. The
best example is probably this RHCP album cover.
Some covers such as the Orbital cover have
too many colors to look good. In cases with too many colors, perhaps the
detail of the picture would be more useful instead of the colors.
Conversion to greyscale is a possibility.
- September 7, 2000 - Received the color displays for the head unit today.
I connected one onto the eval board
I was using for the head unit (after removing the old monochrome display).
With a little bit of code I was able to get some simple graphics to work. I
then wrote a simple font rendering routine to
display 6x8 fixed-width fonts with adjustable
foreground and background colors. Once the simple font rendering
routine worked, I moved on to graphics,
specifically the CAVE logo that's at the
top of the page (thunked down to 16 colors and converted with ImageMagick
Convert and a custom C program). The pictures don't do the display any
- September 3, 2000 - Progress is good on the schematics for the first
real board design. The intent is to produce five boards to test out the
design and work out any remaining bugs. Once these five have been produced
and debugged, additional boards may be made depending on the level of
interest from friends. The first boards will support both the MAS3507D and
the STA013 MP3 decoder ICs.
- August 28, 2000 - Tested 60GB Maxtor disk with only half-success. Must
investigate power supply issues.
Constructed astable multivibrator circuit
for Sony RM-X4S wired "stick" remote controller.
Connected to micro in head
unit, wrote code. Controller is working as expected, returning unique codes
for each stick position. Head unit can now be controlled from stick
controller, an infrared remote, and the front-panel softkeys.
- August 27, 2000 - Infrared remote control support added, working with
existing head unit and software in a primitive fashion. Advanced features
will come with protocol and code re-design. At this time only Sony remotes
- August 26, 2000 - Demo for the "investment board" (i.e. a bunch of
friends) at Purgatory
- August 25, 2000 - New power supply prototype
board solves "skipping" problems due to noisy power supply.
Tighter parts placement and
a ground plane on the entire rear of the PCB
helped. Need to find extremely low
ESR/high surge current capacitors to further improve design. Many lessons
learned for final board layout. The +3.3V and
+5V supplies now reside on their own board.
Lots of bench-testing took place to get
- August 14, 2000 - Road testing player during commute to/from work.
"skipping" problems in playback. After much diagnosis and investigation
it seems to relate to power supply noise on the 12V-12V DC-DC converter.
- August 22, 2000 - Ran CAVE off of two 6V 10Ah lead acid batteries for
over an hour. Conservatively it should run for at least 6-8 hours on these
batteries. MP3 boom box anyone?
- August 21, 2000 - Implemented a super-cheesy protocol for head unit to
player communication. It's now possible to navigate the directory structure
and play songs and playlists from the head unit.
- August 14, 2000 - Removed command-line debug interface in favor of a
VT100 single-key-driven interface. Much easier to use from the Pilot.
- August 9, 2000 - Implemented C stdio library functions for fopen(),
fclose(), fread() and fgets(). Wrote code to read and play Sonique
playlists using these routines. This makes it easier to use the Pilot as an
input device since it reduces the amount of interaction necessary.
- August 8, 2000 - Many bug fixes to FAT32 code fixing issues with
deleted files, returning to root directory, etc.
- August 6, 2000 - First mobile test using
Palm Pilot for control.
Successfully played two songs on trip from home to a gas station and back.
Command line interface is very cumbersome to
use via Pilot. To get audio
into my stock Mazda radio, I reverse engineered some of the pins on the back
of the radio to get a line-level input for the
- August 5, 2000 - Connected power supply to
prototype, seems to work in the lab.
- August 4, 2000 - Constructed first power - very noisy, but will test anyway.
- August 2, 2000 - Power supply prototyping components ordered from Digikey
- July 31, 2000 - Samples of Linear LTC1775 finally received.
- July 19, 2000 - Ordered samples of Waferscale PSD835G2, a larger package
version of their PSD8xx series. It should be possible to implement the IDE
interface in this part in addition to using it for flash program storage,
battery-backed SRAM (for resume feature), and general peripheral decoding
- July 16, 2000 - Put unit into Hammond
Manufacturing plastic case. The front of the
unit has the removable drive bracket and the rear of the unit has the audio, power, and serial
connections. CAVE web site goes online!
- July 12, 2000 - Saw another MP3 chipset from ST at their booth at the
Boston Embedded Systems Conference.
- June 30, 2000 - Found Linear LTC1775 and a great application note for a
high-current 12V to 12V DC-DC converter. Ordered samples.
- Late May/Early June - Took a break from development
- May 13, 2000 - Wrote
proportionally spaced font rendering routines for a
nice 240x64 monochrome LCD. This will be similar
to the display I end up using in the head unit. These pictures are just
mockups of what the interface might look like.
- May 2, 2000 - Sony "rotary commander" stick controller received and
reverse engineered. Unit "outputs" various resistances depending on which
switches are activated. Strange, but fairly easy to interface with.
- May 1, 2000 - I2C communications from microprocessor to MP3 decoder
chip and DAC working. FM tuner now connected through DAC's auxiliary inputs.
- April 30, 2000 - Prototyped FM tuner
using a Philips evaluation board. Able to receive many stations with no
antenna and shielding, and many more with an antenna and a shield.
- April 28, 2000 - Optimizations to the interface for the MP3 chipset
(using synchronous serial mode with the internal UART) allows for 320kbit
audio playback from contiguous files on FAT32 disk.
- April 26, 2000 - 128kbit audio working from IDE disk (FAT32, but
playback not following FAT - assumed contiguous files)
- April 25, 2000 - Constructed new IDE interface on a
Waferscale PSD8xx/8051 evaluation
board. Ported old code to new board.
- April 18, 2000 - First sputtering bits of audio (Toad The Wet Sprocket's
Amnesia encoded at 56kbit) from MIDIbrick/IDE kludge.
- March 29, 2000 - Kludged
an IDE disk onto the
development board. Able to read/write raw sectors.
- August 1999 - Received IMBDEV eval board for Micronas MAS3507D &
DAC3550A. Runs bit-banged from PC parallel port.
Remember - When you Pirate MP3s, you're