Skip to content

Commit

Permalink
[st7701s] Fix initialisation race (esphome#7462)
Browse files Browse the repository at this point in the history
  • Loading branch information
clydebarrow authored Sep 19, 2024
1 parent fb7e7eb commit 8e5d733
Showing 1 changed file with 6 additions and 9 deletions.
15 changes: 6 additions & 9 deletions esphome/components/st7701s/st7701s.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,6 @@ void ST7701S::setup() {
esph_log_config(TAG, "Setting up ST7701S");
this->spi_setup();
this->write_init_sequence_();
}

// called after a delay after writing the init sequence
void ST7701S::complete_setup_() {
this->write_command_(SLEEP_OUT);
this->write_command_(DISPLAY_ON);
this->spi_teardown(); // SPI not needed after this
delay(10);

esp_lcd_rgb_panel_config_t config{};
config.flags.fb_in_psram = 1;
Expand Down Expand Up @@ -179,7 +171,12 @@ void ST7701S::write_init_sequence_() {
this->write_data_(val);
ESP_LOGD(TAG, "write MADCTL %X", val);
this->write_command_(this->invert_colors_ ? INVERT_ON : INVERT_OFF);
this->set_timeout(120, [this] { this->complete_setup_(); });
// can't avoid this inline delay due to the need to complete setup before anything else tries to draw.
delay(120); // NOLINT
this->write_command_(SLEEP_OUT);
this->write_command_(DISPLAY_ON);
this->spi_teardown(); // SPI not needed after this
delay(10);
}

void ST7701S::dump_config() {
Expand Down

0 comments on commit 8e5d733

Please sign in to comment.