All Projects → NanoVNA-Saver → Nanovna Saver

NanoVNA-Saver / Nanovna Saver

Licence: gpl-3.0
A tool for reading, displaying and saving data from the NanoVNA

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Nanovna Saver

Onpremise
Sentry, feature-complete and packaged up for low-volume deployments and proofs-of-concept
Stars: ✭ 4,558 (+1093.19%)
Mutual labels:  hacktoberfest
Schema Generator
PHP Model Scaffolding from Schema.org and other RDF vocabularies
Stars: ✭ 379 (-0.79%)
Mutual labels:  hacktoberfest
Openwisp Controller
Network and WiFi controller: provisioning, configuration management and updates, (pull via openwisp-config or push via SSH), x509 PKI management and more. Mainly OpenWRT, but designed to work also on other systems.
Stars: ✭ 377 (-1.31%)
Mutual labels:  hacktoberfest
Generator Jhipster
JHipster is a development platform to quickly generate, develop, & deploy modern web applications & microservice architectures.
Stars: ✭ 19,162 (+4916.23%)
Mutual labels:  hacktoberfest
Ava
Node.js test runner that lets you develop with confidence 🚀
Stars: ✭ 19,458 (+4993.72%)
Mutual labels:  hacktoberfest
Packagedev
Tools to ease the creation of snippets, syntax definitions, etc. for Sublime Text.
Stars: ✭ 378 (-1.05%)
Mutual labels:  hacktoberfest
Scrape It
🔮 A Node.js scraper for humans.
Stars: ✭ 3,773 (+887.7%)
Mutual labels:  hacktoberfest
Gpozaurr
Group Policy Eater is a PowerShell module that aims to gather information about Group Policies but also allows fixing issues that you may find in them.
Stars: ✭ 381 (-0.26%)
Mutual labels:  hacktoberfest
React Navigation
Routing and navigation for your React Native apps
Stars: ✭ 20,650 (+5305.76%)
Mutual labels:  hacktoberfest
Memento
Memento is a development-only tool that caches HTTP calls once they have been executed.
Stars: ✭ 380 (-0.52%)
Mutual labels:  hacktoberfest
Parse Server
API server module for Node/Express
Stars: ✭ 19,165 (+4917.02%)
Mutual labels:  hacktoberfest
Excalidraw
Virtual whiteboard for sketching hand-drawn like diagrams
Stars: ✭ 25,509 (+6577.75%)
Mutual labels:  hacktoberfest
Deno Nessie
A modular Deno library for PostgreSQL, MySQL, MariaDB and SQLite migrations
Stars: ✭ 381 (-0.26%)
Mutual labels:  hacktoberfest
Highlight.js
JavaScript syntax highlighter with language auto-detection and zero dependencies.
Stars: ✭ 19,312 (+4955.5%)
Mutual labels:  hacktoberfest
Pext
Python-based extendable tool
Stars: ✭ 380 (-0.52%)
Mutual labels:  hacktoberfest
Cookiecutter Flask
A flask template with Bootstrap 4, asset bundling+minification with webpack, starter templates, and registration/authentication. For use with cookiecutter.
Stars: ✭ 3,967 (+938.48%)
Mutual labels:  hacktoberfest
Nusmods
🏫 Official course planning platform for National University of Singapore.
Stars: ✭ 379 (-0.79%)
Mutual labels:  hacktoberfest
Ejml
A fast and easy to use linear algebra library written in Java for dense, sparse, real, and complex matrices.
Stars: ✭ 378 (-1.05%)
Mutual labels:  hacktoberfest
Pypng
Pure Python library for PNG image encoding/decoding
Stars: ✭ 380 (-0.52%)
Mutual labels:  hacktoberfest
Orbit Mvi
An MVI framework for Kotlin and Android
Stars: ✭ 381 (-0.26%)
Mutual labels:  hacktoberfest

Latest Release License Downloads GitHub Releases Donate

NanoVNASaver

A multiplatform tool to save Touchstone files from the NanoVNA, sweep frequency spans in segments to gain more than 101 data points, and generally display and analyze the resulting data.

  • Copyright 2019, 2020 Rune B. Broberg
  • Copyright 2020 NanoVNA-Saver Authors

Latest Changes

Changes in v0.3.8

  • Allow editing of bands above 2.4GHz
  • Restore column layout on start
  • Support for Nanovna-F V2
  • Fixes a crash with S21 hack

Changes in v0.3.7

  • Added a delta marker
  • Segments can now have exponential different step widths (see logarithmic sweeping)
  • More different data points selectable (shorter are useful on logarithmic sweeping)
  • Scrollable marker column
  • Markers initialize on start, middle, end
  • Frequency input is now more "lazy" 10m, 50K and 1g are now valid for 10MHz, 50kHz and 1GHz
  • Added a wavelength field to Markers
  • 32 bit windows binaries build in actions
  • Stability improvements due to better exception handling
  • Workaround for wrong first S21mag value on V2 devices

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.

Current features:

  • 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
  • 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
  • TDR function (measurement of cable length) - including impedance display
  • 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
  • In-application calibration, including compensation for non-ideal calibration standards
  • Customizable display options, including "dark mode"
  • Exporting images of plotted values

0.1.4: Screenshot of version 0.1.4

Running the application

The software was written in Python on Windows, using Pycharm, and the modules PyQT5, numpy, scipy and pyserial.

Binary releases

You can find 64bit binary releases for Windows, Linux and MacOS under https://github.com/NanoVNA-Saver/nanovna-saver/releases/

Versions older than Windows 7 are not known to work.

Windows 7

It requires Service Pack 1 and Microsoft VC++ Redistributable. 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

    git clone https://github.com/NanoVNA-Saver/nanovna-saver cd nanovna-saver

  2. Run the pip installation

    pip3 install .

  3. Once completed run with the following command

    NanoVNASaver

Ubuntu 18.04 & 19.04

  1. Install python3.7 and pip

    sudo apt install python3.7 python3-pip

  2. Clone repo and cd into the directory

    git clone https://github.com/NanoVNA-Saver/nanovna-saver cd nanovna-saver

  3. Update pip and run the pip installation

    python3.7 -m pip install -U pip python3.7 -m pip install .

    (You may need to install the additional packages python3-distutils, python3-setuptools and python3-wheel for this command to work on some distributions.)

  4. Once completed run with the following command

    python3.7 nanovna-saver.py

MacPorts

Via a MacPorts distribution maintained by @ra1nb0w.

  1. Install MacPorts following the install guide

  2. Install NanoVNASaver :

     sudo port install NanoVNASaver
    
  3. Now you can run the software from shell NanoVNASaver or run as app /Applications/MacPorts/NanoVNASaver.app

Homebrew

  1. Install Homebrew from https://brew.sh/ (This will ask for your password)

     /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
    
  2. Python :

     brew install python
    
  3. Pip :
    Download the get-pip.py file and run it to install pip

     curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
     python3 get-pip.py
    
  4. NanoVNASaver Installation :
    clone the source code to the nanovna-saver folder

     git clone https://github.com/NanoVNA-Saver/nanovna-saver
     cd nanovna-saver
    
  5. Install local pip packages

     python3 -m pip install .
    
  6. Run nanovna-saver in the nanovna-saver folder by:

     python3 nanovna-saver.py
    

Using the software

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.

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.

Frequencies are entered in Hz, or suffixed with k or M. Scientific notation (6.5e6 for 6.5MHz) also works.

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.

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

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.

In-application calibration is available, either assuming ideal standards or with relevant standard correction. To manually calibrate, sweep each standard 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 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.

Screenshot of Calibration Window

Users of known characterized calibration standard sets can enter the data for these, and save the sets.

After pressing Apply, the calibration is immediately applied to the latest sweep data.

! Currently, load capacitance is unsupported !

TDR

To get accurate TDR measurements, calibrate the device, and attach the cable to be measured at the calibration plane - i.e. at the same position where the 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

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

This software is licensed under version 3 of the GNU General Public License. It comes with NO WARRANTY.

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

  • 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: [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/]
  • Gunthard Kraus did documentation in English and German: [http://www.gunthard-kraus.de/fertig_NanoVNA/English/] [http://www.gunthard-kraus.de/fertig_NanoVNA/Deutsch/]

Credits

Original application by Rune B. Broberg (5Q5R)

Contributions and changes by Holger Müller, David Hunt and others.

TDR inspiration shamelessly stolen from the work of Salil (VU2CWA) at https://nuclearrambo.com/wordpress/accurately-measuring-cable-length-with-nanovna/

TDR cable types by Larry Goga.

Bugfixes and Python installation work by Ohan Smit.

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.

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:

Paypal

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].