Add Panel-Aware Local OLED Display Service

This commit is contained in:
2026-08-29 14:37:44 +02:00
parent ec9ca5e6d2
commit 4aa5ca80da
10 changed files with 900 additions and 427 deletions
+16 -3
View File
@@ -5,6 +5,7 @@
#include "esp_log.h"
#include "esp_psram.h"
#include "network_console.h"
#include "local_display.h"
#include "local_ui_hw_test.h"
#include "rs232_hw_test.h"
#include "rs232_port_owner.h"
@@ -36,7 +37,7 @@ static const char *TAG = "firmware";
void app_main(void)
{
ESP_LOGI(TAG, "ESP32-S3 Serial Swiss Army Knife Phase 7A diagnostics started");
ESP_LOGI(TAG, "ESP32-S3 Serial Swiss Army Knife Phase 7B display driver started");
if (esp_psram_is_initialized()) {
ESP_LOGI(TAG, "PSRAM initialized: %u bytes", (unsigned int)esp_psram_get_size());
@@ -56,10 +57,22 @@ void app_main(void)
ESP_ERROR_CHECK(rs232_port_owner_init());
ESP_ERROR_CHECK(rs232_hw_test_init());
/* A missing or miswired optional display must never remove recovery paths. */
/* The optional display can fail without affecting UART0 or serial transports. */
esp_err_t local_display_error = local_display_init();
if (local_display_error != ESP_OK) {
ESP_LOGW(TAG, "Local display bus unavailable: %s",
esp_err_to_name(local_display_error));
} else {
local_display_error = local_display_start();
if (local_display_error != ESP_OK) {
ESP_LOGW(TAG, "Local display unavailable: %s",
esp_err_to_name(local_display_error));
}
}
esp_err_t local_ui_error = local_ui_hw_test_init();
if (local_ui_error != ESP_OK) {
ESP_LOGW(TAG, "Local UI diagnostics unavailable: %s",
ESP_LOGW(TAG, "Local UI button diagnostics unavailable: %s",
esp_err_to_name(local_ui_error));
}