Skip to content

Firmware Update

The NanoVNA-H firmware can be updated via USB using DFU (Device Firmware Update) mode. This allows you to install new features, bug fixes, or specialized firmware versions.

  • NanoVNA-H device
  • USB cable (data-capable)
  • Computer with dfu-util installed
  • Firmware binary file (.bin)

Before updating, save your calibrations and settings:

Terminal window
# Note your calibration slots
# Export S-parameter data if needed
# Record any custom settings
  1. Go to the NanoVNA-H GitHub repository
  2. Navigate to Releases
  3. Download the appropriate .bin file:
    • H.bin for NanoVNA-H (STM32F072)
    • H4.bin for NanoVNA-H4 (STM32F303)
  1. Power on the NanoVNA-H normally
  2. Go to CONFIG
  3. Tap DFU (or ->DFU)
  4. Device enters DFU mode (screen may go blank)
  1. Power off the device
  2. Locate the BOOT0 jumper or button
  3. Connect BOOT0 to VCC (or hold BOOT button)
  4. Connect USB cable
  5. Release BOOT0 after a few seconds
Terminal window
reset dfu

On Linux:

Terminal window
lsusb | grep DFU
# Should show: STMicroelectronics STM Device in DFU Mode

On Windows:

  • Device Manager shows “STM32 BOOTLOADER” or similar
Terminal window
sudo apt install dfu-util
Terminal window
sudo pacman -S dfu-util
Terminal window
brew install dfu-util

Download from dfu-util.sourceforge.net or use zadig to install WinUSB driver.

Terminal window
dfu-util -d 0483:df11 -a 0 -s 0x08000000:leave -D H.bin
Terminal window
dfu-util -d 0483:df11 -a 0 -s 0x08000000:leave -D H4.bin
  1. Run the dfu-util command
  2. Wait for “Downloading” progress to complete
  3. Device should automatically restart
  4. If screen stays blank, power cycle manually

Expected output:

dfu-util 0.11
Opening DFU capable USB device...
Device ID 0483:df11
Downloading to address = 0x08000000, size = 65536
Download [=========================] 100%

After restarting:

  1. Check firmware version in menu or via version command
  2. Test basic functionality
  3. Recalibrate if needed
Terminal window
version
  1. Perform touch calibration if needed
  2. Run clearconfig if experiencing issues (resets all settings)
  3. Perform RF calibration (SOLT)
  4. Verify TCXO setting
  • Try a different USB cable
  • Try a different USB port
  • On Windows, install correct drivers
  • Verify BOOT0 is connected properly
Terminal window
# Try with sudo on Linux
sudo dfu-util -d 0483:df11 -a 0 -s 0x08000000:leave -D H.bin
  1. Enter DFU mode via hardware method
  2. Flash known-good firmware
  3. If persistent, the device may need recovery
  1. Enter DFU mode via hardware
  2. Flash the correct firmware file

For custom builds:

Terminal window
# Clone repository
git clone https://github.com/hugen79/NanoVNA-H.git
cd NanoVNA-H
# Extract ChibiOS
7z x ChibiOS.7z
# Build for NanoVNA-H
make
# Build for NanoVNA-H4
make TARGET=F303
# Output files in build/

If the device is completely unresponsive:

  1. Disconnect all power
  2. Short BOOT0 to VCC
  3. Connect USB
  4. Flash firmware via dfu-util
  5. Power cycle

If the above doesn’t work, the bootloader may be corrupted, requiring JTAG/SWD recovery.