Project ICECE

Posted on Jun 16, 2004

Ever since reading about the Mazda MX5 MP3 player some years ago I’ve been interested in adding the ability to play digital audio to my car. At the time I was driving a company car, so modifications were not permitted. Since then I’ve switched jobs, changed cars a few times and switched, but the interest in getting a large chunk of music into the car without carrying around and managing a big stack of CDs has remained.

When looking into how to build the system I was struck at how most people use low-end PC systems. These are, of course, not really much more than toy computers and I wanted something a little more stable and reliable. Given the continuing march of technology and the need to replace everything every four years or so I was lucky to pick up an E450. This is an ideal machine:

  • multiple processors to ensure that mp3 decode is not interrupted by other process activity,
  • good internal storage capacity, including the ability to take advantage of software RAID for reliability,
  • large memory for good caching of tunes being played,
  • easily expandable to allow for future projects,
  • excellent support for Solaris 10, so that I can test bug-fixes, etc. while on the road if necessary. This also means that there is wide application availability (Oracle, great Java tools, etc.)

A couple of people expressed concern at this choice of machine, for a variety of reasons:

  • It’s too big: Whilst not small, the machine fits nicely in the luggage area of my car. See the pictures for details,
  • It’s too noisy: This is just wrong. When booting the machine is quite noisy, but this settles to a re-assuring hum once the Solaris platform management code kicks in to monitor the system.

The system arrived with three power supplies and, though it’s clear that this is good for reliability, the space taken by one of them proved convenient to store the power inverter necessary to get from the in-car 12V supply back to the 230V required by the system. It’s possible that I might build an alternative plug-in power supply unit that didn’t bother with the inverter, but that’s a project for another day.

Audio output is supplied by an Ensoniq AudioPCI and Solaris drivers from 4Front. I was somewhat worried about this part of the project, after originally planning to use an Ultra 60 (which has built-in audio), but it all came together very easily.

The current weak link in the system hardware is the connection from the soundcard to the car stereo - it’s one of those cassette tape based systems. The cable runs from the machine in the back of the car through under the passenger seat and into the cassette player. Replacing the car audio head system might allow for an improved approach, but that costs money (zero cost so far!).

The software used is very simple at the moment, nothing more than an rc script that plays random tracks from the mp3 archive stored in the ~80G /export/mp3 filesystem. That filesystem is constructed by concatenating a bunch of 9G SCSI disks (the root filesystem is mirrored across a similar set of disks). There is no control interface, though the flexible manner in which the system has been implemented means that there are lots of possibilities. General management of the system is performed using an Apple Powerbook and an ethernet cable. The ability to use a normal cable as a cross-over is a great feature of the Apple machines.

Future projects include:

  • A control interface: There are many approaches I might take to this. Currently favoured is to install the Sun Ray Server Software on the machine and then mount a Sun Ray 150 on the passenger side dash. This would fit well with…

  • In car video: Taking three kids on long car journeys is always boring. If each of them had the option of watching their choice of films, television programs, etc. the time would pass more easily. With a four port ethernet card in the E450 it would be simple to connect four Sun Ray 150 terminals and allow both general control of the system and also support each child choosing a video stored in the RAID array. This would probably also require upgrading the RAID array from 9G disks to something larger.

    Given passengers the opportunity to use the system as a general purpose computer would also fall out of this approach.

  • Improved audio output: See the note above about using the cassette based system. Basically, it sucks.

  • Physical improvements: The E450 still has casters at the moment, which is useful when I want to move it around to work on the cabling, etc., but the machine would be much more stable if they were removed. The cabling itself is a little awkward, particularly the audio through to the front of the car. Removing the plastic door sill covers and threading the cable underneath would be better.

Oh and ICECE is In Car Enterprise Class Entertainment, obviously.

Here are a couple of pictures - click for larger versions and more.