Coffee-roaster beep detector
My Hottop coffee roaster takes a while to preheat. While I’m waiting, I usually start doing something around the yard or in my shop and miss the beep. That’s the signal to add the green beans, and if I miss that moment, I don’t get a good roast.
I gave Codex a recording of the beep and asked it to build a detector that would send a Pushover alert to my phone. I tested it by playing the recording and checking whether an alert arrived. The first version only picked it up when the sound was close and loud, so we adjusted it and tried again.
The detector listens through a microphone for a tone near 4.10 kHz and checks the spacing of three beeps before sending an alert. A recording can also be replayed through the program in dry-run mode, which checks detection without heating the roaster or sending a notification.
Getting the microphone to stay connected
I later moved the detector to the ASUS X202E laptop that runs my 3D printer, since it was now beside the roaster. During a roast, no alert arrived. We tested with the beep recording on a loop and investigated the audio input. One problem was that starting a capture stream caused PipeWire to restore the internal microphone route, even with an external microphone plugged into the combo jack. The service now waits for capture to start and then selects the external input. It also checks for missing frames and sustained digital silence, so a running process with a dead audio input does not quietly appear healthy.
Testing the whole audio path
Replaying the file directly through the detector checks the signal-processing code, but it skips the microphone, room acoustics, and audio routing. For those tests, I played the beep aloud while Codex inspected the input. The live diagnostic reports the strongest frequency and its level relative to the background, which helps locate a failure before changing detection thresholds.
Running on an ESP32
The repository also contains firmware for an ESP32-WROOM-32 with an INMP441 microphone. It detects the warm-up signal and sends the notification over Wi-Fi without streaming or storing the audio. Recognizing first crack or second crack would require a different detector; the current work is specifically about the warm-up beeps.