Table of Contents

LamaPLC: RGB / RGBW addressable LEDs

WS28xx: addressable RGB LEDs The WS28xx (WorldSemi) series consists of addressable RGB LEDs that integrate a driver IC and LED chips into a single package or circuit. These LEDs allow for individual control of color and brightness through a single-wire digital signal, making them popular for custom lighting projects.

The SK6812 is an individually addressable LED driver IC often considered the direct successor or “upgraded version” of the WS2812B. While it shares the same single-wire control protocol, it introduces a dedicated fourth channel for true white light (RGBW) and operates at a higher PWM frequency for smoother dimming.

Code Compatibility

If you swap a WS2812B (RGB) strip for an SK6812 (RGBW) strip, you must update your code. The controller needs to send 32 bits instead of 24. If you don't, the colors will “shift” down the line, appearing as static or incorrect.

Popular WS28xx Models

The series uses a common communication protocol, but models vary in voltage, control accuracy, and reliability.

WS28xx: addressable RGB LEDs

Technical Comparison

FeatureWS2811WS2812BWS2813WS2815SK6812
Voltage12V / 24V5V5V12V5V (mostly)
Color Channels3 (RGB)3 (RGB)3 (RGB)3 (RGB)4 (RGB + White)
Data Length24-bit per pixel24-bit per pixel24-bit per pixel24-bit per pixel32-bit per pixel
PWM Frequency~400 Hz~400 Hz~2.0 kHz~2.0 kHz~1.2 kHz
Addressability3-LED segmentsIndividualIndividualIndividualIndividual
Backup DataNoNoYes (Dual signal)Yes (Dual signal)No
White QualityMixed (Blue-ish)Mixed (Blue-ish)Mixed (Blue-ish)Mixed (Blue-ish) Pure (Dedicated chip)
IC LocationExternalBuilt-inBuilt-inBuilt-inBuilt-in

Selection Guide WS28xx: addressable RGB LEDs Choosing the right model depends on the scale and complexity of your project:

If you'd like to support the development of the site with the price of a coffee — or a few — please do so here.

Here's a handy tip: you can quickly save this page as a PDF by clicking “export to PDF” in the menu on the right side of the screen.

2026/02/14 23:38

LEDs Addressing

The WS28xx series uses a daisy-chain addressing mechanism where each LED (or group of LEDs) has no fixed hardware address. Instead, they are indexed by their physical position in the chain.

The communication follows a “data-stripping” or “self-addressing” protocol:

Arduino & Addressable LEDs

Example 1: Arduino & WS2812B

To control WS2812B LEDs with an Arduino, the FastLED and Adafruit NeoPixel Libraries are the most popular options. Both require you to define the data pin, the number of LEDs, and the color order (usually GRB for WS2812B).

FastLED is highly optimized and offers advanced color control features like HSV (Hue, Saturation, Value).

#include <FastLED.h>
 
#define LED_PIN     6          // Pin connected to Din on the strip
#define NUM_LEDS    10         // Number of LEDs in your strip
#define BRIGHTNESS  50         // Set brightness (0-255)
#define LED_TYPE    WS2812B    // Model type
#define COLOR_ORDER GRB        // Standard for WS2812B
 
CRGB leds[NUM_LEDS];           // Initialize the LED array
 
void setup() {
  // Power-up safety delay
  delay(3000); 
  FastLED.addLeds<LED_TYPE, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS);
  FastLED.setBrightness(BRIGHTNESS);
}
 
void loop() {
  // Simple "Larson Scanner" effect
  for(int i = 0; i < NUM_LEDS; i++) {
    leds[i] = CRGB::Blue;      // Set current LED to Blue
    FastLED.show();            // Update the strip
    delay(50);
    leds[i] = CRGB::Black;     // Turn it off for the next frame
  }
}

Important Hardware Considerations

Example 1: Arduino & SK6812

To control SK6812 RGBW LEDs, you must account for the fourth white channel. If you use standard RGB code, the colors will “drift” because the strip expects 32 bits per pixel instead of 24.

The Adafruit NeoPixel Library is the easiest way to handle the extra white channel on Arduino.

This script cycles through Red, Green, Blue, and then the Dedicated White chip.

#include <Adafruit_NeoPixel.h>
 
#define PIN          6   // Data pin
#define NUMPIXELS   10   // Number of LEDs
 
// IMPORTANT: Use 'NEO_GRBW' for SK6812 RGBW models
Adafruit_NeoPixel strip(NUMPIXELS, PIN, NEO_GRBW + NEO_KHZ800);
 
void setup() {
  strip.begin();
  strip.setBrightness(50); // Set brightness (0-255)
  strip.show();            // Initialize all pixels to 'off'
}
 
void loop() {
  // 1. Pure Red
  colorWipe(strip.Color(255, 0, 0, 0), 50); 
 
  // 2. Pure Green
  colorWipe(strip.Color(0, 255, 0, 0), 50); 
 
  // 3. Pure Blue
  colorWipe(strip.Color(0, 0, 255, 0), 50); 
 
  // 4. Pure White (Using the dedicated 4th channel)
  colorWipe(strip.Color(0, 0, 0, 255), 50); 
 
  // 5. Warm Mix (RGB + White)
  colorWipe(strip.Color(100, 50, 0, 200), 50); 
}
 
// Function to fill dots one after the other with a color
void colorWipe(uint32_t color, int wait) {
  for(int i=0; i<strip.numPixels(); i++) {
    strip.setPixelColor(i, color);
    strip.show();
    delay(wait);
  }
}

Key Differences in SK6812 Code:

  1. The Flag: You must use NEO_GRBW in the setup. If your LEDs are the “Warm White” or “Cool White” specific version, the order might occasionally be NEO_WRGB, but NEO_GRBW is the industry standard for SK6812 Datasheet specifications.
  2. The Color Command: strip.Color(R, G, B, W) now accepts a fourth parameter.
    1. strip.Color(0, 0, 0, 255) turns on only the white element (most efficient).
    2. strip.Color(255, 255, 255, 0) mixes RGB to make white (less accurate, uses more power).

Hardware Tip for SK6812

Since SK6812 strips have four emitters per pixel, they draw more current than WS2812B strips. Ensure your 5V power supply can handle roughly 80 mA per pixel if you plan to run both RGB and white channels at full brightness simultaneously.

Sensor topics on lamaPLC

PageDateTags
2026/04/23 21:51, , , , , , , , ,
2026/04/15 17:21, , , , , , , , ,
2026/04/11 18:29, , , , , , , , , ,
2026/04/15 19:34, , , , , , ,
2026/04/23 21:52, , , , , , , , , ,
2026/03/22 03:14, , , , , , ,
2026/04/23 21:52, , , , , , , , ,
2026/04/23 21:52, , , , , , , , , , , ,
2026/04/23 21:52, , , , , , , , , , , , ,
2026/03/28 23:50, , , , , , ,
2026/04/23 21:52, , , , , , , , , , , , , ,
2026/04/23 21:52, , , , , , , ,
2026/04/23 21:52, , , , , , , , , , ,
2026/04/23 21:52, , , , , , , , , ,
2026/04/23 21:52, , , , , , , , , , ,
2026/04/23 21:52, , , , , , , , , , , , ,
2026/04/23 21:52, , , , , , , , , , , , ,
2026/03/22 00:08, , , , , , , , , , ,
2026/04/23 21:52, , , , ,
2026/04/23 21:52, , , , , , , , , , ,
2026/04/23 21:52, , , , , , , , ,
2026/04/23 21:52, , , , , , , ,
2026/04/23 21:52, , , , , ,
2025/05/31 23:32, , , , , , , ,
2026/04/23 21:52, , , , , , , , , , , , , ,
2026/04/23 21:52, , , , , , , , ,
2023/07/01 17:29, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
2026/04/23 21:52, , , , , , , , , , , , , , , , , , , ,
2026/03/22 01:44, , , , , , , , ,
2026/04/23 21:52, , , ,
2026/04/23 21:52, , , , , , , , , , , , , , , ,
2026/04/23 21:52, , , , , , , , , , , , , , , , , , , , , , , , ,
2026/04/11 18:28, , , , , , , , , , ,
2026/04/11 19:54, , , , , , , , , , , , , , , , , , ,
2026/04/23 21:52, , , , , , , , , , ,
2026/04/23 21:52, , , , ,
2026/04/23 21:52, , , ,
2026/04/23 21:52, , , , , , ,
2026/04/23 21:52, , , , , , , , , ,
2026/04/23 21:52, , , , , , , , , , ,
2026/04/23 21:52, , , , , , , , , , , , , , , , , ,
2026/03/22 03:13, , , , , , , , , , , ,
2026/04/23 21:52, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
2026/04/23 21:52, , , , , , , ,
2026/04/23 21:52, , , , , , , ,
2025/09/23 18:59, , , , ,
2026/02/14 18:42, , , , , , ,
2026/04/23 21:52, , , , , ,
2026/04/23 21:52, , , , , , , , , , ,
2026/04/15 19:41, , , , , , , , , , , , , , , ,
2026/04/23 21:52, , , , , , , , , , , , , ,
2026/04/23 21:52, , , , , , , , , , , , , , , , , , , , , , , ,
2026/04/23 21:52, , , , , , , , , , , , ,
2023/06/25 00:43, , , , , ,
2026/04/23 21:52, , , , , , , , , , ,
2026/04/23 21:52, , , , , , , ,
2026/04/23 21:52, , , , ,
2026/02/15 00:00, , , , , , , , ,
2026/03/05 21:19, , , , , , , , , , , , , , , , ,
2026/02/14 18:49, , , , , ,
2026/04/23 21:52, , , ,
2026/04/23 21:52, , , , , , , ,


This page has been accessed for: Today: 1, Until now: 8