Skip to content

USB Connection

The NanoVNA-H connects to computers via USB as a virtual COM port (CDC device). This enables remote control, data transfer, and firmware updates.

  1. Use a USB Type-C cable (NanoVNA-H4) or Micro-USB cable (NanoVNA-H)
  2. Connect to your computer’s USB port
  3. The NanoVNA-H should power on automatically
  4. Wait for device enumeration (a few seconds)

Modern Windows (10/11) usually installs drivers automatically:

  1. Connect NanoVNA-H via USB
  2. Windows should automatically install CDC drivers
  3. Check Device Manager for “COM & LPT ports”
  4. Note the assigned COM port number (e.g., COM3)

If automatic installation fails:

  1. Open Device Manager
  2. Find the unknown device (usually under “Other devices”)
  3. Right-click and select “Update driver”
  4. Choose “Search automatically for drivers”

For Windows 7/8, you may need to install the STM32 Virtual COM Port driver manually from ST Microelectronics.

Linux includes CDC-ACM drivers by default:

  1. Connect NanoVNA-H via USB
  2. The device appears as /dev/ttyACM0 (or similar)
  3. Check with: ls -la /dev/ttyACM*
  4. Verify with: dmesg | tail -20

You may need permission to access the serial port:

Terminal window
# Add user to dialout group (Debian/Ubuntu)
sudo usermod -a -G dialout $USER
# Or on Arch/Fedora
sudo usermod -a -G uucp $USER
# Log out and back in for changes to take effect

Or create a udev rule for permanent access:

/etc/udev/rules.d/70-nanovna.rules
SUBSYSTEM=="tty", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="5740", MODE="0666"
# Reload udev rules
sudo udevadm control --reload-rules

macOS includes CDC drivers:

  1. Connect NanoVNA-H via USB
  2. The device appears as /dev/tty.usbmodemXXXX
  3. List available ports: ls /dev/tty.usb*
  1. Open terminal software (PuTTY, screen, minicom)
  2. Connect to the COM port at 115200 baud
  3. Press Enter to see the prompt ch>
  4. Type help to see available commands
import serial
# Connect (adjust port name for your OS)
ser = serial.Serial('/dev/ttyACM0', 115200, timeout=1)
# Send command
ser.write(b'help\r\n')
# Read response
response = ser.read(1000)
print(response.decode())
ser.close()
ParameterValue
Baud rate115200 (default, adjustable)
Data bits8
Stop bits1
ParityNone
Flow controlNone
  • Try a different USB cable
  • Try a different USB port
  • Check if NanoVNA powers on (display active)
  • On Windows, check Device Manager for errors
  • On Linux, check dmesg output
Terminal window
# Check device permissions
ls -la /dev/ttyACM0
# Temporary fix
sudo chmod 666 /dev/ttyACM0
# Permanent fix: add user to dialout group
sudo usermod -a -G dialout $USER

If you have multiple USB serial devices:

  • Note which port appears when you plug in the NanoVNA-H
  • Use device manager or dmesg to identify the correct port
  • Disconnect other USB serial devices temporarily
  • Ensure no other software is using the port
  • Close any terminal sessions before opening new ones
  • Try disconnecting and reconnecting the USB cable
  • Restart the NanoVNA-H

The NanoVNA-H firmware can use either:

  • USB CDC: Virtual COM port over USB (default)
  • Hardware UART: Physical serial pins (if enabled)

The VNA_MODE_CONNECTION flag determines which is active. USB CDC is normally used for PC communication.

Once connected, you can:

  • Use the Serial Console for direct command access
  • Connect NanoVNASaver or NanoVNASharp for graphical control
  • Enable Remote Desktop mode for display streaming