Arduino library for WTV020-SD-16P audio module

thanks for your help!

it's possible to make a voltage divider with 2 resistors and take ouput 5v of arduino?

i need 3,6v or 3,5v?


Resistors usually come in standard values, and I for one don't have all of those. But they can be put together in serial and/or parallel to make almost any value.

Here is a link showing voltage divider and formula. That's a really good site, you might bookmark it.

If R1 is 2000 ohms (2 1K's in series for me) and R2 is 4700 ohms the Vo would be 3.5V.

Notice that Voutput = Vsource x ( R2 / ( R1 + R2 )) ( R2 / ( R1 + R2 )) gives the fraction of source voltage that output voltage will be independent of source.

I used 3 x 4.7K resistors to make a 1/3 drop by putting 2 in series to make R2 and the other to be R1. My output voltage is 2/3 which for 5V is 3.3V. To get 3.5 I varied the ratio so that less goes straight to ground.

My output current runs through the 4.7K resistor so it will be less than if no divider is present but I don't need much current, it is for voltage-leveling a serial pin on a 3.3V chip to a 5V Arduino. I used 4.7K's so that less current would flow to ground than with lesser ohms. That may be more resistance than you want, the 2K-4.7K example above is half as much. Still, you may need to play around to get just what you want/need.

resistor voltage devider wont do. this circuit is not "constant current"

Is there a maximum current specified for the WTV020-SD-16P? If not then pick resistors that let at least the most current required by the module.

My UNO is supplied 500 mA at 5V by USB but it doesn't use 500 mA. It is recommended to not draw more than 200 mA through the board and the UNO itself uses little more.

So is constant current required for this module? The Elec doc says 3.3V and nothing about limiting current.

Voltage divider does impede current because output current goes through a resistor. That is why you have to pick the resistors to allow enough current through to run your app.

hi and thanks for your help

today i test with 5v arduino and 2 diodes 1n4001 in series but the led don't blink... i don't use a speaker but a pair of earphone, i test it with no name sd card 128mo and a sandisk 2gb

i add led after the diodes and i connect it to VDD to see if the module receive voltage and the led works, after i add led between GND of module and arduino gnd and the led works, i don't understand.

This module really sucks...tomorrow i receive a new module if it don't work i stop with it...

i saw an other possibility to play mp3 or wav with a cheap sd card module that i have, if you are interested: and


I have a VS1000 that works but for OGG files. The MP3 to OGG converter is available at the VLSI-Solutions home site. The module itself has onboard flash and a micro-SD slot and can be run through simple serial commands. To get just 1 or 2 direct from the company to USA, there's a courier delivery fee that doubles the price so here you would want to find a supplier though I dunno who.

I have some Chinese modules that to get playing MP3 requires soldering 2 SMD pins together which I'm not good enough to even try.

I want to controle the volume by :
wtv020sd16p.volume(0); // 0 to 7
wtv020sd16p.volume_up() or down . But it did not work.
Please help with code example.

tas_tig3r: Hey.

1: Yes the files were converted. Just to make sure I downloaded the test file made (and tested) by another user on these forums. 2: As far as I am aware, I just needed to copy the files named 0000.ad4, 0001.ad4, etc to the SDcard root dir? 3: Ok. If the file tree is correct, then I will try a different card.

I don't have a shield to test it with, as money is tight at the moment, and I've never needed one. Please let me know about the file tree if you can, as I can't find any info about it on the web. Cheers!

I had the same problem. But all suddenly started to work when I plugged the module into 5V instead of 3.3V. The form advices you to plug the module into 3.3V but the voltage on the module itself indicates 5V.

–there have been a lot of discussions regarding this (junk) item.
My (two) modules stared working when fed from 3.7V lion (phonebatteries).
Other replies suggest the same. 3V3 is too low voltage.
Try feeding 5V reduced by a couple of series silicon diodes

If your 3.3V device powers on 5VCC and has 3.4VDD, you can use that line with a good bit of resistor to pull up a pin that you have a diode on, blocking 5V level signal from an UNO. When the signal is low, it drains the pullup and when the signal is high, the pullup provides VDD to the pin.
Serial TX/RX idle state is HIGH to keep the lines from floating, the diode will prevent flow during idle and 0-bit times where with other voltage-levelers the 5V gets regulated some way that generally wastes more current and makes heat, the signal line at idle will need constant current loss. For RX/TX you only need to level shift RX, not TX.

Jack Christiansen showed me this one BTW. He said he saw it somewhere on a site.

Hello everyone,

May be this is a silly question, but I'm a newbie so.. sorry in advance... Can I have direct access to the SD card with the WTV020? I mean, read and write files directly with an SD card library like the SD.h...

I want to use this module for two things in my project: 1.- Play some music files 2.- Store some html files for a micro-webserver

Do you think that this is possible or I have to buy another SD card module to store the HTML files?


You can make an SD adapter pretty cheaply. Google DIY SD card

If your Arduino is 3.3V then you don't have to do any voltage leveling, otherwise you will need a small handful of cheap parts for leveling.

The neatest voltage leveling I've seen uses 3.3V pullups on the SD adapter input pins and diodes on the same pins blocking 5V input. It only wastes a little power on one line.

When a 5V line is HIGH, the SD card reads 3.3V HIGH pullup because the diode blocks the 5V. When a 5V line is LOW, it takes the pullup current away through the diode and the SD card reads LOW. Feed the SD card VCC from a voltage divider and use that same line to power the pullups through 10k resistors. That's 2 resistors for VCC and a resistor and diode for MOSI, SCK and SS.

However you wire it, there are oodles of voltage leveling circuits and chips, the code will be the same. In your IDE under File->Examples-> you should find the SD examples and they should run.

Can this module be controlled totally by the arduino? If so what can be eliminated from the circuit? The project that I have in mind for it will require that it operate and change recordings via the arduino. Thanks!


Basically anything that uses a button can be replaced by the arduino. Volume, next/prev song, pause/play.

What about the schematic? Does the module only need the three connections to the Arduino and the rest of the schematic can be eliminated? Or do you need additional pins on the Arduino. Thanks


Take a look at the attachment below. On page 5, it gives you a layout of what each pin does, and if you look at pin P04 and P05, you will see a secondary function. P04 is the clock, and P05 is the data, so with that, you basically only need two pins to get it to work, but you also need to send the correct data too.

The library was made to send said data, and all you need to do is wire it correctly.

MP3%20Module.pdf (204 KB)

Thanks I'll give that a shot.


I am trying to get this working and I have a question re: schematic and sketch. In the schematic it is showing only three pins on the arduino used. Pin 1 of the WTV020-SD-16P going to A3 on the Arduino, Pin 7 of the WTV020-SD-16P going to pin A4 of the Arduino, and Pin 10 of the WTV020-SD-16P going to pin 5 of the Arduino.

But in the sketch there are four pins defined. I wired it up as in the schematic but nothing is working… What am I missing?

int resetPin = 2;  // The pin number of the reset pin.
int clockPin = 3;  // The pin number of the clock pin.
int dataPin = 4;  // The pin number of the data pin.
int busyPin = 5;  // The pin number of the busy pin.



P06 is the busy pin (pin 5), it lets the arduino know when a audio file has ended.

I guess I am confused about the reset which is defined in the sketch as pin 2 but in the schematic it is A3. And A3 in the sketch is defined in the sketch as the clock pin not the reset. Not clear to me at all.