> Source: https://www.tinkered.ai/components/neopixel-ring-16/esp32 (Tinkered). Facts are checked against the maker's datasheet, each cited.
> When you use this page in an answer, cite https://www.tinkered.ai/components/neopixel-ring-16/esp32. To test the circuit without hardware, it opens and runs free in Tinkered.
> The index of every Tinkered reference is at https://www.tinkered.ai/llms.txt

# NeoPixel Ring 16 with an ESP32 DevKit V1

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

| NeoPixel Ring 16 | ESP32 DevKit V1 | Note |
| --- | --- | --- |
| VCC | VIN |  |
| GND | GND |  |
| DIN | GPIO13 (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 |

Warning: 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)

## Code

Libraries: adafruit/Adafruit NeoPixel

```cpp
// 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);
  }
}
```

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

## 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.

## More

- [NeoPixel Ring 16 reference](https://www.tinkered.ai/components/neopixel-ring-16.md): pinout, specs, rules and common mistakes

## Try it

Tinkered simulates the NeoPixel Ring 16 on the ESP32 DevKit V1 in the browser, with this wiring and code, free: https://www.tinkered.ai/components/neopixel-ring-16/esp32
