# MP3 player shield makes noise

I'm using the mp3 player shield from sparkfun and an Arduino UNO. Everything is OK, I formatted my Samsung micro SD cards with FAT, I converted mp3 files with ffmpeg, I load the examples file and modified them a bit, I can play mp3! Great. This is with an earphone.

But.. if I try to connect some 20 euros speakers I hear a strange low-frequences buzz/white noise. Even if the shield is not playing anything.

I'm aware on this pdf on connecting analog output and I've tried to read it but I didn't understand anything.. It explains how to avoid interference caused by long cables but my is not a long cable.. Can it be useful? What can I do?

• What is the power source for your speakers? Also, what is the input impedance for the speakers, and the output impedance for the MP3 Shield? Finally, have you tried powering the Arduino and shield with a battery rather than USB or wall-wart? May 2 '13 at 14:06
• I have already tried to use a 5v power supply instead USB for powering arduino, and the same problem persists. May 2 '13 at 14:09
• In the back of the speakers there is this: AC 230V~50Hz 0.08A. I don't know what is the impedance of the speaker neither of the MP3 Player Shield. How can I know it (measure it with a multimeter? read it somewhere? anything else?) May 2 '13 at 14:12
• Have you tried a battery? Try a 9 Volt batter wired to the DC input jack, with any USB cables physically disconnected. May 2 '13 at 14:13
• I don't have it know, I'm going to buy it, hear you back in a couple of hours! May 2 '13 at 14:14

You likely have a ground loop, between the chips GBUF and the speakers GND, caused by the speakers power supply. Note the SFE MP3 player is like your referenced vs10XXan_output.pdf Section 2.1 Figure 4 or 5 (minus the ESD).

Note the GBUF (the return of the headset) is not GND. The VS1053's output is likely a Class D amplifier. Hence it's switching at high frequency, in reference to the return (or GBUF). Section 3.2 recommends that when the VS1053 is driving a amplifier, it requires the addition of C1,R1,C2,R2 as shown in figure 8.. The SFE MP3's schematic does not have these. leading to some complaints, such as your.

The SFE MP3 and UNO with a no-name amplified speaker set works for me. But I believe my speakers have AC isolation within, as it only has hot and neutrual and no ground, yours likely has some connection to ground. Hence you are hearing the switching across GBUF. Additionally there are warnings stating this can be harmful to the amplifier.

Until SFE changes their design, the only solution is either a isolated amplifier or hack a cable to include the addition AC coupling (aka R's and C's).

Regardless the VS1053 and its open source Library are a great companion for the Arduino. I have seen many successful projects using it.

• very clear. so i need R1-C1 R2-C2 for my amplifier. how figure out the value of R and C? And they are good also if I use an amplifier with AC isolation or do they reduce the quality? May 3 '13 at 8:02
• anyway yes, it works very nice with arduino and the library is super good! May 3 '13 at 8:02
• From the app note, Section 3.1 Figure 7 shows a more involved schematic, where the main idea is seen on C1 and C68, as they use 10uF. I have actually made my own board with 0.1uF. I will note that this may be difficult to wire in by hand. The main ground loop is caused the shields connection to GBUF. Putting in CAP's in the cable for left and right, then the cables shield(outer) needs to then go to GND, not shield(outer) of the 3.5 receptical. I would suggest the simpler approach may be to isolate the Amplifiers power supply from GND. May 3 '13 at 18:41

A ground loop is possible, but you also need to put a RC low pass filter to filter out the high frequency sigma-delta switching noise from the amplifier input. VS1053 output driver is designed for headphones, but speakers with D class amplifiers sample the input signal and this process of sampling aliases the high frequency noise to audible frequencies, creating white noise.

The green circles marked "Sigma Delta reconstruction filter", to make the line out, is the RC that you need.