From dd416457844cbec77b26501cfe69319c37917e88 Mon Sep 17 00:00:00 2001 From: John Poole Date: Thu, 19 Feb 2026 10:48:26 -0800 Subject: [PATCH] Testing results for LilyGO RMA --- exercises/12_FiveTalk/src/main.cpp | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/exercises/12_FiveTalk/src/main.cpp b/exercises/12_FiveTalk/src/main.cpp index 0451083..91db251 100644 --- a/exercises/12_FiveTalk/src/main.cpp +++ b/exercises/12_FiveTalk/src/main.cpp @@ -827,12 +827,18 @@ static void updateWaitDiscipline() { } static void updateRun() { + uint32_t now = millis(); + if (!g_sd.isMounted()) { - enterWaitSdState(); - return; + if ((uint32_t)(now - g_lastWarnMs) >= kSdMessagePeriodMs) { + g_lastWarnMs = now; + oledShowLines("SD removed", "Logging paused", "LoRa continues"); + } + } else if (!g_sessionReady) { + // Card came back while running. Resume append logging without pausing radio work. + (void)openSessionLogs(); } - uint32_t now = millis(); if ((uint32_t)(now - g_lastHealthCheckMs) >= kHealthCheckPeriodMs) { g_lastHealthCheckMs = now; if (isDisciplineStale()) { @@ -893,10 +899,21 @@ void loop() { if (g_sd.consumeMountedEvent()) { logf("SD mounted"); g_gpsPathReady = false; + if (g_phase == AppPhase::RUN) { + g_lastWarnMs = 0; + if (!g_sessionReady) { + (void)openSessionLogs(); + } + } } if (g_sd.consumeRemovedEvent()) { logf("SD removed"); g_gpsPathReady = false; + if (g_phase == AppPhase::RUN) { + closeSessionLogs(); + g_lastWarnMs = 0; + oledShowLines("SD removed", "Logging paused", "LoRa continues"); + } } if (!g_radioReady) {