My ISP kept dropping and I had no proof, so I built something to catch it. I'm not sure the finished thing counts as show and tell, so tell me if I've got the rules wrong.
Hardware: Waveshare ESP32-S3 1.28" round touch screen in a CNC metal case. The firmware is written in Rust.
What it measures, every second:
TCP connect time to a public host on port 443
DNS lookup time
Latency to the home gateway
Wi-Fi RSSI
Why TCP and not ICMP: ICMP was quite unstable for me, with timeouts that didn't match what I saw on my laptop. TCP connect and DNS timing were much steadier and matched real outages.
The radio problem: Running Wi-Fi and Bluetooth at the same time caused artificial latency. They share one radio, so the chip has to time-slice between them. With Bluetooth on, my TCP latency measured about 60 ms. With it off, the same connection measured about 12 ms.…