gsmc¶
Interactive Smith chart for designing impedance matching networks
- Version recorded: 1.2.1
- Categories:
antenna,electronics - Upstream: https://github.com/tym163com/gsmc
What it does¶
Draws a Smith chart you can work on: enter a load impedance, add series and shunt components, and watch the point move as you do. It computes the values needed to reach a target — an L network, a stub, a transformer — and shows the locus rather than only the answer.
Why you would want it¶
Impedance matching is the sort of thing you can do with formulas and understand much better with a chart, because the chart shows you why one topology gets there and another does not. For designing a matching network for an antenna you have just measured with a NanoVNA, this is the tool between the measurement and the soldering iron.
Before it will work¶
A desktop session with GTK2. A load impedance to match, which in practice means a measurement — nanovna-saver, which this catalog carries, is where that usually comes from.
How it installs¶
- source (autotools) from https://github.com/tym163com/gsmc/archive/refs/tags/v1.2.1.tar.gz
- build dependencies:
build-essential,pkg-config,libgtk2.0-dev,libgdk-pixbuf-2.0-dev,libglib2.0-dev - compiler flags:
-Wno-incompatible-pointer-types,-std=gnu17— without these it does not build on a current toolchain - A git checkout of this tag does not build and the tarball of the same tag does. Measured on Debian 13, 2026-08-28. Git does not preserve timestamps, so the checked-out
configureandaclocal.m4look older thanconfigure.acand make tries to regenerate them — which needs the exact autotools version and fails withMakefile:357: aclocal.m4 Error 127.autoreconf -fifirst fixes it and this backend does not run one. The tag's tarball has uniform timestamps, so maintainer mode never triggers: configure exits 0, make exits 0,gsmcis produced. AHRL's Makefile patch is not needed here. It builds an unversionedmasterzip and patches the Makefile in place to add-Wno-incompatible-pointer-types. At tag v1.2.1 the build is clean with no flags at all, which is a good argument for pinning what upstream named over whatever the branch head happened to be (D-024). The URL is a GitHub auto-generated archive. Those are produced on demand and their bytes have changed in the past when GitHub changed its compression; the recorded digest pins what was reviewed and built, so if that ever happens the fetch fails loudly rather than installing something else. Failing closed is the correct behaviour and is worth knowing about in advance.
Binaries this produces:
gsmc
Known problems¶
GTK2, end of life, no port coming — see the toolkit register above. Its calculations are ideal-component: real inductors have loss and self-resonance, real capacitors have equivalent series resistance, and a network that is perfect on the chart will need trimming on the bench. The chart is normalised, so entering an impedance without setting the system impedance first gives an answer for the wrong system.
Toolkit risk¶
gtk2: no path, checked 2026-08-28 — GTK2 is end of life. Upstream's last commit is 47dfa548130f, 2016-09-13 (read from the default branch, not GitHub's updated_at — D-032), so no GTK3 port is coming. When a target drops libgtk2.0-dev this stops building, and the correct response is a status change rather than a patch — the same position glfer is in.
Keeping it current¶
- probe: github tags (
tym163com/gsmc) - strategy: rebuild
- v1.2.1 is the newest tag and the default branch has not moved since 2016-09-13. Finished rather than maintained; check annually.
Where to get help with the software itself¶
GPL-3.0. GitHub issues at the URL above, on a repository that has not moved since 2016.
Source: catalog/packages/gsmc.yaml