Static Colors and Patterns "Shimmer" (voltage drop and color shift)

I’m experimenting with some non-animated patterns and even simple single color patterns.

I notice with some of these I will get a “shimmering” effect across the strip, or also some unexpected colors or changes in color across the LEDs.

For example, an all white pattern at 100% is only showing red.

export function render(index) {
  hsv(0, 0, 1)

A blue/green pattern shows blue/green for the first 25 or so pixels and then just green after that.

export function render(index) {
  hsv(.55, 1, 1)

White turned down considerably is doing the shimmering thing, and is mostly orange.

export function render(index) {
  hsv(0, 0, .5)

White turned down very far is clean.

export function render(index) {
  hsv(0, 0, 0.08)

I’m running a new PixelBlaze with updated firmware. LED strip is a WS2812B. Docs say it can pull 30W, so that’s 6A. My current power supply is 5A, so it’s a little under powered. The PixelBlase is powered together with the strip.

I’m guessing that I’m simply overloading the capabilities of the power supply. But I wanted to check if anything strange might happen on the PixelBlaze side also. Like would it be trying to continually re-render with a static pattern like this, causing the shimmering? Or if my strip is pulling too much current with the brighter patterns, am I potentially underpowering the PixelBlaze and making it unhappy?


Hi @brad,
You are definitely having power issues. It looks like a bit of both a weak power supply, and possibly wiring.

If you can, measure the voltage at the power supply, and again at the start of the strips. If it can’t keep up, voltage will drop below 5V. Much below 4V and you can start to lose colors. First blue, then green, and red last. That is why you see red instead of white.

Wiring also causes voltage drop. Wire isn’t a perfect conductor, and has current increases, the resistance in the wire will cause a voltage drop. Using thicker wire can help there. Sometimes connectors can be a source of issues as well, not all connectors are designed to handle high current loads.

If the voltage at the power supply is dropping, your power supply is too weak to handle the current draw. You can either reduce brightness, or get a stronger power supply.

If the voltage at the power supply looks good, but the voltage at the LEDs is low, then you are losing power in the wiring. I like to use this table to find a good size wire given how much current I plan on sending:

You can also get the resistance from this chart - just be sure to count both directions (double it). For 5A, I would use at least 22AWG wire, and expect 32.3 milliohms of resistance per foot. However, at 10ft, that is .323 ohms, and .323 ohms at 5A would drop 1.6V! Switching to 18AWG wire would get you only 0.64V drop at 10ft.

If you are seeing a gradient (as you describe in one scenario) then it isn’t only a matter of power supply and wiring to the start of the strip(s). The LED strips themselves have resistance and will drop voltage over some distance, so it may be necessary to inject power at multiple points along the way. Typically doing this at the start and end of each strip/segment is plenty, and is only an issue with multiple combined LED strips over 4 meters (or 2 meters for the high density stuff). Starting with a strong power supply and thick wiring will help as well, since it will have more usable voltage range.

1 Like

Thanks @wizard!

You’re spot on. 4.91V at the supply. 2.9V by the time we hit the strip. (It was some very small wire…) Changed that so now 4.89 at the feed point. That does well for most of what I was testing.

A full white can still not run the length of the strip without shifting color, but I’m also working with a 5M strip of 150 LEDs. Based on what you said, that’s now a strip limitation. And a quick test of powering both ends proves that correct. With that everything is as expected.

Looks like I’ll be running some extra copper to power everything. Appreciate the help. Cheers!

1 Like