The committed indicator.py errored (UnboundLocalError: p15) -- an augmented assign on a global Net inside threshold() made it local. Flipped to rt[1]+=p15. Now ERC 0 / netlist 0. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
indicator.py: peak-detect (Schottky+RC) on STAGE1_OUT (signal-present) and MIX_OUT (clip) -> LM393 (powered from +15V) vs tunable threshold dividers -> open-collector outputs pulled to +3V3 = SIG_LED/CLIP_LED (drive face LEDs + read on GPIO19/20). speaker.py: PAM8302A filterless class-D (pinout verified, Diodes SO-8) fed from MIX_OUT (single-ended, RIN=68k -> ~+5.7dB), SD pulled high, BTL out -> SPK_P/SPK_N. Both ERC 0 errors; netlists 0 errors. Threshold/gain values tunable; DNP per form factor. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>