2
\$\begingroup\$

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?

\$\endgroup\$
7
  • \$\begingroup\$ 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? \$\endgroup\$ May 2 '13 at 14:06
  • \$\begingroup\$ I have already tried to use a 5v power supply instead USB for powering arduino, and the same problem persists. \$\endgroup\$
    – nkint
    May 2 '13 at 14:09
  • \$\begingroup\$ 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?) \$\endgroup\$
    – nkint
    May 2 '13 at 14:12
  • \$\begingroup\$ Have you tried a battery? Try a 9 Volt batter wired to the DC input jack, with any USB cables physically disconnected. \$\endgroup\$ May 2 '13 at 14:13
  • \$\begingroup\$ I don't have it know, I'm going to buy it, hear you back in a couple of hours! \$\endgroup\$
    – nkint
    May 2 '13 at 14:14
2
\$\begingroup\$

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).

Head Phone Connection

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.

Line out to Amplifier

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.

\$\endgroup\$
3
  • \$\begingroup\$ 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? \$\endgroup\$
    – nkint
    May 3 '13 at 8:02
  • \$\begingroup\$ anyway yes, it works very nice with arduino and the library is super good! \$\endgroup\$
    – nkint
    May 3 '13 at 8:02
  • \$\begingroup\$ 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. \$\endgroup\$
    – mpflaga
    May 3 '13 at 18:41
1
\$\begingroup\$

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. VSDSP Forum

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

\$\endgroup\$

Not the answer you're looking for? Browse other questions tagged or ask your own question.