Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SK6812 RGBW colors broken in 0.15.0 on ESP32, not ESP8266, works in 0.14.4 #4380

Open
1 task done
trullock opened this issue Dec 11, 2024 · 46 comments
Open
1 task done
Labels

Comments

@trullock
Copy link

trullock commented Dec 11, 2024

What happened?

I have two strips of SK6812s RGBWs, one lot attached to an ESP32 and one to an ESP8266

Updating to 0.15 from 0.14.4 breaks the ESP32 colors but not the ESP8266 colors

I've reverted to 0.14.4 so cant debug further at this moment but can do later

To Reproduce Bug

SK6812s RGBWs in GBR mode on an ESP32, the colors are the wrong. They are very dim, the hue isnt far off or might be right (havent fully debugged, had to quickly revert before the kids came home to see no xmas lights!)

Expected Behavior

Colors to be correct ;)

Install Method

Binary from WLED.me

What version of WLED?

0.15.0

Which microcontroller/board are you seeing the problem on?

ESP32

Relevant log/trace output

can provide later

Anything else?

Can debug further later, thought Id get this raised for everyones sake

Code of Conduct

  • I agree to follow this project's Code of Conduct
@trullock trullock added the bug label Dec 11, 2024
@willmmiles
Copy link
Collaborator

very dim

Try checking the brightness limiter settings. Also, if you can, please post the config from your 0.14 system; it sounds like there's either (a) a bug in the upgrade path, or (b) a setting that was previously ignored is now being correctly applied; I'd like to poke the config and see if I can work out what it is.

@trullock
Copy link
Author

trullock commented Dec 11, 2024

Will have a fiddle with the settings tomorrow

The animation/effect seems to be working properly, its just the "color" thats wrong. Will try and be more descriptive tomorrow

Config exported from 1.14.4:

{
    "rev": [
        1,
        0
    ],
    "vid": 2412100,
    "id": {
        "mdns": "wled-house",
        "name": "WLED-HOUSE",
        "inv": "Light",
        "sui": false
    },
    "nw": {
        "espnow": false,
        "linked_remote": "",
        "ins": [
            {
                "ssid": "REDACTED",
                "pskl": 13,
                "ip": [
                    0,
                    0,
                    0,
                    0
                ],
                "gw": [
                    0,
                    0,
                    0,
                    0
                ],
                "sn": [
                    255,
                    255,
                    255,
                    0
                ]
            }
        ],
        "dns": [
            8,
            8,
            8,
            8
        ]
    },
    "ap": {
        "ssid": "WLED-AP",
        "pskl": 8,
        "chan": 1,
        "hide": 1,
        "behav": 0,
        "ip": [
            4,
            3,
            2,
            1
        ]
    },
    "wifi": {
        "sleep": false,
        "phy": false,
        "txpwr": 78
    },
    "hw": {
        "led": {
            "total": 30,
            "maxpwr": 850,
            "ledma": 0,
            "cct": false,
            "cr": false,
            "ic": false,
            "cb": 0,
            "fps": 42,
            "rgbwm": 3,
            "ld": true,
            "ins": [
                {
                    "start": 0,
                    "len": 221,
                    "pin": [
                        3
                    ],
                    "order": 0,
                    "rev": false,
                    "skip": 0,
                    "type": 30,
                    "ref": false,
                    "rgbwm": 0,
                    "freq": 0,
                    "maxpwr": 230,
                    "ledma": 55
                },
                {
                    "start": 221,
                    "len": 595,
                    "pin": [
                        16
                    ],
                    "order": 0,
                    "rev": false,
                    "skip": 0,
                    "type": 30,
                    "ref": false,
                    "rgbwm": 0,
                    "freq": 0,
                    "maxpwr": 619,
                    "ledma": 55
                }
            ]
        },
        "com": [],
        "btn": {
            "max": 4,
            "pull": true,
            "ins": [
                {
                    "type": 2,
                    "pin": [
                        0
                    ],
                    "macros": [
                        0,
                        0,
                        0
                    ]
                },
                {
                    "type": 0,
                    "pin": [
                        -1
                    ],
                    "macros": [
                        0,
                        0,
                        0
                    ]
                },
                {
                    "type": 0,
                    "pin": [
                        -1
                    ],
                    "macros": [
                        0,
                        0,
                        0
                    ]
                },
                {
                    "type": 0,
                    "pin": [
                        -1
                    ],
                    "macros": [
                        0,
                        0,
                        0
                    ]
                }
            ],
            "tt": 32,
            "mqtt": false
        },
        "ir": {
            "pin": -1,
            "type": 0,
            "sel": true
        },
        "relay": {
            "pin": 32,
            "rev": false,
            "odrain": false
        },
        "baud": 1152,
        "if": {
            "i2c-pin": [
                -1,
                -1
            ],
            "spi-pin": [
                -1,
                -1,
                -1
            ]
        }
    },
    "light": {
        "scale-bri": 100,
        "pal-mode": 0,
        "aseg": true,
        "gc": {
            "bri": 1,
            "col": 2.8,
            "val": 2.8
        },
        "tr": {
            "mode": true,
            "fx": true,
            "dur": 7,
            "pal": false,
            "rpc": 5,
            "hrp": true
        },
        "nl": {
            "mode": 1,
            "dur": 60,
            "tbri": 0,
            "macro": 0
        }
    },
    "def": {
        "ps": 0,
        "on": false,
        "bri": 128
    },
    "if": {
        "sync": {
            "port0": 21324,
            "port1": 65506,
            "espnow": false,
            "recv": {
                "bri": true,
                "col": true,
                "fx": true,
                "pal": true,
                "grp": 1,
                "seg": false,
                "sb": false
            },
            "send": {
                "en": false,
                "dir": true,
                "btn": false,
                "va": false,
                "hue": true,
                "grp": 1,
                "ret": 0
            }
        },
        "nodes": {
            "list": true,
            "bcast": true
        },
        "live": {
            "en": true,
            "mso": false,
            "rlm": true,
            "port": 5568,
            "mc": false,
            "dmx": {
                "uni": 1,
                "seqskip": false,
                "e131prio": 0,
                "addr": 1,
                "dss": 0,
                "mode": 4
            },
            "timeout": 25,
            "maxbri": false,
            "no-gc": true,
            "offset": 0
        },
        "va": {
            "alexa": false,
            "macros": [
                0,
                0
            ],
            "p": 0
        },
        "mqtt": {
            "en": false,
            "broker": "",
            "port": 1883,
            "user": "",
            "pskl": 0,
            "cid": "WLED-e661b0",
            "rtn": false,
            "topics": {
                "device": "wled/e661b0",
                "group": "wled/all"
            }
        },
        "hue": {
            "en": false,
            "id": 1,
            "iv": 25,
            "recv": {
                "on": true,
                "bri": true,
                "col": true
            },
            "ip": [
                192,
                168,
                2,
                0
            ]
        },
        "ntp": {
            "en": true,
            "host": "0.wled.pool.ntp.org",
            "tz": 1,
            "offset": 0,
            "ampm": false,
            "ln": -1.26,
            "lt": 52.9
        }
    },
    "ol": {
        "clock": 0,
        "cntdwn": false,
        "min": 0,
        "max": 59,
        "o12pix": 0,
        "o5m": false,
        "osec": false,
        "osb": false
    },
    "timers": {
        "cntdwn": {
            "goal": [
                20,
                1,
                1,
                0,
                0,
                0
            ],
            "macro": 0
        },
        "ins": [
            {
                "en": 1,
                "hour": 255,
                "min": 0,
                "macro": 0,
                "dow": 127
            },
            {
                "en": 1,
                "hour": 255,
                "min": 0,
                "macro": 0,
                "dow": 127
            }
        ]
    },
    "ota": {
        "lock": false,
        "lock-wifi": false,
        "pskl": 7,
        "aota": true
    },
    "um": {
        "AudioReactive": {
            "enabled": false,
            "add-palettes": false,
            "analogmic": {
                "pin": -1
            },
            "digitalmic": {
                "type": 1,
                "pin": [
                    32,
                    15,
                    14,
                    -1
                ]
            },
            "config": {
                "squelch": 10,
                "gain": 60,
                "AGC": 0
            },
            "frequency": {
                "scale": 3
            },
            "dynamics": {
                "limiter": true,
                "rise": 80,
                "fall": 1400
            },
            "sync": {
                "port": 11988,
                "mode": 0
            }
        }
    }
}

@trullock
Copy link
Author

And this is the config from the ESP8266 device which works on 0.14.4 and 0.15, just in case its a config issue rather than a hardware-specific bug

{
    "rev": [
        1,
        0
    ],
    "vid": 2405180,
    "id": {
        "mdns": "wled-garage",
        "name": "WLED_Garage",
        "inv": "Light"
    },
    "nw": {
        "ins": [
            {
                "ssid": "REDACTED",
                "pskl": 13,
                "ip": [
                    0,
                    0,
                    0,
                    0
                ],
                "gw": [
                    0,
                    0,
                    0,
                    0
                ],
                "sn": [
                    255,
                    255,
                    255,
                    0
                ]
            }
        ]
    },
    "ap": {
        "ssid": "WLED-AP",
        "pskl": 8,
        "chan": 1,
        "hide": 0,
        "behav": 0,
        "ip": [
            4,
            3,
            2,
            1
        ]
    },
    "wifi": {
        "sleep": true,
        "phy": false
    },
    "hw": {
        "led": {
            "total": 334,
            "maxpwr": 850,
            "ledma": 0,
            "cct": false,
            "cr": false,
            "cb": 0,
            "fps": 42,
            "rgbwm": 3,
            "ld": false,
            "ins": [
                {
                    "start": 0,
                    "len": 334,
                    "pin": [
                        1
                    ],
                    "order": 0,
                    "rev": false,
                    "skip": 0,
                    "type": 30,
                    "ref": false,
                    "rgbwm": 0,
                    "freq": 0
                }
            ]
        },
        "com": [],
        "btn": {
            "max": 2,
            "pull": true,
            "ins": [
                {
                    "type": 2,
                    "pin": [
                        0
                    ],
                    "macros": [
                        0,
                        0,
                        0
                    ]
                },
                {
                    "type": 0,
                    "pin": [
                        -1
                    ],
                    "macros": [
                        0,
                        0,
                        0
                    ]
                }
            ],
            "tt": 32,
            "mqtt": false
        },
        "ir": {
            "pin": -1,
            "type": 0,
            "sel": true
        },
        "relay": {
            "pin": 12,
            "rev": false
        },
        "baud": 1152,
        "if": {
            "i2c-pin": [
                -1,
                -1
            ],
            "spi-pin": [
                -1,
                -1,
                -1
            ]
        }
    },
    "light": {
        "scale-bri": 100,
        "pal-mode": 0,
        "aseg": false,
        "gc": {
            "bri": 1,
            "col": 2.8,
            "val": 2.8
        },
        "tr": {
            "mode": true,
            "fx": true,
            "dur": 7,
            "pal": 0,
            "rpc": 5
        },
        "nl": {
            "mode": 1,
            "dur": 60,
            "tbri": 0,
            "macro": 0
        }
    },
    "def": {
        "ps": 0,
        "on": false,
        "bri": 128
    },
    "if": {
        "sync": {
            "port0": 21324,
            "port1": 65506,
            "recv": {
                "bri": true,
                "col": true,
                "fx": true,
                "grp": 1,
                "seg": false,
                "sb": false
            },
            "send": {
                "dir": false,
                "btn": false,
                "va": false,
                "hue": true,
                "macro": false,
                "grp": 1,
                "ret": 0
            }
        },
        "nodes": {
            "list": true,
            "bcast": true
        },
        "live": {
            "en": true,
            "mso": false,
            "port": 5568,
            "mc": false,
            "dmx": {
                "uni": 1,
                "seqskip": false,
                "e131prio": 0,
                "addr": 1,
                "dss": 0,
                "mode": 4
            },
            "timeout": 25,
            "maxbri": false,
            "no-gc": true,
            "offset": 0
        },
        "va": {
            "alexa": false,
            "macros": [
                0,
                0
            ],
            "p": 0
        },
        "mqtt": {
            "en": false,
            "broker": "",
            "port": 1883,
            "user": "",
            "pskl": 0,
            "cid": "WLED-9422e9",
            "rtn": false,
            "topics": {
                "device": "wled/9422e9",
                "group": "wled/all"
            }
        },
        "hue": {
            "en": false,
            "id": 1,
            "iv": 25,
            "recv": {
                "on": true,
                "bri": true,
                "col": true
            },
            "ip": [
                192,
                168,
                2,
                0
            ]
        },
        "ntp": {
            "en": false,
            "host": "0.wled.pool.ntp.org",
            "tz": 0,
            "offset": 0,
            "ampm": false,
            "ln": 0,
            "lt": 0
        }
    },
    "remote": {
        "remote_enabled": false,
        "linked_remote": ""
    },
    "ol": {
        "clock": 0,
        "cntdwn": false,
        "min": 0,
        "max": 29,
        "o12pix": 0,
        "o5m": false,
        "osec": false
    },
    "timers": {
        "cntdwn": {
            "goal": [
                20,
                1,
                1,
                0,
                0,
                0
            ],
            "macro": 0
        },
        "ins": []
    },
    "ota": {
        "lock": false,
        "lock-wifi": false,
        "pskl": 7,
        "aota": true
    },
    "um": {}
}

@listlesslife
Copy link

I was having a similar problem, but my esp8266s weren't changing colors and my esp32s were fine. Rolled back the 8266s to 0.14.4 and now color changing works. 0.15.0 also knocked a couple of my esp8266s offline and they had to be reflashed via serial, but that's a different issue.

@trullock
Copy link
Author

trullock commented Dec 12, 2024

So, automatic brightness limiting had been turned on, turning that off solves it.

However the effects wrt segments is screwy, like its sped up. Segment 1 is ok, but the rest are not

I have a vid but cant post it here. Can DM/email

@nomonkeynodeal
Copy link

It looks like the blue channel just doesn't work for me with 15.0. I rolled back to 14.4 and it's fine.

@trullock
Copy link
Author

0.15 now seems completely broken for me, and I can't roll back to 0.14.4. I provide the binary and seems to apply the update, but it doesnt.

Will have to get the ladders out and flash it directly I guess

@c-b5r
Copy link

c-b5r commented Dec 14, 2024

I updated (OTA) 5x ESP8266 (d1 mini) with an almost identical SK6812 setup (except for the switch type). Here is the result:

  • 2x updated just fine and everything worked as before
  • 2x updated but the entire color setup (RGB wheel + sliders) was missing. I then switched the LED configuration to [WS2812x > apply > SK6812 > apply] and after that everything seemed back to normal.
  • 1x device didn't boot after the update. I manually flashed 0.15.0 via USB and then the device came back online again with all the previous settings

@Deretour
Copy link

It looks like the blue channel just doesn't work for me with 15.0. I rolled back to 14.4 and it's fine.

Same for me. For SK6812 strips I cannot get any blue to show up. Not even when intentionally switching color order.
After reverting to 0.14.4 everything works fine again.

Affected binary: WLED_0.15.0_ESP32_Ethernet.bin
Working binary: WLED_0.14.4_ESP32_Ethernet.bin

Upgrade performed via Home Assistant.
Downgrade performed via WLED's "Manual OTA Update"

@ijspear
Copy link

ijspear commented Dec 28, 2024

@nomonkeynodeal @Deretour How many channels are you using? I think this is the same bug as reported in #4384

@trullock
Copy link
Author

trullock commented Dec 28, 2024

0.15 now seems completely broken for me

By freak coincidence, my PSU died of a faulty adjuster pot at exactly the same time. So 0.15 is not "completely broken" but the color/brightness and rollback issues are real

@nomonkeynodeal
Copy link

@nomonkeynodeal @Deretour How many channels are you using? I think this is the same bug as reported in #4384

Maybe. I am using four channels, but the white channel definitely worked for me.

@Deretour
Copy link

@nomonkeynodeal @Deretour How many channels are you using? I think this is the same bug as reported in #4384

Sounds familiar indeed. Except for blue instead of white. But besides that it seems exactly the same issue.
I use 2x ws2812b RGB (144 pixels each) and 4x sk6812 RGBW (70 pixels each) which totals to 6 channels/outputs.

additional info: I‘m running a quinled dig octa.

@ijspear
Copy link

ijspear commented Dec 28, 2024

@Deretour try something. Delete a channel, any channel, so you have a max of 5 channels on your Octa. Do the other strips start behaving properly when there are only 5 channels?

@Deretour
Copy link

@Deretour try something. Delete a channel, any channel, so you have a max of 5 channels on your Octa. Do the other strips start behaving properly when there are only 5 channels?

I‘ll definitely give that a try!
But I most probably cannot try it before monday as my setup is currently in use.
I‘ll keep you updated.

@Deretour
Copy link

Deretour commented Dec 28, 2024

@Deretour try something. Delete a channel, any channel, so you have a max of 5 channels on your Octa. Do the other strips start behaving properly when there are only 5 channels?

OK, I couldn't wait. :)

Gave it a try and it's exactly as expected: deleting one channel brings back blue for the remaining sk6812 channels.
Unfortunately due to my wiring setup connecting two of the sk6812 strips to share one output/channel is not an option though.
So I'm back on 0.14.4 for now.

I hope the test result helps narrow down the issue and it can be resolved in an upcoming release as there are definitely features in 0.15 that I'm looking forward to.

@ijspear
Copy link

ijspear commented Dec 28, 2024

@Deretour that’s what I figured. This is def a bug. I’m looking into it now too but not seeing anything glaringly obvious… I’m sure @Aircoookie will have this knocked out soon.

@Deretour
Copy link

Additional note for completeness:
As OP mentioned there are actually two issues: additionally to the missing blue/white when using 6+ channels after updating to 0.15.0 strips are also very dim (almost off in my case). This is due to the fact that current limiter seems to be on by default after upgrading.
In that case best solution is to enter reasonable values for the limiting current and current per LED. ...or as I did: just disable current limitation. But only if you're fully aware of what you're doing! Otherwise you could blow up your PSU/fuse.

@Deretour
Copy link

Deretour commented Dec 28, 2024

@Deretour that’s what I figured. This is def a bug. I’m looking into it now too but not seeing anything glaringly obvious… I’m sure @Aircoookie will have this knocked out soon.

From my limited understanding I'd assume a memory/buffer/array-size limitation.
Probably "something" (array/buffer) using more more memory/space than before and exceeding 5 channels somehow breaks that limit. (I could imagine something with CW + WW support or something, but that's just a wild guess)

@blazoncek
Copy link
Collaborator

blazoncek commented Jan 3, 2025

For anyone having issues with mixed LED types and multiple outputs (>5) please try the following:

  • reorder your outputs so that 1st uses SK6812 (or WS2805), i.e. RGBW strip
  • reduce the number of outputs to 5 or less
  • increase LED count on one of the outputs to more than 300 (even if actual LEDs are fewer)

Report back with detailed findings.

(Reposting from #3484 and BTW @Aircoookie is taking a break from WLED as should I)

@ijspear
Copy link

ijspear commented Jan 3, 2025

@blazoncek thanks so much for looking into this. I can report that decreasing channel count to 5 or less and everything works perfectly. I haven’t tried increasing to 300+ on a channel. I’ll do that in a few hours and report back.

@ijspear
Copy link

ijspear commented Jan 3, 2025

@blazoncek I set one of the existing 5 channels to 301 LEDs and then added a 6th, 7th, and 8th channel. Everything is now working properly! I get all 4 colors and where behavior I previously reported is gone. I cannot tell you how much I appreciate your input. Can I test anything else for you to help further?

@blazoncek
Copy link
Collaborator

@ijspear please reorder outputs so that 1st has SK6812. You should also reduce LED count below 300 on each output.
This will help narrow down the root cause.

@ijspear
Copy link

ijspear commented Jan 3, 2025

@blazoncek actually all of my outputs are SK6812. Now that I have all 8 channels configured, when I reduce Channel 2 to the previous value (74) the behavior returns immediately when I click save. When I set channel 2 back to 301 things start behaving normally again. Thank you again!

@blazoncek
Copy link
Collaborator

actually all of my outputs are SK6812

Now that's odd. In such case parallel I2S should work normally except if there is a bug in low level driver.

@blazoncek
Copy link
Collaborator

If anyone can compile on their own, try replacing version number in platformio.ini for makuna/NeoPixelBus @ 2.8.0 with makuna/NeoPixelBus @ 2.8.3 if that will solve the issue.

@ijspear
Copy link

ijspear commented Jan 4, 2025

@blazoncek i’ve never compiled on my own before but I’ll try to figure it out. Thanks for the suggestion!

@blazoncek
Copy link
Collaborator

There are CI build artefacts of my fork here: https://github.com/blazoncek/WLED/actions/runs/12611034886
They include NPB 2.8.3

@ijspear
Copy link

ijspear commented Jan 4, 2025

@blazoncek i know this is a super noob question - which file should I use for the digi-Octa?

@blazoncek
Copy link
Collaborator

ESP32 as it is the only chip with issues.

@ijspear
Copy link

ijspear commented Jan 6, 2025

@blazoncek so esp32_eth would be the one to try?

@blazoncek
Copy link
Collaborator

IDK, if you need Ethernet then yes. But for WiFi plain will do,

@blazoncek
Copy link
Collaborator

Anyone facing this issue, if you have logic analyser please capture a frame on a 10 pixel output (solid color).
It was requested by @Makuna to help resolve the underlying problem (if it exists in the driver).

@DedeHai
Copy link
Collaborator

DedeHai commented Jan 8, 2025

as requested by @Makuna: I could not set distinct hex values so I set all four channels to about 80%. I set the first output to 1 pixel, the others to 10. With I2S parallel output, the white channel outputs zero:
image

setting one of the outputs to 400LEDs to enforce RMT it looks correct (and white LED is on):
image

@Makuna
Copy link

Makuna commented Jan 8, 2025

Things of note, the color channels have different values even though they were set to the same (225, 223, 220)? Should be unrelated as the RMT shows the same values.

What versions of NeoPixelBus are being used with working and no-working versions of WLED?

I will investigate.
Makuna/NeoPixelBus#868

@DedeHai
Copy link
Collaborator

DedeHai commented Jan 8, 2025

@Makuna I set the color to "approximately" the same value, it was just a quick test early this morning. The take-away is: RGB output is the same for I2S and RMT, white is not.
The working version of WLED uses RMT only but @blazoncek can give you more details, probably better to continue on your git issue. Ping me if you need more measurements.

@blazoncek
Copy link
Collaborator

blazoncek commented Jan 8, 2025

@Makuna reports were made on NPB 2.8.0, I've requested tests on 2.8.3 but did not receive any feedback.
@DedeHai can you test that?

EDIT: I have S2 & S3 version with I2S LCD driver available for tests.

@DedeHai
Copy link
Collaborator

DedeHai commented Jan 8, 2025

can confirm the behaviour is the same with NPB 2.8.3
@blazoncek I also tested your branch on S2, 5 outputs, SK6812 RGBW, same issue: white channel is zero
edit: had settings wrong: it works on S2 both with NPB 2.8.0 and 2.8.3

@ijspear
Copy link

ijspear commented Jan 8, 2025

@DedeHai just to clarify - using 2.8.3 can you add a 6th channel and make sure each channel is set to less than 300 pixels?

@DedeHai
Copy link
Collaborator

DedeHai commented Jan 9, 2025

@ijspear 2.8.3 with the (preliminary) implementation in WLED is still 5 channels max.

@blazoncek
Copy link
Collaborator

Just for clarification:
When you configure 6 outputs with 300 LEDs or less on (classic) ESP32, WLED switches to parallel I2S use for first 8 outputs instead of mono I2S for 1st output followed by 4/8 RMT outputs otherwise.
The 300 limit is implemented to prevent RAM starvation due to huge memory requirements for I2S outputs.

@Makuna
Copy link

Makuna commented Jan 11, 2025

The big change was to move to the 3Step Cadence to save memory. It still supports 4Step Cadence, but it requires a compile time flag (NPB_CONF_4STEP_CADENCE). Does WLED use 4 or 3 step?

@ijspear
Copy link

ijspear commented Jan 11, 2025

@Makuna, @blazoncek
Perhaps it might be helpful to summarize the exact behavior to get closer to a fix. I’m currently using the latest version of the Digi-Octa running the official v15.0 with all 8 channels driving SK6812 RGBW (BRG, xW&G) led strips. The pixel counts are as follows: ch1: 12, ch2: 74, ch3: 12, ch4: 12, ch5: 10, ch6: 10, ch7: 12, ch8: 23.

When I try to use this exact configuration here is the behavior using the color wheel:
a command of 100% Blue light makes all strips turn completely off
a command of 100% Red light makes all strips turn red
a command of 100% green light makes all strips turn green
a command of 100% white (dead center of wheel) makes all strips turn a combination of green and white

When I change the pixel count to any of the channels (I chose ch2) to 300 or more, normal behavior is restored to all the strips.

I also tried a version with NPB 2.8.3 and the behavior was exactly the same.

@blazoncek
Copy link
Collaborator

@ijspear no need to explain, I am well aware where the issue lies.

@ijspear
Copy link

ijspear commented Jan 11, 2025

@blazoncek awesome! Sorry to be redundant. Super thankful to have folks like you as contributors to the project. Anything else I can help test to push the ball further?

@blazoncek
Copy link
Collaborator

Anyone experiencig this issue (no white channel on SK6812 LEDs when using more than 5 outputs) please use the following workaround until this is fixed:

  1. Configure one of the outputs so that it has more than 300 LEDs (it can be unconnected one with no physical LEDs attaced and it can use any (unused) GPIO) or
  2. Reconfigure/rewire LEDs so that less than 6 outputs are used
  3. configure 8 dummy outputs followed by correct ones

Any extraneous LEDs can be hidden by adjusting segment size.

blazoncek added a commit to blazoncek/WLED that referenced this issue Jan 19, 2025
- Implement vector in bus manager
- Memory calculation according to explanation from @Makuna
- Prefer 8 RMT before 8 I2S on ESP32 (fixes Aircoookie#4380)
- speed improvements in ABL
- verbose debugging
- get bus size from NPB (prototype)
- Parallel I2S output bugfix
- automatic selection of appropriate I2S bus (`X1xxxxxxMethod`)
- removed I2S0 on ESP32 (used by AudioReactive)
- renumbered internal bus numbers (iType)
- added buffer size reporting
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

10 participants