As regular readers are well aware, my main PC runs Linux Mint, and has for many years. I do run a Windows 10 PC as well, in order to build code for that platform as well as to play games, but it’s my preference to do nearly all of my work on my Linux box.
There exists an “official” NanoVNA PC program that runs in the .NET environment on Windows PCs. I’ve tried it out on my Windows box and it works alright, but has some annoying bugs that make it difficult to use. The big problem is that this program is closed source, so no one in the community can help to improve or fix the code. Naturally, I turned to the interwebs to look for an open source alternative that could run on Linux. I figured there had to be one or that one would be released soon, since the virtual serial port protocol for the NanoVNA had already been documented by people on the NanoVNA mailing list.
I eventually found the NanoVNASaver program by Rune B. Broberg, 5Q5R. It’s a Python 3.7/Qt program that is cross-platform and was very easy for me to install and run on my Mint box:
git clone https://github.com/mihtjel/nanovna-saver python3.7 nanovna-saver.py
Of course, YMMV, since you may have to install some dependencies before you can get it to run. Also, it requires Python version 3.7, so be sure you have that specific version installed if you are not running a precompiled binary.
NanoVNASaver has pretty much all of the features of the “official” program, plus more. You can select from a variety of S11 and S21 plot types, and the markers work as you would expect (unlike the “official” program). It will export Touchstone files for use in SPICE and other modeling tools. You can also save and display reference traces, which is of course quite useful.
NanoVNASaver also has a neat TDR function along with a window for the graph so that you can measure cable lengths.
Perhaps the most useful feature in NanoVNASaver is how it handles the sweep. Instead of only doing a single 101 point sweep, you can specify an arbitrary (up to a point, I assume) number of sweeps, so that you can collect
101 * number of sweeps points of data, which is something that my current NanoVNA firmware doesn’t do.
Development has been proceeding at a very fast pace, and I would assume that the version that I’ve reviewed for you (0.0.9) will be deprecated very quickly, if you happen to be reading this very long after the publication date. The great thing about getting it via
git clone is that it’s as easy as issuing a
git pull origin master to update it.
All in all, I’m really happy with this free and open source software which complements the NanoVNA nicely. Hats off to Rune for providing such a valuable resource to the community.