SK6812 LED Strip flickering without USB

I have a project like here:

I used the SK6812, becouse, they have a warm white led too. I used three additional libraries, fastled, arduinoha and wifinina

All components, Arduino 33 Nano IOT, SK6812, an additional sensor (not in picture above) are powered from the same power supply, Mean Well 5V, 12A (100-5).

The light is coded with a fixed brightness, and the dimming is relalised with the color code: CRGBW 0,0,0,0 -> low, CRGBW 0,0,0,255 -> bright.

If i test it with connected USB cable, all works like a charm. Dimming up and down is no problem. No flickering, nothing.

If I unplug the USB cable, the strip instantly begins to flicker. Not repeadly, but lets say about every 10-20 seconds a flicker, not following a specific pattern.

If I dim the light to 50% without the connected USB cable, the flickering ends. if I raise the brightness above 50%, the flickering starts. And if I put the USB cable back in, the flickering immediatly ends.

My theory was, that the light strip pull down the voltate below 3,3V and so, the arduino have not enough power to produce a clear signal. the signal is misinterpreted and so the led stripe starts to flicker. That matches with the cases lower brightness -> no flickering. But I thought, if I use a powersupply with nearly three time more amps, than I need, the voltage will not drop, because there are enough resevers. but that is not the case.

Have you any idea, what can I to to "stabilize" the voltage for the arduino? Or is it in the end a problem I do not realized yet?

Thank you in advance :slight_smile:

You will need to use "power injection" every 50 or 60 LEDs to keep the voltage to each LED bright.

You might need a stronger power supply. 60 x 120 mA == 7.2 Amps. Flickering is a surprice. It could have been worse. I suggest a 10 Amp supply and bulk capacitors both in the string and for the controller. That 1000 microFahrad ought to be accompanied by spread out caps.

@montechristo - on the blue rectangle, where are you feeding that 5 volts?

I assume that's your Arduino board.

a7

Exact :slight_smile:

Thank you, I‘ll try that tomorrow.

I would suggest the use of additional capacitors, preferably separate capacitors very close to the input of the Arudino and close to the LED strip input. I assume this should fix the issue.

@montechristo please say to which pin on the Arduino you have attached the 5 volt power.

a7


I used the most down Pin on the left side. Because that is the only V-in. The other two with +5V and +3.3V have a little arrow signing away from the board.

You should connect 5v in to 5v.
Vin requires a minimum of 7v to work properly as the incoming voltage first goes through a linear regulator.
The nano 33 IOt is based on a 3.3v processor and the logic levels of the GPIO's are therefore 3.3v , you should use a TTL chip to increase these to the 5v logic levels the SK6812 expects (and needs). Something like a 74HCT04 (through 2 gates inverting the signal twice) or something similar will do the trick. You power the 74HCT04 with 5v and it will convert the incoming logic level to that.

In the schematics I found Vin goes to a step-down regulator. It is this regulator that gets 5 volts from the USB connection.

I did find a minimum specification for Vin of 7 volts, however. It seems the step-down might run with 5 volts. The 3.3 volts might be just lowered enough to mess you up.

@montechristo - @Deva_Rishi brings up the more important issue of level shifting the output signal going to your strip.

No matter it works with USB and fails with the 5 volt supply, there is something on the hairy edge of working/not working, but the focus has been on the adequacy of your 5 volt supply and wiring.

When what needs to be done next is fixing the logic signal to the strip.

There are some hacky ways of doing it that have always struck me as hacks, try them at the risk of wasting your own time on investigating that. I'd go with the two inverters on the chip @Deva_Rishi names.

a7

guaranteed to work, i actually use 74HCT02 's routing through 2 gates, but using 1 of the secondary inputs on the first gate, with a pullup connected to an extra gpio pin to prevent any strange signals being sent during powerup and showing on the strip. But a 7404 will do the trick, even an LS version works.

I believe there's a solder-blob pad on the secondary side (??) that needs to be blobbed for that to work.

Could be, i found the documentation to be minimal and ambiguous.
Anyway connecting 5v to Vin seems to work, as long as the processor is getting it's 3.3v it's all fine with me.

VIN -- I fully support that.

Thank you all for your help. Small feedback from me: Powering every 60 leds does not help. I think I‘ll try the hexinverter next to boost the signal. But it‘ll take a few days for it to be delivered.

But what I still don‘t understand: What exactly happened, when I close the solderbridge SJ1?
Besides: On my board it‘s named „VUSB“. I get so far, that I‘ll link the internal +5V with the external USB 5V. Is that correct?

NB - you must not have both connected at the same time, there should only be one or the other.

Hi, @montechristo
Welcome to the forum.

Connect the power wires from the controller directly to the power supply terminals.
That way the controller will not experience any volt drop on the LED supply wires that will occur.

Is essential.

Tom.. :grinning: :+1: :coffee: :australia:

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.