It seems the cat protector project documentation has a small gap. There is just a hint that you have to use some scripts to prepare the SD card to play the audio files, but no details about this.
To use the scripts you need some knowledge how to use a command line interface on your operating system. The scripts are very simple to use on Linux and Mac OS X, but on Windows it is very tricky. I strongly advice you to use either Linux or Mac OS X. If you are working on Windows, just use a free virtual machine application and install a Linux (I suggest Ubuntu) or a Linux live CD where you don’t have to install anything.
Why? …. Why … that … complicated
The used microcontroller is not very fast, if the software on the microcontroller also has to deal with a complicated filesystem, no sequential blocks and other obstacles, changes are small to produce sound output in a good quality. Therefore I prepare the samples in a very simple format and instead of a complicated file system, I just store the blocks with the audio data sequentially onto the SD card.
Data Logger Deluxe Documentation Online
Finally the a step by step tutorial, how to build the deluxe version of the data logger is online. I split the documentation into multiple parts:
Data Logger Deluxe – Finished + Video
I finally finished the deluxe version of the data logger. The software took longer than expected, because of the tight flash memory limit. I created a short video which should give you an impression how you can use the menus on the data logger.
The video is showing the menu driven user interface. It is controlled using a capacitive keypad. Everything is sealed in this case to protect the electronic components from the high humidity.
RUNNING OUT OF FLASH MEMORY
I usually start software in the best way possible and postpone any optimisations to the end of the process. So I created everything in an abstract object oriented way, but quickly had to go back to a procedural approach for all objects which were singletons anyway.
To keep everything as logical and abstract as possible, I used namespaces to encapsulate the separate modules. This lead to a very clean approach while saving all the memory which was used for object pointers in the code.
For more detail: Data Logger Deluxe Version