Results By Zhi-Hern Loh

Home
Design
Results
A 2nd try
Schematics
Code
Files
Links
Contact

Results of my design

bullet

Usability

bullet

Transfer speeds

bullet

Fidelity

bullet

Problems encountered

On the 31st of April, I finally got my MP3 player to play a MP3 smoothly.

Usability

The MP3 player worked as specified. This was the testing process:

  1. The MP3 Player was connected to a PC and Hyperterm was started with 57600BAUD
  2. The user prompts appeared correctly in Hyperterm
    Welcome to Serial MP3 Player
    Version 1.0 by Zhi-Hern Loh
    User interface is as follows
    Button|Function
      0    Start playback
      1    Stop  playback
      2    Volume Up
      3    Volume Down
    STA013 found
    Ready for Xmodem transfer
    Press Btn 0 to start Xmodem
  3. I started a Xmodem file transfer of a MP3 file on Hyperterm
  4. After pressing the start button, the playback started.
  5. I pressed the 'volume up' and 'volume down' buttons and was able to go from full volume to mute.
  6. After the song was complete, the following screen appeared in Hyperterm
    Stopped play
    File transfer complete
    Ready for Xmodem transfer
    Press Btn 0 to start Xmodem
  7. I started playing another song to test the stop button
  8. The stop button managed to get Hyperterm to cancel the transfer and the MP3 Player prompted the user to press the start button for the next song.

Thus I verified that the MP3 Player was working as specified.

Transfer speeds

The maximum transfer speed for my design is about 2KBps. I found this limit by experimenting with MP3 files encoded at various bit rates. A 4 min 40 sec song was encoded at different bit rates, resulting in file sizes 215, 500, 800KB for 8kbps,16kbps,24kbps MP3 encoding respectively. The 800KB file playback was very noisy and had many spikes. I suspect that further optimization of my code might be able to allow me to download MP3s at 115.2k BAUD. This might enable me to play songs up to 3.8MB in size (for a 4m 40s song, refer to the calculations on the design page).

For the current design, smooth playback requires the (file size / song time (in seconds)) to be no greater than 2KBps.

Using the LAME Encoder, I can resample any MP3 file to fit this transfer rate requirement.

Fidelity

The song quality sounds roughly like that of a radio with occasional blips. I suspect that the blips might be due to buffering problems since they seem to occur at evenly spaced intervals. However even with the occasional blips, the sound is pretty good for a device utilizing the slow RS-232 interface.

The volume increase and decrease controls work fine. The volume change did not make the playback jerky or noisy. I was able to scale from maximum to mute while a MP3 was playing.

Problems encountered

Sadly, I could not get the CD-ROM to work. The furthest I got with the CD-ROM was sending a hardware reset and software reset command. The bug seemed to be with trying to read the table of contents (TOC) of the CD-ROM. Even though I put a Joliet formatted CD-ROM in the drive, I could not get the appropriate response. There could have been a few reasons for this:

  1. The CD-ROM drive could have been wired wrongly. As pointed out in the hardware design section, there was no adapter available for the TEAC notebook CD-ROM and I had to solder wires to 0.8 mm spaced contacts. One time consuming way to verify that I had wired the drive correctly was to connect it to a PC. However I could not afford to do this because it involved making a whole ATA cable for the CD-ROM. I had already spent over 10 hours for the existing wiring and could not afford that additional time.
  2. The ATAPI code was very complex and there could have been a bug that I did not manage to find in time to complete the project using the CD-ROM drive.

 The CD-ROM version would have let me play files at much higher bit rates compared to the RS-232 version. Documentation on the ATAPI and ISO9660 standards was difficult to find. The documents that I found were really difficult to read and understand within the 4 week time span of the project.

Home | Design | Results | A 2nd try | Schematics | Code | Files | Links | Contact

For problems or questions regarding this web contact Zhi-Hern Loh.
Last updated: 05/02/02.