Odd problem with WS2812B - only lighting up if filtered through neopixel ring first

I recently received my Pixelblaze V3 (and pico, but haven’t gotten into that one yet).

I also had ordered a 300 pixel string of WS2812B (from Amazon )

When I hooked it up, the string wouldn’t light up. I connect a (branded) Neopixel ring, and it displays fine. I then hook the string up from the neopixel data out, and the string lights up just fine, communicating in the expected sequence with the neopixel ring. (I’ve been adjusting the pixel length appropriately each time).

When I then connect the data line directly to the string, the string doesn’t work. I reconnect the neopixel ring, and the string again works form the ring’s data out.

I’m not sure where to start in figuring this out. Is there a timing issue that the ring error corrects before it passes it on to the string? Are there other potential concerns?

In settings I have neopixel WS2812 selected, 300 pixels (or 16/316, depending on if the ring is hooked up), Data speed 800 kbps, 270ns/630ns, color order GRB. The colors display correctly.
I don’t have other strings/rings to try other than these two.

Any suggestions? Is this a fixable problem?

(completely new to pixelblaze, and only prior experience with WS2812 was through arduino and its libraries)

Hi Ben! Welcome to Pixelblaze!

Just to see if I understand, when you connect the Pixelblaze data line directly to the string, is it also fully disconnected from the ring in that scenario?

Just because a few us us have been discussing recently how “Y” type configs can be really finicky with signal reflections or impedance matching.

1 Like

So yes, it could be a timing issue.

Let’s recap:

PB -> string = no light
PB -> ring = light
PB -> ring -> string = light

Have you adjusted the timing with just the string on it?

Ws2812 is essentially a in/out protocol… Pixel one gets all of the data, takes the first, lights up using it, and it passes ALL of the rest of the data onward, meaning it rewrites it onward to Pixel 2. So Pixel 2 takes the incoming data, take the first (which is really the second now), and does the same.

So your ring is correcting something to a format that the string likes but that the PB isn’t doing.

My first guess is timing.

My second guess is power, but with you having both lit, less so. What is your power setup? Wiring?


Hi @bdm,
After lookin in to this, I think the default timing of V3’s WS2812 support may not be compatible with the Eco variant of WS2812. Searching for information on these, I found several LED controllers having issues with these Eco variants specifically.

I agree with @Scruffynerf’s assessment. The ring LEDs are compatible and can accept the output from PB, and are re-formatting the timing in a way that is compatible with the WS2812 eco LEDs. Your V3 doesn’t have configurable timing though, so there’s no setting to adjust.

I’ve ordered a spool of those same LEDs and will investigate further and work on an update.


I’ve got an Eco 16x16 matrix I’m using, I’ll have to check the settings. I do recall I had some weirdness at first, but I attributed it to that I was swapping around the controller and just didn’t have it set right anyway, so I didn’t notice more than “oh, change the settings to be correct”

But that’s a v2. I haven’t tried it with my v3s yet.

Thanks @Scruffynerf, @wizard and jeff [it seems I can only mention two users in a post]

I had been wondering why I couldn’t adjust the timing, but I see wizard’s comment as to not being able to adjust this on v3. I hadn’t been paying attention to the eco variations when purchasing, it seems. I eagerly await his discoveries with the string he ordered.

@Scruffynerf Your summary is correct with the order of string/ring and light
My power supply had been a thought of mine as well, before I tried the ring. I had been using a new 15 amp power supply, and changed to my benchtop supply and still had the same problem (and saw it drawing only 0.3-0.4 amps). Given either source could easily power the ring+string I’m less concerned about that being a factor.

[Jeff] I was not running a y-type configuration, and it’s good to know to avoid it in the future.

Thanks all!

I just got my spool, and haven’t had any problems getting it to run the strip. I wonder if there is some kind of environmental factor at play too, like temperature or voltage. I’ll keep poking at it when I find time, but if you have any more details to share about your setup in the meantime, let me know.

Interesting, thanks for checking @wizard . Perhaps I simply have a dud string.
I tried bridging the data line to the contacts further up the string, and the same thing occurred - I only got lights if it first went through the neopixel.
This was at room temperature, likely a bit lower humidity - 35-40% or so. This occurred with two different power supplies - a standard brick (5v 15A power supply) and also my bench-top supply. They both were sufficient to drive both the neopixel and the string. I may try run the power through some capacitors to clean it up a bit, if that makes a difference.

The pixelblaze firmware would have been current as of Feb 18th, when I posted this - unfortunately, the device isn’t with me right now to confirm the version.

If it is just a dud string in some way, I can get a single ws2812 pixel to insert at the beginning of the string to ‘clean it up’, and try a new string, I suppose.

It might also be a slightly different version (they change the silicon on these LED chips quite a bit), or just enough of a manufacturing difference to be just barely missing the data.

If you like, I’ll offer to swap your spool for mine. That would give you working LEDs with no hack, and I would get a sample of difficult LEDs to make work :slight_smile:

I could swap your PB as well in case it’s something about the pairing. There’s also the chance that the level shifter on your PB was bad or out of spec. I’ve run in to that once before where one had very low drive capability, and it could be the eco LEDs need a good solid signal while the other ws2812’s read it just fine, then regenerate a strong signal.

1 Like

I’d be happy to do this - thanks!
Of note, I had temporarily soldered a bridge between data of the first pixel to the second pixel, as initially, I thought that was the problem (it wasn’t) - other than that, it hasn’t been defaced/damaged in any way.

I’ll try send you a direct message, but if this doesn’t work, please message me.

edit: is messaging an option within this forum? I can’t find it.
Also, as I live in Canada, I’m not sure if this would possibly be a bit of a customs nightmare. If anything, possibly simply swap LED spools…

edit #2 Pixelblaze v3.12

Yeah, there’s a DM feature in the forum (Discourse), messages can be found in the envelope icon under your account menu on the top right. You can start a message by clicking my avatar/name, and it should give you a message button.

You can also email me wizard@electromage.com

The international thing does add cost/complication and can take quite a while, but I think we can figure something out. I’ll send you a DM now and we can figure out the logistics.

I’ve replied to your DM. Funny, I didn’t see that message button earlier, but I also just received a message that my trust level was promoted, so perhaps I was too new previously to send DMs.

1 Like

Update, should anybody else be trying to sort a similar problem out:
So, after some sorting through, it looks like my first strip of WS2812B’s was faulty.
I ordered two others (accidentally got the 30 pixels/m density rather than 60), and it performs perfectly well. The original 60/m string continues to be shotty - it ends up not consistently lighting up regardless of if it is filtered through another ring/strip or not. Once I get into my shop with my soldering kit next, I’ll try snipping off a pixel at a time until I may (possibly) get something reliable.
(Thanks @wizard for the offers to mail/exchange, but I’m glad the international shipping was going to be headache enough that we/I pushed through to find the (non-pixelblaze) problem)