kernelthread.com

Empeg

© Amit Singh. All Rights Reserved. Written in 2001


Nomenclature

Firstly, the name related confusion (Empeg, Rio Car, Diamond Multimedia, SONICblue and so on ...) can be removed by the following quote from the Empeg website: " Empeg Ltd was the first company to bring to market an in-dash MP3 player, the empeg car. On November 1st 2000 Empeg was acquired by SONICblue Incorporated, who continued to market an updated version of the car player - Rio Car - until it was discontinued in January 2002. The Rio division of SONICblue was sold at auction in early 2003, and the new owners decided not to purchase the car player support operation which remained with SONICblue, and as a result was discontinued at the end of May 2003. "

For various reasons, I still prefer to call this gadget Empeg.

I got an MKIIa when prices fell to shocking levels. I waited that long to order one not because I am not used to burning holes in my pockets due to gizmos, but because I had long since decided not to install it in my car. I did not have the heart to spoil the stock "premium sound" (sic) set-up in my car, which was an expensive option to begin with. (At this point we definitely have negation overload). For me, the Empeg served as a gadget to hack on and, perhaps more usefully in realistic terms, as a "home" MP3 system.

Developing on/for the Empeg

It is fairly easy to begin software development for the Empeg. A cross compilation development environment can be set-up (typically on Linux) by retrieving one of the few "tool-chains", or for those willing to invest the time and effort, by compiling the GNU compilation suite for cross platform development.

Developing "on" the Empeg is primarily to satisfy the urge to do so, because it can be done. Although fine for small pieces of code, compiling anything substantial should take eternity, as is expected for a (relatively) low-memory (16 MB for the MKIIa) machine - clock frequency and instruction set complexity of the processor notwithstanding.

Nonetheless, it is useful to run a more complete Linux subset on the Empeg, for the default software does not allow you to do much (not that you are supposed to do much, officially speaking). The ARM port of Debian Linux lends itself readily for Empeg-worthiness. Please refer to my Empeg Debian HOWTO for details (or here on the Rio Car page).

TCP/IP over Infra-red on the Empeg

If you have a Linux computer with an IR port, it is fairly straightforward to communicate with the Empeg using TCP/IP over IR. Here is a HOWTO.

Samba/Apache on the Empeg

In order to run Samba (you might want to do this if you wish to use Microsoft Windows software to manipulate files on the Empeg) and/or Apache on the Empeg, the only support needed from the Linux kernel is System V IPC. The size of the corresponding object file (ipc.o) is about 27 KB. Moreover, this cannot be had as a loadable module. Assuming a Debian installation, both Samba and Apache will run out of the box on the Empeg provide IPC support is compiled in.

Typical RSS of Apache (1.3.9 from the Debian potato distribution) is about 1.3 MB. Typical RSS of Samba (smbd + nmbd, 2.0.7 from Debian) is about 1.1 MB. Of course, these need not be run at the same time, and Apache can be configured to run minimally.

Solving day-to-day problems with the Empeg

The Empeg can be effectively used to solve problems regular folks encounter in their daily lives, for example, the Towers Of Hanoi puzzle. Here is an animated Towers of Hanoi (screen-shot reproduced below) for the Empeg. For various other implementations of the Towers of Hanoi, please refer to my Hanoimania page. A screen-shot of "emphanoi" running on the Empeg is reproduced below.

Tar-ball containing the source and binary for emphanoi.

The above tar-ball contains a pre-compiled emphanoi, which can be transferred to the Empeg using one of many methods, the easiest of which if you are using Linux, and you do not have an ftp server (or client) set-up on the Empeg, is zmodem transfer:

The program takes a number as its only argument, which is the number of disks to start the puzzle with. Prior to the animation, the number of disks can be decreased or increased by using the volume knob. Pushing the volume knob starts the animation, during which the knob can be used to vary animation speed. Pushing the top button at any time exits.

Links

I find the following links particularly useful: