LibreVNA Review: A Two-Port USB Vector Network Analyzer
100kHz to 6GHz 2 port USB based VNA
At a glance
- What is it?
- LibreVNA is an open-source, hardware-based vector network analyzer for measuring RF devices from 100 kHz to 6 GHz. Its PC application handles measurement control and display, while the USB-connected PCB performs the RF and digital processing.
- Who is it for?
- LibreVNA fits engineers, students, and makers who need an open two-port analyzer and can work with a specified USB PCB, supplied firmware, and the limits of its published specifications. It is a poor choice for users expecting a turnkey instrument with finalized precision specifications or a commercial support contract.
- Can I use it commercially?
- Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
- Is it still maintained?
- Yes. The repository last received commits 19 days ago.
- What is it written in?
- Mainly C++, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 20, 2026, and from our analysis. They are not legal advice.
Editorial analysis
Why LibreVNA Exists Beyond a Standard RF Measurement
LibreVNA addresses the cost and accessibility problem of using a vector network analyzer for two-port RF measurements. Its stated frequency range is 100 kHz to 6 GHz, and the repository description identifies it as a two-port USB-based VNA. The intended audience is not limited to one profession: the hardware-oriented documentation, firmware, PCB design, PC application, and programming guide also make it relevant to students, electronics makers, and engineers who want to inspect or extend the instrument.
The project is not a software emulator that turns a commodity radio into a calibrated measurement system. The repository states that the PCB is the RF frontend and contains the processing power required for measurements. The PC application controls the device and presents transferred results. However, the application can start without the PCB because it can import example measurements. That mode may help a user examine the interface, but the README explicitly says that no measurements are possible without the hardware.
This distinction matters when evaluating the name. LibreVNA represents a hardware and software instrument, not merely an open-source S-parameter plotting program. Its value depends on access to the LibreVNA PCB, compatible firmware, and a computer platform supported by the packaged application. The repository also provides an incomplete user manual, preliminary specifications, and initial example measurements. Those documents are useful starting points, but the README warns that the instrument remains under development and that specifications may change.
LibreVNA's Stimulus and Two-Receiver Measurement Path
The RF architecture uses separate stimulus generation for lower and higher frequencies. According to the README, an Si5351C supplies the required clocks and acts as the stimulus below 25 MHz. Above 25 MHz, a MAX2871 generates the stimulus, followed by filtering intended to reduce harmonics. A digital RFSA3714 attenuator adjusts the signal power from approximately -42 dBm to -10 dBm. A TRF37A73 amplifier then splits the signal into a reference receiver path and the selected measurement port.
The source can be routed to either port. Each port path uses two RF switches in series to improve isolation between ports. Instead of directional couplers, the design uses resistive return-loss bridges, which the README identifies as easier to implement across the wide bandwidth. This is a meaningful design choice because the measurement span extends from 100 kHz through 6 GHz rather than concentrating on a narrow band around one RF standard.
Each port also has a separate receive path. The documentation says this arrangement permits simultaneous measurement of S11 and S21, or S22 and S12. Separating the receivers increases the bill of materials, but it avoids merging the paths into one mixer and ADC, where isolation and measurement coupling could limit performance. The two receivers each use two down-conversion stages. The first intermediate frequency is 60 MHz, the second is 250 kHz, and the ADCs sample at 16 bit and 800 kHz. Based on that published signal chain, LibreVNA uses a dual-channel, two-conversion receiver design rather than scanning the RF input with a single shared receiver.
USB Control Flow from FPGA Measurement to PC Results
A Spartan6 FPGA is the central digital component. It communicates with the RF blocks, receives ADC samples, and controls the measurement hardware. The README says that this arrangement allows near-instant frequency switching, with the settling time of the PLLs as the main stated limit. The FPGA does not present results directly to the host computer. Instead, a microcontroller configures the FPGA sweep, extracts and preprocesses measurements, and sends the processed data through USB to the PC application.
The split across these components clarifies where different tasks happen. The analog board creates and receives signals. The FPGA coordinates sampling and RF block communication. The microcontroller manages sweep setup and preprocesses data. The PC application provides human-facing control and analysis after data transfer. The repository layout supports that division through separate `Hardware/`, `FPGA/`, and `Software/` directories, plus `AssembleFirmware.py` for firmware assembly.
Firmware maintenance is one of LibreVNA's more convenient architectural choices. The FPGA bitstream is stored in flash that is accessible to the microcontroller. According to the README, this means FPGA-related tools such as a JTAG programmer are not required, and updates can be performed through USB. This lowers the hardware-tool burden for routine firmware work. It does not mean every release is production-ready: the README says that compiled per-commit builds in GitHub Actions may contain unstable or incomplete features, so the standard releases are the more conservative path for first use.
Ubuntu Installation and the First Launch
The Windows instructions are the shortest route because the latest release archive includes `LibreVNA-GUI.exe` and requires no separate installation or driver. On Ubuntu, the PC application still needs native libraries and permission to open the USB device. Download the latest release and unpack its ZIP file before following the Linux commands.
Install the libraries listed by the README:
sudo apt install libusb-1.0-0 libqt6widgets6 libqt6svg6 libqt6network6This adds the Qt and USB dependencies documented for Ubuntu. Without the udev rule, the README warns that the user may not have permission to access the USB device. Download the rule from the repository:
wget https://raw.githubusercontent.com/jankae/LibreVNA/master/Software/PC_Application/51-vna.rulesCopy it into the system rules directory:
sudo cp 51-vna.rules /etc/udev/rules.dThen reload and trigger the udev rules:
sudo udevadm control --reload-rules
sudo udevadm triggerAfter replacing the placeholder directory with the actual unpacked location, start the GUI with:
cd $UNPACKED_ZIP_FOLDER$
./LibreVNA-GUIThe literal `$UNPACKED_ZIP_FOLDER$` notation comes from the README and is intended to be replaced by the extracted folder path. A successful USB connection is not described as a particular LED pattern or dialog, so users should not expect a documented startup indicator that is absent from the instructions. The repository's example measurements provide a separate way to inspect the application before hardware access is available.
Firmware Updates, Scripts, and the GPL-3.0 Boundary
Routine hardware maintenance does not appear to require a separate FPGA programming tool. Because the microcontroller can access the flash containing the FPGA bitstream, the README states that updates are performed over USB. The releases page provides the device firmware and GUI application, while the top-level `AssembleFirmware.py` and `CHANGELOG.md` indicate that firmware assembly and release history are part of the repository workflow.
For automation, the project publishes a separate `ProgrammingGuide.pdf`. The README only says that this document explains how to control LibreVNA with a script. The README text does not include a protocol example, so inventing commands or transport details would be misleading. The actual first scripted task should be derived from that guide and matched to the selected release.
LibreVNA is distributed under `GPL-3.0`. The repository includes the license text and source directories for its hardware, FPGA, firmware, and software components. Teams planning to redistribute modified binaries or incorporate project code should review which files their proposed distribution includes and how GPL-3.0 obligations apply to those files. This is a license-compliance question rather than evidence about measurement quality. The README does not provide hardware procurement, calibration certification, warranty, or commercial support terms, so none should be inferred from the open-source release model.
Maintenance appears current within the narrow criteria available here. The repository is not archived, and its last push was on 2026-10-04. Release v1.6.5 was published on 2026-03-06, following v1.6.4 on 2025-05-31 and v1.6.3 on 2025-05-13. The release dates show continuing versioned delivery, but they do not resolve the README's warning that specifications may still change.
Where LibreVNA Is the Wrong Instrument Choice
The largest constraint is that measurement capability depends on proprietary physical hardware rather than the downloadable PC application alone. The application can import example data, but the README is explicit that it cannot make measurements without the PCB. This rules out LibreVNA as a pure software replacement for a bench VNA if no compatible device is available.
Its published status also requires caution. The specification sheet is described as preliminary, the user manual is incomplete, and the developer overview says that some commit builds may be unstable or incomplete. The README does not publish calibration accuracy, uncertainty figures, trace noise limits, connector specifications, dynamic range, or maximum stable input power. It does provide the 100 kHz to 6 GHz span and approximate source-power range, but those facts alone are not enough to predict error bars for a particular DUT.
A concrete alternative is a commercial two-port VNA. The difference is not merely price. A commercial instrument normally arrives with vendor-defined specifications, calibration procedures, support terms, and a validated accessory ecosystem. LibreVNA instead exposes an open hardware and software design and relies on its specification documents for technical limits. The repository also points to initial example measurements, which can show operation but are not a substitute for calibration data across frequency, power, and fixture conditions.
Scripted control is another boundary. The existence of an `ProgrammingGuide.pdf` indicates that remote operation is planned and supported through documented programming material, but the README excerpt supplies no actual SCPI syntax. Users requiring a fixed automation interface should inspect that guide before scheduling work around it. In short, LibreVNA is most convincing for someone who values access to the instrument design and accepts preliminary specifications, and least convincing for someone who needs a finalized commercial measurement guarantee.
Editorial conclusion
LibreVNA fits engineers, students, and makers who need an open two-port analyzer and can work with a specified USB PCB, supplied firmware, and the limits of its published specifications. It is a poor choice for users expecting a turnkey instrument with finalized precision specifications or a commercial support contract. Before adoption, verify the specification sheet for your required frequency, dynamic range, trace accuracy, and power level, then confirm that the platform-specific release can access the device over USB. For this project, that hardware and specification check is the decisive first step.
Frequently asked questions
What frequency range and port count does LibreVNA support?
LibreVNA is documented as a two-port VNA covering 100 kHz to 6 GHz. Its two separated receive paths can measure S11 with S21 or S22 with S12.
Can I use the LibreVNA PC application without the measurement PCB?
Yes, the application can be opened without the PCB and can import supplied example measurements. The README states that actual measurements are not possible in that mode.
Does LibreVNA need a separate FPGA programmer for firmware updates?
The README says no. The microcontroller can access the flash containing the FPGA bitstream, allowing updates through USB without tools such as a JTAG programmer.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/jankae-librevna)Was this useful?