nanoVNA user documentation

VNA (Vector Network Analyzer)

  • distinguished from antenna analyzer by having two ports instead of one
  • distinguished from scaler analyzer e.g. SWR (Standing Wave Ratio) bridge by sorting resistance vs reactance instead of lumped magnitude.

VNA Basics

unofficial user guide

thanks to cho45



beginners guide video

thanks to Joe Smith

nanoVNAsharp Windows software video

thanks to IMSAI Guy

2-port measurements video

thanks to Volker Block

"official" manual

Physical attributes

Measurement range:
70dB (50kHz-300MHz), 50dB (300M-600MHz), 40dB (600M-900MHz)
Measurements per scan 101
Port SWR < 1.1
Frequency error < 0.5ppm
Battery 602035 3.7V 350mAh 20x35x6mm
multi-directional switch K1-1502SA
USB connectors Type C except for Micro-USB B on white gekkos
schematic diagram
output signal thanks to dk1vi:

 10 MHz       -12,13 dBm
 50 MHz       -12,57 dBm
100 MHz       -13,21 dBm
200 MHz       -14,85 dBm
300 MHz        -7,92 dBm
400 MHz        -8,07 dBm
500 MHz        -8,25 dBm
600 MHz        -8,90 dBm
700 MHz        -8,57 dBm
800 MHz        -8,76 dBm


One LED (between USB and power switch) blinks @ 1/2Hz while charging,
then illuminates constantly;
- remaining on for 40 seconds after disconnecting USB or powering off,
perhaps discharging capacitors?

Another LED, between power switch and multi-directional switch,
illuminates while nanoLED is powered;
- this may be vestigial from nanoVNA prototypes lackng LCD displays.

multi-directional switch

Pressing this launches menu or selects menu item;
nudging left or right migrates among menu items or moves selected marker.

nanoVNA Calibration Considerations

PDF @ groups.io thanks to Larry Goga

Calibration for 4 track nanoVNA

click for calibration steps thanks to Alan Victor

Some notes:

A second 50 ohm termination and female-female SMA adapter
are wanted for ISOLN and THRU calibration.

Supplied and used are TWO matched cables, LOADS and one SMA adapter.
Each NUMBERED step below represents your PRESS (SOFT KEY TOUCH).

Turn on the VNA and note register 0 is ON.

2. TRACE 0
4. TRACE 1
Now `S11` and `S22` both display ONLY as LOGMAG.
6. START 100KHz
7. STOP 500MHz
9. CAL
Note! No softkeys (right side of touch screen) are highlighted.
Place an OPEN on end of CH0 cable and this will be followed by a SHORT.
12. OPEN
Connect 50 ohm LOADs to ends of CH0 and CH1 cables.
14. LOAD
Connect cables, replacing LOADs with female-female SMA coupler.
16. THRU
17. DONE
Finally save to a desired register.

That's it. Check that the open, short and 50 ohm display properly.
Note, the cables are CONNECTED to CH0 and CH1a,
and calibration reference plane is at those cables ends.
However, phase is subject to error and needs addressing in another message.

Also, with SMA coupler connecting cables to CH0 and CH1,
`S21` should measure nearly `0dB`.

Touchscreen Calibration

click for calibration procedure thanks to Larry Rothman:
For best behavior, nanoVNA devices need touchscreen calibraton,
which requires USB connection to your PC/MAC/Terminal.

1. install STM USB drivers, if required.
2. connect the nanoVNA and determine which serial port has been assigned (e.g. COM5)
3. use a serial terminal emulator such as TeraTerm to access the nanoVNA console.
4. you may need to hit the ENTER key once or twice
to bring up its command shell prompt.
5. at the command prompt, enter: `touchcal`
6. the nanoVNA should now display a calibration point at the upper-left corner of the display.
7. touch that corner - a new calibration point will appear at the lower right corner of the display.
8. touch that corner - the screen is now calibrated - BUT NOT SAVED


- produces calibration touch points in the upper left and lower right corners
- console output:
  first touch upper left, then lower right...
  touch cal params: A B C D (upper left and lower right x-y co-ords)


- test touch accuracy - touch, hold and drag pointer

Now, save this touchscreen calibration:

- saveconfig - saves current configuration
- console output:
  Config saved
Verify touch calibration using the menu boxes.

NOTE: saveconfig command probably also saves calibration data

Software and Firmware

firmware mitigation for nanoVNA 300MHz, 600MHz spikes

Some nanoVNAs fail when overclocked to 300MHz by standard firmware;
nanoVNA_800aa*.dfu firmware for reflashing problematic devices.

How to load firmware

Get latest edy555 firmware here as ch.bin
On powered-off nanoVNA connected to PC by USB:

  • jumper BOOT0 pins, then power on.
  • flash firmware from Bash or Windows Command Prompt:
      dfu-util -d 0483:df11 -a 0 -s 0x08000000:leave -D ch.bin

Here is more software information.

Here are nanoVNA Console (shell) Commands


VCO (Voltage Controlled Oscillator) harmonics

thanks to Warren Allgyer:
Unusually, nanoVNA stimulus waveform is square, rather than sinusoidal.
Above 300MHz, nanoVNA boosts Si5351 output and uses its 3rd harmonic.

thanks to hugen@outlook.com:
The Si5351 internal VCO (Voltage Controlled Oscillator) maximum
operating frequency decreases with increasing temperature.
Fully enclosed cases, raising component temperatures, may be problematic.
The specified maximum is 900MHz for a divide-by-4-frequency of 225MHz.
For 300MHz output, VCOs are overclocked to 1200MHz, which some cannot.
If significant spike artifacts are noted (> 0dB) at 300MHz or 900MHz,
then 800MHz firmware is recommended.

nanoVNA principles of operation

Largely as described in Michael Knitter DG5MK’s YouTube video:
Hamradio 2018 FA-VA5 presentation-UK

Instead of nanoVNA’s SA612 mixer (also used by EU1KY analyzer),
the FA-VA5 uses 74LVC4066 analog switches.
Analog switch ICs have better linearity, dynamic range and GHz bandwidths,
but switching times > 1ns limit local oscillators to 200MHz or so..

FFT "quadrature mixing", Hilbert transform and filtering DSP

… after quadrature sampling by Si5351 and SA612A.
Lacking access to the famous July, 2015 QEX magazine article by DG5MK..

Other technical

  • Here is nanoVNA bridge analysis

Linked from DISPLAY

In addition to selecting values to be displayed,
CHANNEL submenu selects whether signals are from CH0 (TX) or CH1 (RX).

linked from TRACE

Up to 4 simultaneous color-coded data can be plotted.
Some firmware instead supports only 2.
OFF disables this trace; SINGLE disables all other traces...?

linked from SCALE/DIV

Change vertical scale e.g. dB/div

linked from NUM KEYS

thanks to Mike Brown

Numerical input seems a bit flaky,
although it works better for e.g. CW frequency than position.
Touchscreen typically wants calibration.
Antenna analyser firmware has a larger font;
touchscreen [mis]calibration is more critical for other firmware..

Numeric entry displays no decimal point, but one may be implied. eg:

  • When in logmag reference adjust mode,
    digits appear to represent steps of 0.01dB,
    so a change of +1000 moves the reference 10dB higher.
  • In CW Freq setting, digits seem to represent steps of 100Hz.

Rocker switch input

  • Tapping on a digit makes it adjustable;
    step it up or down using the multi-directional switch.
  • If you hold the multi-directional switch in,
    that digit is ‘highlighted’ and its background goes black.
  • The multi-directional switch can shift highlighting to another digit.
  • Press in again, highlighting disappears and the digit becomes adjustable.
  • Press in again briefly to store that numerical setting.
    NB waiting a few seconds between rocker switch presses seemingly helps.

Touchscreen input

  • Tapping far right of numbers brings up a numeric keyboard,
    which may be operated either by touchscreen taps
    or by multi-directional switch movements.
  • With 2-trace 900MHz antenna analyser firmware,
    multi-directional switch movements seem buggy.
    In reference position adjust mode,
    the ‘enter’ button doesn’t seem to do anything
    but if it is held the keyboard clears from the screen.
  • The keyboard works fine when setting e.g. CW Freq.
    Frequencies may be entered as GHz, MHz or kHz;
    just enter the digits then tap G, M or k to enter the set value.
    (eg to set 800MHz you can enter 0.8G, 800M or 800000k.)


thanks to Mike Brown:

for e.g. LOGMAG
Entering 1-8 (0001 to 0008)
places the REFERENCE line 1 to 8 grid spaces from the BOTTOM.
With default setting 7 000, changing it to 8 000 moves the trace reference
(shown by a small marker at left of screen) up one grid space, to screen TOP.

for e.g SWR 1:1
trace is below screen bottom.
Changing reference position to 180 raises trace to screen bottom


Calibration data can be modified by electrical delay in picoseconds.
Hugen customized short and accurate calibrations kits.

linked from MARKER

While displayed markers can in theory be manipulated by hand or stylus,
touch calibration inaccuracy typically frustrates that.
Better to use the multi-directional switch..
.. or try the touchscreen calibration procedure.

Select (by push) any of MARKER 1 - 4.
Selecting that same marker again toggles it off.
Sliding the multi-directional switch moves a selected marker.
A selected marker can change START, STOP or CENTER of sweeps.
SPAN changes sweeps when 2 markers are active.

link from PAUSE SWEEP

This button freezes data collection.
thanks to Gary O’Neil:

The nanoVNA must remain powered on to successfully capture data via USB.

  1. With the data you wish to “save” and port to your workstation,
    navigate to STIMULUS > PAUSE SWEEP.
    Data at the top of the screen will freeze, confirming sweep is paused.

  2. Take care to not inadvertently alter the current state…
    either by the toggle switch or touchscreen.
    Remove the NanoVNA from the DUT,
    observe that the desired data remains on the display,
    transport it to your workstation, hotplug the device into a USB port,
    then tap on the display a couple of times.
    This appears to initiate handshaking
    and establishes a connection with the workstation.

  3. Launch the nanoVNAsharp app and connect.
    App display should match that on the nanoVNA.
  4. Use nanoVNAsharp facilities to save the data.

To be clear, data is not otherwise saved within the NanoVNA.
Once PAUSE is cancelled or the nanoVNA is power cycled,
data is flushed and replaced.

html files
page source at https://github.com/oristopo/nVhelp/blob/master/index.md