Skip to the content
PCBKitNew board
6 layers122 × 98 mmVNA, the printed circuit board in 3D

100kHz to 6GHz 2 port USB based VNA

Size
122 × 98 mm
Copper layers
6
Thickness
1.58 mm
Parts
592
Nets
439
Pads
1,949
Tracks, vias
3,586, 2,932
Pours
119
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
25 Jul 2020
Updated
6 Nov 2026

Overview

VNA is an open-source printed circuit board by jankae, from the jankae/LibreVNA repository on GitHub, published under the GPL-3.0 licence. It is a 6-layer board of 122 × 98 mm with 592 parts on 439 nets, routed with 3,586 tracks and 2,932 vias.

It is built around the STM32G431CBU6, QPC6324SR and LT5560EDD#PBF, with the MAX2871ETJ+, RFSW6042TR7 and RFSA3714TR13 among its other parts. Its parts include 274 capacitors, 165 resistors, 65 inductors, 37 ICs and 11 diodes. It belongs with the radio and wireless boards and the STM32 boards of this library.

Main components

12

README

README.md

LibreVNA

Build workflow status Build workflow status Build workflow status

LibreVNA

100kHz to 6GHz VNA

This is the improved version of my first attempt at a VNA.

GUI Installation

Windows

  • Download the latest Release and unpack the zip file
  • Start the included LibreVNA-GUI.exe
  • No installation or driver is required, simply move the extracted folder somewhere convenient

Ubuntu

  • Download the latest Release and unpack the zip file
  • Install the required libraries:
console
sudo apt install libusb-1.0-0 libqt6widgets6 libqt6svg6 libqt6network6
  • Install the udev rule (otherwise you don't have the permissions to access the USB device):
console
wget https://raw.githubusercontent.com/jankae/LibreVNA/master/Software/PC_Application/51-vna.rules
sudo cp 51-vna.rules /etc/udev/rules.d
  • Either reboot or reload the udev rules manually:
console
sudo udevadm control --reload-rules
sudo udevadm trigger
  • You can now start GUI:
console
cd $UNPACKED_ZIP_FOLDER$
./LibreVNA-GUI

MacOS

  • Download the latest Release
    • If you are using MacOS 14+ use the release with latest in the name.
    • If you are using MacOS >13.7 use the release with 13.7 in the name.
  • Unpack the zip file and move LibreVNA-GUI.app to your /Applications folder.
  • Start LibreVNA-GUI.app and add a security exception to allow the Mac to run the app with an "untrusted" signing key.
  • Launch app again.

Quick Start

  • You can find released versions of the GUI application and the device firmware here.
  • If you would like to try out the newest features, the compiled versions of each commit can be found here (but keep in mind that some features might be unstable or incomplete). If you are having trouble downloading them, please refer to this guide.
  • An (incomplete) user manual is also available.
  • If you would like to control the LibreVNA with a script, see the SCPI Programming Guide.

Please also take a look at the FAQ.

If you notice bugs or have ideas for improvements, please create an issue for that.

For general questions or discussions, the LibreVNA group is probably the best place.

Preliminary specifications

Some specifications are available but this project is still under development and the specifications might change.

There are also some initial example measurements.

How does it work?

The PCB is really only the RF frontend with some processing power. Everything else is handled in the PC application once the data is transferred via USB. You can try out the application without the PCB (obviously no measurements are possible, but you can import provided example measurements and get an idea about what it can and can't do).

RF path:

  • The main clock source is an Si5351C, providing all the required clocks for the different blocks. It also serves as the stimulus source for frequencies below 25MHz. Its own reference clock is either a 26MHz crystal or an external 10MHz signal.
  • The stimulus source for frequencies above 25MHz is a MAX2871. Its output signal is slightly filtered to reduce the amount of harmonics.
  • The stimulus signal power can be adjusted between approximately -42 and -10dbm with a digital attenuator (RFSA3714).
  • After the amplifier(TRF37A73) the signal is split and the weaker part of it fed into the reference receiver.
  • The stronger part of the signal can be routed to either port. In each signal path, two RF switches are used in series to achieve higher isolation between the ports.
  • Instead of directional couplers, resistive return-loss-bridges are used (easier to implement for wide bandwidth).
  • Both ports have completely separated receive paths. This increases BOM cost but allows measuring two parameters at once (S11 and S21 or S22 and S12). It also avoids potential isolation issues that could arise if the receive paths would merge into a single mixer/ADC.
  • Each receiver consists of two down-convert mixers. The 1.IF sits at 60MHz, the 2.IF 250kHz.
  • The ADCs are sampling the final IF with 16bit@800kHz.

Digital section:

  • The central element is the Spartan6 FPGA. It handles all communication with the RF blocks and samples the ADCs. This allows for nearly instant switching of the measurement frequency, only limited by the settling time of the PLLs.
  • The microcontroller handles the setup of the sweep in the FPGA, extracts and preprocesses the measurements and passes them on through USB.
  • The flash contains the FPGA bitstream. Because the microcontroller has access to the flash, no FPGA-related hardware tools (such as JTAG programmers) are needed, everything can be updated via USB.

Power supply:

  • Everything is powered from USB (or optionally by external 5V DC)
  • Almost every RF block has its own local regulater, preventing noise and signals coupling into the supply lines from propagating across the whole PCB

Parts

592
QtyValueFootprintReferences
83100nFCapacitor_SMD:C_0402_1005MetricC102, C103, C114, C115, C116, C117, C118, C119, C122, C132, C134, C135, C139, C140, C151, C152 +67
51100pFCapacitor_SMD:C_0402_1005MetricC223, C224, C225, C226, C227, C228, C229, C230, C231, C232, C233, C234, C235, C236, C237, C238 +35
4810kResistor_SMD:R_0402_1005MetricR11, R116, R117, R121, R122, R125, R127, R128, R129, R130, R131, R132, R133, R143, R144, R145 +32
32FERRITEResistor_SMD:R_0402_1005MetricL10, L12, L13, L15, L16, L17, L19, L20, L21, L22, L23, L25, L26, L27, L28, L29 +16
2410nFCapacitor_SMD:C_0402_1005MetricC104, C105, C106, C111, C120, C123, C141, C142, C143, C148, C157, C160, C171, C172, C175, C180 +8
211uFCapacitor_SMD:C_0402_1005MetricC58, C100, C101, C108, C129, C131, C137, C138, C145, C166, C168, C177, C195, C198, C202, C203 +5
19TestPointVNA:B1,27TP1, TP2, TP3, TP4, TP5, TP6, TP10, TP11, TP12, TP13, TP14, TP15, TP16, TP17, TP18, TP19 +3
18220RResistor_SMD:R_0402_1005MetricR53, R54, R58, R59, R61, R62, R80, R81, R85, R86, R88, R89, R96, R97, R102, R103 +2
18DNPCapacitor_SMD:C_0402_1005MetricC35, C36, C37, C40, C41, C42, C44, C107, C112, C113, C144, C149, C150, C173, C174, C176 +2
1710uFCapacitor_SMD:C_1206_3216MetricC1, C2, C3, C7, C8, C10, C11, C12, C13, C14, C15, C16, C17, C49, C53, C78 +1
15100nF/RFCapacitor_SMD:C_0402_1005MetricC65, C68, C71, C74, C96, C99, C109, C110, C133, C136, C146, C147, C170, C178, C179
15330nHInductor_SMD:L_0402_1005MetricL14, L18, L24, L30, L31, L32, L33, L38, L39, L40, L41, L46, L47, L52, L53
1449.9RResistor_SMD:R_0402_1005MetricR12, R13, R14, R32, R33, R34, R35, R38, R45, R46, R50, R72, R73, R76
130RResistor_SMD:R_0402_1005MetricR41, R42, R43, R44, R51, R52, R104, R105, R106, R107, R108, R109, R110
12330RResistor_SMD:R_0402_1005MetricR17, R39, R120, R134, R135, R136, R137, R138, R139, R140, R141, R142
12330pFCapacitor_SMD:C_0402_1005MetricC121, C125, C126, C127, C158, C162, C163, C164, C184, C187, C188, C189
111uFCapacitor_SMD:C_0603_1608MetricC18, C19, C20, C21, C26, C27, C28, C50, C52, C79, C81
10100RResistor_SMD:R_0402_1005MetricR7, R9, R67, R68, R70, R74, R75, R78, R79, R164
920RResistor_SMD:R_0402_1005MetricR64, R65, R91, R92, R118, R119, R123, R124, R126
8DNPResistor_SMD:R_0402_1005MetricR57, R84, R100, R111, R112, R113, R114, R115
633nHInductor_SMD:L_0402_1005MetricL36, L37, L44, L45, L50, L51
668nHInductor_SMD:L_0402_1005MetricL34, L35, L42, L43, L48, L49
6GreenLED_SMD:LED_0603_1608MetricLED2, LED6, LED7, LED8, LED9, LED10
52.2uHInductor_SMD:L_Sunlord_SWPA5040SL1, L2, L3, L4, L5
556RResistor_SMD:R_0402_1005MetricR28, R63, R66, R90, R93
44u7FCapacitor_SMD:C_0603_1608MetricC22, C23, C24, C25
46.8kResistor_SMD:R_0402_1005MetricR55, R56, R82, R83
4LDL212PU50RPackage_SON:WSON-6-1EP_3x3mm_P0.95mmIC3, IC4, IC5, IC6
4PAT0816-C-3DB-T5VNA:PAT0816R40, R47, R48, R49
4QPC6324Package_DFN_QFN:QFN-20-1EP_4x4mm_P0.5mm_EP2.5x2.5mmIC13, IC16, IC17, IC18
4RedLED_SMD:LED_0603_1608MetricLED1, LED3, LED4, LED5
3120pFCapacitor_SMD:C_0402_1005MetricC124, C161, C194
3150pFCapacitor_SMD:C_0402_1005MetricC128, C165, C196
3180pFCapacitor_SMD:C_0402_1005MetricC43, C63, C90
31kResistor_SMD:R_0402_1005MetricR60, R87, R101
333pFCapacitor_SMD:C_0402_1005MetricC130, C167, C197
34.7kResistor_SMD:R_0402_1005MetricR2, R94, R95
3ADL5801Package_DFN_QFN:QFN-24-1EP_4x4mm_P0.5mm_EP2.6x2.6mmIC24, IC29, IC33
3B012-617DB-1-63-B331VNA:EASTEVER_BALUNT1, T2, T3
3LT5560Package_SON:WSON-8-1EP_3x3mm_P0.5mm_EP1.45x2.4mmIC22, IC27, IC36
3MCP33131D-10-E/MSPackage_SO:VSSOP-10_3x3mm_P0.5mmIC26, IC31, IC35
3NCP702-1.8Package_TO_SOT_SMD:SOT-23-5IC25, IC30, IC34
3THS4521IDGKRPackage_SO:VSSOP-8_3.0x3.0mm_P0.65mmIC23, IC28, IC32
21.8kResistor_SMD:R_0402_1005MetricR15, R36
218pFCapacitor_SMD:C_0402_1005MetricC67, C95
22.7RResistor_SMD:R_0402_1005MetricR26, R29
23n3FCapacitor_SMD:C_0402_1005MetricC66, C92
25.1kResistor_SMD:R_0402_1005MetricR10, R30
256pFCapacitor_SMD:C_0402_1005MetricC38, C47
275RResistor_SMD:R_0402_1005MetricR168, R173
282RResistor_SMD:R_0402_1005MetricR16, R37
2AP2114HPackage_TO_SOT_SMD:SOT-223-3_TabPin2IC8, IC19
2MAX2871Package_DFN_QFN:QFN-32-1EP_5x5mm_P0.5mm_EP3.1x3.1mmIC10, IC21
2NCP702-3.3Package_TO_SOT_SMD:SOT-23-5IC9, IC20
2RFSW6042VNA:QFN40P180X180X55-13T76NIC11, IC12
2SMAVNA:J502-ND-142-0711-821_826X1, X2
2SMAVNA:BU-1420701851J2, J3
2SSM3J338RPackage_TO_SOT_SMD:SOT-23Q1, Q2
110uHInductor_SMD:L_0805_2012Metric_Pad1.15x1.40mm_HandSolderL11
126MHzVNA:Oscillator_SMD_ECS_20CSMV4_2.0x1.6mmY1
138.3kResistor_SMD:R_0402_1005MetricR4
1402RResistor_SMD:R_0402_1005MetricR27
1620RResistor_SMD:R_0402_1005MetricR1
162RResistor_SMD:R_0402_1005MetricR8
1Bottom CoverVNA:VNA_COVER_BOTTOMN2
1DNPConnector_PinHeader_2.54mm:PinHeader_2x10_P2.54mm_VerticalJP2
1DNPConnector_PinHeader_2.54mm:PinHeader_1x10_P2.54mm_HorizontalJP1
1LM3370Package_DFN_QFN:DFN-16-1EP_4x5mm_P0.5mm_EP2.44x4.34mmIC2
1LP0603A-0947VNA:FILTRDFN160X84X70-4NLP1
1LP0603A-1880VNA:FILTRDFN160X84X70-4NLP3
1LP0603A-3500VNA:FILTRDFN160X84X70-4NLP2
1MBRS2040LT3GDiode_SMD:D_SMBD1
1MIC2253Package_DFN_QFN:DFN-12-1EP_3x3mm_P0.5mm_EP1.6x2.5mmIC1
1PJ-014DVNA:PJ-014DJ1
1RFSA3714Package_DFN_QFN:QFN-24-1EP_4x4mm_P0.5mm_EP2.6x2.6mmIC14
1SI5351CPackage_DFN_QFN:QFN-20-1EP_4x4mm_P0.5mm_EP2.7x2.7mmIC7
1STM32G431CBPackage_DFN_QFN:QFN-48-1EP_7x7mm_P0.5mm_EP5.6x5.6mmIC37
1TRF37A73Package_DFN_QFN:DFN-8-1EP_2x2mm_P0.5mm_EP0.9x1.6mmIC15
1Top CoverVNA:VNA_COVER_TOPN1
1USB_C_Receptacle_USB2.0_16PConnector_USB:USB_C_Receptacle_GCT_USB4105-xx-A_16P_TopMnt_HorizontalJ4

The 590 most common of 592 parts.

Questions

How big is the VNA PCB?

It measures 122 × 98 mm and has 6 copper layers, 1.58 mm thick.

What parts does the VNA use?

592 parts, built around the STM32G431CBU6, QPC6324SR, LT5560EDD#PBF and MAX2871ETJ+. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the VNA KiCad files?

From the jankae/LibreVNA repository on GitHub, at the commit this page was made from: the board is Hardware/Kicad/VNA.kicad_pcb and its schematic Hardware/Kicad/AttenuatorSwitches.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the VNA design in my own project?

Its repository publishes it under the GPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

Similar boards

  • 2 layers40 × 40 mmNeoBoard, the printed circuit board in 3D

    NeoBoard

    alvaroferran/NeoBoard

    Robotics controller shield for the NanoPi Neo Air with two DC motor drivers and a LiPo battery charger

    73 parts3
  • 2 layers54 × 54 mmPCB B, the printed circuit board in 3D

    PCB B

    dragondgold/CanSat

    Plataforma educativa basada en un satélite CanSat

    96 parts1GPL-3.0
  • 4 layers85 × 100 mmRTK GPS Board Rev0, the printed circuit board in 3D

    RTK GPS Board Rev0

    rtymk/RT_Open_GPS_Board

    Open source RTK GPS board for agricultural applications. LC29HEA GNSS reciever, E22 -900m33s LoRa Radio, 1x RS232 Out, 1x RS232 In, 2x CAN Trasncievers

    111 partsMIT
  • 2 layers30 × 37 mmTr switch, the printed circuit board in 3D

    Tr switch

    M4a1x/nmr-spectrometer

    My master thesis at D-CHAB (ETH Zürich) - Building a 25MHz NMR spectrometer

    19 parts11GPL-3.0
  • 4 layers98.5 × 120.2 mmVbench pod, the printed circuit board in 3D

    Vbench pod

    embeddedci-com/benchpod

    An open hardware bench tool that plugs into your CI: sensor sim, CAN, analog I/O, power control, and a Python SDK with pytest integration

    247 parts2CERN-OHL-W-2.0
  • 6 layers45 × 75 mmNode v6 0 0, the printed circuit board in 3D

    Node v6 0 0

    VTC-WISDOM/node_hardware

    Schematic/PCB designs for WiSDOM nodes, also includes a few other related hardware projects

    99 parts2CERN-OHL-W-2.0
  • 2 layers150 × 85 mmRX 50MHz SDR, the printed circuit board in 3D

    RX 50MHz SDR

    ne9n/RC_6m

    This project focuses on designing and building a modern 50MHz (6-meter) radio control system using the amateur radio bands.

    44 parts
  • 4 layers52 × 57 mmVna, the printed circuit board in 3D

    Vna

    Ttl/vna

    Homemade 30 MHZ - 6 GHz single receiver VNA design files.

    342 parts195