Thursday, April 28, 2011

Music Player (MyMP3 v5.0) - Introduction

This is a project I started a few months ago. It's 4 predecessors where built around the VS1001 hardware audio decoder (MP3's mostly) and were all mainly just prototypes (built on test PCB's). For these versions I used various MCU's (Atmega8, Atmega32, Atmega644p), even 2 MCU's per project. The 4th version was a portable MP3 player (Atmega644p) that was using a microSD card as file support and vs1001 as the audio decoder. It also had a nokia 3310 LCD for UI and 5 push buttons.

So, enough with the history.
The main reason for the new version was to have a powerful music player always on the top of my desk so I won't have to power up my PC every time I want to listen to some music. Also I intend to use it as my college degree project.

It took me a lot of time to decide what media support should I use for the music collection. Basically I had to choose between 2.5" IDE HDD and (micro)SD(HC) card. The HDD had the main advantage of being a lot cheaper as price/capacity but the IDE interface is very old and it's pretty hard to find an IDE hard drive these days (I was thinking of going on SATA HDD and use a SATA-IDE adapter). The SD card was smaller, simpler to interface to an 8 bit MCU, less power consumption but they are quite costly and have very limited storage capacity.
In the end I went with the SD card as my choise.

For the audio part I decided to go for the VS1053 (big brother of VS1001). It has a lot of functionality added (Ogg / MP3 / AAC / WMA / FLAC / MIDI support). It also has the capability of recording in ogg format. The PCB I designed has this feature implemented so I think I will also add recording capabilities to a later firmware.

For the UI, I decided to use a big monochrome LCD (6" - QVGA resolution) that I just bought from a friend (it was recovered from a printer or something, it cost me around 7$), controlled by an S1D13700 controller and a touch panel for user input. 

Also, the player will have the capability to play online music streams (online radio) using the ENC424J600 network controller.

It will also have an infrared sensor for the remote control. Also I was thinking of adding a bluetooth module for controlling the player from the phone (I love Android :) ).

All this is controlled by an Atmel MCU: ATxmega256A3.

Waiting for your opinions below

1 comment:

  1. found your site on avrfreaks. im also trying to create a home project with an atxmega128a1 uC. I am having trouble writing to an sd card via spi (not using DMA). Mind if u post up the src code, or email me the code? any help would be much appreciated.