From fbdca59a8579607b441be87fd9a7d7d9892b6eb3 Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Tue, 15 Sep 2026 22:12:01 -0500 Subject: [PATCH] Seed the refresh timestamp so the first frame is not deferred at boot --- esphome/components/esp32_rmt_led_strip/led_strip.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/esphome/components/esp32_rmt_led_strip/led_strip.cpp b/esphome/components/esp32_rmt_led_strip/led_strip.cpp index 60b5b332c99..fe046e1c397 100644 --- a/esphome/components/esp32_rmt_led_strip/led_strip.cpp +++ b/esphome/components/esp32_rmt_led_strip/led_strip.cpp @@ -101,6 +101,8 @@ void ESP32RMTLEDStripLightOutput::setup() { uint64_t frame_ticks = (uint64_t) bit_ticks * buffer_size * RMT_SYMBOLS_PER_BYTE + this->params_.reset.duration0 + this->params_.reset.duration1; this->frame_time_us_ = frame_ticks * 1000000 / resolution_hz + RESET_GAP_US; + // Seed so the first frame is not deferred until uptime exceeds the frame time + this->last_refresh_ = micros() - this->frame_time_us_; rmt_tx_channel_config_t channel; memset(&channel, 0, sizeof(channel));