Hi all,
I had to build myself some software that makes it easier to tune my detector squinting at
raw numbers on a tiny LCD while chasing ground balance and discrimination just wasn't cutting
it. So I put together a small PC "bench lab" that talks to the detector over USB and shows what
the DSP is actually doing, live.
It connects to the detector MCU over USB-CDC / serial, streams the signal frames, and
visualizes them:
- XY hodograph — the I/Q vector trail (per harmonic) for ground-balance and target
discrimination tuning: signed ±180° protractor, live phase readout, persistence trail.
- Virtual oscilloscope — demodulated I/Q (or raw RX) in the time domain, with a sweep
trigger and automatic Vpp / RMS / mean / frequency measurements.
- Live FFT — Hann-windowed spectrum for spotting EMI and picking clean working frequencies.
- DSP recorder — a multi-channel strip chart of the detection chain over time: audio
(signal strength), threshold, ground (after correction), and I/Q after the active mode's
filters (DEEP / DISC / PROS each use different filters). Tap the coil and you can watch the
filter's impulse response.
It's profile-driven — a small JSON contract describes the telemetry framing — so it isn't tied
to one machine. Right now I'm running it with a single-frequency VLF (ATxmega) and building it
toward a multi-frequency STM32 design.
Backend is Python (FastAPI) streaming over WebSocket; the dashboard is Next.js / React with
uPlot charts. It's open source and very much a work in progress:
https://github.com/takzen/metal-detector-studio
— Christopher

I had to build myself some software that makes it easier to tune my detector squinting at
raw numbers on a tiny LCD while chasing ground balance and discrimination just wasn't cutting
it. So I put together a small PC "bench lab" that talks to the detector over USB and shows what
the DSP is actually doing, live.
It connects to the detector MCU over USB-CDC / serial, streams the signal frames, and
visualizes them:
- XY hodograph — the I/Q vector trail (per harmonic) for ground-balance and target
discrimination tuning: signed ±180° protractor, live phase readout, persistence trail.
- Virtual oscilloscope — demodulated I/Q (or raw RX) in the time domain, with a sweep
trigger and automatic Vpp / RMS / mean / frequency measurements.
- Live FFT — Hann-windowed spectrum for spotting EMI and picking clean working frequencies.
- DSP recorder — a multi-channel strip chart of the detection chain over time: audio
(signal strength), threshold, ground (after correction), and I/Q after the active mode's
filters (DEEP / DISC / PROS each use different filters). Tap the coil and you can watch the
filter's impulse response.
It's profile-driven — a small JSON contract describes the telemetry framing — so it isn't tied
to one machine. Right now I'm running it with a single-frequency VLF (ATxmega) and building it
toward a multi-frequency STM32 design.
Backend is Python (FastAPI) streaming over WebSocket; the dashboard is Next.js / React with
uPlot charts. It's open source and very much a work in progress:
https://github.com/takzen/metal-detector-studio
— Christopher

Comment