Skip to content

Remote Desktop

Remote Desktop mode streams the NanoVNA-H display to a connected PC, allowing you to view the screen remotely and control the device through simulated touch input.

When Remote Desktop is enabled:

  1. The NanoVNA-H sends display updates over USB
  2. PC software renders the screen in a window
  3. Mouse clicks are sent back as touch events
  4. You can control the device without touching the screen
Terminal window
refresh on

This enables display streaming over USB.

  1. Connect to the device via shell
  2. Send refresh on command
  3. The device begins streaming
Terminal window
refresh off

The firmware supports simulated touch via shell commands:

Terminal window
# Simulate touch at coordinates x, y
touch 160 120
# Release touch (optional coordinates)
release
release 160 120

The coordinate system matches the display:

ModelWidthHeightOrigin
NanoVNA-H320240Top-left
NanoVNA-H4480320Top-left

NanoVNASharp includes remote display:

  1. Connect to NanoVNA-H
  2. The display appears in the software window
  3. Click on the display to interact

NanoVNASaver can display the screen:

  1. Connect to NanoVNA-H
  2. Go to Display menu
  3. Enable screen capture/display

Create your own remote display:

import serial
import struct
from PIL import Image
import tkinter as tk
class NanoVNARemote:
def __init__(self, port):
self.ser = serial.Serial(port, 115200, timeout=1)
self.width = 320
self.height = 240
def enable_refresh(self):
self.ser.write(b'refresh on\r\n')
def send_touch(self, x, y):
self.ser.write(f'touch {x} {y}\r\n'.encode())
def send_release(self):
self.ser.write(b'release\r\n')
def read_screen_data(self):
# Read and decode screen data
# Format depends on firmware version
pass

The remote desktop protocol sends screen regions:

typedef struct {
uint16_t x; // Region X position
uint16_t y; // Region Y position
uint16_t width; // Region width
uint16_t height; // Region height
} remote_region_t;

Followed by pixel data in RGB565 format.

Show NanoVNA measurements on a larger screen:

  1. Connect NanoVNA-H to laptop
  2. Enable remote desktop
  3. Project laptop display
  4. Control NanoVNA from laptop

Capture high-quality screenshots:

  1. Enable remote desktop
  2. Set up the measurement display
  3. Capture the PC window (better quality than device capture)

Control the NanoVNA-H from a distance:

  1. Connect via long USB cable
  2. Enable remote desktop
  3. Control from PC while device is in test position

Script touch interactions for automated tests:

# Automated menu navigation
remote.send_touch(160, 120) # Open menu
time.sleep(0.3)
remote.send_release()
remote.send_touch(80, 60) # Select option
time.sleep(0.3)
remote.send_release()
Terminal window
# Enable remote display
refresh on
# Disable remote display
refresh off
# Send touch event at x,y
touch x y
# Send release event
release
release x y
  • Verify refresh on is enabled
  • Check USB connection
  • Try reconnecting
  • Restart the NanoVNA-H
  • Use a shorter USB cable
  • Close other USB devices
  • Reduce sweep points for faster updates
  • Verify coordinates are within display bounds
  • Check that device isn’t in a modal state
  • Try explicit release before new touch