|Shopping Cart Download Website|
|You are here: MP3 Player Technical Docs Old MP3 Player Design Main Page|
The Older MP3 Player Design
Making Your Own High Capacity MP3 PlayerI'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.
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.
Things To Improve UponThe 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 PlansHere 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 PlayersIt seems that there are a number of people building their own MP3 players. Here's a few that I know about: