Can ESP32 Drive SK6812 RGBW Pixel LED Strips

SK6812 RGBW Addressable led strip comes with built-in IC, and the feature of individual control makes the animation more flexible. When SK6812 LED strip is combined with micro smart controller ESP32, its function will be more powerful.

Can ESP32 drive SK6812 RGBW pixel LED strips? We have developed a set of guides to provide you with detailed instructions on how to use the ESP32 controller.

1.All materials Required

Power supply DC5V

Power supply output

  • Voltage: DC 5V
  • Current: Up to 80A
  • Power : 200W

Power supply input

  • Voltage:  AC 110V/220V (dual input supported, switch-selectable)
Arduino 5V LED Power Supply
      DC5V Power supply

The function of DC5V power supply

  • Powers both the SK6812 RGBW LED strip and the ESP32  (via 5V/GND lines)
  • The DAT input of the SK6812 RGBW LED strip signal is connected to the digital I/O pin (PWM pin is recommended)

ESP32 Board

22222
  ESP32 Control Board Area Pin Introduction

Model: ESP32
Operating Voltage: DC5V
Input Voltage (recommended): DC5V,
(If you choose to use a DC adapter for power supply, it can be DC6.5V~DC9V)
Digital I/O Pins: GPIO0~33 can be used for PWM output, GPIO34~39 can only be used for input, not output.GPIO2, 12, 15: Keep high level when starting, otherwise it may fail to start. GPIO0: Pull low in download mode and pull high in normal operation.
Analog Input Pins: 9
Clock Speed: 30 MHz
Programming Interface: USB Type-C

ESP32 Board use in This Setup:

  • The Esp32 controller sends digital data signals to the SK6812 RGBW LED strip
  • Connect the positive pole of the LED strip to the positive pole of the DC5V power supply,Control board current <500mA
  • The negative poles R-/G-/B- of the LED strip are connected to the digital I/O pins respectively (PWM pins are recommended)

SK6812 RGBW LED strip

DA6 5V RGBW SK6812
SK6812 RGBW addressable  LED Strip

Type: Built-in IC SK6812 RGBW led strip
Input Voltage: 5V DC
Features: Each SK6812 RGBW LED strip has a built-in IC and supports single-point single control, which can realize independent programming of color, brightness and dynamic effects of each lamp bead, such as flowing water, gradient, marquee, text animation, etc.
LED Density: 60 LEDs /m

SK6812 uses 5V low-voltage drive, built-in constant current circuit and voltage stabilization design, ensuring low energy consumption and high brightness output. Each lamp bead receives 24-bit data (8 bits/color) through a single-line signal, and can independently control the brightness and mixing effect of the three RGB colors. SK6812 RGBW is also compatible with multiple control methods such as SPI and PWM, and is suitable for microcontrollers such as Arduino, Raspberry Pi, and ESP32. In addition, if it is used for wall decoration in KTV, bars, hotels and other places, you can also choose a slightly larger online controller T790K, etc.

2.SK6812 and ESP32 Wiring Schematic

Schematic wiring diagram from LEDSuntech.

esp32 SK6812 Schematic diagram
   How to Control SK6812 RGBW LED Strip with ESP32 Wiring Diagram

Note:

1. The current of the ESP32 control board is <500mA;

2. The current of the light strip is too large, please use an external power supply to power the light strip;

3. The DC3.3/5V interface is the voltage output port of the ESP32 control board.It cannot be connected to the power supply. The DC interface is used for connecting the power supply;

4. The power supply range of the control board is DC3.3-9V, so the control board is powered by DC5V alone;

5. The wiring of RGB led strip is the same as that of RGBW led strip, but the programs cannot be shared;

6. The more points, the lower the refresh rate;

7. Note that the GPIO of ESP32 is 3.3V logic level, so the GPIO pin needs to be converted to a level before connecting to the light strip signal pin (74HCT125 or MOSFET level conversion).

3.SK6812 and ESP32 Connection Diagram

esp32 SK6812 connect
How to Control SK6812 RGBW LED Strip with ESP32 LEDSuntech

With the development of technology and the powerful functions of controllers, more and more addressable led strips are used for decorative lighting. LedSunTech focuses on LED strips. If you need to know more about the products, you can check the link for more information.

4.ESP32 Code Upload

Cade Software: Arduino IDE

LEDSuntech : All lighting effects are realized by coding. If you have any questions about coding, please contact our professional engineering team.

				
					#include 

// Hardware configuration
#define LED_PIN     11      // control pin
#define NUM_LEDS    80     //LED quantity
#define BRIGHTNESS  64     // Initial brightness (0-255)

Adafruit_NeoPixel strip(NUM_LEDS, LED_PIN, NEO_GRBW + NEO_KHZ800);

// Effect parameters
uint8_t effect = 0;        // Current effect (0-2)
uint16_t speedDelay = 50;  //Effect speed(ms)
unsigned long prevMillis = 0;

void setup() {
  Serial.begin(115200);
  strip.begin();
  strip.setBrightness(BRIGHTNESS);
  strip.show(); // After initialization close all LED

  Serial.println("Input command control effect:");
  Serial.println("1: running water effect"); 
  Serial.println("2: flashing effect");
  Serial.println("3: Marquee effect");
  Serial.println("+: speed up");
  Serial.println("-: slow down");
}

void loop() {
  // Serial port control
  if (Serial.available()) {
    char cmd = Serial.read();
    switch(cmd) {
      case '1': effect = 0; Serial.println("running water effect"); break;
      case '2': effect = 1; Serial.println("flashing effect"); break;
      case '3': effect = 2; Serial.println("Marquee effect"); break;
      case '+': speedDelay = max(20, speedDelay-10); break;
      case '-': speedDelay = min(500, speedDelay+10); break;
    }
    Serial.print("current speed: "); Serial.println(speedDelay);
  }

  // Timing execution effect
  if (millis() - prevMillis &gt;= speedDelay) {
    prevMillis = millis();
    
    switch(effect) {
      case 0: rainbowFlow(); break;
      case 1: blinkEffect(); break;
      case 2: chaseEffect(); break;
    }
    strip.show();
  }
}

// ================== Effect realization ==================
// Rainbow water effect
void rainbowFlow() {
  static uint16_t hue = 0;
  for(int i=0; i&lt;strip.numPixels(); i++) {
    // Calculate rainbow colors (using only RGB channels))
    uint32_t color = strip.ColorHSV((hue + i*65536L/strip.numPixels()) % 65536);
    // Convert RGB to RGBW(Keep the white channel at 00)
    strip.setPixelColor(i, color);
  }
  hue += 256; // Adjust the hue change speed
}

// flashing effect
void blinkEffect() {
  static bool state = false;
  if(state) {
    // Random RGBW colors
    strip.fill(strip.Color(random(256), random(256), random(256), random(256)));
  } else {
    strip.fill(0);
  }
  state = !state;
}

// Marquee effect
void chaseEffect() {
  static int pos = 0;
  strip.fill(0); // Clear all LEDs
  
  // Set the current LED color (with white channel)
  strip.setPixelColor(pos, strip.Color(0, 255, 0, 100)); // RGBW: green+white
  
  pos = (pos + 1) % strip.numPixels();
}
				
			

5.SK6812 Demonstration Video

To give you a deep understanding of the functions of the ESP32 controller, we provide a set of videos for your reference.

Among the many controllers, ESP32 is gaining more and more popularity with its miniature size and versatility. ESP32’s GPIO expansion capability is also amazing, with 34 programmable pins supporting multiple protocols such as PWM, I2C, SPI, etc., combined with deep sleep mode and ultra-low power consumption, making it a perfect choice for smart home sensors and wearable devices.

Mini controllers are very popular among computer modding and DIY enthusiasts. We also have special instructions for Computer PC Setup with Addressable LED Strips Lighting Ideas for Cases, Peripherals, and DIY Mods, which you can check as needed.

Feel Free To Contact Us

We will reply your email within 12 hours.

Ask For A Quote