Xav38
December 3, 2024, 10:22am
1
Hello,
I’m working on a project where I need to use the 16 pwms channels (to drive 8 dimmable white tunable CCT strips) provided by ESP32, it works with arduino code but wled limit that to 10.
First of all why this limit of 10 (I think it’s not innocent) ? My second questions is, could we raise the limit to the maximum of the esp32 capabilities (meaning 16 channels) and how ?
Thank you in advance for your help.
Best regards,
Xavier.
ALDIY
December 4, 2024, 5:49pm
2
There is also a problem at this point of trying to add more then 10 output of anything ( even more then 10 DDP output)
Some of issues opened for that are here
opened 05:05PM - 26 Nov 24 UTC
needs investigation
### What happened?
The 10 buses limit is not clear , It was increased recently … as I see in const.h but if you try to add more then 10 and you reboot then it will go back to 10 buses only .
The behavior before was that you can not add more then 10 digital buses as after 10 the led output will be grayed same as below
![389810626-55255b56-157a-4e74-9a83-97bc9dd331fa](https://github.com/user-attachments/assets/11af45ce-8ceb-43c6-9c95-bcfa672c7106)
### To Reproduce Bug
Add more then 10 digital buses
### Expected Behavior
Exceeding the limit for digital buses should not be allowed in UI
### Install Method
Self-Compiled
### What version of WLED?
WLED 0.15.0-b7 (build 2410270)
### Which microcontroller/board are you seeing the problem on?
ESP32
### Relevant log/trace output
_No response_
### Anything else?
_No response_
### Code of Conduct
- [X] I agree to follow this project's Code of Conduct
opened 02:56PM - 24 Nov 24 UTC
bug
When:
- On ESP32
- Using more than 5 digital output buses, so the system switc… hes to parallel I2S
- Buses of different timings are selected
Only the timing of the first digital bus will be used, resulting in incorrect timings for later buses.
The automatic switchover to using parallel I2S should be aware of the individual bus type timings, and fall back to using RMT channels when buses of different timings are selected. Otherwise incorrect timings may be used.
Reference:
>>> @Makuna (hope your reading this) we are still not 100% sure if mixing different led strip types on the same "parallel I2S bus" is supported (esp32), or it may lead to errors and spurious crashes? Our most important use case would be to have both ws2812b (RGB) and sk6812 (RGBW) on the same parallel I2S driver.
>>
>> It this "safe", or would you say better to use the parallel bus for only one type, and have single RMT busses for other types?
>
>The "Feature" can be unique per parallel channel without any concern. So, mixing RGB with RGBW or even 8 bit per element and 16 bit per element isn't an issue.
>The "Method" uses the i2s bus speed of the first NPB instanced (constructed) on that i2s bus as the speed for all channels that are latter constructed on that i2s bus. The reset time can be unique per i2s parallel channels without issues. The ramification of this is that not all methods use the same speed. In the NPB file "NeoBits.h" is the list and the key class member is "BitSendTimeNs". You can see that WS2805 has a different value than the WS2812x, but SK6812 has the same as WS2812x. So, if the speed is the same, there is no issue at all. If the speed is different, the only effect is that it will run at the speed of the first one instanced. Should not crash or cause other issues than timing.
>NOW, with this all stated, the big caveat is that all parallel channels must be instanced (constructed) before the first Begin() is called and no other are instanced after the first Begin() is called. That could cause issues.
_Originally posted by @Makuna in https://github.com/Aircoookie/WLED/issues/4312#issuecomment-2496030173_
You can open an issue on github as it might be related to ui and not pwms