diff --git a/.gitignore b/.gitignore index 94b96bb..625d03a 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ tools/docker_bin_output/ tools/docker_bin_output/ .flash-venv/ **/.flash-venv/ +.claude/settings.local.json diff --git a/binaries-esp32s3/adv/M5MonsterC5-CardputerADV-adv-full.bin b/binaries-esp32s3/adv/M5MonsterC5-CardputerADV-adv-full.bin index 6f1a483..827250d 100644 Binary files a/binaries-esp32s3/adv/M5MonsterC5-CardputerADV-adv-full.bin and b/binaries-esp32s3/adv/M5MonsterC5-CardputerADV-adv-full.bin differ diff --git a/binaries-esp32s3/adv/M5MonsterC5-CardputerADV-adv.bin b/binaries-esp32s3/adv/M5MonsterC5-CardputerADV-adv.bin index c8b0e8c..a595c8c 100644 Binary files a/binaries-esp32s3/adv/M5MonsterC5-CardputerADV-adv.bin and b/binaries-esp32s3/adv/M5MonsterC5-CardputerADV-adv.bin differ diff --git a/binaries-esp32s3/adv/M5MonsterC5-CardputerADV.bin b/binaries-esp32s3/adv/M5MonsterC5-CardputerADV.bin index c8b0e8c..a595c8c 100644 Binary files a/binaries-esp32s3/adv/M5MonsterC5-CardputerADV.bin and b/binaries-esp32s3/adv/M5MonsterC5-CardputerADV.bin differ diff --git a/binaries-esp32s3/adv/bootloader-adv.bin b/binaries-esp32s3/adv/bootloader-adv.bin index f52a2c8..edc0cff 100644 Binary files a/binaries-esp32s3/adv/bootloader-adv.bin and b/binaries-esp32s3/adv/bootloader-adv.bin differ diff --git a/binaries-esp32s3/adv/bootloader.bin b/binaries-esp32s3/adv/bootloader.bin index f52a2c8..edc0cff 100644 Binary files a/binaries-esp32s3/adv/bootloader.bin and b/binaries-esp32s3/adv/bootloader.bin differ diff --git a/main/main.c b/main/main.c index 4702b32..91e3add 100644 --- a/main/main.c +++ b/main/main.c @@ -41,14 +41,13 @@ bool is_board_sd_missing(void) static void uart_sd_check_line_callback(const char *line, void *user_data) { (void)user_data; - if (!line || board_sd_missing || !board_sd_check_pending) { + if (!line || !board_sd_check_pending) { return; } - if (strstr(line, "Failed to initialize SD card") != NULL || - strstr(line, "ESP_ERR_INVALID_RESPONSE") != NULL || - strstr(line, "Make sure SD card is properly inserted.") != NULL || - strstr(line, "Command returned non-zero error code") != NULL) { + if (strcmp(line, "SD_OK") == 0) { + board_sd_check_pending = false; + } else if (strcmp(line, "SD_NONE") == 0) { board_sd_missing = true; board_sd_check_pending = false; } @@ -180,11 +179,10 @@ void app_main(void) if (board_detected) { ESP_LOGI(TAG, "ESP32C5 board detected"); - ESP_LOGI(TAG, "Checking Monster SD card via list_sd..."); - vTaskDelay(pdMS_TO_TICKS(1000)); // Let JanOS finish SD init before querying + ESP_LOGI(TAG, "Checking Monster SD card via sd_status..."); board_sd_check_pending = true; board_sd_check_start_ms = esp_timer_get_time() / 1000; - uart_send_command("list_sd"); + uart_send_command("sd_status"); } else { ESP_LOGW(TAG, "Continuing without board detection"); } @@ -269,7 +267,7 @@ void app_main(void) // Stop listening for SD check after a short timeout if (board_sd_check_pending) { int64_t now_ms = esp_timer_get_time() / 1000; - if ((now_ms - board_sd_check_start_ms) > 3000) { + if ((now_ms - board_sd_check_start_ms) > 500) { board_sd_check_pending = false; } }