NeoPixel Ring 16 with an ESP32 DevKit V1

A 44.5mm ring of 16 individually addressable WS2812B RGB LEDs driven over a single data wire and chainable end to end.

NeoPixel Ring 16, A 44.5mm ring of 16 individually addressable WS2812B RGB LEDs driven over a single data wire and chainable end to end.
In short

On the ESP32 DevKit V1 the 16-pixel ring takes 5 V from VIN and its data from GPIO13 through a 74AHCT125 buffer and a 470 Ohm resistor. Sixteen pixels is where USB power stops being enough at full brightness, and the buffer is there because the ESP32's 3.3 V data is below what the ring formally asks.

Wiring the NeoPixel Ring 16 to the ESP32 DevKit V1

Pin by pin.

NeoPixel Ring 16ESP32 DevKit V1Note
VCCVIN
GNDGND
DINGPIO13 (D13)through a 74AHCT125 buffer powered from 5 V, then the 470 Ω resistor: the WS2812B reads a high from 0.7 × VDD (3.5 V), above a 3.3 V pin
  • VCC is on VIN, which gives about 5 V only while the board is powered from USB.

What to know on the ESP32 DevKit V1

  • GPIO13's 3.3 V high is below the 0.7 x VDD, about 3.5 V, that the ring's first WS2812B asks on a 5 V supply. The page's wiring therefore runs GPIO13 into a 74AHCT125 buffer fed from 5 V, whose output drives the 470 Ohm resistor.WS2812B datasheet, p. 3
  • Sixteen pixels at full white can pull about 960 mA (60 mA each), all of it through VIN and the same USB port that powers the ESP32 and its 240 mA Wi-Fi transmit peaks. Hence the sketch's setBrightness(50).Adafruit NeoPixel Uberguide, Powering NeoPixels; Espressif ESP32 Series Datasheet v5.3, p. 52
  • On the ESP32 the Adafruit NeoPixel library sends each frame through the RMT peripheral, built for timed pulse trains, rather than by counting CPU cycles, so the ring keeps its colours while Wi-Fi runs.Espressif ESP32 Series Datasheet v5.3, p. 38
  • Put a 1000 µF capacitor across the ring at its VCC and GND. The ring shares the USB 5 V with the ESP32, whose radio pulls 240 mA typical while sending 802.11b, and the capacitor rides out the moments both peak together.ESP32 Series Datasheet v5.3, p. 52; Adafruit NeoPixel Uberguide, best practices

NeoPixel Ring 16 code for the ESP32 DevKit V1

Compiled for esp32:esp32:esp32 on 2026-10-30.

Libraries: adafruit/Adafruit NeoPixel
// NeoPixel Ring 16 on ESP32 DevKit V1: wiring and a free simulation at https://www.tinkered.ai/components/neopixel-ring-16/esp32
#include <Adafruit_NeoPixel.h>

#define LED_PIN     13
#define LED_COUNT   16

Adafruit_NeoPixel ring(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);

void setup() {
  ring.begin();
  ring.setBrightness(50);  // 50 of 255: full white then draws about 12 mA a pixel (60 mA at full
                           // brightness). Raise it only with an external 5 V supply.
  ring.show();
}

void loop() {
  // Rainbow effect
  for (long firstPixel = 0; firstPixel < 65536; firstPixel += 256) {
    for (int i = 0; i < ring.numPixels(); i++) {
      int hue = firstPixel + (i * 65536L / ring.numPixels());
      ring.setPixelColor(i, ring.gamma32(ring.ColorHSV(hue)));
    }
    ring.show();
    delay(10);
  }
}

NeoPixel Ring 16 on the ESP32 DevKit V1: questions

Does the NeoPixel Ring 16 work with the ESP32's 3.3 V data?

Usually, but outside spec: a 5 V WS2812B reads a high from about 3.5 V (0.7 x VDD, WS2812B datasheet, p. 3), and GPIO13 tops out at 3.3 V. Sixteen pixels fed through the 74AHCT125 buffer the page wires in leave no doubt.

Can the ESP32's VIN pin power the NeoPixel Ring 16?

Only at the reduced brightness the sketch sets. At full white the 16 pixels can draw about 960 mA (Adafruit Uberguide), too much to pull through VIN from USB beside the ESP32. For full brightness, feed the ring from a 5 V supply and join its ground to the DevKit's.

Why does my ESP32 reset when the NeoPixel ring lights up?

The ring and the ESP32 share VIN's USB supply: about 960 mA at full white for the ring (Adafruit Uberguide) on top of the ESP32's Wi-Fi bursts (ESP32 datasheet, p. 52). Lower the brightness or give the ring its own 5 V supply.

Keep going

For AI assistants

This guide as plain Markdown. /components/neopixel-ring-16/esp32.md

What will you build with it?