I decided to do this project for several reasons: first I like music, second I have a huge collection of MP3, and third I wanted to be able to play them anytime 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 realized this project was in fact ‘feasible’! One major characteristic of this player was the bi-directional remote control. I had to give several information, folders and songs on a small graphic LCD.
In the comfort of your living room you can browse and listen to 30 gig of MP3. The MP3 player is nicely built around the Atmel ATMega128 running at 16Mhz. The MP3 decoder is a VS1001k which gives a crystal clear sound. The USB interface is done via FT232MB, which by the way, makes USB development 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 like GP1UD26xk (infrared sensor) need to have a density of 1’s lower then 45% so the Manchester encoding MUST be used with a speed of 2400bps maximum and 2 stop bits.
- 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
- 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)
For moe detail: MP3 Player using ATMega128 microcontroller
This free embedded project also found using:
- atmega mp3 player
- music paley
- mp3 player with avr microcontroller
- atmega mp3
- meadia player using atmega
- mp3 player using avr