First the progress
I've developed solid PIC Basic Pro code that can reliably drive a 4m string of WS2811 RGB LEDs at 60 devices/m without spurious resets. I'm using PBPX 3.0.7.4 compiler, MPASMX assembler and a Microchip PICKIT 3 programmer to download the code into a PIC18F4520 running at 40 MHz (10 MHz external resonator with 4x HSPLL clock multiplier turned on through configuration bits).
The base function that generates the necessary pulse trains is attached as a PDF. There are still optimizations that I'd like to explore, but this chunk of code works well, so I'm building up pattern generating code on top of this function and adding IR remote control.
A video clip showing some of the patterns I've generated is embedded below.
Next, the set backs
I'm a little amazed and simultaneously disappointed at how delicate the WS2811 devices are. Tonight I destroyed a third WS2811 LED device in a way that took me by surprise. How did the third WS2811 get destroyed? I turned on a light. You can see the evil, chip-killing light in the clip below along with the repair procedure that gets the remaining LEDs working again.
I know that fluorescent lights can kick out pretty intense EMI when they turn on. This light has reset many micro-controllers sitting on the desk that it illuminates. I have replacement LEDs on order, but I think it is time for a clamping circuit on the input to the string. It seems that these are not robust devices.
Until next time,
Mark