This guide documents the on-device menu tree implemented in the current NanoVNA-X firmware. The hierarchy is sourced from src/ui/ui.c; optional entries are noted with their guarding compile-time macros so you can match your build configuration.
- Every submenu automatically appends a
← BACKitem that returns to the previous level. - Buttons with checkboxes toggle immediately; highlighted entries generally expose live status (for example, the colour of the active trace).
- Numeric fields open the on-screen keypad. Engineering suffixes (
k,M,G, etc.) and the selected digit separator are honoured.
| Entry | Purpose |
|---|---|
| CAL | Keysight/R&S-style calibration hub for standards, ranges, and slot management. |
| STIMULUS | Sweep start/stop, CW mode, jog controls, and point-count presets. |
| DISPLAY | Trace visibility, formats, scaling, and marker operations. |
| MEASURE | DSP helpers (transform, smoothing), IF bandwidth, measurement assistants. |
| SYSTEM | Touch utilities, configuration persistence, RTC, and hardware settings. |
| SD CARD | Removable-media workflows: save/load, screenshots, firmware dumps, and card maintenance. |
| PAUSE/RESUME SWEEP | Toggles the continuous sweep engine (PAUSE while running, RESUME once halted). |
CAL WIZARDopens the classic calibration assistant with ordered stepsOPEN,SHORT,LOAD,ISOLN,THRU, followed byDONE(persist to flash) andDONE IN RAM(apply without saving). Completed standards show a check mark.CAL RANGEreports the stored point count and frequency span for the active calibration. Invoking the entry re-applies those limits (and the recorded power) when the calibration was interpolated.CAL POWERselects Si5351 drive strength. ChooseAUTOfor adaptive control or one of the explicit currents (2–8 mA).ENHANCED RESPONSEenables or disables the enhanced-response algorithm.LOAD STD(with__VNA_Z_RENORMALIZATION__) lets you edit the nominal load impedance used during calibration.
CAL APPLYtoggles correction without discarding coefficients.CAL RESETclears the working calibration (enhanced-response state is preserved).
This companion submenu mirrors the slot operations for field workflows:
SAVE CAL/RECALL CALprovide immediate access to calibration storage without stepping through the CAL WIZARD flow.CAL APPLYandCAL RESETduplicate the toggles so you can quickly switch correction on/off after recalling a slot.
START,STOP,CENTER,SPAN— keypad-driven sweep boundaries.CW FREQ— sets a fixed continuous-wave frequency (the sweep pauses until you resume it manually).FREQ STEP— adjusts the coarse tuning step used by the jog controls.JOG STEP— toggles between automatic increments and the value entered via keypad.SET POINTS— direct keypad entry for arbitrary sweep point counts.MORE PTS— opens additional point count presets submenu with preset buttons and SET POINTS option.
TRACES— togglesTRACE 0–TRACE 3. Selecting an enabled trace focuses it; disabled traces are turned on. WhenSTORED_TRACESis enabled, additional entries allow storing and recalling frozen traces.FORMAT S11— lists all reflection formats for the active trace:LOGMAG,PHASE,DELAY,SMITH,SWR,RESISTANCE,REACTANCE,|Z|, with nestedMOREpages forPOLAR,LINEAR,REAL,IMAG,Q FACTOR,CONDUCTANCE,SUSCEPTANCE,|Y|,Z PHASE,SERIES/SHUNT/ PARALLELcomponent views.FORMAT S21— equivalent menu for transmission formats. TheMOREbranch exposes shunt/series impedance and Q-factor views.CHANNEL— swaps the focused trace between reflection (CH0) and transmission (CH1).
SCALE— providesAUTO SCALE, manualTOP,BOTTOM,SCALE/DIV,REFERENCE POSITION,E-DELAY,S21 OFFSET, and (with__USE_GRID_VALUES__) toggles for grid overlays.
Markers now live directly under DISPLAY:
MARKERS-> opens the marker control surface.SELECT MARKERlists every slot allowed byMARKERS_MAX. Active markers showCHECKicons; the currently driven marker showsAUTOin its icon. ButtonsALL OFFandDELTAappear below the list.SEARCH-> opens the search submenu:SEARCHdisplays the current search mode (MAXIMUM/MINIMUM).TRACKINGtoggles marker tracking.SEARCH ← LEFTandSEARCH -> RIGHTjump to the next extremum in each direction.
OPERATIONS-> opens the operations submenu:MOVE START/STOP/CENTER/SPANtransfer the highlighted marker (or marker pair) into the corresponding sweep parameter.MARKER E-DELAYapplies the measured delay to the active trace.
DELTAenables delta mode.
This menu consolidates DSP helpers and measurement assistants.
TRANSFORM— toggles time-domain transform, select filter (LOW PASS IMPULSE,LOW PASS STEP,BANDPASS), choose window shape, and edit the velocity factor.DATA SMOOTH(with__USE_SMOOTH__) — choose between OFF and the compiled averaging depths. A status button shows the geometry (Arith/Geom) toggle.MEASURE(with__VNA_MEASURE_MODULE__) — context-aware measurement modes. The entry opens the specialised submenu tied to the current mode (L/C match, cable length, resonance, S21 fixtures, filter). Each specialised view exposes the parameters described in the firmware (velocity factor, load R, cable length, etc.).IF BANDWIDTH— lists the synthesiser bandwidth presets compiled for the target board.PORT-Z(with__VNA_Z_RENORMALIZATION__) — edits the reference impedance for S11 processing.
TOUCH CAL/TOUCH TEST— touch calibration and verification utilities.BRIGHTNESS(with__LCD_BRIGHTNESS__) — adjusts LCD backlight duty cycle.SAVE CONFIG— forces configuration plus any pending autosave data to flash.VERSION— displays firmware build metadata.DATE/TIME(with__USE_RTC__) — providesSET DATE,SET TIME,RTC CAL, andRTC 512 Hz / LED2output control.
DEVICE-> opens advanced hardware controls:THRESHOLD,TCXO,VBAT OFFSET— keypad-entry system constants.IF OFFSET(withUSE_VARIABLE_OFFSET_MENU) — choose from compiled IF offsets.REMEMBER STATE(with__USE_BACKUP__) — enables the autosave daemon that snapshots sweep/UI state shortly after edits.FLIP DISPLAY(with__FLIP_DISPLAY__) — mirror the LCD.DFU(with__DFU_SOFTWARE_MODE__) — soft boots into the DFU ROM (path: System -> Device -> DFU).MORE-> exposes manufacturing tools:MODE— select the Si5351-compatible synthesiser variant.SEPARATOR(with__DIGIT_SEPARATOR__) — choose decimal/comma formatting.USB DEVICE UID(with__USB_UID__) — toggle use of the MCU unique ID for USB enumeration.CLEAR CONFIG-> containsCLEAR ALL AND RESET, which wipes flash-stored configuration.
CONNECTION(with__USE_SERIAL_CONSOLE__) — switch the shell transport between USB CDC and the UART bridge; select the UART bit rate.
LOAD(with__SD_FILE_BROWSER__) — opens the browser filtered by extension (SCREENSHOT,S1P,S2P,CAL) so you can load screenshots, Touchstone files, or calibration sets directly on the instrument.SAVE S1P/SAVE S2P— capture the current sweep into S1P or S2P using calibrated data.SCREENSHOT— dumps the LCD as BMP or (whenIMAGE FORMATis set toTIF) as a compact PackBits-compressed TIFF.SAVE CALIBRATION— copies the active calibration to the SD card for archival or transfer.IMAGE FORMAT(with__SD_CARD_DUMP_TIFF__) — toggles the screenshot container between BMP and TIF.FORMAT SD(withFF_USE_MKFS) — unmounts the card, runs FatFsf_mkfswithFM_FAT, remounts, and reports success/failure. Use this when a card was re-partitioned externally or you need a clean Keysight-style single-volume layout.
The final button reflects the sweep status: PAUSE SWEEP while sweeping, RESUME SWEEP when halted. Press it to toggle the background sweep and update the label/icon.
Automation clients rely on the USB shell prompt. Each session starts with \r\nch> \r\nNanoVNA Shell\r\nch> so host software can synchronise on the prompt before parsing the banner.
This document mirrors the defaults in include/nanovna.h and include/runtime/runtime_features.h. Disable a feature flag at build time and the related menu entries disappear automatically.