- Heat Sinks and the Raspberry Pi 4
- Is the Maker Movement on the Decline?
- How the Latest RPi Could Have Scored a Perfect Zero
- The Problem(s) with Neopixels
- The Problem with Overclocking and the SPI Bus
- Nice Video of Last Summer's KC Maker Faire
- Python Cheat Sheets
- Benchmarking the New Raspberry Pi 2
- Power and the Single Pi
- The Problem with HATs
- The Problem with Relays
- Geekspace Gwinnett Pi Jam
Table of Contents
Introduction
You’ve probably have seen NeoPixels: those wonderful, colorful LEDs that only require a single wire for 24 bit color control. Maybe you’ve even bought a few of them. They’re made by a Chinese company called Worldsemi and have the part number of WS2812B. Seriously, they’re fun and add pop to any project.
But, we recently used them in a project and discovered that, well, they have a few problems that can bite you pretty good if you’re not ready for them. First off, let’s take a detailed look at this device:
The WS2812B is a 4 lead plastic device with a plastic lens that exposes 4 semiconductor devices. These are the WS2811 LED controller chip along with the red, green, and blue LED dies. The device has four pins that include power, ground, data in, and data out. To drive them, you connect them so that the data line propagates through each package. The length of the data packet is equal to 24bits times the number of LEDs in the string.
Now let’s discuss the problems that we encountered.
Consequences of a Single Point Failure
We designed a board that incorporated a 10X10 array of these chips for use as a backlight. They were assembled by an experienced contract manufacturer. However, when we turned them on we found that about half of the boards had large areas of LEDs that were off. We quickly realized that, by their nature, if one of the controller chips in the package fails, every device that follows in the daisy chain will fail to receive its data.
Let’s take a look at a schematic from the datasheet:
Data enters the Din pin on U1. Internally, the WS2811 chip strips away the first 24 bits and passes along the remaining data from the Dout pin to Din on U2 which also strips away 24 bits before passing it along to the next device (erroneously labeled U1).
One big problem we saw was when the WS2811 in U2 failed. When that happened none of the devices that followed it ever received their data. Troubleshooting seemed obvious at first – we assumed that the first dark LED in the string was the bad one. Turns out, that wasn’t always the case - sometimes the last functioning chip didn’t pass along the data.
That takes us to:
Soldering
We spent a lot of time looking at these devices under a microscope while we desoldered and soldered them. And maybe it was because the lens let us watch everything that was going on or maybe we were heating up the pins for just a bit too long but every time we touched the tip of the soldering iron to a pin for just a second, those big flat areas that hold the LED dies, bond wires and controller chips would melt. Our biggest concern here is that a bonding wire or an LED die would pull away when the heat was too high.
Based on what we saw, we learned to work fast and avoid lead free solder for rework. For a while, we would get a board working only to have a different LED fail later on. Sometimes the failure was a controller chip and sometimes it was just one of the color LEDs no longer working. We strongly suspect these were heat related failures. By the way, we called this constant failure/repair exercise “whack a mole.”
Color Matching
Our next complaint with the WS2812B chip is about color. When you buy these devices from Woldsemi you have no choice but to take the LEDs that you receive and use them. Unlike most LEDs, you do not have the option of choosing the color range of each of the red, green, and blue components like you would in something like a Cree CLY6D-FKC-CK1N1D1BB7D3D3. Now you might think that this isn’t a big deal but if your board uses lots of these LEDs and they come from different lots, you WILL see color differences. For example, we had groups of adjacent LEDs that displayed white very differently – one set looked definitely white while the other set had a pinkish tint. Unfortunately there is little you can do about this except to ensure that each board receives its LEDs from reels with the same date code and lot number.
The same is true for efficacy by the way. You can’t guarantee nor can you stipulate that LEDs from two different batches put out the same amount of light when driven with the same amount of power.
Power Consumption
This is really a quibble but, these things tend to gobble power. We have seen anywhere from 50 to 60mA at 5VDC. This translates to 250 to 300mW. Now that may not seem like much but it can add up fast when you drive hundreds of them to full white. Much of this goes back to the low efficacy of the chips used in these devices and some of it can be blamed on the simple DC driver circuit used to control each LED die. In fact, if you examine the WS2811 chip in the microscope, you can see some classic resistor patterns etched into the die.
Conclusions
If you plan to use these chips in a project, make sure you know what you’re getting into. Don’t use them for something that is “mission critical” or on a board that will be inaccessible when it is deployed. Be careful if you hand solder them and, if a third party is assembling your boards, be sure they are following the correct reflow solder profile.
Excellent article, hand soldered about 6 or 7 WS2812B before, getting
the pin-out right. ( Wasn't familiar with the Vdd/Vss terminology )
Finally got one working on the FastLed program, as well as the Adafruit Neo-pixel.
I'm fairly new to SMD soldering, but finally got the hang of it after a few 0805 resistors,
led's and caps.
Way to go!!
walt
One more thing about the WS2812B LED's. The +5V to GND is reverse polarity
protected, but it seems the "Data In" and "Data Out" pins are "Not" reverse polarity
protected. (Maybe this goes without saying??)
Haven't seen this written anywhere else.
Please correct, if this is wrong.
Thanks.
You don't usually find reverse bias protection on devices. So, I'm surprised that the power pins were protected.