Audio chain, stage 1 (balanced input receiver + protection) validated in ngspice:
- stage1_cmrr.cir: CMRR vs resistor matching -> 1% = 46dB, 0.1% = 66dB, perfect
= amp-limited; justifies the laser-trimmed THAT1240 over discrete resistors.
- stage1_phantom.cir: +48V phantom step -> clamped to ~16V blip, steady-state
~0.12V; the DC-block cap + clamp + series R make a miswire a non-event.
Container: add kicad-symbols + kicad-footprints (for symbol placement) and skidl.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Pinned toolchain under hardware/eda/ so the design can be checked/simulated
identically in the future (system KiCad is 7.0, which has no CLI ERC):
- Containerfile: Ubuntu 24.04 + KiCad 9 (PPA) + ngspice + python3.
- run.sh: build-if-needed + run with the repo mounted; lands in hardware/kicad.
- sim/input_loading.cir: ngspice deck proving the line(25k) vs instrument(1M)
input-loading decision — Hi-Z preserves a +16dB pickup resonance the 25k load
flattens to -3dB.
Verified: KiCad 9.0.9, ngspice-42, ERC runs clean (0 violations) on
pm_k1_core.kicad_sch.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>