Wednesday, April 29, 2009

DiY: MP3 player with ATmega64 VS1011a and Samsung E700 color Display

This is my new mp3 player.

For this MP3 player is new: the display and a new graphical interface explorer.

Knowing that the display of the Nokia 6100 is an old and extremely poor quality, I thought to exchange it with one TFT display ( higher quality ) , by doing this I thought I make an new interface, and this is the result:

-File type played (VS1011): Decodes MPEG 1.0 & 2.0 audio layer III
(CBR, VBR, ABR); layers I & II optional;

-File type played (VS1033): Decodes MPEG 1 & 2 audio layer III (CBR
+VBR +ABR); layers I & II optional;
MPEG4 / 2 AAC-LC- (+PNS);
WMA4.0/4.1/7/8/9 all profiles (5-384 kbps);
General MIDI / SP-MIDI format 0 files
-File type played (VS1053): Decodes Ogg Vorbis;
MPEG 1 & 2 audio layer III (CBR +VBR
+ABR); layers I & II optional;
HE-AAC v2 (Level 3) (SBR + PS);
WMA4.0/4.1/7/8/9 all profiles (5-384 kbps);
General MIDI 1 / SP-MIDI format 0 files

For bitrate higher than 320Kb/s is necessary to increase the CPU frequency from fuses for 4Mhz to fuses for 8Mhz internal RC

This project is under develop.
Last update 14-06-2009
Download source code
Download the board .max and gerber files
Download orcad schematick
Download PDF schematick
Several variants of this player can be found for purchase here.

Mp3 Player with Winamp skin

Mp3 Player with Synthetic skin

Mp3 Player with Media Player skin Download demo hex fileThe fuse bit be set for 4Mhz Internal RC Oscillator

Mp3 Player with Half Life skin

This player run 2 threads , one for navigating and one for serving data to VS1011.

The last rectify of compatibility of Fat32 filesystem library and Player data service library has increase the transfer rate , in this moment the player is capable to read 256Kbit/s melody at 4Mhz internal RC clock with osccal=199(default), and 320Kbit/s at 4Mhz and osccal=255 (approximately 5Mhz) internal RC clock.

Now i work to one explorer configured from skin file like XML file.

This navigator display the short filename if the long file name is not writed on the name of file.

For support post a comment

This project was abandoned for another more powerful.


Anonymous said...

Foarte tare! Vad ca ai mai facut progrese in ultimele zile, imi place cum arata interfata aia in stil WMP.. Trebuie neaparat sa-i pui si un cip radio daca iti mai ramane spatiu in microcontroller dupa ce termini proiectul..:D

Anonymous said...

unde gasesc si eu sa cumpar un VS1011?

Morgoth said...

Poti comanda direct de pe siteul producatorului ca vad ca pe la distribuitori nu sunt de nici un tip.
You can order directly from the manufacturer's site I see that the distributors don't have any type.

Anonymous said...

Is there any Sourcecode avaliable?
And where you bought this display?

Morgoth said...

This player is created in asm language and is not public.
This display is from a mobile phone Samsung E700, but this display i can buy and from phone service.

dani said...

Bravo. Acuma mai trebuie sa pui si lan-u pentru internet radio.


Anonymous said...

I'd like to upgrade from the nokia to the E700 LCD. Where did you find the datasheet / sample code for the LCD?

Morgoth said...

Take a look in player source, because the driver for E700 is separately.

Rajesh said...

Good post on the device.
Work From Home

SpAz said...

I admire your AVR and electronic skills (bit jealous too).

ab said...

We should thank you for giving such a wonderful blog. Your site happens to be not only informative but also very imaginative too. We find a limited number of experts who can think to write technical articles that creatively. All of us are on the lookout for information on something like this. I Myself have gone through several blogs to build up on knowledge about this.We look forward to the next posts !!

Webmaster Forum

Software Donload

Steve said...
This comment has been removed by the author.
Steve said...

This looks like an awesome project! Is there anyway you can post more detailed diagrams and parts list please?

I would love to make one for myself!


Morgoth said...

You can subscribe to newsletter to be announced when i post the scheme and components values.

retirement costa rica said...

I like to have an mp3 of these, I always wanted one.

Anonymous said...

Hi can you give me a datasheet for e700 lcd ? maybe for oled ? contact zachwiej at

Anonymous said...

Realization with such display is very attractive!!!
I like it very much!
A couple of questions:
1.I would like to use ATmega128. Is it possible to get firmware under ATmega128 MCU?
2.Is it possible to use VS1001k without any firmware changes? (you said that project is not public)
I really want to solder this amazing mp3 thing...

Morgoth said...

Between ATmega64 and ATmega128 the only difference is flash size.

To use VS1001 is necessary to change vs driver. To split communication driver from 1 SPI buss to command and data to separate SPI buses one to command and one for data. In this case is necessary to create one software SPI interface for commands.

The source code is posted for free download.