Google
ELMP Title

Embedded Linux Mp3 Player

engineer | concept | player | operation | case | market | pictures | software



ELMP and I

The Engineer

I am Oliver Hine, an 18 year old British student and have just finished my A-Levels. My Technology coursework this year was an ELMP, an Embedded Linux Mp3 Player. I intend to study Electronic Engineering at Warwick University next year. I can be contacted by email on

I entered this project in the Young Electronic Designer Awards, where it came 4th nationally in the 18-25 age category.


[ Top ]

The Concept

The market is flooded with portable Mp3 players, in all shapes and forms, all kinds of capacities and capabilities. The Mp3 format is a breakthrough in portable music technology and computer music.
However, I wanted to go the other way. I wanted the use of Mp3 without being chained to a computer, without having to listen through a pair of headphones or a lashup from the headphone socket to my amplifier. I wanted a piece of hi-fi equipment that would act like a normal source, but gave me the capabilities of the Mp3 format.


[ Top ]

The Player

There are two ways of decoding Mp3s - hardware, or through a software algorithm. The hardware solution is ideal for portable players, being robust and small. Companies such as ST have produced decoding chips like the STA013 for this purpose. The software solution is much more flexible. The algorithm can be chosen, the player's operation can be customised and features can be added or removed.

I chose the software route. The software I chose was an excellent program called ELMP, written by members of the Linux community. Ideally, the Linux distribution can be pared down to the minimum required for operation of the player, making it fast, stable and small (2MB).

The software had to be run on a computer of some description. Enter a 300MHz Cyrix II with motherboard and trimmings. This much power was not necessary - I underclocked the processor to 166MHz and lowered the voltage to reduce heat and power consumption, with no effect on Mp3 decoding. Also needed was a soundcard (Soundblaster 16), a network card (3com 3c503) and sources (hard drive and CD-ROM drive).

To control the computer, a PIC microchip was used in conjunction with tactile switches and an IR sensor.
Ouput was a 40x2 LCD display.


[ Top ]

The Operation

User input from the keypad or remote control is detected by the PIC microchip. The PIC generates a scan code (unique to each key or IR sequence, just like a keyboard) and transmits it to the computer by the serial port, COM 1.

The computer itself is running the ELMP software on embedded Linux, which is setup to recieve commands from the serial port. When the computer recieves a command from the serial port, it compares the scan code recieved with a configuration file, where the command you want to perform is defined. It then performs this action on the Mp3 / playlist / player.

The Mp3 decoding algorithm is Mpg123, an open source code developed by the Linux community and shown to be one of the most accurate decoders available.

The decoded Mp3 stream is then sent to the soundcard where the onboard DA converts it into an analogue waveform. The phono sockets on the back of the player can thus be connected to any analogue amplifier.

The computer also controls an LCD screen through the parallel port, which displays player information and various ID3 tags of the Mp3s it is playing.

The player also has a Network Mode, which runs in MS DOS. When the player is starting, it has a 3 second pause during which a keypress or remote command will start it in network mode, where it loads all networking modules for filesharing on a network. If no keypress is detected, the player will resume loading the ELMP software.


[ Top ]

The Case

The case was constructed to standard width and depth for a hi-fi separate.

It was built around a steel tube frame, made from 13mm mild steel tubes welded together. The base panel is 3mm aluminium, and the back and top panels are 1mm mild steel. Fixings are done using clinch nuts and 3mm machine screws.

The panels and frame were sandblasted, primed and painted silk black.

The front panel is 6mm aluminium. The apertures for the CD drive, LCD screen and the holes for the buttons were milled using a Denford Triac CNC machine. The panel was then anodised and dyed black, and then engraved using a V-cutter on the same CNC milling machine. The panel for the front of the CD drive was also CNC'ed from 6mm aluminium and fits the aperture with a 0.5mm tolerance on all sides.

The buttons are made from light gathering perspex rod, which was machined on a lathe and drilled to allow an LED behind each one to provide backlighting for the buttons.


[ Top ]

The Market

The unique specifications of this player include:

  • Line level output, like any hi-fi source - this avoids the common practice of having to use the headphone output of a portable player, which is inferior to almost any standard amplifier. This means that the sound quality of the player is limited only by the amplifier you use, and not internal amplification of the signal

  • Customisable software to fit the needs of the user

  • Networkable with any computer network - using the most recent high speed network cards, 100MB/second could be obtained, faster than USB and USB2

  • Being a standalone player containing a Hard Disk Drive, which have a very cheap price per megabyte, and can be any size the user wishes. Currently, most DVD players will play Mp3 CDs but do not have the ability to store music themselves



[ Top ]

The Pictures

ELMP Image A front view of the ELMP
ELMP Image Corner view of the ELMP
ELMP Image Back view of the ELMP,
showing the phono outputs,
network connection and power supply
ELMP Image The front panel of the ELMP,
after machining, prior to anodising
ELMP Image The front panel being cleaned in alkali
solution prior to anodising
ELMP Image The front panel being anodised
ELMP Image The front panel in black dye
ELMP Image The front panel being engraved on
the CNC milling machine



[ Top ]

The Software

Will be available soon