NeoPixels on Fipsy FPGA
Recently I re-discovered that I have a Fipsy FPGA Breakout Board. Back in 2018 when I received this board, I made a version of blinky with five LEDs, lighting up red-green-yellow-blue-white, one at a time. Now, I want to play with something more colorful: NeoPixels!
What is a NeoPixel?
The WS2812 Integrated Light Source, also known as NeoPixel, is a simple, scalable, and affordable full-color LED. Neopixels are commonly found on Adafruit-branded development boards such as the MagTag. They are also available standalone in a zillion form factors. The unit I have is Keyes 18-LED ring WS2812 module that contains a string of 18 WS2812 pixels.
Each WS2812 is a surface-mount package that integrates RGB LEDs alongside a driver chip, forming a complete control of a pixel point. The WS2812 is controlled through a single wire, in which "0" and "1" bits are encoded in the timing of high and low voltage states. During a data refresh cycle, a WS2812 chip accepts 24 bits of data for its green, red, and blue color components, and then forwards any subsequent bits to the next WS2812 chip. This forwarding feature enables cascading: when a string of pixels receives a sequence of 24-bit words, the initial 24 bits go to the first pixel, the next 24 bits go to the second pixel, and so on. Theoritically, you could control a zillion pixels through a single wire.