Project - WS2811 LED Strip Demo using modified WS2811Led from @Nicolas3

I just posted WS2811 LED Strip Demo using modified WS2811Led from @ Nicolas3 on Codeshare. Feel free to discuss and make suggestions here.


Very impressive demo :slight_smile: love it! What about using that for Bluetooth device detection?

1 Like

@ Jason - Great work figuring out the initialization issue and finding a fix. Now I can use one of my Cerb boards for my third star. Sweet!

1 Like

The first green LED issue was driving me mad. Top job finding the fix Jason :dance:

Just found your fix for the first led issue and it works great. I have another question : did you have to level up the signal coming from the cerduino to 5v ?

Are you talking about the signal pin? Or the power? As a rule, you should not power RGB LEDs directly from the microcontroller board, particularly if you’re driving a large number of pixels.

AdaFruit has a great guide to these LEDs (NeoPixel is just their brand for the WS2811/2812 LEDs), which includes some important points on supplying power in a way that reduces the likelihood of damaging the strips:

@ devhammer -
(using a colleague account because as a first time poster, my account is delayed because of forum anti-spam procedure… : not good for conversation).

Yes, I am talking about the signal pin. My led strip works fine but from time to time some LEDs just change their color randomly (not what I coded) that is why I am asking this question (and it is mentionned in the adafruit guide that 3.3v microcontrollers need to level up their signal).

For the LED strip, I am using an external 5v power supply as mentionned in the adafruit guide.

Will this work for the WS2812 devices?

I have a 60 segment ring that I am using to build a reflection against the wall clock and it would be great if I could NETMF it. Just now I use a Spark Core module.

Is that custom or did you buy that somewhere?

Got them from this guy on eBay. Same units as Adafruit but the whole ring for a cheaper price. :slight_smile:

1 Like

And it looks like he probably even stole his picture from Adafruit. I recognize that soft black background :smiley:

@ devhammer - Yes, I am talking about leveling up the signal pin (my board is a Cerbuino Bee).

The led strip works fine but from time to time some LEDs just change their color randomly that is why I am asking this question. The adafruit guide explains that 3.3v microcontrollers may need to have their signal leveled up.
For the LED strip, I am using an external 5v power supply as mentionned in the adafruit guide.

1 Like

@ Francois-Xavier J -

Answering my own question : Finally no need to level up the data signal coming from a CerbuinoBee.
Random color changes were due to bad/loose wire connections…

1 Like

Did you ever test this? I have a strip that I want to try and power up tonight.

@ ianlee74 - It does work with WS2812 devices. I have verified timings with datasheet as well and they are within allowed ranges.
I used the driver in my NeoPixel ring flashlight. The ring uses WS2812 LEDs

1 Like

@ Architect - Excellent. Thanks!

@ ianlee74 - WS2811 vs. WS2812 is just a difference in packaging. WS2811, from what I understand, is the driver chip, while WS2812/WS2812b are variants of the LED with the driver IC built into the LED itself (the WS2811 strips have the IC separate from the LED, IIRC).

Here’s a link that describes some of the important stuff:


1 Like

There is also slight difference in pulses length.

I can confirm that this driver works great with the WS2812 devices, also. Thanks to everyone involved. Up & running (including solder time) in under 30 minutes. That’s the way I like to start off a night!

I’ll make one contribution. I didn’t see anywhere instructions on how to wire anything up. So, here’s a little instruction for anyone getting started.

WS2812 => NETMF (Gadgeteer “S” Socket)
=========== =========================
+5V (red wire) => Pin #2 (+5V)
GND (white wire) => Pin #10 (GND)
DI (green wire) => Pin #7 (MOSI)

Of course not everything will be always straightforward. While working fine on G120, the same code could not control the 1st LED at all and could only partially control 2nd LED on my Cerb40 II. Not sure if any other board is affected by this, but without a logic analyzer it would be very hard to figure out why your code is not working as expected.