Neopixels acting weird on startup

I am building a neopixel strip project for my living room.
It consists of an Arduino Nano, 90 neopixels (WS2812B), an LM2576-5V buck converter circuit (that i have made) and an hc-05 bluetooth module. All powered through the regulator by a 12v 2a wall power supply.

The project works really well and i am ready to send a pcb for manufature. Right now everything "lives" on a breadboard (i know it's tricky for the regulator but what can you do!).
I am trying to get rid of the last glitch which happens during startup. When i power everything on i get Led #1 green followed by x leds white, then arduino kicks in and the effect i want appears.
I am using the variable x because every startup is different and i get 4,5,6 or even 10 leds white (no more than 10). This happens for about a second, and then everything goes to normal.

Now the magic kicks in!
I tried to measure the current the whole thing draws and placed my dvm in series right after the voltage regulator. With the dvm inline the effect won't happen. I don't know what the dvm circuit contains - some filter probably - but the thing stopped.

So does anyone have a clue? I am really confused here though it isn't a show-stopper, i think that it might damage the strip in the long term.

So does anyone have a clue?

The problem might be in your code (HINT)

Thanks for your reply UKHeliBob.
Nope it happends with Nano powered off too, or with data-in disconnected.

I am posting the schematic too if anyone cares. (It was made in KiCAD)

I’ve seen this sort of behavior on power-on too, with both APA102 and SK6812, as well as WS2812 LEDs. You can generate it by power-cycling the LEDs without a controller connected.

I have also seen it when the data pins change state (ie, when they get set as output) without data being sent.

I am surprised to hear that some people using these sort of LEDs don’t see this.

Try a 10k resistor from the LED strip data input to ground.


What on earth are R3 and R4 supposed to do?

WOW this worked! It needed a pull down resistor after all! Thank you sir!

R3 & R4 is a voltage divider for HC-05 Rx input. It needs 3.3V and arduino is signaling with 5V, so it needs this little setup to work.

I thought so. Then you have the voltage divider the wrong way round! :astonished:

Yes you are right - again. I had it right on the breadboard and transfered it reversed on schematic.
Sorry, not an electronics engineer, just a hobbyist.
Thank you!

So here is the new schematic (i hope i have no more embarassing mistakes).


I take it back!

R5 is now on the wrong side of R1!

As you show it, it is forming a potential divider like the other one. In this case, though only a minor reduction in the drive voltage for 10k and 330 Ohm, this is quite undesirable.

The problem you are actually addressing with this resistor, is that the output of the Arduino is not controlled at the time the power is applied until the code initialises. As such, you need to pull down (or up would probably do just as well) the pin of the Arduino so it is to that pin that the resistor should be attached! :sunglasses:

Ok got it. It needs to go to ground before the 480Ω

New schematic