Kto zbudował ściemnianą taśmę LED albo lampę na ESP32 z ESPHome, zna ten efekt. Ściemnianie wygląda płynnie aż do ostatnich kilku procent, a potem światło gaśnie widocznymi skokami. 1 listopada 2026 roku, tuż przed 1:00 czasu polskiego, do ESPHome trafiła zmiana Jakuba Sztandery (Kubuxu), która rozwiązuje właśnie ten problem. Wyjście ledc dostaje opcjonalne ustawienie dithering, czyli sprzętowe rozpraszanie wypełnienia PWM.

Skąd biorą się skoki

Moduł LEDC ściemnia diodę sygnałem PWM, a wypełnienie to całkowita liczba taktów licznika. Korekcja gamma, którą ESPHome stosuje, żeby zmiany jasności wyglądały dla oka równomiernie, upycha dół zakresu jasności w bardzo niewielu taktach. Przy wysokiej częstotliwości PWM taktów na okres jest i tak niewiele, więc blisko zera światło może przeskakiwać tylko między kilkoma poziomami.

Ustawienie dithering: true włącza funkcję, którą sprzęt LEDC już ma: cztery dodatkowe bity ułamkowej części wypełnienia. Układ rozkłada te ułamki na kolejne impulsy, więc średnie wypełnienie zmienia się co 1/16 taktu. Częstotliwość PWM się nie zmienia, a to ważne, jeśli podniesiono ją, żeby uniknąć migotania na nagraniach z kamery albo piszczenia cewek.

Przykładowa konfiguracja z opisu zmiany:

output:
  - platform: ledc
    id: led_pwm
    pin: GPIO4
    frequency: 19531Hz
    dithering: true

light:
  - platform: monochromatic
    name: LED
    output: led_pwm
    gamma_correct: 1.8
    default_transition_length: 3s

Obsługiwane układy i zastrzeżenia

Opcja obejmuje ESP32, ESP32-S2, ESP32-S3, ESP32-S31, ESP32-C2, ESP32-C3, ESP32-C5, ESP32-C6, ESP32-C61, ESP32-H2 i ESP32-P4. Na prawdziwym sprzęcie sprawdzono tylko ESP32-C3, zarówno z ESP-IDF, jak i z Arduino. Pozostałe warianty autor porównał z dokumentacją rejestrów i skompilował. ESP8266, RP2040 i inne platformy zmiana pomija.

Domyślnie rozpraszanie jest wyłączone. Po włączeniu działa także przy stałej jasności, nie tylko podczas płynnych przejść. Autor ostrzega, że przy bardzo niskiej częstotliwości PWM i małej jasności samo rozpraszanie może powodować widoczne migotanie. Najlepiej sprawdzi się więc tam, gdzie częstotliwość już jest dość wysoka.

Kiedy w stabilnym wydaniu

Zmiana jest w gałęzi rozwojowej ESPHome, a dokumentacja czeka w osobnym zgłoszeniu do esphome.io. Najnowsze stabilne wydanie to 2026.10.1 z 27 października, więc opcja powinna trafić do użytkowników z kolejnym comiesięcznym wydaniem. Kto chce wypróbować ją wcześniej, może sięgnąć po gałąź rozwojową, najlepiej najpierw na jednej testowej lampie, zwłaszcza z innym układem niż ESP32-C3.