nanovna-saver/README.md

293 wiersze
11 KiB
Markdown
Czysty Zwykły widok Historia

2020-06-25 18:09:36 +00:00
[![Latest Release](https://img.shields.io/github/v/release/NanoVNA-Saver/nanovna-saver.svg)](https://github.com/NanoVNA-Saver/nanovna-saver/releases/latest)
[![License](https://img.shields.io/github/license/NanoVNA-Saver/nanovna-saver.svg)](https://github.com/NanoVNA-Saver/nanovna-saver/blob/master/LICENSE)
[![Downloads](https://img.shields.io/github/downloads/NanoVNA-Saver/nanovna-saver/total.svg)](https://github.com/NanoVNA-Saver/nanovna-saver/releases/)
[![GitHub Releases](https://img.shields.io/github/downloads/NanoVNA-Saver/nanovna-saver/latest/total)](https://github.com/NanoVNA-Saver/nanovna-saver/releases/latest)
2019-11-03 17:38:36 +00:00
[![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)
2019-10-14 09:14:04 +00:00
NanoVNASaver
============
2020-07-02 15:37:45 +00:00
A multiplatform tool to save Touchstone files from the NanoVNA,
sweep frequency spans in segments to gain more than 101 data
2020-06-21 19:12:27 +00:00
points, and generally display and analyze the resulting data.
2019-08-30 07:55:32 +00:00
2020-07-02 15:40:41 +00:00
- Copyright 2019, 2020 Rune B. Broberg
- Copyright 2020 NanoVNA-Saver Authors
2019-08-29 11:42:02 +00:00
2020-07-02 15:37:45 +00:00
# Latest Changes
2020-07-24 20:08:35 +00:00
## Changes in v0.3.7-pre
- Added a delta marker
- Scrollable marker column
- Better error handling whith communication errors during a sweep
2020-07-14 09:38:13 +00:00
## Changes in v0.3.6
- Added bandwidth setting in device manage dialog
2020-07-10 11:25:57 +00:00
## Changes in v0.3.5
- Sweep worker now initializes full dataset on setting changes.
Therefore no resize of charts when doing multi segment sweep
- Changing datapoints in DeviceSettings are reflected in SweepSettings widget step size
- Simplified calibration code by just using scipy.interp1d with fill\_value
- Established Interface class to ease locking and allow non usb connections in future
- Cleaned up VNA code. Added some pause statements to get more robust readings
- Added MagLoopAnalysis
- Touchstone class can now generate interpolated Datapoints for a given frequency
Will be usefull in future analysis code
- Fixed a bug in Version comparison
2020-07-03 16:52:59 +00:00
## Changes in v0.3.4
- Refactored Analysis
- Add Antenna Analysis
- Fixed bug in Through Calibration
- Fixed bug in s2p saving
- Fixed crash when clicking connect with no device connected
- Fixed module error with source installation if
pkg\_resources missing
2020-07-02 15:37:45 +00:00
## Changes in v0.3.3
- Fixed data acquisition with S-A-A-2 / NanoVNA V2
- Refactored calibration code
- Calibration data between known datapoints is now
interpolated using spline interpolation
- Fixed Through Calibration (CH0 -> CH1)
2020-06-28 11:39:03 +00:00
## Changes in v0.3.2
2020-07-02 15:37:45 +00:00
- This adds support for the SAA2, a VNA loosely based on the
original NanoVNA with frequency range up to 3GHz.
- Added ability to add use an attenuator and add the Antenuation
in s11 sweep settings for amplifier measurements.
2020-06-21 19:12:27 +00:00
2020-07-02 15:37:45 +00:00
# Introduction
This software connects to a NanoVNA and extracts the data for
display on a computer and allows saving the sweep data to Touchstone files.
2019-08-30 07:55:32 +00:00
Current features:
2020-06-21 19:12:27 +00:00
- Reading data from a NanoVNA -- Compatible devices: NanoVNA, NanoVNA-H,
NanoVNA-H4, NanoVNA-F, AVNA via Teensy
- Splitting a frequency range into multiple segments to increase resolution
(tried up to >10k points)
- Averaging data for better results particularly at higher frequencies
2020-06-21 19:12:27 +00:00
- Displaying data on multiple chart types, such as Smith, LogMag, Phase and
VSWR-charts, for both S11 and S21
- Displaying markers, and the impedance, VSWR, Q, equivalent
capacitance/inductance etc. at these locations
- Displaying customizable frequency bands as reference, for example amateur
radio bands
- Exporting and importing 1-port and 2-port Touchstone files
2019-11-03 17:38:36 +00:00
- TDR function (measurement of cable length) - including impedance display
2020-06-21 19:12:27 +00:00
- Filter analysis functions for low-pass, high-pass, band-pass and band-stop
filters
- Display of both an active and a reference trace
- Live updates of data from the NanoVNA, including for multi-segment sweeps
2020-06-21 19:12:27 +00:00
- In-application calibration, including compensation for non-ideal calibration
standards
- Customizable display options, including "dark mode"
- Exporting images of plotted values
2019-08-30 07:55:32 +00:00
2019-10-23 07:49:59 +00:00
0.1.4:
![Screenshot of version 0.1.4](https://i.imgur.com/ZoFsV2V.png)
2019-08-30 07:55:32 +00:00
## Running the application
2019-08-30 07:55:32 +00:00
2020-06-21 19:12:27 +00:00
The software was written in Python on Windows, using Pycharm, and the modules
PyQT5, numpy, scipy and pyserial.
2019-08-30 07:55:32 +00:00
2019-09-18 19:45:27 +00:00
#### Binary releases
2020-06-28 11:39:03 +00:00
You can find 64bit binary releases for Windows, Linux and MacOS under
https://github.com/NanoVNA-Saver/nanovna-saver/releases/
2020-07-02 15:37:45 +00:00
### Windows
2020-06-27 19:28:45 +00:00
Versions older than Windows 7 are not known to work.
2020-07-02 15:37:45 +00:00
#### Windows 7
It requires Service Pack 1 and [Microsoft VC++ Redistributable]
(https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads).
For most users, this would already be installed.
#### Windows 10
The downloadable executable runs directly, and requires no installation.
##### Installation and Use with pip
1. Clone repo and cd into the directory
2020-06-27 19:28:45 +00:00
git clone https://github.com/NanoVNA-Saver/nanovna-saver
2019-09-27 13:29:57 +00:00
cd nanovna-saver
2019-09-18 12:43:21 +00:00
2020-06-27 19:28:45 +00:00
2. Run the pip installation
2019-09-27 13:29:57 +00:00
pip3 install .
2020-06-27 19:28:45 +00:00
3. Once completed run with the following command
2019-09-27 13:29:57 +00:00
NanoVNASaver
2019-08-29 11:42:02 +00:00
### Linux
#### Ubuntu 18.04 & 19.04
##### Installation and Use with pip
1. Install python3.7 and pip
2019-08-30 07:55:32 +00:00
2019-09-27 13:29:57 +00:00
sudo apt install python3.7 python3-pip
2019-09-18 12:43:21 +00:00
3. Clone repo and cd into the directory
2020-06-27 19:28:45 +00:00
git clone https://github.com/NanoVNA-Saver/nanovna-saver
2019-09-27 13:29:57 +00:00
cd nanovna-saver
2019-09-18 12:43:21 +00:00
2020-06-21 19:12:27 +00:00
4. Update pip and run the pip installation
2020-06-21 19:12:27 +00:00
python3.7 -m pip install -U pip
2019-09-27 13:29:57 +00:00
python3.7 -m pip install .
2020-06-21 19:12:27 +00:00
(You may need to install the additional packages python3-distutils,
python3-setuptools and python3-wheel for this command to work on some
distributions.)
2019-09-18 12:43:21 +00:00
5. Once completed run with the following command
2019-09-27 13:29:57 +00:00
python3.7 nanovna-saver.py
2019-09-18 12:43:21 +00:00
### Mac OS:
2020-04-06 09:39:14 +00:00
#### MacPorts
2020-06-28 07:40:23 +00:00
Via a MacPorts distribution maintained by @ra1nb0w.
1. Install MacPorts following the
[install guide](https://www.macports.org/install.php)
2020-04-06 09:39:14 +00:00
2. Install NanoVNASaver :
sudo port install NanoVNASaver
2020-06-28 07:40:23 +00:00
3. Now you can run the software from shell `NanoVNASaver` or run as app
`/Applications/MacPorts/NanoVNASaver.app`
2020-04-06 09:39:14 +00:00
2019-09-18 12:43:21 +00:00
#### Homebrew
1. Install Homebrew
2020-07-02 15:37:45 +00:00
From : https://brew.sh/
2019-09-18 12:43:21 +00:00
2019-09-27 13:29:57 +00:00
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
2019-09-18 12:43:21 +00:00
2. Python :
2019-09-27 13:29:57 +00:00
brew install python
2019-09-18 12:43:21 +00:00
3. NanoVNASaver Installation
git clone https://github.com/NanoVNA-Saver/nanovna-saver
cd nanovna-saver
2019-09-27 13:29:57 +00:00
2019-11-24 13:35:04 +00:00
4. Install local pip packages
2019-09-27 13:29:57 +00:00
python3 -m pip install .
NanoVNASaver
## Using the software
2020-06-21 19:12:27 +00:00
Connect your NanoVNA to a serial port, and enter this serial port in the serial
port box. If the NanoVNA is connected before the application starts, it should
be automatically detected. Otherwise, click "Rescan". Click "Connect to device"
to connect.
2020-06-21 19:12:27 +00:00
The app can collect multiple segments to get more accurate measurements. Enter
the number of segments to be done in the "Segments" box. Each segment is 101
data points, and takes about 1.5 seconds to complete.
2020-06-21 19:12:27 +00:00
Frequencies are entered in Hz, or suffixed with k or M. Scientific notation
(6.5e6 for 6.5MHz) also works.
2020-06-21 19:12:27 +00:00
Markers can be manually entered, or controlled using the mouse. For mouse
control, select the active marker using the radio buttons, or hold "shift"
while clicking to drag the nearest marker. The marker readout boxes show the
actual frequency where values are measured. Marker readouts can be hidden
using the "hide data" button when not needed.
2020-06-21 19:12:27 +00:00
Display settings are available under "Display setup". These allow changing the
chart colours, the application font size and which graphs are displayed. The
settings are saved between program starts.
### Calibration
2020-06-21 19:12:27 +00:00
_Before using NanoVNA-Saver, please ensure that the device itself is in a
reasonable calibration state._ A calibration of both ports across the entire
frequency span, saved to save slot 0, is sufficient. If the NanoVNA is
completely uncalibrated, its readings may be outside the range accepted by the
application.
2020-07-02 15:37:45 +00:00
In-application calibration is available, either assuming ideal standards or
2020-06-21 19:12:27 +00:00
with relevant standard correction. To manually calibrate, sweep each standard
2020-07-02 15:37:45 +00:00
in turn and press the relevant button in the calibration window.
For assisted calibration, press the "Calibration Assistant" button. If desired,
enter a note in the provided field describing the conditions under which the
2020-06-21 19:12:27 +00:00
calibration was performed.
Calibration results may be saved and loaded using the provided buttons at the
bottom of the window. Notes are saved and loaded along with the calibration
data.
2019-10-02 07:57:25 +00:00
2019-10-23 07:49:59 +00:00
![Screenshot of Calibration Window](https://i.imgur.com/p94cxOX.png)
2020-06-21 19:12:27 +00:00
Users of known characterized calibration standard sets can enter the data for
these, and save the sets.
2020-06-21 19:12:27 +00:00
After pressing _Apply_, the calibration is immediately applied to the latest
sweep data.
2019-10-23 07:49:59 +00:00
_Currently, load capacitance is unsupported_
### TDR
2020-06-21 19:12:27 +00:00
To get accurate TDR measurements, calibrate the device, and attach the cable to
2020-07-02 15:37:45 +00:00
be measured at the calibration plane - i.e. at the same position where the
2020-06-21 19:12:27 +00:00
calibration load would be attached. Open the "Time Domain Reflectometry"
window, and select the correct cable type, or manually enter a propagation
factor.
### Frequency bands
2020-06-21 19:12:27 +00:00
Open the "Display setup" window to configure the display of frequency bands. By
clicking "show bands", predefined frequency bands will be shown on the
frequency-based charts. Click manage bands to change which bands are shown,
and the frequency limits of each. Bands default and reset to European amateur
radio band frequencies.
## License
2020-06-21 19:12:27 +00:00
This software is licensed under version 3 of the GNU General Public License. It
comes with NO WARRANTY.
2019-08-30 07:55:32 +00:00
2020-06-21 19:12:27 +00:00
You can use it, commercially as well. You may make changes to the code, but I
(and the license) ask that you give these changes back to the community.
## Links
2020-06-28 07:40:23 +00:00
* Ohan Smit wrote an introduction to using the application:
[https://zs1sci.com/blog/nanovnasaver/]
* HexAndFlex wrote a 3-part (thus far) series on Getting Started with the NanoVNA:
2020-06-28 07:40:23 +00:00
[https://hexandflex.com/2019/08/31/getting-started-with-the-nanovna-part-1/] - Part 3 is dedicated to NanoVNASaver:
[https://hexandflex.com/2019/09/15/getting-started-with-the-nanovna-part-3-pc-software/]
2020-07-02 15:37:45 +00:00
* Gunthard Kraus did documentation in English and German:
2020-06-28 07:40:23 +00:00
[http://www.gunthard-kraus.de/fertig_NanoVNA/English/]
[http://www.gunthard-kraus.de/fertig_NanoVNA/Deutsch/]
2019-09-01 15:13:09 +00:00
## Credits
2019-09-01 15:13:09 +00:00
Original application by Rune B. Broberg (5Q5R)
2019-11-24 13:35:04 +00:00
Contributions and changes by Holger Müller, David Hunt and others.
2020-06-21 19:12:27 +00:00
TDR inspiration shamelessly stolen from the work of Salil (VU2CWA) at
https://nuclearrambo.com/wordpress/accurately-measuring-cable-length-with-nanovna/
2019-10-02 07:57:25 +00:00
TDR cable types by Larry Goga.
2019-10-02 07:57:25 +00:00
Bugfixes and Python installation work by Ohan Smit.
2019-09-01 15:13:09 +00:00
2020-06-21 19:12:27 +00:00
Thanks to everyone who have tested, commented and inspired. Particular thanks
go to the alpha testing crew who suffer the early instability of new versions.
2019-09-27 12:15:21 +00:00
2020-06-21 19:12:27 +00:00
This software is available free of charge. If you read all this way, and you
*still* want to support it, you may donate to the developer using the button
below:
2019-09-27 12:15:21 +00:00
[![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)