Specifications

ideal for playback as a stream of data remote from where they are stored. This is not a
new idea; it is commonly done on a PC, where people can play MP3s that are store on
other computers on a network, but has been unavailable for playback away from
computers. Finding a solution to this spatial problem was the intention of the current
thesis, i.e. to build a stand alone audio device capable of playing MP3 data that is stored
on and retrieved from network computers.
1.2 Solution
To build this player a mix of hardware and software solutions were required. An Atmel
based embedded networking solution was chosen as a development platform. This
platform, known as the Ethernut [9], uses an Atmel ATmega103 processor based
development board with a Realtek network interface and 32Kbytes of SRAM. The
Ethernut was chosen because it is the result of an open source hardware and software
project, which allows for greater flexibility and reduced cost.
The software developed for the Ethernut is a real time operating system with thread
support and a fully functional TCP stack. This provides a networking software
development environment similar to other operating systems, where APIs are provided
to implement connections, sending and receiving via sockets. All of the protocol and
stack management are handled by the operating system. Software was developed on this
platform to communicate with a server program that was developed on a Windows PC.
The server program interacts with a play list file that is created by Winamp [18] to
select the required file. The server then reads this file into a buffer and sends it to the
player over a TCP connection. The player takes this data and stores it into a buffer
where the MP3 decoder can read it. The MP3 decoding is provided in hardware by a
decoder called the VS1001k by VLSI [13]. For development purposes, the decoder was
purchased on a development board from YAMPP [19] and was connected to the
Ethernut board. The decoder was integrated with the Ethernut to receive MP3 data from
a buffer, which was filled from the network connection, to successfully play MP3
songs. Controls were added to give the user the ability to play/pause, stop and go to the
next and previous tracks, and an LCD was integrated to display the current song number
and song name.
3