Can this shield play MP3 files? What about WMA, Ogg, AAC, etc?

No, compressed audio requires either a specialized chip (which is expensive) or a very powerful chip. The Arduino microcontroller can't uncompress MP3 on the fly and to keep the shield inexpensive, no mp3 decoder chip is included.

For recording and playback of other file formats, see the VS1053 breakout board.

What sort of audio can it play?

It can play uncompressed Wave files (.wav format). This is a standard format and pretty much every audio program can convert your music or audio into wave format. Make sure the sample rate is mono, 22KHz (or less) and 16-bit (or less). The user manual has instructions on how to convert and adjust files for optimum playback.

Can I play two files at once?

No, the waveshield can only play one WAV file at a time. There is no way to play two or more wave files at one time - the Arduino is not fast enough to mix audio.

Can it play Stereo?

No, the software libraries, and hardware DAC and amplfier do not support stereo sound. You could split the mono output into two speakers but they wont be 'true stereo.'

What does it sound like?

The best way to determine if the quality is good enough for your project is use Audacity and go thru the steps in the User Manual for converting MP3s (and other files) to 22KHz/16-bit format.

Can this shield record audio?

There is no hook-up for a microphone, so it will take a bit of hacking. But recording is possible with the WaveRP library by fat16lib.

Don't try this with an older Arduino (atmega168). You need the memory of an Atmega328 (such as an Arduino Uno).

What pins are used by the shield?

Pins 13, 12, 11 are always used by the SD card (they are the only pins that have a high speed SPI interface). Then there are 5 other pins used to talk to the DAC and SD card, but they can be set to connect to any arduino pin. However, by default, the library is configured to use pins 10 (for SD card) and pins 2, 3, 4 and 5 for the DAC. To chanage these pins requires modifying the library - the pins are referenced by their 'hardware' pin names (ie PORTD, etc) not by arduino pins.

That means pins 6, 7, 8, 9 and the 6 analog in pins (also known as digital i/o pins 14-20) are available.

How come I cant use the PWM output on pin 9?

Timer 1 is used by the wave shield for timing, if you want to use a servo, you can use ServoTimer2 or a 'softservo' library.

What are LED1, LED2, R9 & R10 for? They're not in the instructions.

These are 'spots' for unincluded components, you can install 3mm LEDs into the slots and 1K resistors into the matching resistor slots. Theres a solder hole next to them so you can wire up the LEDs as indicators. There's no software in the shield library to support them, they're just component locations.

What is CD, WP and SW?

CD is the Card Detect switch in the SD card holder, WP is the Write Protect detect switch in the SD card holder, SW is the switch in the potentiometer. See the schematics for how these are connected up. They are not used in any libraries, there is no example code for them. If you want to use them they are there but are not necessary.
This guide was first published on Jul 17, 2013. It was last updated on Jul 17, 2013. This page (FAQ) was last updated on May 04, 2015.