I have a NeoPixel RGB strip connected directly to my NodeMCU ESP12-e board. I'm using Arduino IDE with the NODEMCU 1.0 ESP 12-e module to programm the board.

ESP12-e | NeoPixels
GND    ---> GND
3.3V   ---> +5V
GPIO0  ---> Din

With the 3.3V output I have a strange flickerin on the LEDs. When I use the VIV 5V output of the ESP12-e the flickerin is gone, but the lights turn off after a few seconds and some lights turn on with strange behavior.

I guess 5V is to much for the board? What can I do to get rid of the 3.3V flicker?

EDIT: I'm using WS2812B LED Strip Band with 224 LEDs 5050 SMD connected directly (see above) to a NodeMCU ESP-12e (http://learn.acrobotic.com/uploads/esp8266_devkit_pinout.png)

I'm using:

#include <ESP8266WiFi.h>
#include <Adafruit_NeoPixel.h>

I'm turning LEDs on for example like this:

#define PIN 0
#define NUMPIXELS 224

Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

int individualPixels[NUMPIXELS];  
  void allOn(){
      for(uint16_t i=0; i<pixels.numPixels(); i++) {

   for (int i=0; i<sizeof(individualPixels); i++){
    if (individualPixels[i]==1){
      pixels.setPixelColor(i, pixels.Color(red,green,blue)); //Set Neopixel color

The ESP12-e is plugged in via USB Power

Thanks in advance

  • how many LEDs are you using?
    – Wesley Lee
    Commented Oct 27, 2016 at 19:14
  • 224 (but flicker and strange behavior @ 5v also happens when I have only 3 LEDs on)
    – proto
    Commented Oct 27, 2016 at 19:40
  • maybe 3.3V GPIO is not enough to provide an assertive HIGH when Vin is 5V, and when Vin =3.3V it is. Is it viable for you to try and make a level shifter?
    – Wesley Lee
    Commented Oct 27, 2016 at 19:45
  • not sure how to do that. what components do I need for that in my case?
    – proto
    Commented Oct 27, 2016 at 19:50
  • Provide a LOT more information about exactly what you are doing. How many LEDs, how many I/Os are being used, are you PWMing the LEDs, what LEDs are they, exactly, etc., etc., etc. Completely disclose what you are doing sufficient for someone else to fully understand your goals. You can't get an appropriate answer without that.
    – jonk
    Commented Oct 27, 2016 at 20:34

2 Answers 2


Have a google for (WS2812 or Neopixels) and ESP, it should give several good hints on how to wire it up reliably. Also really read this: https://learn.adafruit.com/adafruit-neopixel-uberguide/overview .

But some things to consider:

  • WS2812 requires 5V, so you do want to use a 5v source, not 3.3v.
  • Make sure all your grounds are connected together, especially if you have a separate power supply for the leds.
  • The data input on the WS2812 needs a 5v high signal, especially when the WS2812 is (correctly) powered by 5v. This means you probably need some kind of level shifter, which needs to be able to switch fast as well, cause it's a pretty high frequency signal.
  • 224 WS2812's can chew up a lot of power, so make sure your 5v source can handle that. When all are set to full white, it's 20ma per color per led, that's 60ma per led, so 13,44 AMP maximum. Your average USB charger isn't gonna cope with that :) You can use a power supply which provides less power if you make sure you only turn on a few leds/colors at a time, but if you accidentially turn on more, voltage is gonna drop and stuff will stop working :)

I found a solution for my problem:

USB Powerbank --> ESP12-e --3.3V--> WS2812 --> FLICKER
USB Powerbank --> ESP12-e --5V--> WS2812  --> Strange behavior


USB Powerbank with 2 Outputs:
Output 1 --> ESP12-e
Output 2 --> WS2812
Connect GND form Output 2 with GND ESP12-e 

This works without level shifter.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.