PJRC.COM Offline Archive, February 07, 2004
Visit this page on the live site

skip navigational linksPJRC
Shopping Cart Checkout Shipping Cost Download Website
Home MP3 Player 8051 Tools All Projects PJRC Store Site Map
You are here: MP3 Player Technical Docs Old MP3 Player Design Main Page Search PJRC

PJRC Store
Main Board, $150
LCD & Pushbuttons, $42
LCD/Backlight/PB, $77
IDE Cable, $9
Complete Parts List
MP3 Player
Main Page
Detailed Info
User Photo Gallery
Connecting The Board
Firmware Download
Side Projects
Technical Docs
Freq. Asked Questions
FAQ #2
News And Updates


icon: new design
Click For New Design
This new design has replaced the old one. The design shown on this page is obsolete. The new design has more features, is flash upgradable, is much easier to use, costs less, and is actually available if you'd like to buy one! It's better than this old design is almost every way. These old pages are still available, mostly for reference.


The Older MP3 Player Design

MP3 Player Pages

Related PJRC Pages

Data Sheets

Making Your Own High Capacity MP3 Player

I've wanted an MP3 player for some time... but forget about those tiny little flash memory toys. I don't need miniture and absolutely shake-proof, I want long play times, very long! Playing a CDR is an improvement, but it's only 650 megs, still not enough. Only one storage will do, a standard hard disk drive.

I got tired (impatient) of waiting, so I rolled my own. Here's a photo.

Photo: MP3 Player With Speakers Attached

It's actually not all that difficult to make your own player. The MAS3507D decoder chip does all the hard work of turning a MP3 bitstream into the decoded audio. A CS4327 DAC provides the audio output, though many other audio DAC chips will work. One of my 8051 development boards reads the hard drive and pumps the bitstream into the MP3 decoder chip. The decoder only runs on 3 volts, so there are a couple logic level conversion issues.

Here is a larger photo of just the player. The hard drive is in the middle, the 8051 development board with IDE interface, MP3 decoder, and audio output is on the top, and a power supply board is located on the bottom. Vent holes allow the power supply and hard drive to keep cool.

Photo: MP3 Player, Closer View

Cool Stuff

Things To Improve Upon

The new design addresses most of these issues, and it is fully flash upgradable, so cool new features can be added to it even after it's built.

Design Info (For Free)

I haven't made any nice pages with all the info for this player. It takes time to make nice web pages, and I'm putting most of my limited free time into making the second version. Here is the info that is available now:

Disclaimer: This code and design data is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose.

The circuit board shown is the newer 8051 development board. The schematic and layout are available. Wrote a detailed page about the IDE interface, which is the circuitry on the right side of the photo, partially hidden by the ribbon cable. The circuits on the left side are the MAS3507D, a crystal oscillator for it, a Cyrstal Semiconductor DAC, and a couple chips to do the 5 volt to 3 volt logic level conversions. There is now schematic for this circuitry. The 8051 sends data to the MAS using its serial port, configured in "mode 0" (sync serial). See the 8051 datasheets for more info. I did not actually draw a schematic, but you can view Originally I did not have a nice schematic drawn, just these hand-drawn notes and sketches that I used when I built the player. Some close-up photos of the point-to-point wiring are available, in case I've forgot to document something.

Here is a copy of the firmware source code (assemble with as31). This code is intended to be used with my Paulmon2 monitor. To get a group of MP3 files onto the hard drive, you will need to use this little perl script that generates the raw hard drive image, in the linear sector format that the firmware uses, with a list of the starting sector addresses in the first 256 sectors of the drive. It's ugly, I know, but it does work, and unlike a lot of the other players you'll find on the net (see below), I am actually distributing the design data for free.

Future Plans

Here is a page about my plans for a new open source design. If you are interested in the technical development of this project, please read and make comments. The new design's hardware is more or less finished. The design is fully flash upgradable, including the digital logic on the board that implements the DRAM controller, IDE interface, and DMA interface to the MP3 decoder chip. There should be lots of room to add cool features to the design.

If you're interested in this project and/or want to have one of your own, please contact me. I'm interested in any feedback or ideas you may have.

Other Homebrew Players

It seems that there are a number of people building their own MP3 players. Here's a few that I know about: If you know of other homebrew players on the net, please let me know so I can make links to them.
Paul's Homebrew MP3 Player, Paul Stoffregen.
Designed and constructed Winter, 2000.
http://www.pjrc.com/tech/mp3/old_player.html
Last updated: November 28, 2003
Status: More info to come... just a couple photos for now.
Questions, Comments?? <paul@pjrc.com>