• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

.github/H01-Nov-2020-202166

NanoVNASaver/H01-Nov-2020-14,29110,732

test/H01-Nov-2020-8,1427,771

.coveragercH A D01-Nov-2020497 2120

.gitignoreH A D01-Nov-2020123 1413

.pylintrcH A D01-Nov-2020529 1615

CHANGELOG.mdH A D01-Nov-20202.3 KiB9271

LICENSEH A D01-Nov-202034.3 KiB675553

PipfileH A D01-Nov-2020177 1511

README.mdH A D01-Nov-202010.5 KiB296203

_config.ymlH A D01-Nov-202025 11

nanovna-saver.pyH A D01-Nov-2020919 257

setup.cfgH A D01-Nov-2020466 1312

setup.pyH A D03-May-20221.4 KiB4220

README.md

1[![Latest Release](https://img.shields.io/github/v/release/NanoVNA-Saver/nanovna-saver.svg)](https://github.com/NanoVNA-Saver/nanovna-saver/releases/latest)
2[![License](https://img.shields.io/github/license/NanoVNA-Saver/nanovna-saver.svg)](https://github.com/NanoVNA-Saver/nanovna-saver/blob/master/LICENSE)
3[![Downloads](https://img.shields.io/github/downloads/NanoVNA-Saver/nanovna-saver/total.svg)](https://github.com/NanoVNA-Saver/nanovna-saver/releases/)
4[![GitHub Releases](https://img.shields.io/github/downloads/NanoVNA-Saver/nanovna-saver/latest/total)](https://github.com/NanoVNA-Saver/nanovna-saver/releases/latest)
5[![Donate](https://img.shields.io/badge/paypal-donate-yellow.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=T8KTGVDQF5K6E&item_name=NanoVNASaver+Development&currency_code=EUR&source=url)
6
7NanoVNASaver
8============
9
10A multiplatform tool to save Touchstone files from the NanoVNA,
11sweep frequency spans in segments to gain more than 101 data
12points, and generally display and analyze the resulting data.
13
14- Copyright 2019, 2020 Rune B. Broberg
15- Copyright 2020 NanoVNA-Saver Authors
16
17Latest Changes
18--------------
19
20### Changes in v0.3.8
21
22- Allow editing of bands above 2.4GHz
23- Restore column layout on start
24- Support for Nanovna-F V2
25- Fixes a crash with S21 hack
26
27### Changes in v0.3.7
28
29- Added a delta marker
30- Segments can now have exponential different step widths
31  (see logarithmic sweeping)
32- More different data points selectable
33  (shorter are useful on logarithmic sweeping)
34- Scrollable marker column
35- Markers initialize on start, middle, end
36- Frequency input is now more "lazy"
37  10m, 50K and 1g are now valid for 10MHz, 50kHz and 1GHz
38- Added a wavelength field to Markers
39- 32 bit windows binaries build in actions
40- Stability improvements due to better exception handling
41- Workaround for wrong first S21mag value on V2 devices
42
43Introduction
44------------
45
46This software connects to a NanoVNA and extracts the data for
47display on a computer and allows saving the sweep data to Touchstone files.
48
49Current features:
50
51- Reading data from a NanoVNA -- Compatible devices: NanoVNA, NanoVNA-H,
52  NanoVNA-H4, NanoVNA-F, AVNA via Teensy
53- Splitting a frequency range into multiple segments to increase resolution
54  (tried up to >10k points)
55- Averaging data for better results particularly at higher frequencies
56- Displaying data on multiple chart types, such as Smith, LogMag, Phase and
57  VSWR-charts, for both S11 and S21
58- Displaying markers, and the impedance, VSWR, Q, equivalent
59  capacitance/inductance etc. at these locations
60- Displaying customizable frequency bands as reference, for example amateur
61  radio bands
62- Exporting and importing 1-port and 2-port Touchstone files
63- TDR function (measurement of cable length) - including impedance display
64- Filter analysis functions for low-pass, high-pass, band-pass and band-stop
65  filters
66- Display of both an active and a reference trace
67- Live updates of data from the NanoVNA, including for multi-segment sweeps
68- In-application calibration, including compensation for non-ideal calibration
69  standards
70- Customizable display options, including "dark mode"
71- Exporting images of plotted values
72
730.1.4:
74![Screenshot of version 0.1.4](https://i.imgur.com/ZoFsV2V.png)
75
76Running the application
77-----------------------
78
79The software was written in Python on Windows, using Pycharm, and the modules
80PyQT5, numpy, scipy and pyserial.
81
82### Binary releases
83
84You can find 64bit binary releases for Windows, Linux and MacOS under
85<https://github.com/NanoVNA-Saver/nanovna-saver/releases/>
86
87Versions older than Windows 7 are not known to work.
88
89#### Windows 7
90
91It requires Service Pack 1 and [Microsoft VC++ Redistributable](
92  https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads).
93For most users, this would already be installed.
94
95#### Windows 10
96
97The downloadable executable runs directly, and requires no installation.
98
99### Installation and Use with pip
100
1011. Clone repo and cd into the directory
102
103    git clone https://github.com/NanoVNA-Saver/nanovna-saver
104    cd nanovna-saver
105
1062. Run the pip installation
107
108    pip3 install .
109
1103. Once completed run with the following command
111
112    NanoVNASaver
113
114#### Ubuntu 18.04 & 19.04
115
1161. Install python3.7 and pip
117
118    sudo apt install python3.7 python3-pip
119
1202. Clone repo and cd into the directory
121
122    git clone https://github.com/NanoVNA-Saver/nanovna-saver
123    cd nanovna-saver
124
1253. Update pip and run the pip installation
126
127    python3.7 -m pip install -U pip
128    python3.7 -m pip install .
129
130   (You may need to install the additional packages python3-distutils,
131   python3-setuptools and python3-wheel for this command to work on some
132   distributions.)
133
1344. Once completed run with the following command
135
136    python3.7 nanovna-saver.py
137
138#### MacPorts
139
140Via a MacPorts distribution maintained by @ra1nb0w.
141
1421. Install MacPorts following the [install guide](https://www.macports.org/install.php)
143
1442. Install NanoVNASaver :
145
146        sudo port install NanoVNASaver
147
1483. Now you can run the software from shell `NanoVNASaver` or run as app
149   `/Applications/MacPorts/NanoVNASaver.app`
150
151#### Homebrew
152
1531. Install Homebrew from <https://brew.sh/> (This will ask for your password)
154
155        /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
156
157
1582. Python :
159
160        brew install python
161
1623. Pip :<br/>
163    Download the get-pip.py file and run it to install pip
164
165        curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
166        python3 get-pip.py
167
1684. NanoVNASaver Installation : <br/>
169    clone the source code to the nanovna-saver folder
170
171        git clone https://github.com/NanoVNA-Saver/nanovna-saver
172        cd nanovna-saver
173
1745. Install local pip packages
175
176        python3 -m pip install .
177
1786. Run nanovna-saver in the nanovna-saver folder by:
179
180        python3 nanovna-saver.py
181
182Using the software
183------------------
184
185Connect your NanoVNA to a serial port, and enter this serial port in the serial
186port box.  If the NanoVNA is connected before the application starts, it should
187be automatically detected. Otherwise, click "Rescan". Click "Connect to device"
188to connect.
189
190The app can collect multiple segments to get more accurate measurements. Enter
191the number of segments to be done in the "Segments" box. Each segment is 101
192data points, and takes about 1.5 seconds to complete.
193
194Frequencies are entered in Hz, or suffixed with k or M.  Scientific notation
195(6.5e6 for 6.5MHz) also works.
196
197Markers can be manually entered, or controlled using the mouse. For mouse
198control, select the active marker using the radio buttons, or hold "shift"
199while clicking to drag the nearest marker. The marker readout boxes show the
200actual frequency where values are measured.  Marker readouts can be hidden
201using the "hide data" button when not needed.
202
203Display settings are available under "Display setup". These allow changing the
204chart colours, the application font size and which graphs are displayed.  The
205settings are saved between program starts.
206
207### Calibration
208
209_Before using NanoVNA-Saver, please ensure that the device itself is in a
210reasonable calibration state._
211
212A calibration of both ports across the entire frequency span, saved to save
213slot 0, is sufficient.  If the NanoVNA is completely uncalibrated, its readings
214may be outside the range accepted by the application.
215
216In-application calibration is available, either assuming ideal standards or
217with relevant standard correction. To manually calibrate, sweep each standard
218in turn and press the relevant button in the calibration window.
219For assisted calibration, press the "Calibration Assistant" button.  If desired,
220enter a note in the provided field describing the conditions under which the
221calibration was performed.
222
223Calibration results may be saved and loaded using the provided buttons at the
224bottom of the window.  Notes are saved and loaded along with the calibration
225data.
226
227![Screenshot of Calibration Window](https://i.imgur.com/p94cxOX.png)
228
229Users of known characterized calibration standard sets can enter the data for
230these, and save the sets.
231
232After pressing _Apply_, the calibration is immediately applied to the latest
233sweep data.
234
235\! _Currently, load capacitance is unsupported_ \!
236
237### TDR
238
239To get accurate TDR measurements, calibrate the device, and attach the cable to
240be measured at the calibration plane - i.e. at the same position where the
241calibration load would be attached.  Open the "Time Domain Reflectometry"
242window, and select the correct cable type, or manually enter a propagation
243factor.
244
245### Frequency bands
246
247Open the "Display setup" window to configure the display of frequency bands. By
248clicking "show bands", predefined frequency bands will be shown on the
249frequency-based charts.  Click manage bands to change which bands are shown,
250and the frequency limits of each.  Bands default and reset to European amateur
251radio band frequencies.
252
253License
254-------
255
256This software is licensed under version 3 of the GNU General Public License. It
257comes with NO WARRANTY.
258
259You can use it, commercially as well. You may make changes to the code, but I
260(and the license) ask that you give these changes back to the community.
261
262Links
263-----
264
265- Ohan Smit wrote an introduction to using the application:
266  [https://zs1sci.com/blog/nanovnasaver/]
267- HexAndFlex wrote a 3-part (thus far) series on Getting Started with the NanoVNA:
268  [https://hexandflex.com/2019/08/31/getting-started-with-the-nanovna-part-1/] - Part 3 is dedicated to NanoVNASaver:
269  [https://hexandflex.com/2019/09/15/getting-started-with-the-nanovna-part-3-pc-software/]
270- Gunthard Kraus did documentation in English and German:
271  [http://www.gunthard-kraus.de/fertig_NanoVNA/English/]
272  [http://www.gunthard-kraus.de/fertig_NanoVNA/Deutsch/]
273
274Credits
275-------
276
277Original application by Rune B. Broberg (5Q5R)
278
279Contributions and changes by Holger Müller, David Hunt and others.
280
281TDR inspiration shamelessly stolen from the work of Salil (VU2CWA) at
282<https://nuclearrambo.com/wordpress/accurately-measuring-cable-length-with-nanovna/>
283
284TDR cable types by Larry Goga.
285
286Bugfixes and Python installation work by Ohan Smit.
287
288Thanks to everyone who have tested, commented and inspired.  Particular thanks
289go to the alpha testing crew who suffer the early instability of new versions.
290
291This software is available free of charge. If you read all this way, and you
292*still* want to support it, you may donate to the developer using the button
293below:
294
295[![Paypal](https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=T8KTGVDQF5K6E&item_name=NanoVNASaver+Development&currency_code=EUR&source=url)
296