[My Xyloband Tx circuit is busily churning away through some possible byte combinations and I’ve placed the Xyloband in from of me. If it flashes I can stop the code and see what values were being sent. As yet nothing….so while that is working away..]
I’m starting to think about my Christmas light display. Last year I built my own UDP to 8x RGB channel controller that worked off the Vixen3 software and a Raspberry Pi. This year I want to use some of the WS2812 LEDs as addressable pixels. Although the Arduino community seem to have the WS2812 RGB LEDs under control in terms of library functions there is not so much available for those programming microcontrollers like the PIC range.
There are various articles on the WS2812 but basically the datasheet is lacking detail. The protocol requires 24x bits on a NRZ line to drive a single LED and these can be daisy-chained to longer arrays. So 10x LEDs would require the serial Tx of 240x bits. The line timing is important and requires the high pulse to vary in length between 0.35us and 0.9us signifying ‘0’ and ‘1’ respectively.
Another idea was to build the entire ‘fast logic’ in an FPGA and I actually designed the circuit last year but didn’t have a suitable FPGA programmer nor could I afford one.
This year I decided to look at the specs of some of the latest PIC Microcontrollers that Microchip very kindly provided samples of to me. The PIC16F18346 has immediately caught my eye. It has an internal module known as the “Data Signal Modulator”. It looks like this might allow me to easily create the WS2812 drive signals with very little microcontroller overhead – very beneficial as the microcontroller can get on and do other stuff.
I’ll let you know how it goes when I get some code up and running [or back to the Xyloband if it flashes !]