I am tinkering with Adafruit's Charlieplex PWM LED Driver module. And I notice audible buzz when I lit my LED brightness to the maximum. This is noted in their documentation:

You might notice some buzzing or ringing sounds from the display when all pixels are lit, this is normal as the Charlieplex driver quickly switches LEDs on and off.

Now, I would like to know if there are improvements that I can make to the circuit to completely eliminate this noise/buzz/hum.

I won't provide the datasheet or schematic here. I think all dimming LEDs have this issue, and I am looking for a guideline or good practises.


closed as unclear what you're asking by Olin Lathrop, Dmitry Grigoryev, Voltage Spike, brhans, Daniel Grillo Dec 14 '16 at 1:43

Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, it’s hard to tell exactly what you're asking. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • 5
    \$\begingroup\$ Is it the actual LED making the noise, or a surface mount MLCC-cap somewhere? \$\endgroup\$ – avl_sweden Dec 11 '16 at 20:42
  • \$\begingroup\$ Not the LEDs. Definitely coming from the LED Driver circuitry. It may be the driver. It may be the ceramic capacitors? \$\endgroup\$ – Adam Lee Dec 11 '16 at 20:50
  • 2
    \$\begingroup\$ Almost certainly an MLCC somewhere. They are piezoelectric, and physically deform when voltage is applied across them. If that voltage is at an audible frequency, you will hear the capacitor vibrating. Similar thing happens in transformers by magnetostriction. \$\endgroup\$ – vofa Dec 11 '16 at 20:52
  • 1
    \$\begingroup\$ Or film, depending on the specific application. If this is a bulk decoupling capacitor (likely), aluminum or tantalum electrolytics are suitable replacements. MLCCs are significantly smaller than electrolytics of similar ratings. \$\endgroup\$ – vofa Dec 11 '16 at 20:59
  • 1
    \$\begingroup\$ Show a schematic, or this is a non-question until then. Some parts can emit noise from pulsing, but without the schematic see which ones are driven that way and might be making the noise. It's not the LEDs making the noise. \$\endgroup\$ – Olin Lathrop Dec 11 '16 at 21:16

You are dealing with a common problem with microcontroller-generated PWM signals: An 8-bit PWM driven at the usual clock rate can skirt the edge of audio range. Let's say the chip has an 8MHz clock. An 8-bit PWM maximum frequency is 31.25 kHz. You won't hear that, but your dog might. Add in charlieplexing: now your 30 kHz PWM is being time-shared among several LEDs, effectively lowering (into the audio range) the signal to individual LEDs.

There is no easy way around this without completely changing how you approach this problem. Charlieplexing + PWM dimming will scream when implemented on a small microcontroller.

  • \$\begingroup\$ Adafruit's Charlieplex LED PWM driver is a standalone PWM driver (controlled via I2C from an Arduino). So I don't think it shares the clock with the MCU on Arduino. However, I believe my LEDs are driven at 8Khz PWM signal, which is in human-audible frequency range. So hence my problem. May I ask for other approach to eliminate the hum while still driving the LEDs at audible range? \$\endgroup\$ – Adam Lee Dec 14 '16 at 18:59
  • \$\begingroup\$ If you were designing this from scratch, or by modifying Adafruit's design, then careful layout of the circuit board would go a long way. Not having any transformers in the circuit helps a lot. Free-standing wires, such as is used in solderless breadboards, are an invitation to problems such as this. Again, no easy fix. \$\endgroup\$ – Otto Hunt Dec 17 '16 at 0:54

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