Adaptions for prototype PCB: LED testing

This commit is contained in:
2025-12-26 07:49:03 +01:00
parent 2b421d69a7
commit 12687b17ab
3 changed files with 98 additions and 72 deletions

View File

@@ -140,12 +140,100 @@ String uptime_with_unit() {
return String(uptime) + " " + uptime_unit;
}
void ledtest() {
// all led one after another to test functionality
Serial.print("LED test started");
// Onbard RGB LED, inverted mode
digitalWrite(LED_IR, LOW);
digitalWrite(LED_IG, HIGH);
digitalWrite(LED_IB, HIGH);
delay(500);
digitalWrite(LED_IR, HIGH);
digitalWrite(LED_IG, LOW);
delay(500);
digitalWrite(LED_IG, HIGH);
digitalWrite(LED_IB, LOW);
delay(500);
digitalWrite(LED_IB, HIGH);
// destination leds
analogWrite(LED_A, 0);
delay(250);
// test every led
analogWrite(LED_A, led_brightness);
analogWrite(LED_B, 0);
analogWrite(LED_C, 0);
delay(500);
analogWrite(LED_A, 0);
analogWrite(LED_B, led_brightness);
delay(500);
analogWrite(LED_B, 0);
analogWrite(LED_C, led_brightness);
delay(500);
analogWrite(LED_C, 0);
// select dst A finally
analogWrite(LED_A, led_brightness);
delay(500);
// enclosure rgb led (common cathode, so low is off)
analogWrite(RGBLED_R, rgb_brightness);
analogWrite(RGBLED_G, 0);
analogWrite(RGBLED_B, 0);
delay(700);
analogWrite(RGBLED_R, 0);
analogWrite(RGBLED_G, rgb_brightness);
delay(700);
analogWrite(RGBLED_G, 0);
analogWrite(RGBLED_B, rgb_brightness);
delay(700);
analogWrite(RGBLED_B, 0);
Serial.print("LED test finished");
}
void setup() {
Serial.begin(115200);
// while (!Serial) delay(10);
delay(500);
// Configure I/O pins
// internal user led (red)
pinMode(LED_USER, OUTPUT);
// Init onbard RGB led
pinMode(LED_IR, OUTPUT);
pinMode(LED_IG, OUTPUT);
pinMode(LED_IB, OUTPUT);
// destination leds
pinMode(LED_A, OUTPUT);
pinMode(LED_B, OUTPUT);
pinMode(LED_C, OUTPUT);
// enclosure RGB led
pinMode(RGBLED_R, OUTPUT);
pinMode(RGBLED_G, OUTPUT);
pinMode(RGBLED_B, OUTPUT);
// Buttons active-low, internal resistor
pinMode(KEY_1, INPUT_PULLUP);
pinMode(KEY_2, INPUT_PULLUP);
pinMode(KEY_3, INPUT_PULLUP);
pinMode(KEY_4, INPUT_PULLUP);
pinMode(KEY_5, INPUT_PULLUP);
pinMode(KEY_6, INPUT_PULLUP);
pinMode(KEY_DST, INPUT_PULLUP);
// Early signal system activity
analogWrite(RGBLED_R, 255);
analogWrite(RGBLED_G, 0);
analogWrite(RGBLED_B, 0);
// Arduino ESP32 logging
esp_log_level_set("*", ESP_LOG_INFO);
esp_log_level_set("default", ESP_LOG_INFO);
@@ -271,17 +359,8 @@ void setup() {
2046
);
// Buttons active-low, internal resistor
pinMode(KEY_1, INPUT_PULLUP);
pinMode(KEY_2, INPUT_PULLUP);
pinMode(KEY_3, INPUT_PULLUP);
pinMode(KEY_4, INPUT_PULLUP);
pinMode(KEY_5, INPUT_PULLUP);
pinMode(KEY_6, INPUT_PULLUP);
pinMode(KEY_DST, INPUT_PULLUP);
// internal user led (red)
pinMode(LED_USER, OUTPUT);
digitalWrite(LED_USER, HIGH);
delay(1000);
digitalWrite(LED_USER, LOW);
@@ -290,7 +369,7 @@ void setup() {
ledcSetup(LEDC_CHANNEL, LEDC_BASE_FREQ, LEDC_TIMER_8_BIT);
ledcAttachPin(BUZZER, LEDC_CHANNEL);
// Test tone while booting
if (ledcWriteTone(LEDC_CHANNEL, 4000) == 0) {
if (ledcWriteTone(LEDC_CHANNEL, 2300) == 0) {
Serial.println("Error setting buzzer tone");
} else {
delay(750);
@@ -298,62 +377,9 @@ void setup() {
}
// Startup sequence: test all led and short beep buzzer
// Init onbard RGB LED
// inverted mode:
pinMode(LED_IR, OUTPUT);
pinMode(LED_IG, OUTPUT);
pinMode(LED_IB, OUTPUT);
digitalWrite(LED_IR, LOW);
digitalWrite(LED_IG, HIGH);
digitalWrite(LED_IB, HIGH);
analogWrite(RGBLED_R, 0); // boot status off
delay(500);
digitalWrite(LED_IR, HIGH);
digitalWrite(LED_IG, LOW);
delay(500);
digitalWrite(LED_IG, HIGH);
digitalWrite(LED_IB, LOW);
delay(500);
digitalWrite(LED_IB, HIGH);
// destination leds
pinMode(LED_A, OUTPUT);
pinMode(LED_B, OUTPUT);
pinMode(LED_C, OUTPUT);
analogWrite(LED_A, 0);
delay(250);
// test every led
analogWrite(LED_A, led_brightness);
analogWrite(LED_B, 0);
analogWrite(LED_C, 0);
delay(500);
analogWrite(LED_A, 0);
analogWrite(LED_B, led_brightness);
delay(500);
analogWrite(LED_B, 0);
analogWrite(LED_C, led_brightness);
delay(500);
analogWrite(LED_C, 0);
// select dst A finally
analogWrite(LED_A, led_brightness);
delay(500);
// enclosure rgb led
pinMode(RGBLED_R, OUTPUT);
pinMode(RGBLED_G, OUTPUT);
pinMode(RGBLED_B, OUTPUT);
// common anode so we need high here to switch off!
analogWrite(RGBLED_R, 255 - rgb_brightness);
analogWrite(RGBLED_G, 255);
analogWrite(RGBLED_B, 255);
delay(500);
analogWrite(RGBLED_R, 255);
analogWrite(RGBLED_G, 255 - rgb_brightness);
delay(500);
analogWrite(RGBLED_G, 255);
analogWrite(RGBLED_B, 255 - rgb_brightness);
delay(500);
analogWrite(RGBLED_B, 255);
ledtest();
// I²C
Serial.print("SHT31_LIB_VERSION: ");