Lessons Learned
skip navigational linksPJRC
Shopping Cart Checkout Shipping Cost Download Website
Home Products Teensy Blog Forum
You are here: MP3 Player User Photo Gallery Derek Joos, ATAPI Lessons Learned

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

This is an archived copy of the work done by Brad Baird, Tom Freestone, Derek Joos, Steve Saunders, and Ryan Woodings to attempt to add ATAPI support to the PJRC MP3 player. This is their original web page. It seemed like a good idea to archive a copy, since these student web pages usually disappear after a while. Here is the final code they wrote.

Lessons Learned:

Lesson One: 

For those contemplating this type of project in the future, please carefully consider some comments from Hale Landis of ATA-ATAPI.com:

 

So you want to build an MP3 player that uses an ATAPI CD-ROM drive as the data storage device?

First, you should find a different project!

Second, you should look [at] all the projects just like this [one] that have been implemented by hundreds of people around the world [4].

 

Lesson Two:

Don't fry your kit, hard drives, personal computers and/or body parts in the process of the project. 

 

Figure 1 Varying Types of Smoke Emitting Hardware

Lesson Three:

Don't write your firmware in assembly code.  If it is written in C, there is a wider variety of available programming tools to aid in the debugging and coding.

 

Lesson Four:

You need a really good understanding of the ATA and ATAPI interfaces.  In order to speak "ATAPI," a casual perusal of the ATA/ATAPI-4 standard is not sufficient to gain adequate proficiency. 

 

Lesson Five: 

The player architecture needs to be flexible in order to support the myriad of storage media used by ATAPI devices.  For instance, most CD-ROMs adhere to the ISO-9660 format and don't come with a native FAT32 file system.  On the other hand, an Iomega zip disk, while also ATAPI based, comes FAT-32 ready.

 

Return to Title Page.