-- Board: --
Compares the current tilt against a one-time reference reading taken while the board hangs plumb (P1 straight up) - works without needing to know exactly how the accelerometer chips are rotated on the PCB.
Checks a quiet baseline on each mic, plays a short sweep tone through the speakers, then checks again - a mic "hears" the chirp if its level jumps well above its own baseline. Tap or blow on a mic and re-run to see which channel number it is.
Pick a mic and click the button - runs for 8 seconds (about 1s to actually start, since the Atom polls once a second). "All 4" round-robins across every mic each 250ms window and expects you to tap/blow on one yourself; picking one specific mic instead dedicates the whole test to watching just that channel and automatically plays a staircase of 8 sustained tones - 500, 1000, 2000, 3000, 4000, 5000, 6000, 7500Hz, one roughly every 1.3s - instead of needing a manual tap. A sustained tone concentrates all its energy at one frequency (unlike a swept chirp, which only spends a moment on any single frequency). Watch the peaks (graph) or the "peak" column (table): each bump lines up with the tone that just played, so the bump heights trace the mic's response curve across frequency.
The board plays short test tones one frequency at a time while all four mics listen, and measures how strongly each mic hears each tone. It shows which frequencies come through best, where the response has dips (blind spots), and how well the two mics of each pair agree with each other. The dips depend on where the board sits, so repeat the scan wherever you set it up. Start with the coarse scan, then zoom in on anything interesting.
Synchronized 4-mic recordings saved on this computer by
tools/capture_raw.py (all four mics start on the same
instant). Pick one and look at it as a waveform, a spectrogram, an
average spectrum, or a table of levels. The list refreshes when you
press Refresh. "Record now" asks the board to record and send the recording through the
Atom (about 6 seconds; it works with no USB cable) - the result appears here when it
has arrived complete and checked.
Everything the board prints for debugging, sent over the Atom link - so it works when the USB debug port is not reachable. Lines are stamped with this computer's clock and the board's own uptime; a line marked "board restarted" means its uptime went back to zero. Only the newest 3000 lines are kept, and the log is empty again if this dashboard is restarted. Bulk recording data is never sent here.
Commands go to the board through the Atom (about a second) and the answer appears in the log above. rec still sends its data over the board's USB console, not through here. Anyone who can open this page can send these, so this is for a closed network for now.