Skip to content

Make I2S optional and use RMT by default #5266

@DedeHai

Description

@DedeHai

As proposed in #5264 using the RMT driver on ESP32 as a default and only use I2S if users enable it could solve most of the "LEDs are flickering" reports we have seen since 0.15:
the main difference between 0.14 and 0.15 is the added use of I2S as the default output for the first bus, followed by RMT buses. Since the two drivers have slightly different timings, setups susceptible to noise / jitter or setups that use an LED type that is barely within specification of the standard pulse-timing (like the WS2811) it's possible that some outputs work and some don't.

So here is my request:

  • use RMT as a default driver and only use I2S if the already existing "Use parallel I2S" is checked, but rename it to "Enable I2S"
  • Restrict number of outputs to available RMT channels, only allow adding more if "Enable I2S" is checked
  • The S3 uses the LCD driver which has the exact same timings as I2S, so the "Enable I2S" also applies to this driver type

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions