WS2812 Matrix 32 x 8

Has anyone successfully used one of these?

I was not able to get any of the LEDs to light up with the Pololu library

I happened to check the continuity of that green wire coming off the back of the matrix with the data pin on my Arduino - there is no continuity.

One is Data In and the other is Data Out (to the next matrix).

Never mind about the green wire and continuity with the data in pin - I just wasn't making adequate contact with the multimeter probes.

It is not all that easy with a flexible circuit board.

Still can't get any WS2812s to light up though.

I don't know anything about the pololu library.
I use Adafruit's.
You've included no information about your rig and so on.

Yeh - with one of my former projects I used 5mm APA106s strung together inside a 6 garden lights.

And I used the Adafruit library rather than the Pololu library.

It worked for that at 400kHz.

But the Adfrauit library still does not work with this matrix.

The matrix is powered by an ATX power supply with a breakout board providing screw terminal access to the different voltages.

I am using Arduino Due for this project, but I used a Mega for the garden lights project.

3.3V logic from the Due should not be a problem with WS2812, given the datasheet specifies a minimum of 0.9V for HIGH.

Or is it?

Doubtful.
That's the maximum for a LOW

That can always be an issue. WS2812b require 5v logic level, easiest way to achieve that is by using a 7400 ttl chip. I tend to use a 74HCT04 and run the signal through 2 gates.

Anyway post a full schematic.

Of course.

Don't use it.

It goes through the WS2812s.

Are you putting data in the "DIN" wire?

Probably does.

The datasheet you received in the package with the Matrix will help you... look for "Input Voltage." and "Power"

Correction 0.7V minimum for high and maximum 0.3V for low.

No way.
But have a good time.
Auf Wiedersehen.

I am running the Adafruit example sketch and the pin 9 is connected all the way through to the green wire.

There is a tiny 10K resistor on the matrix and the circular solder pad data and green wire in go through that 10k resistor to the first WS2812 data in pin.

That was confusing my continuity checks.

No way what?
Due will be sending through 3.3V - well in excess of the minimum 0.7V

I have a level shifter module if needed.
I am little surprised if WS2812 is THAT fickle with logic level.....not what I would expect in general.

You read it wrong - not 0.7v, but 0.7 * VCC, that is, for a WS2812 supply voltage of 5v it will be

5v * 0.7 = 3.5v minimum for HIGH level

It isn't. I've had no problem with any, and I buy the cheapest stuff. The problem is probably in your data and power (including their connections).

1 Like

Level shifters may not be the best solution, but yes they can be. The thing is they are edge triggered and the timing, although at 800KHz , is a form of self clocking SPI. The timing is fairly relaxed, but the 3.3v logic tends to cause issues.

That may be true as well. Solving an issue like this is done best by matter of exclusion. You didn't provide any code, but i would recommend an example from the neopixel library, or from my personal favorite Neopixelbus and show us a schematic of what and how you have connected stuff. Hand drawn is fine, fritzing is problematic, listing connections is insufficient. And a picture of it may give us another clue.

Oh...I see. Thanks.

It turned out my incorrect reading of the datasheet was the issue.

WS2812 requires 3.5V to register HIGH, compared to Due's 3.3V.
A level shifter between the Due and the WS2812 matrix worked with the Adafruit library.
Then it was just trial and error to figure out the correct color configuration (RGB) and the correct speed (800kHz)
So all good now.

Thanks for your help everyone.

1 Like