Add raw GPIO test command to diagnose pin connectivity

This commit is contained in:
2026-06-23 14:35:15 +00:00
parent 5f2ad9ef91
commit 6c678ce18a
+31
View File
@@ -80,6 +80,36 @@ void handle_serial_command(const String& cmd) {
mux.set_led_color(1, 255, 255, 255);
mux.show();
Serial.println("[CMD] Pixel 1 WHITE (max brightness)");
} else if (cmd == "gpiotest") {
Serial.println("[CMD] === Raw GPIO Test ===");
uint8_t pins[] = {9, 10, 11, 12};
const char* names[] = {"DAT(9)", "LD(10)", "CLK(11)", "DI(12)"};
for (int p = 0; p < 4; p++) {
uint8_t pin = pins[p];
pinMode(pin, INPUT_PULLUP);
delay(10);
int hi = digitalRead(pin);
pinMode(pin, INPUT_PULLDOWN);
delay(10);
int lo = digitalRead(pin);
pinMode(pin, INPUT);
delay(10);
int fl = digitalRead(pin);
Serial.printf(" %s: PULLUP=%d PULLDOWN=%d FLOAT=%d\n", names[p], hi, lo, fl);
}
Serial.println(" Testing DAT(9) output toggle...");
pinMode(9, OUTPUT);
for (int i = 0; i < 5; i++) {
digitalWrite(9, HIGH);
delayMicroseconds(100);
int readback = digitalRead(9);
Serial.printf(" HIGH -> readback=%d\n", readback);
digitalWrite(9, LOW);
delayMicroseconds(100);
readback = digitalRead(9);
Serial.printf(" LOW -> readback=%d\n", readback);
}
Serial.println("[CMD] === GPIO Test Complete ===");
} else if (cmd == "help") {
Serial.println("[CMD] Commands:");
Serial.println(" dump - show button states");
@@ -90,6 +120,7 @@ void handle_serial_command(const String& cmd) {
Serial.println(" read - raw button read");
Serial.println(" red/green/blue - solid colour");
Serial.println(" pixel0/pixel1 - single pixel test");
Serial.println(" gpiotest - raw GPIO pin diagnostic");
} else {
Serial.println("[CMD] Unknown command. Type 'help'");
}