I needed an easy Soundplayer for Arduino. First I was using a Teensy 3.2 for 22€ and the Teensy SoundBoard for 19€, but this is not a low cost solution to build small things. I’ve found the very small WTV020SD-16P Sound Module for 5€ that you can control via Arduino Code. It’s a nice little tiny thing, and I piggybacked it on a Teensy LC (10€). But it’s working with Teensy 3.x 1:1 also. The 2 cables you can see is the speaker +/- connector. The sound quality is very high. The sound format is AD4. You can connect a Speaker (>= 8 Ohm) directly… it’s very loud 🙂
Normally it’s easy to use, but it turned out that there are a few hurdles to take. You can not put mp3 or ogg files on the SDCard. You need AD4 Audio files (ADPCM). It exist two tools, but only for windows. I’m a Mac OSX user and this is the reason for my own AD4 Converter (MacOS). With this AD4 Converter you can easily convert wav, ogg and mp3 files into AD4 files. It will auto level the audio level to -6dB and convert it to 1 channel (mono) files. Also the 32 Khz conversion is made automatically. So you don’t need to do these annoying extra steps if you want to make a new AD4 sound file.
The other thing is the SDCard. I’ve read a lot about issues with this WTV020 module… but a lot of them are homemade issues. I’ve found out that you can not format the SDCard with every tool. You need the “SDFormater” (available for Mac OSX and Windows). If you are not using this tool, then it may be that the Sound Module can not play a sound. You will hear nothing. If you are using the “SDFormater”, then it will be working fine. I’ve tested some Transdend SDCards with different sizes. 512 MB, 1 GB, 2 GB are working fine and without issues, but 4 GB and 8 GB are not working! But it’s ok I think. It’s not a problem to finde some 2 GB SDCards.
The last thing is the code library of the WTV020SD-16P and the mechanic. I’ve tested a lot, and I found out that the available WTV020 Libraries are not stable. I had a few issues with them. So I removed this completely and I’ve written my own sketch. The timings of the transmitted commands are essential. To fast or to slow is not good. It took time to find out the best values to use this module stable. And you can not jump to any volume value. If I set the volume value < 4 then I got a strange volume modulation and destroyed sound. This is the reason for my modified stepping setVolume method. Now you can set the volume value from 0 to 4 (0=off). That was working stable.
The Mechanic is also not very stable. I’ve destroyed one module because the SDCard flap was connected to some pins nearby. I think it should be good to isolate the flap with a scotch tape stripe at the left and right side. It’s not a big deal to lose a 5€ SoundModule, but it’s better to prevent it.
Last words: This module was released 2008 (yes, I’m a little late) but it can make a good job also in 2016 🙂 I will use it in a R/C Car to make some noise. But in the future then I will buy MP3-TF-16P aka DFPlayer Mini aka FN-M16P module, that can handle mp3 files directly. And maybe the little issues of the WTV020 module are gone. Power consumption: ~40mA
Files on the SDCard:
AD4 Files: 16 Bit, 6KHz to 36KHz (4 Bit ADCPM format files), -6db
0XXX.ad4 (max. 512 files)
Now the AD4 Converter is also available for Android: HERE
(V1.15: Fixed an error to convert files from the internal memory (before possible only with an external USB Stick)