Archive for category Science

Cheap WS2812 LEDs: Failure Waveforms

The failed WS2812 pixel remains defunct:

WS2812 array - failure 1

WS2812 array – failure 1

Attach scope probes to its data input and output pins (with the fixture face-down on the bench):

WS2812 LED - fixture probing

WS2812 LED – fixture probing

The output no longer comes from the Land of Digital Signals:

WS2812 Array Fail 1 - in vs out

WS2812 Array Fail 1 – in vs out

I immediately thought the broken bits occupied the first 24 bit times, when the WS2812 controller should be absorbing those bits from the incoming stream. The vertical cursors show the failed bits occupy 54 µs = 40-ish bit times at 800 kHz (or you can count them), so it’s worse than a simple logic failure.

A closer look:

WS2812 Array Fail 1 - in vs out - detail

WS2812 Array Fail 1 – in vs out – detail

At least for those bits, neither output transistor works well at all. On the other paw, the output shouldn’t even be enabled for the first 24 bits, so there’s that to consider.

Lo and behold, it also fails the Josh Sharpie Test:

WS2812 LED - test array failure 1 - ink test

WS2812 LED – test array failure 1 – ink test

You may recall it passed the leak test shortly before I assembled the test array a month ago. Evidently, just few days of operation suffices to wreck the seal, let air / moisture into the package, and kill the controller. Not a problem you’d find during a production-line test (assuming there is such a thing), but it should certain appear during the initial design & production qualification test phase (another assumption).

Weirdly, a day after taking that photo, the controller began working perfectly again and the LEDs look just like they should: there is no explaining that!




Cheap WS2812 LEDs: Test Fixture Failure 1

Well, that didn’t take long:

WS2812 array - failure 1

WS2812 array – failure 1

The red spot in the next-to-bottom row of the test fixture (*) marks a failed WS2812 LED. All of the LEDs above it, plus the LED just to its left, are in pinball panic mode: random colors flicker across the panel as the LED’s controller transmits garbled data and the downstream LEDs pass it on.

This failure provides several bits of information:

  • The LED sees the same power supply as all the rest, so it’s not a power thing
  • The LED gets data from the adjacent WS2812, so it’s not an Arduino output thing
  • It failed after about four days = 100 hours of continuous operation

I connected the previous LED’s output (#6) to the next one’s input (#8), so the failed LED (#7, now with output disconnected) continues to flicker, but doesn’t influence any of the downstream LEDs.

(*) The LEDs are daisy-chained from lower right to upper left, row by row, so that’s LED #7 of 28.


Squirrel vs. Bird Feeder

After months of attempts and (occasionally) spectacular failures, one of the backyard squirrels managed to climb aboard the bird feeder:

Squirrel on bird feeder

Squirrel on bird feeder

The shutter closes when more than two cardinals and a titmouse perch on the wood bar, so the squirrel didn’t get anything. However, back in 2008, one of that critter’s ancestors mastered the trick:

Not a Squirrel-Proof Feeder

Not a Squirrel-Proof Feeder

Since then, I’ve raised the feeder about five feet and inverted a big pot over two feet of loose PVC pipe around the pole.

Given the number of squirrel-training videos on Youtube, however, it’s only a matter of time until the critters put all the tricks together!


Monthly Science: Minimal-Woo Cast Iron Pan Seasoning

After trying several variations on a theme, our daily-use pan now looks like this:

Cast Iron Pan - after weekly seasoning

Cast Iron Pan – after weekly seasoning

Those obvious wiping marks come from an oily rag in a hot pan. What could go wrong?

The reflected light bar comes from the under-cabinet LED strip.

The surface withstands stainless utensils, cooks omelets with aplomb, and requires no fussy KP:

Omelet in cast-iron pan

Omelet in cast-iron pan

The low-woo seasoning recipe, done maybe once a week when the bottom has more gunk than usual:

  • Clean the pan as usual, wipe dry
  • Begin heating on medium burner set to High
  • Add 0.2 ml = 10 drops = 1 squirt of flaxseed oil
  • Wipe around pan interior with small cotton cloth
  • Continue heating to 500 °F, about four minutes
  • Carefully wipe oily cloth around pan again
  • Let cool

Works for us and doesn’t involve any magic.


Cheap WS2812 LEDs: Test Fixture

Given that I no longer trust any of the knockoff Neopixels, I wired the remaining PCB panel into a single hellish test fixture:

WS2812 4x7 LED test fixture - wiring

WS2812 4×7 LED test fixture – wiring

The 22 AWG wires deliver +5 V and Common, with good old-school Wire-Wrap wire passing to the four LEDs betweem them. The data daisy chain snakes through the entire array.

It seems only fitting to use a knockoff Arduino Nano as the controller:

WS2812 4x7 LED test fixture - front

WS2812 4×7 LED test fixture – front

The code descends from an early version of the vacuum tube lights, gutted of all the randomizing and fancy features. It updates the LEDs every 20 ms and, with only 100 points per cycle, the colors tick along fast enough reassure you (well, me) that the thing is doing something: the pattern takes about 20 seconds from one end of the string to the other.

At full throttle the whole array draws 1.68 A = 60 mA × 28 with all LEDs at full white, which happens only during the initial lamp test and browns out the supply (literally: the blue LEDs fade out first and produce an amber glow). The cheap 5 V 500 mA power supply definitely can’t power the entire array at full brightness.

The power supply current waveform looks fairly choppy, with peaks at the 400 Hz PWM frequency:

WS2812 4x7 array - 200 mA VCC

WS2812 4×7 array – 200 mA VCC

With the Tek current probe set at 200 mA/div, the upper trace shows 290 mA RMS. That’s at MaxPWM = 127, which reduces the average current but doesn’t affect the peaks. At full brightness the average current should be around 600 mA, a tad more than the supply can provide, but maybe it’ll survive; the bottom trace shows a nice average, but the minimum hits 4.6 V during peak current.

Assuming that perversity will be conserved as usual, none of the LEDs will fail for as long as I’m willing to let them cook.

The Arduino source code as a GitHub Gist:


Cheap WS2812 LEDs: Leak Tests vs. Failures

Applying the Josh Sharpie Test to three defunct WS2812 LEDs produced one failure:

Failed WS2812 LED - leak view 2

Failed WS2812 LED – leak view 2

The other side shows where the ink stopped seeping under the silicone:

Failed WS2812 LED - leak view 1

Failed WS2812 LED – leak view 1

I don’t know if I melted the side of the LED or if it came that way, but, oddly, there’s no leakage on that side.

This LED matches the layout of Josh’s “crappy” LEDs, as does the entire lot below, although I suspect that’s more coincidence than anything else; there aren’t that many different layouts around.

Flushed with success, so to speak, I ran the Sharpie around all the unused LEDs from that order:

WS2812 LEDs - leak test

WS2812 LEDs – leak test

I tested the process on the three LEDs in front, then wiped the ink off with denatured alcohol.

A closer look shows the ink all around the silicone-to-case border, with plenty of opportunity to seep in:

WS2812 LEDs - leak test - detail

WS2812 LEDs – leak test – detail

After wiping the ink off, none of the 31 unused LEDs showed any sign of poor sealing.

I haven’t been keeping good records of the failures, but right now I have twelve functional WS2812 LEDs attached to various glass doodads. That leaves 7-ish failed LEDs out of the 15-ish with long term use (not counting four recent replacements).

In round numbers, that’s a 50% failure rate…

I should wire up the remaining sheet of LEDs as a test fixture, let them cook for a while, and see what happens.


Monthly Image: Turkeys in the Trees

A turkey flock forages through the bottomlands along the Wappinger Creek and, at night, roosts in the trees at the far end of our driveway:

Roosting Turkeys - visible

Roosting Turkeys – visible

I’m a sucker for that moon:

Roosting Turkeys - visible

Roosting Turkeys – visible

It’s rising into the eastward-bound cloud cover bringing a light snowfall, so we missed the penumbral eclipse.

If you’re counting turkeys, it’s easier with a contrasty IR image:

Roosting Turkeys - infra-red mode

Roosting Turkeys – infra-red mode

Mary recently counted forty turkeys on the ground, so that’s just part of their flock. I think their air boss assigns one turkey per branch for safety; they weigh upwards of 10 pounds each!

Taken with the DSC-H5 and DSC-F717, both the the 1.7× teleadapter, hand-held in cold weather.

Searching the blog for turkey will turn up more pix, including my favorite IR turkey shot.

1 Comment