// For each line: drive LOW, release (no internal pull-up), time how long until it reads HIGH again.
// Connected to the OLED's pull-up resistor -> back high within a few microseconds.
// Floating (unsoldered XIAO pin or open J2 leg) -> stays low much longer or never returns.
const int PINS[] = {D9, D10}; const char *NAMES[] = {"D9 (SDA)", "D10 (SCL)"};
void setup() { Serial.begin(115200); }
void loop() {
  for (int i = 0; i < 2; i++) {
    int p = PINS[i];
    pinMode(p, OUTPUT); digitalWrite(p, LOW); delay(5);
    pinMode(p, INPUT);
    unsigned long t0 = micros(); long dt = -1;
    while (micros() - t0 < 20000) { if (digitalRead(p)) { dt = micros() - t0; break; } }
    Serial.print(NAMES[i]); Serial.print(": ");
    if (dt < 0) Serial.print("stays LOW (floating or held low)");
    else { Serial.print("back HIGH in "); Serial.print(dt); Serial.print(" us"); }
    Serial.print(i == 0 ? "   |   " : "\n");
  }
  delay(1000);
}
