/!\ Vorläufig / Preliminary, work in progress /!\

Translate (Übersetzte) with Google

/!\ If you mouse click on a picture it will be expanded. You can go back to the web page with the back arrow of your web browser.


A low cost Vector Network Analyser shows up on https://amazon.de and some other usual places. It works from 50 KHz up to 900 MHz, the dynamic range lowers at the higher frequencies.

The main description is here http://nanovna.com/.

A very good web page about the nanoVNA is unfortunately in Japanese, but can be easily translated in the local language via Web-browser Chrome.

Unfortunately there are different version available, also the accessory package could be different. You should look for the following points:

  1. With battery (Li-Ion, 400 - 500 mAh)
  2. With 2 pieces 30 - 70 cm coax cable with SMA plugs
  3. USB-C cable
  4. SMA calibration set, Open, Short and 50 Ohm load
  5. SMA female-female adapter


A shielding is not necessary.

See a photo of the black version on the right.

A good housing can be 3D printed, see the photo on the right.

I like to collect and document all useful informations about that NanoVNA.




On the right side you see a picture of the board.

Since June 2019 there is also a news group for information exchange and useful documentation and a wiki. You have to create an acount in order to access the news group.

There is a complete tutorial and getting started manual for the use of the nanoVNA in German and English from Gunthard Kraus DG8DB, (54 pages, including 5 practical examples), numbered V1.4.2 for the NanoVNA-saver Version 0.2.0.


Software NanoVNA

There is also a Windows software NanoVNA version 1.03 for easier usage, and also storing the data as Touchstone files, with specific extensions e.g. .s1p and .s2p.

Windows 10 does have a serial port driver already on board.

The screenshot on the right shows a curve from a S11 (reflection, open) calibration.

NanoVNA usage



For some applications you need 6 - 10 dB attenuators for the needed frequency range.

You can either buy them (about 4.20 EUR on Ebay, 0 - 6 GHz) or if you want to have it quick, and have the parts, you can build your own, which must not be worse compared to a commercial one.

The resistor (SMD 0805) values are shown on the photo on the right.




SMA cables

The detailed data of the shown coax cables see SpectrumAnalyzer_LTDZ#SMA_cable

See the picture on the right side, which shows all mentioned coax cables.

The semi rigid coax cables have very low loss, but are primarily used to box internal connections.

The best coax cables for measuring is in my opinion RG316.

Some hints from Tom DG8SAQ regarding measurements cables. When I did use VNAs professionally in a big lab, I did two things before I started taking serious measurements with a set of measurement cables.

  1. I pulled at the connectors. Sometimes, they would come off. Then the cable was dumped to the trash.

  2. I wobbled at the cables while doing a measurement. If the measurement results changed then again the cables went to the trash can. Most sensitive to mechanical stress is an S11 measurement of a good load. But note that anything below -40 dB for this measurement is insignificant.


All Vector Network Analyzers need to be calibrated.

Compared with a Scalar Network Analyzer the phase (0 - 360 degree) of the radio frequency comes into the game. While at 1 GHz the wave length is 300 mm, one degree is less than a Millimeter.

/!\ So, we have to take care about a Millimeter length!

Because measuring just at the SMA connector is not practical, usually a flexible coax cable (20 - 50 cm) is used. Therefore the calibration must be made at the end of the coax cable. This is now your Reference plane.


Usually the necessary parts come with the nanoVNA. See the picture on the right.


The screen capture on the right shows a CH0 S11 (Reflection) of the 50 Ohm Load resistor after calibration (101 points).

In order for better reading I have it expanded by a factor of 2 (640 pixel wide).

On the left side of the screen you see the Calibration Status Cn DRSTX in vertical writing, if a calibration was already made (saved).

The little green spot in the center of the Smith Chart shows a very good calibration.

The yellow curve S11 represents how much power is reflected from the Load, and hence is known as the reflection coefficient or return loss (in dB). If S11 = 0 dB, then all the power is reflected. The higher the dB value, the better is the impedance match. This value is a bit noisy on the screen.


The screen capture on the right shows a CH0 - CH1 Through after calibration.

It is obvious, that the input impedance of the nanoVNA CH1 input does not perfect match the 50 Ohm Load resistor. But how much? About 1.8%. That is not bad, compared with reactance difference.

The actual settings for the Reference Plane are:

50 Ohm measuring

In order to measure the 50 Ohm values more accurate, without a R-Bridge, a Current-Voltage measuring could be done. What does you need for?

  1. A Current meter with minimum 4 digits and full scale of 40 - 60 mA.

  2. A Volt meter with minimum 4 digits and full scale of 2 - 4 V.

  3. A stable voltage source about 2 - 3 VDC.

  4. A SMA male plug to connect.
  5. Some wires and clips to connect.
  6. The + of the voltage source is connected to the + of the current meter.
  7. The - of the current meter is connected to the center pin of the SMA plug, and the + of the volt meter.
  8. The - of the voltage source is connected to the GND of the SMA plug and the - of the volt meter.

In my case I have a multimeter with 60 mA full scale for the current measuring. The volt meter is a multimeter with 4 V full scale. Now to the measurements:

I am aware that the Ohm values are not precise to the 4th digit, but the differences should be OK. Unfortunately the difference CH0 input to the 50 Ohm load is in the opposite direction from 50 Ohm, it is about 3% mismatch. That is compensated by the calibration.

SDR-Kits Testboard

From company SDR-Kits you can buy a very useful Testboard. Fortunately the documentation can be downloaded from the web page, so you are able to make a home made version. See the picture below.


With the very useful Python software nanoVNA-saver you can calibrate more detailed, e.g. with 505 points instead of the standard 101 points. See below a diagram of the 50.0 Ohm Load in the Testboard, calibrated with 505 points.


That can be even improved by Calibration Settings (compensation). With the Load Settings:

See the diagram below. The S11 Return Loss was improved at 900 MHz by about 10 dB.




For an easier finding of the Calibration Setting fields have a look at the Calibration window on the right.

For a better remembering of the Calibration File Name I put it in the Notes field.

In order to enter Calibration standards settings, you have to remove the mark in the field Use ideal values.

Then enter in the block Load the settings:

In the field Saved settings it is good practice to set a name, in my case Testboard.

With a click on the button Save the settings are stored for the next use.

At the next use select at Saved settings in the name field the name of your settings. Then click on Load.

In nanoVNA-saver version 0.1.3 it happened to me, that after clicking on button Load, no settings appeared in the fields. Clicking on the two fields made them visible.


PC Software

There are several free PC program available, most are for Windows, but there is also a Multiplatform program nanoVNA-saver.


nanoVNAS-aver is available on latest. It can be used on Windows, Linux, MacOS (Python 3 based). A pre-compiled version of Windows is also available, Click nanovna-saver.v0.1.3.exe to download the packaged windows version. More information is on GitHub.

Launch the downloaded file and the software will launch directly (no installation required). On first boot, you may get a security warning from Windows. In this case, click Detailed Information and click the Execute button.

For the first use connect the NanoVNA unit with the USB cable and turn on the power. Windows should have given a COMx port to the NanoVNA.

Start NanoVNA-Saver. The connection between NanoVNA-Saver and NanoVNA itself is done by Serial port control at the lower left of NanoVNA-Saver. The COM port to which the NanoVNA unit is connected should be automatically recognized. If you start NanoVNA-Saver before turning on the power, it will not be recognized automatically, so press the Rescan button to recognize the port. When the COM port is recognized, press the Connect to NanoVNA button. This links to the USB connection. After that, it obtains data from the NanoVNA and draws graphs.

If just the 50 Ohm Load is connected to channel CH0, you get an S11 drawing like the one below.




When the Connect to NanoVNA button is pressed, the current sweep range (frequency) is read from the NanoVNA main unit, and displayed in the block Sweep control.

To change the sweep range, simply write the desired frequency in this field, but the Hz unit is a bit cumbersome. In that case, use M or K for ease (upper case). This is the same as the input method on the NanoVNA main unit.

By a click on the Sweep button you start a new sweep.

An important field is Segments. Because NanoVNA sweep length is 101 points (frequencies) only, NanoVNA-saver can collect several segments for one sweep in NanoVNA-saver. In case of the shown diagram, 5 segments are used.

Another good feature are the markers. Once selected, they can be moved in the diagram with the mouse.

Each marker data is evaluated and listed, as shown in the right chart.


NanoVNASharp MOD v3 by QRP RX


Python, from Hugen

There is a nice Multiplatform, command line Python3 program for basic usage. You find the archive in python.zip.


$ python3 nanovna.py -help
Usage: nanovna.py: [options]

  -h, --help            show this help message and exit
  -f FILE, --file=FILE  read from FILE
                        plot raw waveform
  -p, --plot            plot rectangular
  -s, --smith           plot smith chart
  -L, --polar           plot polar chart
  -D, --delay           plot delay
  -G, --groupdelay      plot groupdelay
  -W, --vswr            plot VSWR
  -H, --phase           plot phase
  -U, --unwrapphase     plot unwrapped phase
  -T, --timedomain      plot TDR
  -c, --scan            scan by script
  -P PORT, --port=PORT  port
  -d DEV, --dev=DEV     device node
  -F FREQ, --frequency=FREQ
  -g GAIN, --gain=GAIN  gain (0-95)
  -O OFFSET, --offset=OFFSET
                        offset frequency
  -S STRENGTH, --strength=STRENGTH
                        drive strength(0-3)
  -v, --verbose         verbose output
  -l, --filter          apply IF filter on raw wave plot
  -C FILE, --capture=FILE
                        capture current display to FILE

# Example plot
$ python3 python/nanovna.py -p
# see the diagram on the right.


Example display capture of a 8.0 Mhz crystal in Tee connect, see on the right side.

# Display capture
$ python3 python/nanovna.py -C nanoVNA_edy555-7_crystal-8MHz-Tee_5Hz.png

Unfortunately I had to edit the USB address in Python3 program nanovna.py, see:

# line 356
    nv = NanoVNA(opt.device or '/dev/cu.usbmodem401')
# must be
    nv = NanoVNA(opt.device or '/dev/cu.usbmodem4001')

Measurement Examples

SW Windom Antenna 80m


A previous measuring of the WindomAntennaFD4 with the VA5 Vector Antenna Analyzer showed comparable results.

It is very nice to include in the graph a vertical gray bar which spans the radio amateur frequency band.


SimSmith Coax Cable S11

In order to compare S11 reflection measurement and simulation with program SimSmith I used 2 open end coax cables with SMA plug to show the effect of cable loss.

The used coax cables are:

  1. RG316, 100 cm long, attenuation 86 dB/100 m

  2. similar Ecoflex 15, 116 cm long, attenuation 10 dB/100 m, see the picture on the right. The coax cable was an old surplus part, and adopted to a SMA plug.

After calibration direct at the nanoVNA CH0 SMA female plug, a 1 m coax cable connected to the reference plane with open at its other end, should give perfect circles spiraling inwards in the smith chart, see below.


Compared with the measured 101 points of the nanoVNA, the curve in the nanoVNA-saver program looks much smoother with 505 points. See the picture on the right and below.

What also is measured by the Python3 program nanovna-saver.py is the TDR (Time Domain Reflectometry) cable length shown on the left side of the window. In this case 1.004 m, which is correct. Before the measurement you have to define via menu the velocity factor of the specific type of the coax cable, in this case 0.695.

In the program nanoVNA-saver no extra calibration was used.

The diagram nanoVNA2_RG316-100cm-900MHz-RL.png below shows the measurement of a 100 cm RG316 coax cable with SMA male plugs. The calibration of the nanoVNA was made at the CH0 female plug, and saved in C1. The measured Return Loss of 1.82 dB fits good to the theory of 1.78 dB.

# RG316 100 cm   SMA plug
2 x 0.86 dB + 2 x 0.03 dB = 1.78 dB





Below is the SimSmith simulation of the previous coax cable setup. To me it looks very similar to the previous measurement, so I assume that my measurement is correct. The coax cable data (Mdl) where found in the SimSmith data base.



Next comes a low loss rigid coax cable, with measurement and simulation. Because of the lower loss the width of the spiral boarder is much thinner than in the case before, see below.

What also is measured by the Python3 program nanovna-saver.py is the TDR (Time Domain Reflectometry) cable length shown on the left side of the window. In this case 1.16 m, which is correct. Before the measurement you have to define via menu the velocity factor of the specific type of the coax cable, in this case 0.82.



Below is the SimSmith simulation of the previous coax cable setup. To me it looks very similar to the previous measurement, so I assume that my measurement is correct. The coax cable data (Mdl) where not found in the SimSmith data base, therefore inserted manually.




Input resistance with VA5

In order to have a reference I measured with the Vector Antenna Analyzer VA5 the Input Resistance of the NanoVNA channel 0 and channel 1.

The VA5 was connected directly with an adapter BNC to SMA male.

The NanoVNA was not powered on while the measurement.




The measurement traces are:

  1. S11 in dB (Return Loss)
  2. S11 Smith Chart
  3. S11 RealZ
  4. S11 parallel C





It surprised me, that the RealZ of channel 1 is much lower (38.4 Ohm) than channel 0 (43.2 Ohm) at 600 MHz.













RF Demo Kit

The RF Demo Kit NWDZ Rev-01-10 is available via Ebay for about 15 EUR.

A documentation can be found at: http://deepelec.com/rf-demo-kit . I will just extend it a bit about details and practical usage.


It contains on a 100 x 100 mm PCB with 18 Test fields. See the picture on the right.

Test fields, Diagram, Frequency span, Resonance

  1. LPF-30 MHz S21 LogMag 10 MHz - 150 MHz

  2. HPF-100 MHz S21 LogMag 50 MHz - 200 MHz

  3. BPF-433 MHz S21 LogMag 400 MHz - 470 MHz

  4. BSF-6.5 MHz Ceramic S21 LogMag 5.5 MHz - 7.5 MHz

  5. 33R SWR = 1.5 S11 SWR-Smith 50 KHz - 900 MHz
  6. 75R SWR = 1.5 S11 SWR-Smith 50 KHz - 900 MHz
  7. Capacitor 115 pF S11 Smith 50 KHz - 300 MHz
  8. Inductor 470 nH S11 Smith 50 KHz - 300 MHz
  9. C--R 115 pF 50R S11 Smith 50 KHz - 30 MHz
  10. C--L 18 pF 24 nH S11 Smith 50 KHz - 300 MHz, 240 MHz
  11. C-- R || L,100pF,0.4nH,S11 Smith 50 KHz - 900 MHz, 800 MHz

  12. R || C--L 50R S11 Smith 50 KHz - 900 MHz, 500 MHz

  13. Short S11 Smith 50 KHz - 900 MHz
  14. Open S11 Smith 50 KHz - 900 MHz
  15. Load 50R S11 Smith 50 KHz - 900 MHz
  16. Thru S11 LogMag 50 KHz - 900 MHz

  17. Att -5 dB S21 LogMag 50 KHz - 900 MHz

  18. Att -10 dB S11 LogMag 50 KHz - 900 MHz

For Test field 12 I made an ELSIE simulation figuring out the component values: f = 510 MHz, BW = 48 MHz, Notch = -45.5 dB, C = 1.0 pF, L = 100 nH Q = 170


The micro coax plug is named U.FL/IPX, 50 Ohm, about 2mm diameter. For more details see on Wikipedia.

/!\ Excerpt: "Female U.FL connectors are not designed with reconnection in mind, and they are only rated for a few reconnects approximately 30 mating cycles before replacement is needed. The female U.FL connectors are generally not sold separately, but rather as part of a pigtail with a high-quality 1.32 mm doubly shielded cable, which allows for a low-loss connection."

Because probably the female part of the U.FL plug (on the cable) wears out faster, you can buy cheap on Ebay: "UFL U.FL IPEX IPX to SMA male plug RG178 Coax Pigtail", usually 20 cm long.

/!\ The cable crimp in the little U.FL connector in not very solid. In order to avoid a cable and plug separation you should solder the coax cable shield crimp, see the picture on the right.

I made once this experience, and it was very difficult to repair the cable connection. In order to fit the center wire, you need to solder it with very little tin, and open the socket a little with a needle. And you need some patience, good light and a good magnifier glass.

/!\ To make a connection with the U.FL coax plug, use a 3 mm wide screw driver tp push down while holding with the other hand the plug centric, see the picture below. Use a 1 mm wide screw driver to lift off the U.FL female plug, while holding down the cable end of the U.FL connector.




Dr. David Kirkby recommended an Extraction Tool from company HIROSE to lift up the U.FL connector.

You have to pay about $18 + shipping, so more than the RF-Demo-Kit costs.

If you have some mechanical tools and a bench vice you could make your own Extraction Tool from an empty can, see the picture on the right.








After Calibration with the Test Fields Short, Open, Load and Thru (in my case in save3) I tested with Test Field 1 Low Pass Filter 30MHz. See the nanoVNA-Saver diagram below.

The blue Marker 2 was placed by the nanoVNA-Saver Analysis function (Low Pass -3 dB). The red marker 1 is the -40 dB point.



1. In Test field 8 the inductor looks like to have nominal 470 nH. If you accept a tolerance of +/- 10 % = 423 - 517 nH, the usable frequency range is measured to 3.4 - 126 MHz. Above 394 MHz the inductor becomes capacitive. See nanoVNA-Saver diagram: RF-Demo-Kit_8-470nH_Saver.png




2. A comparable measurement with the semi-professional FA-VA5 and VNWA software.

If you accept a tolerance of +/- 10 % = 423 - 517 nH, the usable frequency range is measured to 1 - 128 MHz.

Above 375 MHz the inductor becomes capacitive.

See VNWA diagram on the right.

In my understanding both diagrams show comparable results.




Coax Cable Impedance

A useful application is to measure (estimate) the Impedance of a coax cable. I had one case of a 100 cm coax cable labeled RG58 50 Ohm which behaved strange, and now measured to about 75 Ohm.

/!\ Connect the coax cable to the nanoVNA Reference Plane and leave the end open. Best result is achieved by calibrating at the SMA plugs of the nanoVNA (Reference Plane, e.g. C1).


Jon Gord has explained how to measure it with the nanoVNA.

As an example use a 1 m long 50 Ohm coax cable RG58.

Turn on Smith Chart display if it is not already on, and set the Smith marker for R+jX mode. See the screenshot on the right.

Connect the unknown cable, open circuit at the far end.

The upper frequency can be estimated with a Lambda/4 calculation:

Adjust Stop frequency until the arc on the Smith Chart goes from 3 o'clock (open) to 9 o'clock (short). This is the frequency at which the cable is 1/4 wavelength long.


In this example 49.05 MHz.

Set the marker to half the Stop frequency. At this frequency the cable is 1/8 wavelength long.

In this example 24.55 MHz.

Read -jX value from the marker. The X value is the characteristic impedance of the cable. (The impedance of an 1/8-wavelength open cable is -j times the characteristic Z of the cable.)

In this example 48.95 Ohm.




Because Python 3 program nanoVNA-saver is multi platform and has a lot of features I prefer that for documentation.

In program nanoVNA-saver set the following:

  1. Upper frequency to the estimated value from the cable length.

  2. Lower frequency later to a value which gives a good resolution for measuring the dip frequency (Lambda / 8).

  3. Diagram Type upper right to S11 |Z|

  4. scan Segments to about 10, in order to easy estimate the dip frequency.

Then do a scan and adjust the Markers as following:

  1. Marker 1 to the S11 |Z| minimum frequency.

  2. Marker 2 to the S11 |Z| minimum frequency / 2.

Then read the coax cable Impedance from Marker 2.

See the 2 sample diagrams below, measuring a 26 cm RG316 cable and a 100 cm RG58.




Crystal measurement

A very good paper about crystal measurement can be found at Agilent, 5965-4972E with the title Crystal Resonator Measuring Functions. More basic details are found at wikipedia, English and wikipedia, German.

On page 9 there is a diagram of a crystal Pi-network test fixture. The crystal impedance is assumed with 12.5 Ohm. The mentioned values of the E192 resistors gives an attenuation of 2 x 14.78 dB. That looked a bit high value for me, considering the not so good amplitude dynamic range of the nanoVNA. Another drawback was the use of the E192 series for the resistors. Fortunately I found an On-Line Pi-network calculator with variable input and output impedance parameters.

The minimum attenuation achieved was 2 x 11.44 dB with the E24 resistors R1 = none, R2 = 43R, R3 = 15R.

Next step was to build a small test fixture. See below my test fixture for HC-6/U and smaller crystals. The perforated board size is 25 x 20 mm.




First I will show below the measurement of a 1.8432 MHz HC-6/U crystal. The -3 dB bandwidth is 35 Hz.



Next is the measurement of a 71.5 MHz HC-18/U crystal. The -3 dB bandwidth is 1.127 KHz.



Last is a 6 pole 9.0 MHz crystal filter XF-9 with 50 Ohm impedance. The -3 dB bandwidth is 5.5 KHz, the -60 dB bandwith is 8.8 KHz.




/!\ USB Product ID must be DF11, not 0000

Many special firmware are available elsewhere with different naming, and without aa versions having larger text.



900 <- obsolete

aa / ch



differences from edy555 firmware thanks to QRP

  1. hugen79 firmware has imbalance gain correction, which is missing from edy555 firmware
  2. hugen79 firmware has a little different logic for frequency band/gain change.
  3. hugen79 firmware has correct default touch calibration,
    • which works ok with NanoVNA-H hardware even with no touch calibration.
    • edy555 firmware default touch calibration is incompatible with NanoVNA-H hardware;
    • touch screen calibration is required after installing edy555 firmware.

STM32 programming

On Windows STSW-STM32080 package

On Linux it needs some expertise:

# Install program
$ sudo apt-get install dfu-util
# show the help info
$ man dfu-util

# for example Hugen version 0.4.0-3
$ dfu-util -v -d 0483:df11 --alt 0 -D NanoVNA-H_20191125_AA.dfu

On MacOS it needs some expertise:

# Install program
$ brew install dfu-util
# show the help info
$ man dfu-util

# for example Hugen version 0.4.0-3
$ dfu-util -v -d 0483:df11 --alt 0 -D NanoVNA-H_20191125_AA.dfu

DfuSe fails? Use ST-Link V2 adapter with hex format to recover bricked devices

Clearing nanoVNA flash memory


  1. Manuals, Timing, Ham Radio, Test Equipment, KO4BB

  2. Power vs. Voltage

  3. Online dBm - Volt converter

  4. Comment from Vitor CT2JSA to this Spectrum Analyzer

  5. Capacitor Impedance Calculator

  6. VA5 Antenna Analyzer

  7. wikipedia, Smith-Chart

  8. MegiQ, RF Tools, Video

  9. electronic-notes, what is a VNA?

  10. Agilent BTB_Network_2005-1.pdf, VNA Tutorial

  11. nanoVNA user documentation, ormpoa

  12. Wheatstone bridge, oristopo

  13. Using the VNWA Testboard Kit

  14. RF Demo Kit Testing tutorial released

  15. inductor current time delay, w8ji

  16. nanovna-H – mobile UHF antenna VSWR sweep, owen duffy

  17. A way to improve the accuracy of the calibration of a male SMA connector

  18. 7.5 MHz peak, fix, owen duffy

  19. Noise improvements

  20. Good explanations about nanoVNA, Ohan Smit ZS1SCI

  21. Tests de mesures avec le NanoVNA par Yvon F6GLE, translate withn Chrome

  22. Getting Started with the NanoVNA -Part 3 – PC Software, HexAndFlex

  23. DG8SAQ-VNWA-software-documentation-user-guide

  24. wikipedia, coax cables

  25. Hagster, 3D print examples

  26. nanoVNA Power Output


  1. Firmware versions, oristopo

  2. Replace NanoVNA Firmware from Windows, PDF

    • USB Product ID must be DF11, not 0000

  3. nanoVNA shell commands

  4. Hugen VNA-H, releases on github, 0.4.0-3, AA-version installed

  5. Hugen archive

  6. eddy555, ttrftech, originator

  7. Erik

  8. Android DfuSe programming

  9. DfuSe fails? Use ST-Link V2 adapter with hex format to recover bricked devices

up to top

Contact Email, please enter your Email address

/!\ The entered Email address will not be published, or given away.

Comment this page
Are you human?

List of pages in this category:

-- RudolfReuter 2019-09-23 16:03:27

Go back to CategoryAmateurRadio or FrontPage

nanoVNA (last edited 2021-01-04 22:03:37 by RudolfReuter)