@kmin maybe you mean something like this?
record raw timings
#define DATA_PIN 2
void setup() {
Serial.begin(115200);
pinMode(DATA_PIN, INPUT);
Serial.println("Ready to capture signal...");
}
void loop() {
static uint32_t lastTime = 0;
static int lastState = HIGH;
static bool capturing = false;
static uint32_t lastPulseTime = 0;
int state = digitalRead(DATA_PIN);
uint32_t now = micros();
if (state != lastState) {
uint32_t duration = now - lastTime;
lastTime = now;
// Ignore very short blips (noise)
if (duration > 100) {
if (!capturing) {
Serial.println("\n--- Start of Signal ---");
capturing = true;
}
Serial.print("State: ");
Serial.print(state);
Serial.print(" Duration: ");
Serial.println(duration);
lastPulseTime = now;
}
lastState = state;
}
// Stop capturing if there's been a long silence (>10 ms)
if (capturing && (now - lastPulseTime > 10000)) {
Serial.println("--- End of Signal ---\n");
capturing = false;
}
}
22:54:20.600 -> State: 1 Duration: 3276
22:54:20.600 -> State: 0 Duration: 976
22:54:20.600 -> State: 1 Duration: 3108
22:54:20.600 -> State: 0 Duration: 1056
22:54:20.600 -> State: 1 Duration: 3000
22:54:20.600 -> State: 0 Duration: 1252
22:54:20.600 -> State: 1 Duration: 2124
22:54:20.600 -> State: 0 Duration: 2260
22:54:20.600 -> State: 1 Duration: 1988
22:54:20.631 -> State: 0 Duration: 2124
22:54:20.631 -> State: 1 Duration: 2488
22:54:20.631 -> State: 0 Duration: 1764
22:54:20.631 -> State: 1 Duration: 2312
22:54:20.631 -> State: 0 Duration: 1936
22:54:20.631 -> State: 1 Duration: 3152
22:54:20.631 -> State: 0 Duration: 1100
22:54:20.631 -> State: 1 Duration: 2124
22:54:20.631 -> State: 0 Duration: 2408
22:54:20.631 -> State: 1 Duration: 2516
22:54:20.631 -> State: 0 Duration: 1452
22:54:20.631 -> State: 1 Duration: 2608
22:54:20.631 -> State: 0 Duration: 8332
22:54:20.631 -> State: 1 Duration: 3960
22:54:20.663 -> State: 0 Duration: 520
22:54:20.663 -> State: 1 Duration: 512
22:54:20.663 -> State: 0 Duration: 512
22:54:20.663 -> State: 1 Duration: 1544
22:54:20.663 -> State: 0 Duration: 1792
22:54:20.663 -> State: 1 Duration: 3280
22:54:20.663 -> State: 0 Duration: 968
22:54:20.663 -> State: 1 Duration: 3112
22:54:20.663 -> State: 0 Duration: 1056
22:54:20.663 -> State: 1 Duration: 3000
22:54:20.663 -> State: 0 Duration: 1248
22:54:20.663 -> State: 1 Duration: 2124
22:54:20.663 -> State: 0 Duration: 2268
22:54:20.695 -> State: 1 Duration: 1984
22:54:20.695 -> State: 0 Duration: 2132
22:54:20.695 -> State: 1 Duration: 2480
22:54:20.695 -> State: 0 Duration: 1764