Aircoookie / WLED

Control WS2812B and many more types of digital RGB LEDs with an ESP8266 or ESP32 over WiFi!
https://kno.wled.ge
MIT License
14.74k stars 3.17k forks source link

WS2813-E support & not remembering pin assignments #1882

Closed ThatBigPrint closed 3 years ago

ThatBigPrint commented 3 years ago

My bug is simply randomly losing some of the pin assignments and altering the led numbers per pin output, also glitching when driving more than one set of WS2813-E as I understand there is a reset timing issue similar to WS2812-C I need to fix this asap, for now, I suppose I will need to reinstall generic Chinese controller to get us by? I can recompile myself although I don know where to adjust the timing?

Please see below

total LEDs 350

output 1

Pin 32

Start 0 count 70

output 2

Pin 33

Start 70 count 130

output 3

Pin 25

Start 130 count 175

output 4

Pin 26

Start 175 count 225

output 5

Pin 27

Start 225 count 280

output 6

Pin 14

Start 280 count 350

after the power cycle the numbers change but not all of the time I have tried 3 different boards now to no avail mainly the led numbers change for instance

output 5 changes to start 225 and count 225

and 6 start 280 count 70

and sometimes the pin numbers end up being null ie no contents

and occasionally it will lose everything and return to defaults ie pin 2 etc

i have checked flash and cleared it multiple times

Expected behavior To retain settings

WLED version

Additional context Please help asap I have rather embarrassed myself making a boat sign for my friend

originally we used an SP608E controller and that had a glitching problem that I solved with 500r resistors just ahead of the first led in a chain. but I wanted to use wled, as soon as I found out you can do 10 channels with esp32 I wanted to change over.... I started off by putting a logic level shifter inline bassed on the TX5018E and it glitched like crazy so I tried it right at the letter input without 1.5m of cable and it still glitched, I then bypassed the logic level and went straight to the esp output and it seemed to work for one letter so I went back inside the boat and attached them all bypassing the level shifter and they glitched again, please remember the 500r resistor is still inline would this cause an issue?

Thank you for your help!

blazoncek commented 3 years ago

Please post your cfg.json (available at http//wled-ip/edit) after a successful save.

ThatBigPrint commented 3 years ago

Thanks for your prompt reply please find the text document attached (it wouldn't let me upload .json)

cfg.txt

blazoncek commented 3 years ago

The important part:

  "hw":{
    "led":{
      "total":350,
      "maxpwr":850,
      "ledma":0,
      "rgbwm":3,
      "ins":[
        {
          "en":true,
          "start":0,
          "len":70,
          "pin":[
            32
          ],
          "order":0,
          "rev":false,
          "skip":0,
          "type":22
        },
        {
          "en":true,
          "start":70,
          "len":130,
          "pin":[
            33
          ],
          "order":0,
          "rev":false,
          "skip":0,
          "type":22
        },
        {
          "en":true,
          "start":130,
          "len":175,
          "pin":[
            14
          ],
          "order":0,
          "rev":false,
          "skip":0,
          "type":22
        },
        {
          "en":true,
          "start":175,
          "len":175,
          "pin":[
            13
          ],
          "order":0,
          "rev":false,
          "skip":0,
          "type":22
        },
        {
          "en":true,
          "start":225,
          "len":125,
          "pin":[
            25
          ],
          "order":0,
          "rev":false,
          "skip":0,
          "type":22
        },
        {
          "en":true,
          "start":280,
          "len":70,
          "pin":[
            26
          ],
          "order":0,
          "rev":false,
          "skip":0,
          "type":22
        }
      ]
    }

And I can see couple of errors:

You are entering data in settings page incorrectly.

ThatBigPrint commented 3 years ago

so output 2 should be

output 2

Pin 33

Start 0 count 60

?

Please note the orders and counts have been messed up by the bug they were all incremental as described at the beginning or is that caused by my wrong implementation?

also, would this be causing the flickering erratic behaviour?

and is my resistor that fixed the Chinese controllers issues causing problems here ?

blazoncek commented 3 years ago

Why would bus 2 start at 0? Aren't there any LED's on the bus 1? You continue with count from previous bus.

@Aircoookie you should seriously consider my implementation of LED settings.

ThatBigPrint commented 3 years ago

so to clarify there are for instance 60 LEDs on the letter on bus 2 so, first letter on bus 1 would have 70 leds

therefore below ?

output 1 (letter containing 70 LEDs)

Pin 32

Start 0 count 70

output 2 (letter containing 60 LEDs)

Pin 33

Start 70 count 60

output 3 (letter containing 45 LEDs)

Pin 25

Start 130 count 45

and the total of all LEDs driven by the esp combining all of the pinouts so in this example 175 would go into the total LEDs field? please confirm and apologies if I'm being slow I appreciate the assistance

and just to confirm I can use any pins I want on the esp32? or is there any that I shouldn't?

the thing I can't understand is even with my mistakes I set them to solid colours and each led in all 6 chains just did random clours like they had a mind of their own? is this because i was overdriving them with data overflowing from the mistake?

blazoncek commented 3 years ago

If you test-drive my experimental fork (look at my repo, dev branch) the values will be calculated automatically and you can get values from there. Other than that, join the WLED Discord where you can get advice from other users.

ThatBigPrint commented 3 years ago

was I on the correct track? I'm having trouble compiling your version

blazoncek commented 3 years ago

@srg74 has a precompiled version in his Wemos shield repo. You can try that.

ThatBigPrint commented 3 years ago

Good news, sorta, your version is far more intuitive to configure multiple outputs! and settings are being retained

and the lights are working but there is a slight issue still the last letter on pin 23 is randomly flickering, I tried adding a 310r resistor and that made it worse please see the clip below

this is without a resistor https://youtu.be/s98xt_VVI6Q

this is with one 310r https://youtu.be/1dydJhj4FFU

please note the cable length is only about 15 inches I'm not sure if it's signal reflections again or slightly off timing for the ws2813e LEDs I'm using

blazoncek commented 3 years ago

It may be a grounding issue or a bad pixel. Also check if you need additional power injection at the end. Other than that, why did you choose multipin for that? You could go with a single pin and multi segment.

ThatBigPrint commented 3 years ago

power injection I think I have pretty much ruled out tbh thick copper bus bar between letters and the PCBs have 2 full layer power planes... I chose multi-pin because at the time I didn't know much about wled so I designed it for that Chinese controller. and the issue with that is it's machined and installed now I will be doing things differently next time.

the issue look to flicker when it's being adjusted? ie when it's on a solid colour say red and you change it to say white it changes over but flickers slightly when doing so? should I put a lower or higher value resistor?

there is a capacitor array inside each letter to help stabilize power it's pretty much what the Chinese controller did but this time the resistor didn't work?

am I totally mistaken regarding the reset timing on my led? and the others are just on the edge of working?

blazoncek commented 3 years ago

Observe closely, if the whole strip flickers then try adjusting resistor and/or add level shifter (if not already in place), if only part of the strip flickers then ... I'd say a faulty pixel then. Had those screw up my installs.

ThatBigPrint commented 3 years ago

What resistor values do you have success with 310r range?

On Thu, 15 Apr 2021, 8:16 am Blaž Kristan, @.***> wrote:

Observe closely, if the whole strip flickers then try adjusting resistor and/or add level shifter (if not already in place), if only part of the strip flickers then ... I'd say a faulty pixel then. Had those screw up my installs.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/Aircoookie/WLED/issues/1882#issuecomment-820179799, or unsubscribe https://github.com/notifications/unsubscribe-auth/AHU63NAT4HTF2U5AWOUQYZDTI2HEZANCNFSM42XWO72Q .

blazoncek commented 3 years ago

I never used any but I've seen boards with 56Ohm, 62Ohm and up to 320Ohm resistors.

ThatBigPrint commented 3 years ago

Just as a form of closure, all worked out in the end, 76r resistor sorted the flicker out by the looks of things; I can't thank you guys enough for your support.

Keep up the brilliant work!