More sensible LED status, delays

This commit is contained in:
2026-03-01 19:28:37 +01:00
parent 76c7a9c23c
commit 98d4558e97
+8 -7
View File
@@ -71,9 +71,9 @@ const float ALPHA = 0.96f;
const int LOOP_RATE_MS = 10; const int LOOP_RATE_MS = 10;
const int BIAS_SAMPLES = 200; const int BIAS_SAMPLES = 200;
const int IDLE_FRAMES = 150; const int IDLE_FRAMES = 150;
const unsigned long BATT_REPORT_MS = 10000; const unsigned long BATT_REPORT_MS = 20000;
const unsigned long TELEMETRY_MS = 1000; const unsigned long TELEMETRY_MS = 1000;
const unsigned long HEARTBEAT_MS = 2000; const unsigned long HEARTBEAT_MS = 10000;
const int HEARTBEAT_DUR = 30; const int HEARTBEAT_DUR = 30;
const unsigned long BOOT_SAFE_MS = 5000; const unsigned long BOOT_SAFE_MS = 5000;
#ifdef FEATURE_IMU_STREAM #ifdef FEATURE_IMU_STREAM
@@ -158,8 +158,9 @@ void setup() {
while (!Serial && (millis() - serialWait < 2000)) { delay(10); } while (!Serial && (millis() - serialWait < 2000)) { delay(10); }
pinMode(PIN_CHG, INPUT_PULLUP); pinMode(PIN_CHG, INPUT_PULLUP);
pinMode(LED_RED, OUTPUT); digitalWrite(LED_RED, HIGH); pinMode(LED_RED, OUTPUT); digitalWrite(LED_RED, HIGH);
pinMode(LED_BLUE, OUTPUT); digitalWrite(LED_BLUE, HIGH); pinMode(LED_GREEN, OUTPUT); digitalWrite(LED_GREEN, HIGH);
pinMode(LED_BLUE, OUTPUT); digitalWrite(LED_BLUE, HIGH);
// ── Boot-loop detection ─────────────────────────────────────────────────── // ── Boot-loop detection ───────────────────────────────────────────────────
#ifdef FEATURE_BOOT_LOOP_DETECT #ifdef FEATURE_BOOT_LOOP_DETECT
@@ -170,7 +171,7 @@ void setup() {
bootCount = 0; safeMode = true; bootCount = 0; safeMode = true;
Serial.println("[BOOT] Boot loop — safe mode (no config service)"); Serial.println("[BOOT] Boot loop — safe mode (no config service)");
InternalFS.begin(); InternalFS.remove(CONFIG_FILENAME); InternalFS.begin(); InternalFS.remove(CONFIG_FILENAME);
for (int i=0; i<3; i++) { digitalWrite(LED_RED,LOW); delay(150); digitalWrite(LED_RED,HIGH); delay(150); } for (int i=0; i<3; i++) { digitalWrite(LED_RED,LOW); delay(150); digitalWrite(LED_RED,HIGH); delay(150); } // fault: red
} }
#endif #endif
@@ -192,7 +193,7 @@ void setup() {
Wire1.begin(); // LSM6DS3 is on internal I2C bus (Wire1), must init before imu.begin() Wire1.begin(); // LSM6DS3 is on internal I2C bus (Wire1), must init before imu.begin()
if (imu.begin() != 0) { if (imu.begin() != 0) {
Serial.println("[ERROR] IMU init failed"); Serial.println("[ERROR] IMU init failed");
while(1) { digitalWrite(LED_RED, !digitalRead(LED_RED)); delay(100); } while(1) { digitalWrite(LED_RED, !digitalRead(LED_RED)); delay(100); } // fault: red rapid blink
} }
Serial.println("[OK] IMU ready"); Serial.println("[OK] IMU ready");
@@ -278,7 +279,7 @@ void loop() {
// Heartbeat LED // Heartbeat LED
if (now - lastHeartbeat >= HEARTBEAT_MS) { if (now - lastHeartbeat >= HEARTBEAT_MS) {
lastHeartbeat = now; lastHeartbeat = now;
int led = Bluefruit.connected() ? LED_BLUE : LED_RED; int led = Bluefruit.connected() ? LED_BLUE : LED_GREEN; // blue=BT connected, green=advertising
digitalWrite(led, LOW); delay(HEARTBEAT_DUR); digitalWrite(led, HIGH); digitalWrite(led, LOW); delay(HEARTBEAT_DUR); digitalWrite(led, HIGH);
} }