The WTV020SD is a small, simple IC for embedding audio-playback into your next project. These devices are commonly used in children's toys and "talking" retail displays. This breakout board allows you to access the functionality of the WTV020SD to give a voice to your next project.
The breakout board includes a battery connector and a micro-SD card slot. Simply load your audio files onto a micro-SD card and plug it in, power up the module and trigger the playback. Playback can be triggered in either key or serial mode:
The key-mode provides a stand alone operation where a host micro is not required. With only 3 push buttons, a 3V battery and a speaker, an extremely compact and low component count MP3-Player like system can be implemented.
The serial-mode provides a simple, 2-wire interface to any micro-controller via its DATA and CLK lines. Audio operations such as PLAY, PAUSE, STOP and VOLUME control functions are all available to the host micro via simple serial commands.
The audio compression used in this module is a little strange (4-bit ADPCM @ 6-32kHz) so you'll need to download the utility in the documents below in order to convert your .WAV files into the 4-bit ADPCM format required.
Serial Mode: Supports a 2-Wire (Data, Clock) interface to any micro-controller. * Key Mode: Supports a simple stand alone operation without a host micro. * Differential 2 line PWM output for direct speaker connection (8 Ohm/0.5W). * Dedicated 16-bit DAC/PWM audio output to use with an external amplifier. * On-board micro-SD memory card adaptor for storing of audio, voice and music files (up to 512 files). * Supports 64Mb to 2Gig micro-SD memory cards (FAT format). * Low Power Idle current of 8.0uA * RoHS Compliant
1 of 1 found this helpful:
The board requires a 2GB or less microSD card to function. If you are looking for alternative audio players, check out the Little Soundie (DEV-14006) or Papa Soundie (DEV-14554) from our Audio Boards.
This skill defines how difficult the soldering is on a particular product. It might be a couple simple solder joints, or require special reflow tools.
Skill Level: Noob - Some basic soldering is required, but it is limited to a just a few pins, basic through-hole soldering, and couple (if any) polarized components. A basic soldering iron is all you should need.
See all skill levels
If a board needs code or communicates somehow, you're going to need to know how to program or interface with it. The programming skill is all about communication and code.
Skill Level: Rookie - You will need a better fundamental understand of what code is, and how it works. You will be using beginner-level software and development tools like Arduino. You will be dealing directly with code, but numerous examples and libraries are available. Sensors or shields will communicate with serial or TTL.
See all skill levels
If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.
Skill Level: Noob - You don't need to reference a datasheet, but you will need to know basic power requirements.
See all skill levels
We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.
Based on 6 ratings:
3 of 3 found this helpful:
The description suggests that this device can work in either the MP3 or the Key mode, but that doesn't seem to be the case. It needs to come from the factory set for one mode or the other. I wanted to use this with 5 distinct trigger keys (for 5 different songs). The datasheets says this is an operating mode, but there no way to switch it into this mode. After lots of searching, I found that it has to come configured for that operation mode. By default, it works in the MP3 mode with support for just three butons for play next and prev.
Connected to Arduino Leonardo, used example... It looks like not accepting the first audio file anyway... Keep finding...
It's not at all clear how to operate in different modes. Volume controls seem to have no effect on direct speaker connection. Speaker output audio quality is beyond terrible. I haven't tried DAC output to a separate amp yet.
Also the files need to be named
0000.ad4 0001.ad4 0002.ad4 .. etc
Took several hours to find the proper solution but this article helped me heaps: https://bigdanzblog.wordpress.com/2014/11/09/the-sparkfun-microsd-audio-sound-breakout-module-wtv020sd/
(Too bad the info on the sparkfun page was not sufficient enough....)
I 1st tried a 32G SD card and got no sound. Tech support answered me in less that 24hrs and suggested this page https://www.sparkfun.com/products/11125#comment-50ca37db757b7fdd5e000000. So I tried a 2G SD card and still no sound. I must be an idiot.
The first SD card I tried didn't work, which is very frustrating.
I purchased this 2gb SD card, which worked: http://a.co/0kqlE69.
@Sparkfun, it would be pretty great if these could come with vetted working SD cards. Cheap ones in bulk shouldn't add too much to the BOM, and would save customer frustration.
Needs to be formatted fat16. I followed the OS X command instructions here: https://apple.stackexchange.com/questions/226975/how-to-create-a-fat16-partition-on-an-sd-card-with-os-x-el-capitan
Finally, the audio format is a little obscure. I used the directions from here: https://bigdanzblog.wordpress.com/2014/11/09/the-sparkfun-microsd-audio-sound-breakout-module-wtv020sd/
The audio produced is pretty disappointing (very quiet, and seems to be clipping a bit), but this could also be an issue with the speaker I have.
Overall, I would not recommend this product.
-------------------- Tech Support Tips/Troubleshooting/Common Issues --------------------
"Key" Mode
The Audio-Sound Breakout mode is set when it arrives at SparkFun. To clarify, the Key Mode only has the option of next, previous, and play/STOP. The reason for this is because the mode of operation was set by the manufacturer. It just happens that the board works without the need for a microcontroller in "key" mode. The mode that was pre-set is the two line serial mode application similar to the circuit in section 8.9. It just happens to work in MP3 "key mode" application with the exception that you cannot control the volume +/-. In order to get the "key" mode to work, you just need to wire it up similar in the application circuit in section 8.3 of the datasheet. The "key mode" does not have all the of the functionality of that specific mode as stated in the datasheet. The board plays back when the you trigger the Play pin. When you play, it will start playing the track from the beginning. By pressing stop, the track will stop playing. Upon pressing the button again, the track will start from the beginning instead of where the song was paused.
The tracks do not play when you initially power the breakout unless you trigger the pin. Once the track is done, it should stop playing. To play the next track, the next or previous pin would need to be triggered to play the next song. The audio sound breakout does not loop through after the track is done playing so you would need to send a trigger signal to start the track again.
Two-Line Serial Mode
To control the volume, you would need a microcontroller which is set to maximum by default. Here's some sample code to get this mode working under Arduino's forum =>http://forum.arduino.cc/index.php?topic=117009.0. Even though it’s for the WTV020-SD-16P, it should work with this product too.
Try looking in the datasheet on page 11 for 7.5 Two Line Serial Mode and page 22 for 8.9 Two Line Serial Mode Application.
Compatible Memory Card
Higher Capacity Memory Cards?
It will not work with memory cards higher than 2GB. You will not be able to partition the microSD card to 2GB to get it working with Audio Sound Breakout. A tech support representative tried and it would not work.
2GB Capacity Memory Cards
This requires only a 2GB or less with a FAT16 microSD card to work. This product is very picky about the types of microSD cards it uses. Customers bought some from Amazon and it didn't work because the chip didn't like the manufacturer of the card. Depending on the brand, sometimes a 1GB Sandisk works as opposed to a 2GB Kingston microSD card. These memory cards are becoming obsolete and hard to find due to the advances in microSD card technologies.
There was a customer that did extensive testing on the board stated that this SD card worked https://www.sparkfun.com/products/11125#comment-529ab8c2757b7f83628b4567 => Strontium SD class4 2GB FAT formatted. I'm not sure where to get that.
Audio File ( .ad4 Extension) and Size
If you are having problems with the 2GB uSD card, try using this formatting software to get it working with the Audio-Sound Breakout => https://www.sdcard.org/downloads/formatter_4/index.html. You need to convert audio files with the Audio Converter Utility on the product page so that the Audio-Sound Breakout can recognize the audio files in the .ad4 extension.
If customers have a file that is too small, the audio sound breakout might not recognize them. A customer padded their audio track with 300ms of silence at the beginning and the end. This fixed the issues with playback. As a test, try using the manufacturer's samples or the audio tracks that are used in our SFE Production QC test procedures.
Logic Levels
This is a 3.3V system. Use as logic level converter https://www.sparkfun.com/products/12009 if you are using a 5V Arduino or use resistors for voltage division. There is a voltage regulator after the Vcc pin to regulate the voltage down but you need to still watch the I/O voltage levels.
Fritzing Part
There is a Fritzing part in the GitHub product repo.
So, is it possible to get the behavior of key mode without an Arduino? From the comments here, it sounds like the SparkFun board only comes in serial mode.
Ineed some help, the documents, datasheet and lbraries seem to be for an older product, where can i find for this WTV020SD ireally bought and can't connect it propperly, please
Having spent a lot of time with this WTV020SD device based board and "the-rebel-agent" control library, I suspect some might appreciate my sharing a little of my experience...
What appeared to make my sound card 'work' well via serial I/0 and the "the-rebel-agent" library, included:
5v > 3.3v signal conditioning (voltage dividers) between Arduino outputs and sound card inputs
increasing post reset delay (by waiting for busy assertion + deassertion + 13ms)
increasing post audio play delay (by waiting for busy assertion)
I conditioned the DCLK, DIN and RESET signals with voltage dividers. Each Arduino pin drives its corresponding sound card pin via a 56 ohm resistor. Each sound card pin has a 100 ohm resistor to ground. This reduces the maximum sound card input voltage to about 2.5v. Before I did this the sound card would not work and its supply voltage was jumping up close to 4 volts (due to input diode conduction and high Arduino output pin voltage). I should admit that I have not retried the sound card without these level shifters, so can't be sure if I made other changes to my configuration that actually 'fixed' my operational problem.
For what its worth my configuration/connectivity:
OSSEP Arduino Uno with 5v supply
sound card/device: WTV020SD-20SS NO.17 1208 RSH6530G_3H
microSD card: Strontium SD class4 2GB FAT formatted.
serial I/O Control utilized ('MP3' mode was not tested)
microSD Audio Module powered with 3.3V from Arduino UNO
How might "the-rebel-agent" library be improved - for everyone?
increase post reset and post play delays (my custom library waits for busy events)
error checking and reporting logic i.e. busy asserted/or not when expected (trivial to help users debug!)
volume control and other features (e.g. loop play single/all files)
DIN low when commands not sent (to save power IF voltage dividers used)
Where is the library not like the spec and perhaps less efficient?
clock period is currently set to be >10 times longer then spec indicates
data setup/hold to rising edge of clock is not balanced as per spec diagram
clock state during reset set low, though spec shows/suggests otherwise
What else have I learned/found/done?
A WTV020SD Chinese data sheet - mostly but not completely identical to the English one circulating.
commands 0xFFFB, 0xFFFC and 0xFFFD loop a single audio file, all the files or stop looping. I have not been able to make the loop commands work reliably with AD4 files. File size may be important. This may explain why they were not translated into the english document.
observed that minimum clock period required is actually less then 10% of specified (for my device)
busy asserted during 'paused' playback
busy asserts (for a while) after reset command
I rebuilt/'fixed' the library, added delays, play retry post reset, made it data sheet consistent, identified set volume etc commands
the sound card has a 5v to 3.3v supply regulator, and if used, might reduce noise on audio output
Simplify my reset connection by using a diode during pull down and relying on the board pull-up circuit? This has yet to be tried and would have the added benefit of reducing power slightly.
Play after reset fails when audio module powered up after being unpowered for a while... (presumably allowing supply capacitors, to completely discharge). I modified my library to retry the first play command after reset, if the first attempt fails.
Play after stop fails under certain conditions and can be 'fixed' (on my card,) by adding a 1ms delay between the two commands. I added a 10ms delay following each command (yes I know I could have targeted only the stop commands).
Chinese Data sheet: (Google translate does work for this but ... ever hear of GIGO? )
Chinese_WTV020-SDV1.7.pdf
What would have saved many users a lot of time:
A complete data sheet in English with clarifications of device variants, correct timing diagrams and device min/typ/max specifications and characteristics.
What I would appreciate:
I would also like to see a repository for a 'maintained' library...
Jeff Niergarth -electrical engineer with extensive hardware/software development experience...
Thanks. My sound was working fine, until I embedded the Arduino's ATMega328P and this SparkFun breakout board onto my own PCB. But, as you suggested, running the CLK, DATA, and RES signals through the 3.3V voltage divider worked!
Did you add the 56 ohm resistor as part of the 5 voltage divider or is this resistor already on the Arduino or Atmega chip?
Alright, I just found my next "Easy" button upgrade. :-)
Hello everyone, here is what I do with these nice little audio breakouts : Poetic Emergency Terminals. These are very simple sound devices with simple interfaces : one play/stop button with only one audio file. I have a lot of fun making them and watching people's reactions in public space.
But there is something wrong ! Whenever someone stays put with his finger more than 3 seconds on the button (it happens all the time), then the breakout puts itself in loop mode (audio plays on and on…) and never shuts down. Even if I push the button again, it stops audio but does not shut down, and pressing once more audio will still be “stuck” in loop-mode. The only way to stop this unwanted loop-mode is to unplug and replug the battery, which is consumed in a matter of a few hours (which is quite a big issue for my project).
So here is my deal (yes, I have a deal for you !) : Anyone who will provide me with a straight, simple solution (something that I can understand and do with my limited capacities - I'm not at all a specialist in electronics, and most of what I read on this website is quite a jargon to me), will be granted a work of art. Yes, a work of art, a real one (not a quick-made drawing) that you can choose by watching what I do on my website (things that I usually sell for quite a lot of money), in exchange for the time you will spend working my problem out.
If you are interested, you can easily find my email address on my website, and I will provide you with every specifics you should need to help me out.
I know it sounds like a desperate call (...and it is !) but I found out that most people with good skills and understanding of electronics would not help, and I'm quite lost by myself... so here I'm trying with giving something in exchange.
Thanks, Antoine
What you're looking for is called a "one-shot". It turns a pulse input of an unknown length into a pulse output of a known length. There are a million and one ways to realize this, but here's a snipped of Arduino code that will do it for you:
You can buy an Arduino Pro Mini for $10 and an FTDI Serial Basic for $15 to add this to your project.
Thank you, it could be a solution indeed, although it is an additional cost to my project (which I'm trying to keep as low cost as possible since it is for public space and it often ends up being destroyed or stolen).
Here is a few images of the circuit inside my project : Circuit 1 Circuit 2 As you can see, it is quite a very simple build : the audio breakout, an amp, a speaker, a button... and that's it ! (And truly, it is as much as my knowledge allows me to do...)
So (....hum....), where do I implement the Arduino Pro Mini into this circuit ? Thanks again.
If you're still working on this, just add a simple RC impulse delay to the button so that it generates a single pulse of less than 3 seconds. I haven't looked at your circuit, but it should be possible with just a couple of components costing a couple of cents.
If you are having any issues with this, try running the board at around 3.8v instead of 3.3. Most SD cards operate at 3.7, NOT 3.3, which is why only a few brands work. I started running mine at 3.8, and it instantly worked. If the Arduino is also not running it, step the signals down to around 3v. The Arduino 3.3 can't run many brands of SD cards.
Can this be true?? There are so many boards which incorporate an SD card, pitched at Arduino users. Are all of them skating on thin ice???
Audio files need to be formatted as follows: Mono 16 bit depth 32 khz sample rate maximum,haven't tested lower rates
I've had the audio encoder successfully encode sounds only to have them be read as static by the player. This was a result of using 24 bit depth instead of 16 bit depth. Otherwise, once I followed these guidelines, the audio files sounded great.
I used this formatter on a 2GB card: https://www.sdcard.org/downloads/formatter_4/ and it worked. Windows and Linux GPart gave me no joy. http://e-gizmo.blogspot.com/2013/03/wtv-020s-voicewav-player-module-quick.html Was a useful summary.
sooo, i have a project due in few days , i got this little reader, with the mono amp that seems to go well with it , i got it to work once (took a while) , mp3 mode , with grounding the play pin, with a 2go FAT no brand (maybe something chinese) microSD , i went to change the file to try to play something else , now , the player doesnt works anymore , tried everything i could , (the Amp works , i tested it separately ) so , is it possible that my sd was compatible once , and now it is no more compatible ? is it possible that i fried the reader? How to verify ? is it normal to have some kind of different high frequency sounds when not playing , while removing the sd and trying to remove the battery . now if i ground , the player seems to start , but go back to idle 1 second later , and i hear a distinct click at play pin grounding and another click one second later . is it possible that the mode switched by itself ? how to know ,what mode i am in , what does the reset pin does ?
so i have my own answer , i went and bought the last 1go card in the universe , and it is a kingstone , it worked on first try
What is the default operation mode? I would like to use Key Mode (3 Group Voice). I do not see anywhere how to change the operation mode or select it as an option when ordering.
Dear Sparkfun, please put screw holes in your products so that they can be easily fastened within one's project. Please!
It's a board-by-board choice- we usually try and put a 4-40 standoff mount on anything larger than, oh, say, a largish postage stamp. This one is right in the range where it's questionable as to whether or not a mount point would go onto it. Generally, we won't increase the size of a board to accommodate standoffs- if it's that small, we'd like to keep it that small. I'll second the hot glue recommendation- I do it in my projects rather a lot.
Try Corner / Edge Standoffs: http://nwazet.com/1-4-corner-edge-standoffs-set-of-4 They allow you to position the standoff wherever you need them as well as allow the board to be small. Or try TCEHCBS from http://www.richco-inc.com/
It would be nice, even on boards this small. However since they didn't, I'd recommend hot gluing the component-less side of the board in a few spots then it could be attached to a box wall or stand-offs.
Is this essentially a much cheaper version of DEV-09534 in a different form factor?
I'm having a strange issue. I am playing WAV files (which are specified as compatible in the WTV020SD16P datasheet), formatted as pcm_u8 with ffmpeg, and they play just fine EXCEPT that as each file finishes playing, a fraction of a second "chunk" from earlier in the file is appended to the end. I'm not sure if it could be a problem with my SD card's format, or the files themselves, or some kind of damage to the hardware. Has anybody else experienced this problem?
Here's a little project and guide I put together to utilize key mode with an Arduino - Make a Snoring Dog.
May be of help for anyone wanting to utilize this board in a project.
What is the best way to reduce noise?
Is there a board like this that can record to the SD card? I see the one for 64(or so) seconds, but I am looking for longer.
Hi, I'm using this with a 3.7 Li-Ion battery (https://www.sparkfun.com/products/341) I got from Sparkfun and PWN directly connected to a small speaker (2W, 4 ohms). There are some erratic and extreme volume changes that can happen after a few minutes of playing the songs (I'm using the sample AD4 tracks someone posted a link to) and they don't happen consistently at the same places. It can go from moderate volume to loud to very, very loud, and then cut out altogether like it "crashed." Has anyone else experienced this? Could this be a power issue of some kind?
Hello! I'm trying to use this board in "5-key mode" so that I can play one of the audio files by pulling a pin low, as detailed in the rather shoddy datasheet. The only problem is that it seems to default to MP3 player mode, and I'm unsure how to pull it out of this and select the mode that I am after. Any suggestions?
In the specs it says this board supports 64Mb to 2Gig micro-SD memory cards, but in the recommended products there is an 8Gig card. What gives?
Might be a mistake. I just tried a 2GB card formatted with https://www.sdcard.org/downloads/formatter_4/ and working samples. Did the same with 8G and it looked like it tried to read but could not. 2GB got formatted as FAT. 8GB as FAT32. Maybe it can't read FAT32. Yet some folks are saying they are formatting to FAT32. I've never seen anybody get it work with 8GB in my short time researching.
Is it possible to make this without the SD card, but with a 1MB flash memory chip, with the audio transferred via a 3.5mm jack?
Sorry, I didn't understand if I can choose which file to play, or just go to the next file. Thanks in advance
Is it possible to loop through files in key mode?
hi, i have been working with this product and i was able to operate in the mp3 mode. however, i was only able to play, pause, and reset but not next and previous operation. for some reason when i press next and previous buttons, it repeat the same song again from the beginning. also, it only plays the first song even though i downloaded the sample files. please can someone help me. Thanks
For the Voice Address function, you don't actually need the reset line for it to work.
While connected to an Arduino, do the files have to be in the numerical format, or can I use strings to seek out specified sounds? Working the kinks out of a string assembly that links data from two or three variables together. I can do it from an integer, but I don't want to waste time coding the string assembler if I don't have to. Thanks!
There's no external visibility to the files on the SD card; they must be named numerically and can't be read or seen by the attached microcontroller.
Hello to all,
I made a project using this audio-sound breakout...
A very simple sound device with a simple interface : one button play/stop with only one audio file !
The button is connected to "play" and "ground" on the board, and it goes like this :
* I push once and the audio start.
* If I push during audio, then it stops and shuts down (ground).
* If I don't push, then at the end of audio, it shuts down by itself.
But there's a really strange occurrence that I can't explain and that is messing up all my project.
When someone stay put with his finger more than 3 seconds on the button (childrens do that)**, then the breakout puts itself in loop mode (audio plays on and on...) and never shuts down.** Even if I push the button again, it stops audio but does not shut down, and pressing once more audio will still be "stuck" in loop-mode.
The only way to stop this unwanted loop-mode is to unplug and replug the battery.
It poses a great problem to me because when the breakout doesn't turn off, then it consumes all the battery power in only a few hours, and I found myself in the situation of changing batteries all the time ! I made four of these devices, and they were accessible in a public space where people were pushing the buttons alot, and there was ALWAYS someone to stay put more than 3 seconds on it.
I tried a lot of different connections between my button and the board, but none could resolve this "stuck in loop-mode if you push the button for too long" problem of mine...
Is there anyone else having the same issue ?
Is there anyone knowing how to fix it - if it is possible ?
If someone has any clue, it would be very helpful, thanks !
I ran into this exact same problem and solved the issue using the Monostable Multivibrator suggestion provided by SFUptownMaker below. Don't let the fancy terminology fool you, all this thing does is turn any button press, no matter how long the person holds it down, into a single short pulse so that the Audio Module never gets stuck in a loop.
The version I implemented is a "Non-Retrigerable Monostable Multivibrator" with a transistor to convert the positive pulse output of the 555 timer to a negative pulse, which the Audio Module will respond too. It's super easy to set up on a breadboard even if you have no clue how the electrical components work. Just piece them together and it should work. Although DISCLAIMER I make no guarantee that this will work the same for you as it did for me due to tolerances of the various components and variations in quality of components of similar type. But worth a try considering it costs less than $5 for all the components either on Sparkfun or at RadioShack (recommended).
CIRCUIT BUILD PICTURES AND SCHEMATICS: If you want to do the same thing I did, here's what it looks like: http://ccrma.stanford.edu/~turner/storage/pics/MonostableMultivibrator/CircuitDiagram_MonostableMultivibrator.jpg
Here's the schematic and short explanation: https://ccrma.stanford.edu/~turner/storage/pics/MonostableMultivibrator/MonoStableMultivibratorCircuit.jpeg
LIST OF PARTS YOU WILL NEED: 1) RadioShack 555CN (aka Texas Instruments EN555) - I tried the TLC555 and it didn't work with these resistor and capacitor values so if you want to get the Sparkfun approved 555 https://www.sparkfun.com/products/9273 I would make sure they send you the NE555 which they have the datasheet posted for and not the TLC555, which they have in the picture, even though in the comments they claim that it's the same thing, it is NOT in my experience the same.
2) NPN Transistor RadioShack ones look like this: https://ccrma.stanford.edu/~turner/storage/pics/MonostableMultivibrator/NPN-Transistors-front.jpeg https://ccrma.stanford.edu/~turner/storage/pics/MonostableMultivibrator/NPN-Transistors-back.jpeg
3) LED (just a run of the mill 5mm LED) https://www.sparkfun.com/products/9590
4) 4.7 μF Capacitor The one I used was an Axial Lead Electrolytic Capacitor. A radial lead Electrolytic would work too. Just make sure to have it set in the board with the proper polarity
5) 0.01 μF Capacitor The one I used was a Film capacitor but you could probably use a Ceramic disk one
6) Resistors 3 resistors with 220 Ω - 2 in series to make a 440 Ω resistor and one other 2 resistors with 10k Ω 1 resistor with 1k Ω
EXTRAS I also used the Sparkfun Breadboard Power Supply to provide the necessary 5V and 3.3V required for all the components, which you can find here: https://www.sparkfun.com/products/8376
But that requires some soldering so if you don't know how to do that then sorry!
Also to note, there are some extra wires in the above picture of my circuit for controlling relays, which I used in my own project, but just disregard those. the schematic shows you the necessary parts of the circuit to fix your long button press woes. The system does require a slight amount more power to operate, but it's pretty negligible. You could probably replace the LED with a wire and test it to see if it still works. Taking the LED out of the circuit may save some energy.
Hello, Thank you very much for this ! I only discover your answer now, 9 months later ! (Oh man, I forgot to turn on the "reply notices"...) I will now try out what you are proposing, from first reading it seems quite clear and understandable (for an amateur like me, but you know, I can solder and do other basic things...) I will let you know if it works... Thank you thank you thank you !
I haven't seen this problem personally, but I'll see if I can duplicate it.
For my part, I seldom use this board on its own, because of issues like this. I usually pair it with an Arduino Pro Mini, to provide a layer of protection against things like this. A cheaper alternative that you may look into is implementing a monostable multivibrator with a 555 (there's your Google search term) to ensure that, no matter how long the user holds the button down, only one short pulse hits the input pin on the module.
Thank you very much for these possible solutions...
Are these the items that could make it work - Arduino Mini Pro - 555 timer ?
Are they compatible with the audio-sound breakout ?
Wether Arduino or 555, I guess I must now find out how and where to assemble these within my project, in order to stop the unwanted loop-mode... (Yes, I am very much of a beginner - but very willing to learn !)
Any links for how-to's and explanations ?
Please let me know if you duplicate the problem.
Thanks again.
Any other comment / idea welcome...
Is there a mac based wav (or mp3)to ad4 converter I can use?
I'd like to pay someone to show me how to control volume in an product that uses one of these boards. If that involves use of some Arduino board, then I'll need an exact example that I can duplicate.
Any takers?
It is trivial to add a volume setting command to the-rebel-agent library, for control of the card via an arduino.
There is a backdoor in the asnycPlayVoice command that gives the user access to all device commands:
wtv020sd16p.asyncPlayVoice(0xFFF0); // Sets voice to minimum (off) ...
wtv020sd16p.asyncPlayVoice(0xFFFx); // Sets voice to level where x ranges from 0 (no-sound) to 7(max) ...
wtv020sd16p.asyncPlayVoice(0xFFF7); // Sets voice to maximum
You can also initiate single/all voice file loopback (and stop) via these commands:
wtv020sd16p.asyncPlayVoice(0xFFFB); // loops back current audio file being played, indefinitely
wtv020sd16p.asyncPlayVoice(0xFFFC); // loops back "all" audio files from the one being played..
wtv020sd16p.asyncPlayVoice(0xFFFD); // stops any loop back.
Note these last three commands appear to be buggy... File size/type may be important...
END OF MESSAGE
I am currently working on a project but I need to conserve my PWM pins to use for other components. Can someone please tell me how I know what pins on this audio board need PWM capability? currently I have CLK and Busy going into PWM pins. Can you please help?
The microSD audio module's Wtv020sd chip uses PWM to produce sound. It does not require Arduino driven PWM signals to control it via Data/Clock/Reset signals... although... a very clever programmer with much time to waste might be able to do this!.(I doubt anyone has taken on this -dubious- challenge.) Of more interest is the observation that this technique (i.e. 'needlessly' using Arduino PWM controlled pins to drive DCLK and DIN signals,) might not significantly increase device commands, given 'the_rebel_agent's current/original? library takes 10 times longer to shift in device commands then the datasheet suggests is necessary... (i.e. about 30mS longer).
I'm trying to design a stripped down version of this board plus a lipower to replace the regular (since i'm powering with 3v coin and need to step up to 3.3v). So heres a 3 part question i hope someone can help answer for me:
1) If I'm driving speakers directly from SPK+ and -, and not using PWM (PAD_EQO, PAD_EQI), can I remove R2 and C3?
2) If my lipower already has 22uF capacitor on the 3.3v line, i should be ok to exclude C1 (100nF)?
3) If the reset line can be triggered via serial command, and I don't have a use for a momentary reset button, can I exclude Q1 and C2 alltogether? I can leave the reset pin unconnected?
Hi, I have been tinkering with the audio sound board for a school project where we will have a toy talk and move via communication with a tablet. I am currently trying to get the sound board to play the sounds that I have uploaded to its SD card but i am having a lot of trouble. I have yet to have the board produce any kind of sound. I have already: Formatted the Sandisk 2gb micro SD card to FAT16 Converted my Audio files to .ad4 format Hooked up the unit trying both serial and mp3 formats. Named the files in the sd card 0000.ad4 0001.ad4... ect. I currently am just trying to make the simplest MP3 setup work so I can proceed to more complicated tasks but I'm afraid I have reached a block. I have attached an image of what my simplest setup looks like. Also my hardware list is: 3.3v power source from Arduino Uno Ground from Arduino Uno 0.5 watt 8 ohm sparkfun speaker WTV020SD board 2gb Sandisk MicroSd card Any help would be greatly appreciated I already Emailed Sparkfun tech support. I have had no response. Thanks
https://docs.google.com/drawings/d/1Z0DvP5O10ria6O5woLyM1YiBwlH1eUOHxgjyOY3J9WY/edit?usp=sharing
Recently tried a seemingly identical sandisk micro sd card. It worked. Apparently some unknown force determines if these cards work or not haha.
Tech Support was out all day at an Engineering meeting, so that may be why you haven't gotten a response yet. You may want to try sending them another quick follow up to ensure they did get your message and it didn't accidentally end up in spam or filtered incorrectly.
I must be doing something wrong here. The datasheet shows two different 16 pin setups, but the board sitting in front of me only has 14 pins (just like in the picture). What am I missing?
The 16 pin options you are seeing are for the bare module. This board is closest to the recommended application circuit in section 8.9 of the datasheet (minus the pushbuttons). That's why you are only seeing some of the pins broken out.
I'm struggling to find this product in the Eagle library for Sparkfun in their Git Repository. I can find the WTV020SD-20S chip, but not this break out board. I've loaded I think every one of the libraries and can't seem to find it. I can see the Eagle board/schematic files that are available (and this may be a newbie issue), but I can't figure out how to use that as a library element in my Eagle design for a board to combine this with other boards. Can someone help me out?
Hello, I got this board. It initially worked fine both as stand alone and in serial mode (I interfaced it with both arduino uno and arduino mega 2560!). but now all i hear is a slight beep from speaker, nothing else ! please tell me how can I test that board is faulty or not. help me out please
You'd want to try checking each component individually. Switch to a different speaker, check the SD card, double check any additional components in your circuit, etc. Also, checking the board itself with a multimeter is a good starting point. If you are still having trouble after that, contact tech support.
Also, make sure the files are named in the following convention 0001.ad4, 0002.ad4, etc. It won't read anything else in key mode.
So those of you who are having a hard time with this (as I have had). It needs 3.3V not 3V. Check your voltage if it's not playing. I have a 3.7V lipo hooked up right now, the 2x3V 12mm coin cell and 3V 2xAA batteries did not work, even though they were registering 3V+ with the multimeter.
The Wtv020sd device on the sound card should work with '3.3v' supply voltages between DC2.5~3.6V as per the chinese data sheet.
The problem with batteries is that their voltage can vary considerably over their life... and under load, particularly if weak or of low capacity. The sound card may draw considerable current when playing audio:
http://forum.arduino.cc/index.php?PHPSESSID=a6136k9p9fg1kn6e3ub2e8er51&topic=175625.0
Any batteries or on-board supply that can maintain their voltage as above with a 100ma load may be acceptable to it.
On the microSD Audio Module there is an on-board regulator that accepts a higher supply voltage via the VCC hole/signal and drops it down to 'well regulated' 3.3v... This regulator will accept up to 12v via VCC. I would expect this would work fine from 3.8V to 5V. At higher voltages the regulator device might start to over-heat... and possibly even burn out - while playing certain audio files.
You will have more leeway with sagging battery voltage if you use the VCC connection to provide power - at the expense of additional power/energy lost through the on-board voltage regulator.
i really need help . this device with its original mode , will loop play if you let the button pressed for more than one second . it kills the battery life because the busy line used to standby the amp is always high. what is the solution to this problem ?
Busy is set while audio is playing... The library playVoice function utilizes this characteristic. This guy measured power consumption during playback. If you know your battery capacity, given the current drain, you should be able to predict longevity:
http://forum.arduino.cc/index.php?PHPSESSID=a6136k9p9fg1kn6e3ub2e8er51&topic=175625.0
EOM
nice product. now playing with the arduino library people mentioned above.
Is it also possible to control the volume via arduino code?
thank you!
hey , there is quite a problem here if you use it with the mono amp . i linked the busy line into the stand by of the amp ; but reader module has a little problem ; if you press too long (longer than around one second) the busy bypasses and stay ON indefinitely ; so the amp is stuk on ON mode , and you can t save battery life
buildcircuit.com has explained most of the things about WTV020SD module. The main issues are MicroSD card, volume of music file and sampling rate.
Got this working with sd card from old Nokia phone. It didn't work with the sd card I bought from sparkfun.
I got it working by using 512mb Kingston SD. ...And it works correctlly.
Obviouslly, SDHC cards are NOT accepted (see http://en.wikipedia.org/wiki/Secure_Digital , and also references at: https://www.sdcard.org/consumers/compatibility/ (the missing image is available at: https://www.sdcard.org/consumers/sdxc_capabilities/using_sdxc/backwards-compatibility.gif )
In fact, I got a 10 cards pack from a local supplier in Spain 'cause I was getting sick of the chinesse little verison for this device, and I finally gave up...
Is there any Mac compatible audio converter out there that anyone has come across? Or an online one? or linux.
I came across the "sox" command for Linux while researching wav-to-ad4 conversion: http://linux.die.net/man/1/soxexam
There is one called "media converter" for mac, works for me, just drag and drop and select directory, the default directory is "videos" but if you go up to the preferences, you can change that, i have it set to ask every time what directory to save to so that i don't get files mixed up. http://media-converter.sourceforge.net/
Works fine in stand alone mode on a 2GB Micro SD card bought from Walgreens. Package says "W Photo". Formatted as FAT. Simply hook up ground and positive up to 20V (stated in an older comment)to VCC. Ground either the Play, Prev, and Next line to ground for a second to command the unit. Also make sure you name your file 0001.ad4 and up. Now to control it with a PIC.
Built an MP3 doorbell (... well, AD4 doorbell) using this, the Arduino Pro Micro and the Pololu pushbutton power switch.
As bboyho suggested, the sample code from Arduino Forum works, but only most of the time. I have found playback via serial mode interface to be particularly flaky: (1) It may work on USB power but fail when battery-powered; (2) It may work for 0000.ad4 but not for 0001.ad4.
I've pinned the problem down to 2 places in Wtv020sd16p.cpp:
Not sure if this applies equally to everyone, though.
I've got this working some of the time with my Arduino UNO (breakout board is powered from UNO 3.3v supply) in serial mode, but the breakout board keeps getting hung up or something because no sound plays when it should. The busy pin will be HIGH, but nothing is coming out of the speaker. I tried the delay() changes in Wtv020sd16p.cpp, but that didn't help. I have to remove and re-apply power from the breakout board to get it working again. I posted more details on the Arduino forum: http://forum.arduino.cc/index.php?topic=117009.msg1278094#msg1278094
Several questions regarding power: None of your images show which is Gnd vs +ve on the JST connector? What input voltage range can be used on the JST connector? The 3v3 pin on the side - is this an alternative way of powering it - or is 3v3 intended for output in which case how much additional current can be drawn? If I want to power it from a 5v board do I have to use the JST connector (extra alternative header pins would have been good!) or can I use 2 x 1N4001 diodes in series to drop the voltage and feed it in to the 3v3 pin on the side? Should I also use 100 ohm resistors in series on the clock and data lines if my mcu is working at 5v?
Look at the Eagle file. With the OSHW logo on the right, the pin on the right is GND, the left is Vcc. The two pads have no connection and are just for securing the connector.
I am having a hard time connecting the module to the ATmega32. Anybody have any suggestions?
Hopefully this helps you, and anyone else attempting to use this module with an Arduino. It has been a long and winding road, but I've finally got it down. First, ensure you have a SanDisk or Samsung or other reliable brand 2GB (or less, but good luck finding them) micro SD card. If you are using Windows 7 as I am, you may find that there is no option to format the card with FAT 16. So, I recommend downloading the free software from SD Card Software . I'm not sure what it does differently, but it finally made my module work!
Also, I've uploaded an image of how to connect an Arduino Pro Mini 3.3V to the module (and to a Sparkfun Mono Audio Amplifier), but it should be helpful for any Arduino: Arduino to Audio Sound Module
Lastly, I use WavePad Sound Editor to convert my .mp3 or .wav files to the appropriate wave settings (22050 Hz, 16 Bit, Mono), and ensure your sound file is at least 1 second in length, as the software to convert to .ad4 seems to crash if the sound file is less than 1 second.
And, as bboyho mentioned above, the code from Arduino Code for Audio Sound Module works perfectly with this unit. Hope this is helpful!
Using that SD card formatting software you linked here immediately fixed the problems I was having with my module. It would play the files, but would always cut them off after a couple seconds. Now they play flawlessly!
I couldn't get this thing to work and I only have one 2 gig SD card. I downloaded the formatting software and now it works! It's a surprisingly nice little board. Why you need that software to format an SD card is beyond me but now the little thing works. Now the front door to my office will say "please enjoy your trip through this door" (hitchhikers guide to the Galaxy reference" or maybe just welcome....
TheRealTonyStark. I'm working on IM repulsors with light and sound. Got my lights working with a flex sensor to come on when hand plate is tilted back. Trying to get sound working on it and bought this module and the amp shown in the pic you posted. I connected them to my 3.3v pro mini as shown in your image and am using a 2G san disk card holding a single 22050 hz 16 bit mono wave file converted to ad4 format and named 0000.ad4 . All I get is a buzzing noise when it tries to play the converted file. Any thoughts?
The board is playing static after I ground the play button. I have 3 tracks labeled 0000.ad4, 0001.ad4 and 0002.ad4 on a 1gb fat16 formatted card. I seems that the tracks are probably playing because the busy LED is on, but i cannot hear them. Is there no way to raise the volume? Very frustrating. I have tried grounding both p04 and p05 to try to change the volume but with no luck.
I had the same problem, but for me it was .WAV files that were playing back with heavy static. I converted the .WAV files to .AD4 using the utility above and they worked fine. I suspect it's something wrong with the chip because nothing else I tried was working (adjusting voltage, etc.).
Hmm, send an email to techsupport@sparkfun.com with an image of your set up. We should be able to help you a little more from there.
Unfortunately, the volume can be controlled with a microcontroller due to the manufacturer setting the mode of operation before being sent to SFE. The default volume is maximum.
Well I connected a speaker and power to the board, loaded a converted audio file into a 1GB microSD card from Sandisk, plugged it in and it didn't work - until I changed the name of the file to 0000.ad4, then it worked fine. Grounding the Play pin played the file and grounding it again stopped the song (didn't pause it, as advertised) so that grounding it a third time played the song from the beginning. Can anyone verify this?
The chip datatsheet says it also can play 16kHz .way files, but I couldn't verify this. Anyone been successful playing these files?
Like the fact that there's a voltage regulator on board (which can take up to 20V max (12V typical)) so I just wired a 4.5V (3 x AA batteries) supply between Vcc and ground - perfect!
And regarding the Mode - unfortunately it's NOT MP3 mode as stated by other posters, as MP3 Mode allows you to control the volume, which you can't do. The mode my board was delivered in was Serial mode - hence the two serial inputs.
Still nice piece of kit - glad it worked.
I had the same experience - I can't get the 16kHz .wav files to play. I knocked it down to 11kHz and it worked fine. Also, I was able to get it to work with a SanDisk 2GB card and a Microcenter 2GB card. Both were less than $5.
Hay This is the best answer here! Thanks!!
Any information on current consumption? I just got one so I might check myself soon but I'd like to know since the datasheet is void of electrical information... I'm hoping I can use the 3.3V pin to power my MCU (planning on using an MSP430G2452) since it seems to be rated for 500mA. Would this work well with the 110mAh LiPo battery on this site?
Some anecdotal information here on power consumption: http://forum.arduino.cc/index.php?PHPSESSID=a6136k9p9fg1kn6e3ub2e8er51&topic=175625.0
What a surprise!!! The price is too high. Not sure if this module is designed by Sparkfun or their partner. I made a module based this chip a year ago. This chip is produced by a Chinese company. The chip datasheet is not good enough. I spent much time study on the chip, basically by experiment. The chip does almost everything. So programming is very easy. However, it has its own interface protocol, which makes a little hard for users (just a little). Unfortunately there is no link on this page to the code. I was thinking about putting my module on Sparkfun for sale. However, I sent mails to them but got no reply. To my surprise, today I found this module.
Hi,I'm a student using the module, but when I choose the loop mode without the MCU control, it doesn't, could you help me with this? I connected the SPK+, SPK-(to my headphone),GND,3.3V and p06(busy), what is the problem with the whole system? Thank you!
When I hook up the PWM output to an amplified speaker I hear a pop at the beginning and end of every file I play. Anyone else experience this?
I experienced this as well. It sounds great hooked up to a speaker, but I tried going to an external amplifier and there is an audible click or pop at the beginning and end of each file played. I also noticed a little buzzing while playing, but maybe I only heard it because it comes out much louder.
Did you ever get this fixed? Has anyone else had luck hooking this up to an external amp? (Lepai mini amp, which sounds great when I hook my phone up to it)
BTW, all I did was hook up the SPK+ and SPK- pins to some RCA cables which go into the amplifier. Is that correct or should they be hooked up another way?
Sounds like you need a load resistor across the output that feeds the amplifer,to keep output or input coupling capacitor(s) charged. The pop would be caused when current flows suddenly to charge or discharge the capacitors. A speaker in the circuit provides that load.
Are the "serial" (I2C) pins DCLK and DIN 5v tolerant?
Also, can you use DCLK and DIN at the same time as the pins for Play, Next, etc? Seems like you can, given the diagram on page 2 of the datasheet.
Has anyone had success wiring one of these to an Arduino? I've found a few forums online for similar modules, even some that provide a sample library. But, I've been trying for over 6 weeks to get this working, to no avail.
How do you get the installer to work, and what's up with it needing a driver?
Can we get confirmation on the supported micro-SD card size? The data sheet says 1GB, product description says 2GB... 1GB micro-SD cards are actually hard to find now days.
I got mine to work with a 2 GB Sandisk. Simple test set up with two 1.5 v batteries, speaker, switches to short to ground the Play, Forw, Rev, or RESET. Good sound quality with 24000 sample rate from wave files (using the usbrecorder.exe utility to convert the .wav files to .ad4 format).
yes its more difficult than it seems: it won't play a chirp. 2gb sd FAT format (is 2gb a problem? spec says 1gb, sparkfun says 2gb...) hooked up to 3.3v, tried a speaker as well as an amp. trying 7.1 MP3 mode in spec: connect play to gnd, then short next pin to gnd, nothing happens. tried different variations, nothing worked out... has anyone managed getting it to work in key mode? how did you set the actual key mode? thx
You mention MP3, but did you convert the files to .AD4 and save only those to the SD card?
if you keep having issues, you might want to contact techsupport@sparkfun.com. They should be able to help you out.
it seams so simple, (not to me), i plug the lipo battery, my 8ohm speaker, a 1gb sd card with a 0000.wav file, but,i dont know how to start playing the file, without using a microcontroller.
I apreciate any help. Thanks in advance an regards.
First you don't use a wav file. Convert it to a .ad4 file using one of the few converter programs on the internet. Second, after you hook all that up as you have described and get the .ad4 file on the card you need to momentarily ground the line marked 'play' to the circuit ground.
If it doesn't play then the most likely culprit is that the sd card you have is incompatible. I had to try 3 before I got one that would work.
If you put an LED on the busy line to ground you will see if flash once when it gets power. If you ground the play line and it turns on momentarily but no audio plays it is likely the sd card incompatibility issue.
Hi, this looks great! How long a delay from choosing a file to play, to actually play it ? For example if I want a song to play that is in multiple sections, in different files, can this play them with no break ups? Thanks!
When I hook the three digital lines to an arduino (clock, data and reset), should I enable the internal pullup resistor on the arduino ports? Also- should I put a current limiting resistor in series, or connect it directly to three ports? Thanks.
Several others have asked this same question. How do you change the mode of operation? I would want this module to default to 5-key mode, but nothing in the datasheet shows how to do that.
The mode of operation is set by the manufacturer. Unless you specified it's probably in MP3 playback mode.
Would this be sufficient to deliver a simple, single audio sound like a cow's Moo without distortion?
The audio is pretty good. Seems the limiting factor will be your speaker.
yes... it seems as though the audio quality is quite good.
me gusta mas el SOMO 14D
Hi the product notes ("Supports 64Mb to 2Gig micro-SD memory cards (FAT format)") are inconsistent with the datasheet ("Support 1GB SD card max. or SPI flash 64MB max."). Which is correct?
As many have reported success with FAT formated 2G micro-sd cards, you are certainly OK to try them. That having been said, I don't know of anyone who has tried filling their 2G micro-sd cards past the 1G point to check IF the sound card can address more then 1GB of memory. Given how files tend to get fragmented over a storage medium's space (as they are created and 'deleted',) I suspect someone has already inadvertently tested this on a heavily used 2G sd card...
The datasheet for this product states "Support 1GB SD card max. or SPI flash 64MB max."
Looks interesting... comparable to SOMO from 4d systems?
Even has similar pinout.
The data sheet shows several modes of operation but does not indicate how to change modes. Their example circuit is the same. I would like to operate in the key (3 group voice) mode.
The mode of operation has to be set by the manufacturer. Unless you specified what you wanted at the time you ordered I can almost guarantee you that the module is in MP3 playback mode.
Is it just me or was the price on this originally $12 US. I thought that it was an awesome deal, but now I see the price is $20 US. Am I seeing things?
Same thing here- bought one on Friday for $12, now it's $20. Not sure I want more at that price.
Are there any products like this out there that will allow you to play multiple sounds at the same time? For example, toy tank with sound effects -- "firing" machine gun and main cannon. Or a "sounds of nature" audio player that would randomly mix from library of birdsong, crickets, neighbour kids, etc.
You may be able to do something with the MIDI capability of the VS1103. Look at the percussion instruments section of the datasheet.
Unfortunately none of our current audio offerings can do this (though it's something we're always looking into). You could get around this by stacking up multiple boards, or possibly finesse a small system into playing polyphonic uncompressed audio. But to play multiple MP3s etc. you'd want something more powerful like a Beagleboard or Raspberry Pi. The prices for powerful boards keep dropping, so stay tuned!
We produce a similar board - although we include a memory card as well.
However we use an 809 for the reset interface. I'm happy to be proven wrong, but I'm reasonably sure that the WTV020 requires a reset circuit separately (which is what the 809 provides), rather than just a transistor. Despite the fact that Waytronic's dodgy schematics use a transistor symbol, in fact it's an 809 that's used on their boards, not a MMBT2222A or equivalent. The schematics in the datasheet Sparkfun have attached specify an AME8500, another "reset" or supervisory chip, whose purpose is to make sure the main device stays in reset until the power supply is stable.
Yes, it's mono, powers a speaker directly and while the commands a slightly sluggish, you can get a fair amount of stuff on a 1Gb card.
Is this mono only or can it do stereo audio out?
Considering stereo isn't mentioned in the product description and the audio is just 4-bit (8-bit seems to be the lowest resolution available for stereo audio), I'd assume it is mono.
Can we use this board as Breakout Board for microSD Transflash?
Thank you for your help.
What kind of plug is that for the speaker? I'm sure some people can tell from sight but I can't so it would be helpful to include a matching connector in the related products section below.
The JST socket is actually for a 3.7V LiPo battery (or other power source). You connect your speaker to the labeled headers (holes) on the side of the board.
The connector is a JST 2 Pin Male Horizontal Connector. Which is PRT-08612 on the website. You can see on the related products on the bottom of the PRT-08612 product page there is a list of mating connectors that have jumper wires with different types of connectors on the other side. Hope that helps!
looks like a jst: https://www.sparkfun.com/products/9749
I think there's a mistake under "Features" above. Section 1 of the datasheet specifies that the micro SD card can have a maximum size of 1 GB but "Features" lists the maximum size as 2 GB.
EDIT: Never mind, saw a few comments saying 2 GB cards do in fact work.