¿ªÔÆÌåÓý

ctrl + shift + ? for shortcuts
© 2025 Groups.io

Early app for the NanoVNA


 

Hi,
after having a play with the NanoVNASharp software, I had two small
annoyances:
1) It only used 101 data points, which didn't give me the resolution I was
looking for,
2) It wasn't open source.

Someone made a very nice tool that seemed to address the first concern, but
it was based on Labview, and a release did not seem forthcoming.

So I've hacked together a little Python app which remedies at least those
two concerns:


It reads data from the NanoVNA and displays both a Smith chart and
LogMag(?) displays for both S11 and S12, with as many points as you can be
bothered waiting for. It allows exporting S11 to s1p Touchstone files (and
I'll make it export s2p files soon, but probably not today.)

It has two markers that can be placed at specific frequencies, and shows
impedance and VSWR at those frequencies.

But most importantly: It's something the community can build on.

I hope this is of some use to the community. I'll gladly accept code
changes, improvements, suggestions, bug reports etc. The readme already
has a small list of things I want to do with it :-)

--
Rune / 5Q5R


 

Great job!

I will beta testing it for sure!

Cheers,

Luis, CT2FZI


 

Very nice job!
Tried on a windows 10 (64bit) and running fine.

Marcel


 

Thank you Rune! Will be checking it out too.

73 KC2ISE

On Aug 30, 2019, at 5:22 AM, SPACE OPQA <spaceopqa@...> wrote:

Great job!

I will beta testing it for sure!

Cheers,

Luis, CT2FZI



 

Hi Rune

I am not familiar with Python but I will give a try
I just dowload the Python Software for the MAC and Python is working. Which of you files shall I start?
I would like to thank you for the effort and I have an idea.
When the measurments are done. I would like to use this information to calculate what kind of adjustments is needed to tune the antenna on the required frequency.
input is the frequency
plus the values of the measurment .
Output is the values of the Variometer and coil when needed
or extend/decrease the antenna by X amount of meter
Do you think it is possible ?


 

The file to run is nanovna-saver.py. You need to have installed "PyQT5"
and "pyserial" first - I *believe* you can run "pip3 install pyqt5" and
"pip3 install pyserial" to do so. Maybe Marcel can explain it better than
I can, since he got it running ;-)

I believe it is possible to make a program like the one you describe, but
I'm not savvy enough at impedance calculations to make it yet. I'm sure
there are others on this list who could!

And thank you all for the encouragement - it certainly motivates me to keep
working on it!

--
Rune / 5Q5R

On Fri, 30 Aug 2019 at 13:54, <nano@...> wrote:

Hi Rune

I am not familiar with Python but I will give a try
I just dowload the Python Software for the MAC and Python is working.
Which of you files shall I start?
I would like to thank you for the effort and I have an idea.
When the measurments are done. I would like to use this information to
calculate what kind of adjustments is needed to tune the antenna on the
required frequency.
input is the frequency
plus the values of the measurment .
Output is the values of the Variometer and coil when needed
or extend/decrease the antenna by X amount of meter
Do you think it is possible ?




 

He may need to a install pip first...not always installed with python.

Frank

---
Frank M. Howell, PhD
Ridgeland, MS
frankmhowell (at) hotmail.com
---

On Aug 30, 2019, at 7:00 AM, Rune Broberg <mihtjel@...> wrote:

The file to run is nanovna-saver.py. You need to have installed "PyQT5"
and "pyserial" first - I *believe* you can run "pip3 install pyqt5" and
"pip3 install pyserial" to do so. Maybe Marcel can explain it better than
I can, since he got it running ;-)

I believe it is possible to make a program like the one you describe, but
I'm not savvy enough at impedance calculations to make it yet. I'm sure
there are others on this list who could!

And thank you all for the encouragement - it certainly motivates me to keep
working on it!

--
Rune / 5Q5R

On Fri, 30 Aug 2019 at 13:54, <nano@...> wrote:

Hi Rune

I am not familiar with Python but I will give a try
I just dowload the Python Software for the MAC and Python is working.
Which of you files shall I start?
I would like to thank you for the effort and I have an idea.
When the measurments are done. I would like to use this information to
calculate what kind of adjustments is needed to tune the antenna on the
required frequency.
input is the frequency
plus the values of the measurment .
Output is the values of the Variometer and coil when needed
or extend/decrease the antenna by X amount of meter
Do you think it is possible ?





 

Hi Rune. Your contribution to the nanoVNA community is really appreciated. I have a question for you. When you divided the test frequency range into multiple sweeps to increase resolution from 101 points, how did you get around the issue that you lose calibration and accuracy whenever you change start and stop frequencies? I would suspect the error to be small for s21 measurements, but phase measurements could be suspect. I haven't loaded Python on my machine yet or I would have tried to answer my own question before bugging you. Tks


 

As I understand the firmware, it interpolates between the calibration
points. But I do get some absolutely horrible results around the frequency
where it transitions to using harmonics (270MHz for my 800MHz firmware).
But I haven't done anything to address it.

I suppose it would be possible to calibrate in the software with a large
amount of points, and use that calibration when running the sweeps. But I
don't know enough about these corrections to say how, or to implement it.
Suggestions, instructions or links to good resources would be appreciated.
My goal has been for the project to be open to community participation and
contribution, unlike the previously available software.

And again, thank you for your appreciation. :-)

--
Rune / 5Q5R

On Fri, 30 Aug 2019 at 15:18, hwalker <herbwalker2476@...> wrote:

Hi Rune. Your contribution to the nanoVNA community is really
appreciated. I have a question for you. When you divided the test frequency
range into multiple sweeps to increase resolution from 101 points, how did
you get around the issue that you lose calibration and accuracy whenever
you change start and stop frequencies? I would suspect the error to be
small for s21 measurements, but phase measurements could be suspect. I
haven't loaded Python on my machine yet or I would have tried to answer my
own question before bugging you. Tks




 

I'm not a python wiz, but when I try this on Ubuntu 16.04 with either python or python3 I get:

File "NanoVNASaver.py", line 49
self.data : List[Datapoint] = []
^
SyntaxError: invalid syntax

What might the issue be?


 

I've developed it using Python 3.7, and the typing (": List[Datapoint]") in
that line is reasonably new syntax. So you may need a newer Python
version. I'm not a Python wiz either, so I couldn't tell you exactly
which; but mine is 3.7.3

--
Rune / 5Q5R

On Fri, 30 Aug 2019 at 19:16, Harry McGavran Jr <w5pny@...> wrote:

I'm not a python wiz, but when I try this on Ubuntu 16.04 with either
python or python3 I get:

File "NanoVNASaver.py", line 49
self.data : List[Datapoint] = []
^
SyntaxError: invalid syntax

What might the issue be?




 

I have python2, python3.5, and python3.5m --

I'll see what else I might be able to get for Ubuntu 16.04 ...

Thanks


 

Hello Rune,
Thank you very much for the nanoVNA program.
It is a prosmising start.
It works also under MacOS Mojave 10.14.6, see the attached screen shot.
You just have to edit: self.serialPort = "/dev/cu.usbmodem4001" in program NanoVNASaver.py
I use Python version 3.6.3.

The only deviation from your screen shot is the data representation.
In your screen shot it is a line, in mine there are dots only.

73, Rudi DL5FA


 

You should be able to put the serial port in the input box, so you don't
need to edit the code. But changing the code means it saves it ;-)

The dots vs. lines is a matter of how many sweeps you ask it to break the
range into - 101 dots per sweep :-)

I *am* however confused about the data I'm seeing at marker 2 - a negative
VSWR and quite an odd looking complex impedance. Does it look the same on
your NanoVNA's display?

--
Rune / 5Q5R

On Fri, 30 Aug 2019 at 19:06, <reuterr@...> wrote:

Hello Rune,
Thank you very much for the nanoVNA program.
It is a prosmising start.
It works also under MacOS Mojave 10.14.6, see the attached screen shot.
You just have to edit: self.serialPort = "/dev/cu.usbmodem4001" in program
NanoVNASaver.py
I use Python version 3.6.3.

The only deviation from your screen shot is the data representation.
In your screen shot it is a line, in mine there are dots only.

73, Rudi DL5FA






 

I'm stumped. I've had similar errors before, but I don't know what the
right solution is. I hope someone else on the list is able to help.

--
Rune / 5Q5R

On Fri, 30 Aug 2019 at 19:07, Harry McGavran Jr <w5pny@...> wrote:

Got python3.7 installed --

Now:

maui% python3.7 NanoVNASaver.py
Traceback (most recent call last):
File "NanoVNASaver.py", line 27, in <module>
from SweepWorker import SweepWorker
File "/usr/local/lib/nanovnasaver/SweepWorker.py", line 22, in <module>
import NanoVNASaver
File "/usr/local/lib/nanovnasaver/NanoVNASaver.py", line 27, in <module>
from SweepWorker import SweepWorker
ImportError: cannot import name 'SweepWorker' from 'SweepWorker'
(/usr/local/lib/nanovnasaver/SweepWorker.py)

Suggestions?






 

Hello Rune,
Yes, the S11 curve and Smith chart looks the same in the LCD.
I have just a 50 cm coax cable RG316 connected to the TX port.
Strange.

73, Rudi DL5FA


 

I fetched today's version with the reference sweep changes -- now when I import an s1p file
Iit only gets used as a reference sweep. I'd like to be able to use markers and the tdr function
on touchstone files. That way I can look at previous sweeps I had saved without having
to do the sweep again. Can you allow loading of touchstone files as regular sweeps in addition
to the reference sweeps????


 

It would be really nice to be able to use "m" and "k" in the markers too!


 

Thanks for the suggestions! I've pushed an update to the repository
implementing those two features.

I also want to make the markers measure both sweep and reference data, but
the UI is starting to get cluttered, so I want to figure out how to do it
in a nice way.

--
Rune / 5Q5R

On Mon, 2 Sep 2019 at 18:54, Harry McGavran Jr <w5pny@...> wrote:

It would be really nice to be able to use "m" and "k" in the markers too!




 

Thanks -- NICE! Although you might to change the title of of the "Reference Sweep" section of the GUI
to "Import Touchstone File" or some such, since the touchstone files can now be used as either
Referrence or Current sweeps.