WS2812 addressable LEDs test

RGB LEDs are awesome – especially the new, fancy ones with the WS2812 RGB LED driver. These LEDs can be individually controlled to display red, green, and blue, but interfacing them with a microcontroller or computer.

To test controlling WS2812 RGB LEDs I bought a cheap addressable LED strip. An addressable RGB LED strip is a long flexible strand of LEDs each of which can be individually set to a certain color (hence: addressable). By varying the level of red, green and blue (RGB) per LED many color combinations can be made. Addressable LED promise is to be an easy way to add complex lighting effects to any project. WS2812 neopixels are addressable RGB LEDs. The integrated controller chip allows you to change the color of the LED and address each individual LED. ThoseWS2812 LEDs are powered with 5V – 7V power source (60 mA power consumption) and are controlled through a serial bus (one control signal).

I planned to use either Arduino or ESP8266 to control those LEDs. After some looking on vailable examples and technical data on the LEDs, I planned to use Arduino (Arduno Uno), because it’s 5V power and 5V logic level is directly suitable. And there are many Arduino tutorials for WS2812.

To get easy start, I planned to follow instructions fro Arduino Addressable LEDs & Splendid Projects page. That page had an example source code that looked to be useful and simple wiring instructions.

In the first test I fould out that in addition to the source code I also needed NeoPixel Arduno library. So I needed to get the library from and install it according to instructions. After downloading, I had to rename folder to ‘Adafruit_NeoPixel’ and move it to Arduino Libraries folder. After restarting Arduino IDE , I opened File->Sketchbook->Library->Adafruit_NeoPixel->strandtest sketch example file.  This worked well. I also tried the original code fromArduino Addressable LEDs & Splendid Projects page which I modified to use 8 LEDs instead of one. Both examples made a “random” color light show on my LED strip. Enough for first testing.






  1. Tomi Engdahl says:

    Interactive LED Table for 50€ © CC BY-NC

    Make an interactive table that displays games, audio spectrum, and animations on a 12×12 built-in LED matrix.

    a cheap interactive table that uses Bluetooth, physical controls and a LED matrix from a simple 7€ IKEA table. This table is able to display an audio spectrum visualizer, some games and animations.

  2. Tomi Engdahl says:

    See Sound with Audiolux One

    This plug-and-play device was designed by Deaf & Hearing engineers to transform sound into light with LED pixels.

    Audiolux One is a plug-and-play device that transforms sound to light. It represents a revolution for the Deaf in particular, as it makes “seeing sound” possible. Designed by a Deaf musician, the technology has drastically altered the way that he, and others like him see and experience music. Audiolux One is now being used to make arts & cultural events inclusive to the Dead & Hard-of-Hearing.

    In true Hackaday fashion, you have total freedom to customize the audio analysis, LED layouts and visualization algorithms or modify the functionality of the hardware knobs and footswitch since Audiolux Devices software is fully open-source and Arduino-compatible.


    Arduino UNO (or other compatible microcontroller)
    MSGEQ7 Spectrum Audio Shield:
    Neopixel (WS2811 or WS2812B) Individually Addressable LED Strip

  3. Tomi Engdahl says:

    1.5 Million Dollars Buys 850,000 LEDs and 29 Raspberry Pis

    You think you like RGB LEDs? Columbus, OH art professor [Matthew Mohr] has more blinkenlove than you! His airport-scale installation piece is an incredible 850,000 RGB LEDs wrapped around a 14-foot tall face-shaped sculpture that projection-maps participants’ faces onto the display. To capture images, there is also a purpose-built room with even illumination and a slew of Raspberry Pi cameras to take pictures of the person’s face from many angles simultaneously.

    Besides looking pretty snazzy, the scale of this is just crazy. For instance, if you figure that the usual strip of 60 WS2812s can draw just about 9.6 watts full on, that scales up to 136 kW(!) for the big head.

    PHOTOS: Columbus’ newest public art piece is a 3D multimedia sculpture that displays faces on a 14-foot head lit by 850,000 LEDs (Video)

  4. Tomi Engdahl says:

    use sk6812 to make a digital led screeen.
    We buy SK6812 from amazon, want to paste sk6812 to a 80cm*80cm FPCB black borad.

    As I know, the smd led we use, sk6812, is a kind of popular smd led, and it can all replace a another smd led, ws2812b, we also have use a another individually addressable to make led screen, But I think SK6812 is best. and I find here is introduce about SK6812, individually addressable smd led.

    SK6812 is a smart LED control circuit and light emitting circuit in one controlled LED source, which has the shape of a 5050 LED chip. Each lighting element is a pixel, and the intensities of the pixels are contained within the intelligent digital interface input. The output is driven by patented PWM technology

    And about SK6812 smd led

    The data protocol being used is uni-polar NRZ communication mode. The 24-bit data is transmitted from the controller to DIN of the first element, and if it is accepted it is extracted pixel to pixel.

  5. Tomi Engdahl says:

    A Solar Freakin’ Walkway

    Looking to add a little pizzazz to your back garden? Are those strings of lights hung in the trees looking a little dated? Why not try lighting your garden path with DIY solar-powered pavers?

    Using recycled glass blocks that are usually reserved for walls and windows, [jfarro] figured out how to attach Neopixel rings to the underside and waterproof them with a silicone conformal coating. The 12 lighted pavers he built draw considerable current, so a 45-watt solar array with charge controller and battery were installed to power the pavers. An Arduino and a motion sensor control the light show when someone approaches; more complicated programs are planned.

    Solar Powered RGB LED Magic Pathway

  6. Tomi Engdahl says:

    FoTW: LED Strips Make Awful Servo Drivers

    [Orionrobots] had a conversation with a YouTube follower about LED strips. An LED strip contains a length of ready-made PWM drivers, they mused. Wouldn’t it be great then, if each of the drivers on a strip could be connected to a servo, making the strip a ready-made single-stop SPI servo driver. With a large multi-servo robot to build, he set to work on a strip of WS2801s.

    He concludes by recommending that viewers splash out on a servo driver board rather than trying an LED strip

  7. Tomi Engdahl says:

    Look Out DotStar, Here Comes Lumenati

    Adafruit has long been the undisputed ruler of the smart LED product, with their WS2812B (NeoPixel) and APA102C (DotStar) product lines dominating due to the robust assortment of sizes and form factors, as well as their ease of use. SparkFun Electronics recently announced Lumenati, their new line of APA102C breakouts that feature some intriguing features which do a good job of distinguishing the two lines.

  8. Tomi Engdahl says:

    ESP and WS2812 based clock
    Stylish clock project based on an ESP-01 module with arendst – tasmota software

    In the documentation for the Tasmota software I did find a referense to å clockmode. I did need to find out what it was. It was a analog clock on an WS2812 string. Here is my project to put it into use.

  9. Tomi Engdahl says:

    Word Clock base on RGB LED WS2812B

    Instead of showing the time like in classical type of clock with the hands or numbers, it shows you a time by displaying the text

  10. Tomi Engdahl says:

    Word Clock base on RGB LED WS2812B
    Instead of showing the time like in classical type of clock with the hands or numbers, it shows you a time by displaying the text

  11. Tomi Engdahl says:

    Room Lights

    My dorm’s bedroom didn’t come with lights, so I taped 15m of individually addressable RGB LEDs to my ceiling and control them through IoT.

    On a side note, when I started this project I used an ESP8266-12e which was unreliable and the lights would turn off after some time. One of my classes then required me to do an IoT project using the Photon from Particle and all of the issues I’ve had in the past are now gone.

  12. Tomi Engdahl says:

    RGB LED Ugly Holiday Sweater © GPL3+

    NeoPixel RGB LED strips for lights and an RGB LED star made this Arduino programmable holiday sweater fun to tinker with.

  13. Tomi Engdahl says:

    The Force Is Strong with This RGB Lightsaber

    Physically, the device is built with a “blade” made out of a light-diffusing polycarbonate cylinder, inside of which a pair of WS2812 LED strips is attached back-to-back. This allows it to emit light without a dim side that would be expected if just one strip. Control is via an Arduino Nano board, along with an MPU-6050 inertial measurement unit to sense movement and impact. Saber sounds are pulled from a microSD card, which played via a small speaker on the base.

  14. Tomi Engdahl says:

    How to Configure NeoPixels Using Vixen Lights and Arduino © GPL3+

    Use Arduino to run a spectacular Christmas light show.

  15. Tomi Engdahl says:

    NeoPixel Clock Mini
    A LED digital clock with multicolor flair

    Inspired by the NeoPixel Clock v2 project by David Zweben ( this is a smaller take on the idea, using only 1 NeoPixel ( per display segment.

  16. Tomi Engdahl says:

    This Boombox Hack is Lit

    Old boomboxes make great hacks. Their design is iconic; yes they look dated but that really just builds on the nostalgic urge to have one hanging around. Plus their big cases simply invite adding things inside in a way impossible with contemporary electronics.

    [Danc0rp] hacked his JVC M70 boombox to make the speakers glow with animated light, bumping VU meters, and a pulsing horizontal bar above the tape deck. The effect is superb. The cones of the speakers act like a projection surface and the grilles hide the LEDs until they activate, and enhance the effects once unleashed. It is one of the best LED speaker hacks we’ve ever seen.

    Evolved LED Mod for Ghettobasters

  17. Tomi Engdahl says:

    Automated Staircase LED RGB lights © GPL3+

    Create an awesome looking motion activated RGB lights for any staircase under $20!

  18. Tomi Engdahl says:

    Smartphone Controlled Periodic Table of Elements

    You can’t just leave your Polonium sitting around on the kitchen counter. That’s the idea behind the interactive periodic table built by [Maclsk], and we’ve got to admit, if we get to put it in a case this awesome we might have to start our own collection.

    Each cell contains an WS2812B RGB LED, which at maximum brightness draws 60mA.

    Control for the display is provided by an Arduino Nano and HC05 Bluetooth module.

    Interactive LED Periodic Table

  19. Tomi Engdahl says:

    VU Meter on Steroids: Arduino Nano and WS2812Bs © GPL3+

    Responds to sound or can be set on automatic, all by IR. Or switch. WS2812B VU Bar on Uno or Nano.

  20. Tomi Engdahl says:

    DIY Dungeon Crawler Game Plays on Single LED Strip

    A delightful version of a clever one-dimensional game has been made by [Critters] which he calls TWANG! because the joystick is made from a spring doorstop with an accelerometer in the tip. The game itself is played out on an RGB LED strip. As a result, the game world, the player, goal, and enemies are all represented on a single line of LEDs.

  21. Tomi Engdahl says:

    Controlling Multiple WS2812B-Based LED Strips

    Today’s architectural model makers seek the range of color and addressability that tri-color LED modules like the WS2812B can provide.

    For most embedded designers, light-emitting diodes (LEDs) are simple components that are used as visual indicators. They typically involve a minimal circuit, and controlling the LED is typically only a matter of toggling the right logic level on a microcontroller’s output pin. However, when you’re in the business of making architectural model lighting, LEDs became more complicated.

    In this case, you’ll have to deal with turning hundreds of LEDs on or off from a single control point. You’ll also have to consider the associated heat dissipation arising from the high current (a single LED doesn’t use much current, but things add up when you start to use hundreds or thousands of devices).

    As an alternative to using lots of discrete LEDs, which will have to be controlled individually, you could decide to work with intelligent strips featuring LED modules like the WS2812B

    Today’s architectural model makers are no longer contented with simple LEDs that do nothing but glow in one color; instead, they seek the range of color and addressability that modules like the WS2812B can provide.

    The WS2812B is a popular intelligent LED module that comprises RGB LEDs and their associated control circuitry, all integrated in a single 5050 SMD package. Each module has only four connections: VCC (5V), GND, data-in, and data-out.

    The power consumption of each module can reach 50 mA when all three of its R, G, and B LEDs are fully turned on.

    The individual WS2812B modules are daisy-chained (connected) to each other along the strip, and multiple strips can be connected as well. Each of the RGB LEDs inside a WS2812B module can be assigned a value from 0 to 255 in decimal (0×00 to 0xFF in hexadecimal). As with any RGB LED, this gives a total combination of 16,777,216 color variations.

    In a simple “PWM controlled” RGB LED strip, a single PWM signal, is applied to all of the red LEDs, a second PWM signal is applied to all of the green LEDs, and a third PWM signal is applied to all of the blue LEDs. This means that all of the modules in the strip end up displaying the same color.

    By comparison, each WS2812B module contains three PWM functions, one for each of the RGB LEDs. This means that each module can display its own color, and all of the modules can display their colors simultaneously.

    This makes these strips ideal to light up the various transportation modes in architectural landscape models, for example, where they are required to not only operate in running light mode, but to also employ different colors to highlight specific ideas.

    WS2812B Timing

    While the hardware connections between WS2812B modules is simple — power (5V and GND) and data (the data-out signal from one module drives the data-in signal to the next module in the chain) — the same cannot be said for the communications protocol. The WS2812B modules use an NZR protocol on a single data connection. A data packet containing the RGB values is sent at a rate of 800Kbps.

    Following a reset (RET or RES) period where the data signal is held low for more than 50µs, the data packet is transmitted. As shown in the image below, both 0 and 1 bit codes commence with logic 1 values; the difference between them is the relative duration of the high (TxH) and low (TxL) values.

    As the color of each RGB LED is specified using 8 bits, it takes 24 bits to define the color of each WS2812B module. The following image shows the 24-bit sequence associated with a single WS2812B module. The data is sent in the order G-R-B, with the most-significant bit (MSB) being transmitted first.

    As we previously noted, each WS2812B module requires 24 bits of data. After 24 bits have been received by the first module in the chain, it will look to see if any more data is heading its way. If it does see more data coming in, then it will pass this data on to the next module in the chain. The modules continue to do this until the data stops arriving, at which point they use their new values to drive their RGB LEDs.

    One important consideration when choosing a microcontroller to drive the WS2812B strip is the speed and operating voltage. The WS2812B is powered by a 5V power supply and the Data-In signal is best driven by a 5V output pin. Besides that, it is important for the microcontroller to be fast enough to generate the right NRZ data packet.

    Regardless of whether you’re bit-banging the data transmission or relying on an SPI interface, you’ll need to ensure the entire transmission to the strip is uninterrupted. For example, a strip containing 30 WS2812B modules requires 720 bits of NRZ code to be sent continuously in order for the RGB values to be correctly latched by the WS2812B modules.

    The strict requirement of non-interrupted transmission may also put a strain on the memory capacity.

    Unlike regular tri-color LEDs, the WS2812B module does not light up when you first apply. It only lights up when appropriate RGB values have been received.

    Getting a single strip of WS2812B-based lighting up and running does not mean you won’t experience problems when linking multiple such strips together.

  22. Tomi Engdahl says:

    The Engineering Case for Fusing Your LED Strips

    Modern LED strips are magical things. The WS2812 has allowed the quick and easy creation of addressable RGB installations, revolutionizing the science of cool glowy things. However, this accessibility means that it’s easy to get in over your head and make some simple mistakes that could end catastrophically. [Thomas] is here to help, outlining a common mistake made when building with LED strips that is really rather dangerous.

    The problem is the combination of hardware typically used to run these LED strings. They’re quite bright and draw significant amounts of power, each pixel drawing up to 60 mA at full-white. In a string of just 10 pixels, the strip is already drawing 600 mA. For this reason, it’s common for people to choose quite hefty power supplies

    Typically, wires used to hook up the LED strips are quite thin and the flex strips themselves have a significant resistance, too. This means it’s possible to short circuit an LED strip without actually tripping the overcurrent protection on something like an ATX power supply, which may be fused at well over 10 amps. With the resistance of the wires and strip acting as a current limiter, the strip can overheat to the point of catching fire while the power supply happily continues to pump in the juice.

    [ English ] WS2812 Flexstrip overheating by short circuit. Common error done by people

  23. Tomi Engdahl says:

    Three Watt Individually Addressable RGB LEDs

    While the gold standard for colorful blinky projects are individually controllable RGB LEDs, the usual offerings aren’t really that impressive. Yes, a few hundred Neopixels, WS2812, or other RGB LEDs will sear your retinas, but what if you wanted blinky glowy stuff that is so over the top as to be an affront to whatever creator you believe in?

    This is it. [Ytai Ben-Tsvi] created an individually addressable RGB LED called the Pixie that is perfect for all the times when you need something bright, colorful, and want to blind a few people in the process.

    Pixie – Bright Things Come in Small Packages

    We chose the 8-bit Microchip PIC12F1571, which had just about everything we could hope for in this application.

    Originally, we have designed the Pixie to support the same serial protocol as the WS28x family (aka NeoPixel). It worked. However, this compatibility, which was originally considered a feature has been eventually deemed a drawback: the WS28x protocol doesn’t easily lend itself to common micro controller peripherals, and in most cases ends up being bit-banged by the controller, requiring a relative high CPU usage, making it hard to do other timing-sensitive operations at the same time, not to mention driving another chain on a different pin… Our solution: stick to the good ol’ 115k.2 asynchronous serial. Almost every microcontroller has a UART peripheral capable of easily generating this protocol without much CPU intervention. Many have more than one. Even a PC with a simple USB-serial dongle can do that fairly easily. Seems like a win! The only drawback we could see what with the data rate being relatively low, we run into frame-rate / chain length limitations (about 60-long chain @ 50 frames/sec).

  24. Tomi Engdahl says:

    Automated Staircase RGB LED Lights

    Create an awesome looking motion activated RGB lights for any staircase under $20!

  25. Tomi Engdahl says:

    Keep Your Baby Entertained with Arduino-Powered LED Matrix Animations

    One of the cool features most babies come with is the ability to be entertained by simple colors and sounds. As they get older, their entertainment needs will transition to cartoons and shockingly irritating kids’ music.

    In addition to the code and 3D-printed parts, you’ll also need an Arduino Nano and a 16×16 RGB LED matrix controlled by a WS2812B, along with a potentiometer and rotary encoder. Thanks to the fantastic WS2812B—the same controller you’ll find in many Adafruit NeoPixel products—wiring up a BabyTV is very simple.

  26. Tomi Engdahl says:

    LED WiFi Music Spectrum Display Screen – WS2812B

    how to build an Flexible LED Curve Screen Wifi controlled with easy addressable LEDs WS2812b WS2811

  27. Tomi Engdahl says:

    Build a giant scrolling LED text display for about $15 per foot

    A 12 foot long Scrolling text display made from WS2812B Neopixels and an Arduino Uno.

    Bigger is better: Build an Arduino-powered monster scrolling LED sign for about $15 a foot

    Would you do with a massive full color animated LED display? How about…

    Read your Tweets in giant 140 char gulps from a block away
    Add English sub-titles to the Eiffel Tower
    Display a live-updating, 45 digit long countdown of the number of atoms left in the known universe
    What if you could build the display however long you needed it, for only about $15/foot?

  28. Tomi Engdahl says:

    DIY Wifi LED Matrix

    This video show how you can build your very own Wifi connected RGB LED-Matrix display using addressable leds and ESP-01 Wifi module


    The leds that are used are ADDRESSABLE 5050 RGB LEDs.

    Each led is said to draw 60 milliamps (mA) on full brightness according to the eBay site I got them from. This means that if I turn the sign on to full brightness on all leds the sign will draw 0.06 * 240 = 14,4A, which is a lot!

  29. Tomi Engdahl says:

    A Gif-Playing Top Hat For FRC 2018!

    The LED Matrix Hat Works!

    It’s made from: * Top Hat * 4 cheap WS2812 16×16 RGB LED Matricies * Teensy 3.6 * Hot glue * Scrap electronics shipping foam* More hot glue * Pillow case * black sheer fabric * Old t-shirt * Scrap speaker wire * Even more hot glue * 22,400mAh battery pack @ 24V * 5V 30A DC/DC Converter * A hope and a prayer

  30. Tomi Engdahl says:

    Mc Lighting Takes the Pain out of Blinking

    If you want to blink a ton of WS2812-alike LED pixels over WiFi, the hardware side of things is easy enough: an LED strip, and ESP8266 unit, and a beefy enough power supply to feed them. But the software side — that’s where it can be a bit of a pain.

    Enter Mc Lighting. It makes the software side of things idiot-proof. Flash the firmware onto the ESP8266, and you’ve got your choice of REST, WebSockets, or MQTT to get the data in. This means that it’ll work with Homekit, NodeRed, or an ESP-hosted web interface that you can pull up from any smartphone.

    Mc Lighting
    The ESP8266 based multi-client lighting gadget

    Mc Lighting (the multi-client lighting gadget) is a very cheap internet-controllable lighting solution based on the famous ESP8266 microcontroller and WS2811/2812 led strips. It features a self-hosted responsive web-interface, a REST-API and a websocket connector.

    Because of it’s open architecture and APIs it’s easy to build new clients for different platforms (iOS, Android, Windows Universal Apps, Siri/Cortana integration, …).

  31. Tomi Engdahl says:

    Low-Resolution Display Provides High-Nostalgia Animations

    High-definition displays are the de facto standard today, and we’ve come to expect displays that show every pore, blemish, and bead of sweat on everything from phones to stadium-sized Jumbotrons. Despite this, low-resolution displays continue to have a nostalgic charm all their own.

    Take this 32 x 16 display, dubbed PixelTimes, for instance. [Dominic Buchstaller] has gone a step beyond his previous PixelTime, a minimalist weather clock and home hub built around the same P10 RGB matrix. The previous build was a little involved, though, with a nice wood frame that took some time and skill to create.

    Animated picture frame for your 8 bit dreams

  32. Tomi Engdahl says:

    Buttery Smooth Fades with the Power of HSV

    In firmware-land we usually refer to colors using RGB. This is intuitively pleasing with a little background on color theory and an understanding of how multicolor LEDs work. Most of the colorful LEDs we are use not actually a single diode. They are red, green, and blue diodes shoved together in tight quarters.

    representing an RGB LED in code as three individual values {R, G, B} makes sense. But binding our representation of color in firmware to the physical system we accidentally limit ourselves.

    t we’re going to work in the HSV color space. HSV represents single colors as combinations of hue, saturation, and value. Hue is measured in degrees (0°-359°) of rotation and sets the color. Saturation sets the intensity of the color; removing saturation moves towards white, while adding it moves closer to the set hue. And value sets how much lightness there is; a value of 0 is black, whereas maximum value is the lightest the most intense the color can be.

    So back again to “why do I care?” Making the butteriest smooth constant brightness color fades is easy with HSV. Trivial. Want to know how to do it? Increment your hue. That’s it.

    Avoid Strange Fades
    A linear interpolation from green to pink

    “But RGB color fades are easy!” you say. “All I need to do is fade R and G and B and it works out!” Well actually, they aren’t quite as simple as that makes them appear. The naive way to fade between RGB colors would be exactly what was described, a linear interpolation (a LERP).

    LERP like this will work fine, but depending on the start and end points you can end up with pretty dismal colors in the middle of the fade.


Leave a Comment

Your email address will not be published. Required fields are marked *