Here is a video of the music player in action: The code has the following functionality: Initilise the FAT16 filesystem from an SD card in a single command - ThinFAT_Init(); Open Files on an SD card and allow you to test each filename with a callback Index Files by useing the same command as to open them with a callback returns data on if the filestream is active returns data on how far the file has been read through callback for when end of the file is reached Open Folders on an SD card - Untested and limitations: uses 54 bytes of ram approx dosen't support fragmented files reads file end