// the find
ttrftech/NanoVNA
Very Tiny Palmtop Vector Network Analyzer
Firmware for the NanoVNA, a $50 handheld vector network analyzer built around an STM32F072 and a handful of RF chips. Runs ChibiOS on a Cortex-M0 and squeezes S-parameter measurements, Smith charts, and a touchscreen UI into a device that fits in your pocket. This is for hardware hackers and RF engineers who want a real instrument at hobby prices.
The hardware/software co-design is genuinely clever — using the SI5351A as a signal source and an I2S codec (TLV320AIC3204) for the receive path keeps the BOM tiny without sacrificing measurement quality up to 900 MHz. The ChibiOS integration is clean, and the Makefile build is straightforward with a working Docker path for people who don't want to manage an ARM toolchain. The Python/Jupyter support lets you pull raw data over serial and do your own post-processing, which is far more useful than screenshotting the device display. Schematics and PCB photos are in the repo, so you can actually understand what you're running.
The repo is effectively frozen as of late 2020 — all the active development moved to forks like NanoVNA-H and NanoVNA-F, so if you clone this expecting maintenance you'll be disappointed. There's almost no inline documentation in the C source; main.c and ui.c are dense and you'll need the block diagram open in a second window to follow the signal flow. The Python tooling is a single notebook with no tests and hardcoded serial assumptions, making it brittle outside of the exact setup the author used. Flash memory is tight enough that adding features requires understanding what to cut, which the README doesn't warn you about.