Protecting a WS2812B LED from Losing Ground.
Duane Degn
Posts: 10,588
One of my projects involves using rings on a PCB to transfer power and data to a ring of WS2812B LEDs mounted on an ActivityBot wheel.
I've burned out several LEDs in my experiments. Of the 16 LEDs in the ring, the only one to die is always the first in the ring.
In an effort to understand what was burning out the LED, I experimented with one of my single WS2812B PCBs. I found the LED would remain lit if the even if the ground connection was removed. I'm guessing the low pulses on the data line are enough to sink the required current to power the LED. I wasn't able to kill the single LED with any combination of 5V and ground across any of the pins (including reverse polarity). I think the problem arises when there are multiple LEDs in the strand. I think multiple LEDs will pull additional current through the data pin of the first LED and this is what burns out the LED.
Though I haven't confirmed this, I think I had a bad connection between the pogo pin and ring used on the ground line the times the LED burned out.
The ground ring is on the outside, 5V on the inside ring and signal in between the two power supply rings. My thought was to keep the 5V and ground away from each other to avoid shorts. I'm using pogo pins as brushes.
I'm getting tired of replacing LEDs in the ring. One thought I had (which I don't like) is to use a sacrificial LED at the beginning of the chain that can be easily removed. The LED could even be on the inside of the wheel.
I figure there has got to be a better way.
JonnyMac suggested the use of a TC4427 drivers to boost the Prop's 3.3V signal to 5V. I was planning on using a TC4427 on my next revision of power and data transfer rings. What I'd like to know is if the TC4427 would also solve my lost ground problem?
Do any of you know if the TC4427 would output logic pulses if it lost its ground connection?
I'm in the process of designing a new ring PCB (with larger rings and more space between the rings) and I'd like to include pads for any ICs that would protect the LEDs.
I need some way of making sure data line isn't active if the ground line isn't connected.
Besides including a level shifting IC on the rings PCB, I also plan to add a cap or two between 5V and ground lines to reduce the effect of any intermittent power losses caused by the brushes loosing contact with the rings.
I'd appreciate any help on selecting an appropriate IC to protect the LEDs and hopefully take care of the 3.3V to 5V level shifting at the same time. These WS2812 LEDs are one of the few 5V devices I've found that don't reliably work with 3.3V logic.
I've burned out several LEDs in my experiments. Of the 16 LEDs in the ring, the only one to die is always the first in the ring.
In an effort to understand what was burning out the LED, I experimented with one of my single WS2812B PCBs. I found the LED would remain lit if the even if the ground connection was removed. I'm guessing the low pulses on the data line are enough to sink the required current to power the LED. I wasn't able to kill the single LED with any combination of 5V and ground across any of the pins (including reverse polarity). I think the problem arises when there are multiple LEDs in the strand. I think multiple LEDs will pull additional current through the data pin of the first LED and this is what burns out the LED.
Though I haven't confirmed this, I think I had a bad connection between the pogo pin and ring used on the ground line the times the LED burned out.
The ground ring is on the outside, 5V on the inside ring and signal in between the two power supply rings. My thought was to keep the 5V and ground away from each other to avoid shorts. I'm using pogo pins as brushes.
I'm getting tired of replacing LEDs in the ring. One thought I had (which I don't like) is to use a sacrificial LED at the beginning of the chain that can be easily removed. The LED could even be on the inside of the wheel.
I figure there has got to be a better way.
JonnyMac suggested the use of a TC4427 drivers to boost the Prop's 3.3V signal to 5V. I was planning on using a TC4427 on my next revision of power and data transfer rings. What I'd like to know is if the TC4427 would also solve my lost ground problem?
Do any of you know if the TC4427 would output logic pulses if it lost its ground connection?
I'm in the process of designing a new ring PCB (with larger rings and more space between the rings) and I'd like to include pads for any ICs that would protect the LEDs.
I need some way of making sure data line isn't active if the ground line isn't connected.
Besides including a level shifting IC on the rings PCB, I also plan to add a cap or two between 5V and ground lines to reduce the effect of any intermittent power losses caused by the brushes loosing contact with the rings.
I'd appreciate any help on selecting an appropriate IC to protect the LEDs and hopefully take care of the 3.3V to 5V level shifting at the same time. These WS2812 LEDs are one of the few 5V devices I've found that don't reliably work with 3.3V logic.
Comments
Doubtful; the output of the TC4427 is a totem-pole structure switching VDD and GND with FETs
This is what I'm hoping. It would be nice to "kill two birds with one IC".
Is there a reason to look for a single channel IC? Or is it not worth the bother of having an additional part in ones inventory?
-Phil
Well first off, half the point of this is to try my hand at making a wiper and ring gizmo.
Some other reasons why not (though I'm not excluding the possibility) is expense. These WS2812 LEDs can't be controlled with a little ATtiny uC. The only micro I know how to program (all of which I can count on one hand (even if the hand were missing a few fingers)) capable of driving these is the Propeller. At about $6 a pop (25 at a time from Digi-Key), it would considerably increase the cost of the board. Though I start to think about other things (sensors) that could be added to the board and it starts to look like an interesting idea.
I also want the LED patterns to react to various sensors. I'd want the pattern to respond to the speed the wheel is turning. I could add small RF transceiver to the PCB for communication but that sure adds a layer of complexity to the project.
I suppose another concern is how long button cells would last powering the 16 (really 48) LEDs in the ring. I have a couple of contactless charging units that would fit behind an ActivityBot wheel. It could be used the power the small PCB but at a huge efficiency loss.
A self-contained PCB for the wheel sounds like an interesting project, but it's not one I want to pursue right now.
-Phil
But which LED strips? The LEDs that use a separate clock signal aren't so picky about the pulse timing. I'm not aware of any other individually addressable RGB LEDs with an internal control chip.
The internal control chip is important in this particular application since it allows the LEDs to be placed close together without the need for additional ICs.
There's barely room for a few decoupling caps on the above ring. There isn't room for WS2801 chips. I suppose something could be worked out if I really wanted to use an ATtiny (which is one of the few uCs I have experience with) with this project. But as I told Phil, I really want to be able to control the patterns on the LEDs from the uC controlling the robot.
Have you documented your bike helmet project anywhere? I'd like to see it.
Very cool. Thanks for letting me know.
I'm about to try an adafruit slip ring with a neopixel stick (kind of projected PoV application) and may encounter the same issues, although not if the slip ring does its job properly.
I don't know if there are any chances for some pogo pins placement redistribution, so they can be evenly distributed along the perimeter, in a triangular shaped arrangement, 120º apart of each other?
I was wondering about any mismatch on contact pressure distribution, caused by circuit board planicity imperfections, generating or amplifying some almost unnoticeable wobbling, when the wheels are spinning.
I'd also noticed the pogo pins are touching solder dipped copper tracks, whose by nature, are rough and wavy surfaces, due to production proccess induced thermal cycling during cooling, when viewed at some microscopic level, the pogo pins may slightly be "kicking" over the solder surface, generating some sparking, although almost unnoticeable, other than "frying" the first WS2812B led.
I know the board was already designed and produced, but IMHO, it can be a lot better to place the contact rings the closer to the axle as possible, being the ground ring, the inner one, based on the currently observed problems. Only to minimize the chances of contact pressure related issues.
Also viewed under a microscope, the pogo pins can be touching the surface in some slightly deviated angle, other than an angle normal to the surface plane.
As the rotational speed increases, frictional forces could generate some pogo pins "kicking" at the contact surface, yet amplified by their internal compression springs.
If the wheels are intended to change their rotational movement direction, at each change there are even greater chances of contact pressure mismatch to occur.
Only my two cents.
Yanomani
P.S. Pogo pins internal construction and movements can be better viewed at the following link:
http://www.pccp.com.tw/index.php?option=com_content&view=article&id=118&Itemid=160
Then only the two power distribution rings would be needed.
This way, some reasonable decoupling cap could deal with any power outages, induced by sparking at the contact surface.
Sure it will not totaly avoid minor flutuations, but the opticaly insulated data receiving circuit would be experimenting the same effects, totaly in sync with the internal (to the circuit board) power lines.
Does anyone has any previous experience with clear acrylic sheet crafted light distribution rings?
And the feasibility of data transmission relying on any approach like this one?
Also, without having to use some tiny microcontroller to filter received data?
There is also the problem of available space and directing light beams into the acrylic sheet plane, and the amount of transmited versus perceived luminous power, but IMHO it can be worked out, by using three transmitting leds, connected in parallel, driving the outer ring, and burying the receiver lenses into a hole, carved at inner acrylic ring's perimeter.
Perhaps some delusion of mine, perhaps a good idea.
Does someone knows the answer, for sure?
Two more coins to the pot.
Yanomani
That's a very cool mod to your helmet. I'm very pleased to know an ATtiny can drive these LEDs. Besides the Prop, the ATtiny84 is my most frequently used chip (though I don't use it much compared with the Prop).
I'm planning on adding some capacitors to the transfer ring PCB. When you say "terminating" the data signal, do you mean at the final data out pin on the last LED of the ring?
According to the AdaFruit website these LEDs have a 200Hz internal refresh rate. So even though you can get the data out to the LEDs quickly, I'm not sure a POV would look good with these particular LEDs.
BTW, a slip ring is cheating!
I'm not sure how well an this sort of data protocol would survive the being passed through an IR tx/rx pair. I'm not too worried about occasionally missing some of the data since the LEDs are mainly cosmetic. The transfer ring will also be close to a set of IR encoders so I'm not sure if additional IR would cause problems with the encoders.
Not really. I'm squeezing the pogo pins in between the servo and the ActivityBot's chassis. There's a little bit of room for the pogo pins but they all need to be in a line.
I can assure you there are not "microscopic" imperfections in the tracks; the imperfections are very "macroscopic" aka "huge". I was afraid the gold plating OSH Park provides would wear off quickly so I tried to coat the tracks with a layer of lead free solder. While I generally use lead solder with my hobby electronics I used lead free solder in this case since I didn't want the robot trailing lead dust from the tracks. I also thought the lead free stuff might be more durable than lead solder. There was a lot of "kicking" going on. I would even hear it while the wheels turned.
The rings are as close to the center of the wheel as I can get them and not have them blocked by the servo. While the design has been produced, I only had three boards made (the minimum order). I'm in the process of making a new version. Some of the rings in the newer version will be larger than the rings in the first version. I wanted to have the tracks a bit wider and I also wanted enough space between tracks that if a pog pin were to get bent, it couldn't touch two tracks at once.
Once again, you don't need a microscope to see the problems with my pogo pins. These pins started out with points and I used an abrasive disc to sand off the points. I did just receive in the mail some "D" versions of the pogo pins which have a rounded head.
Thanks the extra information. I really do appreciate yours and everyone else's ideas but this is far from a serious issue. It's an experiment in adding fun but completely impractical LEDs to my robot. I also wanted to try the pogo pin / ringed track idea. I don't think this first attempt gave the combination as good of a chance for success as may be possible using this technique.
Thanks for more ideas. This is kind of fun problem to think about IMO. It would be interesting to see how of these various methods mentioned would work.
It is placed on the wheel, base gets an R to GND. and the data line goes through the other pins.
No ground -> no signal.