MP3 Player

AVR Project 조회 수 24838 추천 수 263 2004.03.04 15:21:23



MP3 Player


I decided to do this project for several reasons: first I like music, second I have a ton of MP3 and third I wanted to be able to listen those in my living room. 

I began the project with one major restriction, the printed circuit board of MP3 player MUST be single side in order to do it myself.  After 2 months of drawing, I saw that it was a possible project. 

One major characteristic of this player was the bi-directional remote control had to give these informations: directories and songs on a small graphic LCD.  In the comfort of your chesterfield you can browse and listen to 30 gig of MP3.

The MP3 player is built around an Atmel ATMega128 running at 16Mhz. The MP3 decoder is a VS1001k who gives a crystal clear sound. The USB interface is done via FT232MB who makes USB very simple.

In this project I found two big difficulties: understanding FAT32 and transmitting a large quantity of information via InfraRed.

In order to understand  FAT32 I used these tools:

- Windows software for checking the hard drive data on sector like WinHex.

- Microsoft FAT32 white paper's reading (not so easy to understand)

- Other source code of FAT32's analyzing  could be useful


Infra Red Communication

Devices liked GP1UD26xk (infrared sensor) needed to have a density of 1's lower then 45% so the Manchester encoding MUST be used combined with a speed of 2400bps maximum and 2 stop bits.

Manchester encoding gives you 50% of 1's. Each time you send "1" you will send "10"  and for "0" you send "01".  The utilization of 2 stop bit by bytes will gives you approximately 45% of 1's.  The fact is that you loose 50% of the original speed but that's the only way to do it.

ATA Interface

The ATA interface in PIO mode is very simple, if you know how to interface any MCU peripherals this is the same method.  You have address bus who controls the register you wanted to write to or read from with a 16 bits data bus.


MP3 Player

  • IDE ATA interface
  • FAT 32 with long file name support
  • USB interface
  • On board power supply (input from 7v to 20v DC)
  • Bootloader firmware upgradeable via USB port
  • Infrared bi-directional interface

Remote Control

  • Back light graphic LCD
  • worked with only 2x AA batteries
  • In sleep mode sink less than 1uA (2.5mA in active mode)
  • 5 buttons for easy navigation
  • Long range (more than 20 feets)



Click on the pictures to enlarge

MP3 Player

Remote Control


PCB with Hard Drive

Inside the Remote Control



Sources codes & Schematics

-MP3 Player Schematic in PDF format

-Remote Control Schematic in PDF format

-IR Transceiver Schematic in PDF format

-MP3 Player Source Code in ICCAVR format

-Remote Control Source Code in ICCAVR format

-MP3 Player Bootloader source code for MegaLoad in ICCAVR format "via usb"


List of Articles
번호 제목 글쓴이 날짜 조회 수