%The Testcard is a platform for the characterization of small energy sources. It is able to charge/discharge up to eight energy sources with a predefined pattern and record their voltages.
%\item[Testcard] Board with the hardware to characterize up to eight energy sources.
%\item[CLI] Command Line Interface. Program running on the computer which controls the testcard.
%\item[Channel] One of the eight measurement units on the testcard.
%\begin{description}
%\item[Voltage] Voltage of the energy source connected to the channel.
%\item[Current] Current flowing through the energy source connected to the channel. Defined as the current flowing from the energy source to the testcard, thus the source is discharged for positive and charged for negative values.
%\end{description}
%\item[Load] Application of a current at the channels for a specified timespan.
%\item[Measurement] Single measurement of channel voltages at a specified point in time.
%\item[Trace] Periodic measurement of channel voltages.
%\item[Sequence] A combination of loads, measurements and traces.
%\end{description}
\section{Overview}
\begin{tikzpicture}
\begin{scope}[xshift=1.5cm]
\node[anchor=south west,inner sep=0] (image) at (0,0) {\includegraphics[width=0.76\textwidth]{TopDrawing.pdf}};
The \vna{} uses a USB-C connector as the power supply and for data transmission. The hardware supports the USB power delivery standard\footnote{Work in progress, the device will not negotiate USB-PD yet}, requires \SI{5}{\volt} and draws up to \SI{1.2}{\ampere} of current.
The implemented USB device is limited to USB 2.0 Fullspeed and data transmission will work with any USB 2.0 or 3.0 port (no USB-C required). However, the current consumption exceeds the specifications for USB 2.0 and 3.0 ports and the \vna{} may be unable to fully boot when no external power is applied and the USB host limits the current.
Input jack for external DC power (\SI{5}{\volt}, \SI{1.5}{\ampere}, positive center pin). If a power source is connected, no current is drawn from the USB port anymore.
RF connector to connect the DUT. Both ports are identical and the device architecture support full S-Parameter measurements (S11, S21, S12 and S22).
\begin{important}
The RF ports have no input protection, do not apply a signal with more than +\SI{10}{\dBm} of power.
\end{important}
\subsection{LEDs}
Ten LEDs indicate the status:
\begin{description}
\item [Ready (green)] Indicates fully booted \vna{}, ready to take measurements
\item [Debug (green)] Not used at the moment
\item [Port 1 (green)] Active output signal on port 1
\item [Port 2 (green)] Active output signal on port 2
\item [Ext. Reference (green)] External reference in use
\item [Source unlocked (red)] The source PLL failed to lock (it may turn on briefly during a sweep, this is not a problem)
\item [LO unlocked (red)] The 1.LO PLL failed to lock (it may turn on briefly during a sweep, this is not a problem)
\item [FPGA unlocked (red)] The FPGA clock PLL failed to lock
\item [Booting (red)] Indicates boot process, also used for error codes
\item [Power (green)] USB power valid
\end{description}
\subsection{Reference Output}
Optional reference output port (user selectable \SI{10}{\mega\hertz} or \SI{100}{\mega\hertz}). The output power is approximately +\SI{3}{\dBm}.
\subsection{Reference Input}
High impedance reference input port. When applying a \SI{10}{\mega\hertz} input signal, it can be used to overwrite the internal TCXO.
\begin{information}
Due to the high impedance input, the external input may detect a valid signal when picking up external radiation. If this is a problem, either terminate the reference input connector or disable automatic reference switching.
\end{information}
\section{Getting started}
\begin{enumerate}
\item Connect the \vna{} to a computer using the USB port. After a couple of seconds, only the "Power" and "Ready" LEDs should stay on. If the "Ready" LED does not turn on or the "Booting" LED indicates an error code, there is a problem und the device will not function properly. See section~\ref{troubleshooting} for possible solutions.
\item Start the PC application to connect to the \vna{}. The window should look similar to this:
\item The \textbf{Docks} mostly provide access to display related settings such as traces and markers. They can be rearranged or disabled (see section~\ref{menu:window}).
\item The \textbf{Statusbar} at the bottom show some basic informations about the connected device. If error conditions (e.g. ADC overload) are present, they are indicated at the bottom right corner.
\item The \textbf{Modeswitch} at the top right allows changing the \vna{} operating mode. Although it is primarily designed as a vector network analyzer, the hardware architecture allow some other operating modes with certain limitations.
\end{itemize}
Depending on the current operating mode, the available toolbars, docks and menu entries change. It is also possible to rearrange the docks and toolbars.
\subsection{Common GUI elements}
Certain control elements are always available, regardless of the selected mode. They control settings of the \vna{} that are not specific to any of the operating modes.
Most entry fields support SI prefixes. To set a new value, type in the number followed by an SI prefix (e.g. to set \SI{3.2}{\giga\hertz} press \keys{3},\keys{.},\keys{2},\keys{\shift+G}). The accepted prefixes vary depending on the input (e.g. pico is a valid prefix for a capacitance while it will not be accepted for a frequency).
The reference can be set to "Int" (internal TCXO), "Ext" (external \SI{10}{\mega\hertz} signal) or to automatic mode. In automatic mode, the reference will switch to the external input when a signal is detected, otherwise it will use the internal TCXO.
The external reference output may either be disabled or set to \SI{10}{\mega\hertz} or \SI{100}{\mega\hertz}.
\subsubsection{Device Log Dock}
This dock shows the debug output of the \vna{} (the same messages as on the internal UART port). It may help to identify problems, otherwise it is not required for operation.
Changing the default setup of the application can require a lot of configuration, especially if some of the more complicated math or de-embedding options are used. To simplify this process, setup-files can be saved and opened, which perform these steps automatically. A setup file contains all settings and configuration of these elements:
If any part of the setup references another file (e.i. a trace imported from a touchstone file), only the filename is saved. Opening a setup file after moving/deleting any of the referenced files will result in missing data.
The device menu controls the connection state, allows low level hardware access and to perform firmware updates:
\begin{itemize}
\item\textbf{Update Device List:} Scans the USB port for connected devices. Clicking this action simply updates the list of devices, no connection is established.
\item\textbf{Connect to:} Select which \vna{} to connect to. Different devices are identified by their serial number.
\item\textbf{Disconnect:} Disconnect from the \vna{}.
\item\textbf{Manual Control:} Starts the manual control dialog in which all hardware settings are accessible (mostly used for testing purposes):
\item\textbf{Firmware Update:} Load a new microcontroller firmware and FPGA configuration into the \vna{}. Do not disconnect power while updating the firmware!
In this operating mode, the \vna{} takes S-parameter measurements. A source signal is generated and alternately applied to the RF ports. The incoming signal at both RF ports is measured, resulting in the four S-parameters S11 and S21 (when the source signal is routed to port 1) as well as S12 and S22 (when it is routed to port 2).
This section contains some details of the signal flow inside the \vna{}-Application. Knowledge of the signal flow is not required to operate the \vna{} but may help to understand certain features and limitations.
The central element of the signal flow is the concept of \textbf{traces}. A trace is created from a single S parameter across frequency (either measured by the \vna{} or imported from an external file). Once the data is captured in a trace, optional math operations may be applied to it (e.g. performing a TDR to transform the data into the time domain) and the result of these operations are passed on to the graphs.
When capturing data from the \vna{}, additional operations take place before the data is fed to the traces. First, the \vna{} measures the four S parameters between its two ports. The raw measurements are transferred through USB. The first processing block is the calibration (see also section~\ref{vna:calibration}), followed by optional de-embedding procedures. After the de-embedding, the four S parameters are split into individual S parameters and the relevant traces are updated.
This concept has several consequences when using the \vna{}, some of which are:
\begin{itemize}
\item You can always take calibration measurements. No matter how the de-embedding or math operations in the traces are set up, they will never influence the calibration routine
\item A valid calibration is required before using de-embedding options (otherwise, most de-embedding options won't be able to work properly)
\item Applying a calibration or de-embedding to traces imported from files is not possible
\item Once the data arrives in the traces, the S parameters are no longer associated (e.g. there is no connection between S11 and S21 anymore. It is possible to "pause" the trace capturing S11 while S21 continues to get updated)
Additionally, the sweep toolbar contains buttons for zooming in/out around the center frequency and a preset to set the sweep to the full frequency range.
\item\textbf{Level:} The amount of power used for stimulus generation. The dynamic range decreases when using smaller values. It is recommended to use the highest available settings when measuring passive networks. When measuring active devices (e.g. amplifiers), decrease the stimulus power in such a way that the input power into any port does not rise above \SI{-10}{\dBm} to stay within the linear range of the \vna.
\item\textbf{Points:} Amount of measurement points in one sweep. More points provide finer frequency resolution but also increase sweep time.
\item\textbf{IF BW:} Bandwidth of final IF measurement. Low bandwidths increase the sweep time but improve the noisefloor. At higher frequencies (roughly above \SI{3}{\giga\hertz}), the dynamic range is limited by the isolation between the ports and decreasing the IF bandwidth does not improve the noisefloor anymore.
\item\textbf{Averaging:} Moving average across multiple sweeps.
\end{itemize}
\subsection{Traces}
Adding/configuring traces is handled by the \textbf{Trace Dock} (by default on the left side):
\screenshot{0.3}{TraceDock.png}
The list shows all available traces, by default the four S parameters S11, S12, S21 and S22. Different icons in front of the trace names indicate the state of the trace. Clicking on one of the icons toggles the state:
\begin{itemize}
\item\includesvg[height=8pt]{Screenshots/visible}/\includesvg[height=10pt]{Screenshots/invisible}: Enable/disable global visibility: Shows/hides the trace an all graphs it is enabled on.
\item\includesvg[height=8pt]{Screenshots/play}/\includesvg[height=8pt]{Screenshots/pause}: Play/pause. Only available when the trace is fed from live VNA data, not when it was created from a touchstone file. Pausing a trace freezes the current data, new measurements from the \vna{} will not update the trace.
\item\includesvg[height=8pt]{Screenshots/math_enabled}/\includesvg[height=10pt]{Screenshots/math_disabled}: Enable/disable math. Only available if at least one math operation is present.
\end{itemize}
Creating a new trace or double clicking on an existing trace opens the "edit trace" window:
\screenshot{1.0}{TraceEdit.png}
On the left side, additional trace parameters can be changed, while the right side of the window handles math operations that will be applied to the trace data. The available trace parameters are:
\begin{itemize}
\item\textbf{Name}
\item\textbf{Color}
\item\textbf{Velocity factor} (only relevant when transforming into the time domain)
The trace is constantly updated by the data received from a connected and sweeping LibreVNA. Available settings are the S parameter from which the data is updated and a simple Max Hold and Min Hold function (based on signal magnitude).
\paragraph{From File}
\screenshot{0.5}{FromFile.png}
The trace data is extracted from a specified file. If the file contains data for multiple traces, the correct parameter must be specified as well.
\begin{important}
When saving a setup with traces created from files, the actual trace data is not saved. Instead, the path to the source file is added to the setup file. Opening the created setup file will result in empty traces if the original source file is no longer present.
\end{important}
\paragraph{From Math}
\label{trace:fromMath}
\begin{information}
This section is about creating a trace based of data from other traces and combining them with math operations. If you are looking to change or transform the trace data itself without using any data from other traces, see section~\ref{trace:math}.
\end{information}
\screenshot{0.5}{FromMath.png}
The trace is created from other traces and user-defined math operations. To create a trace from math, perform the following steps:
\begin{enumerate}
\item Select "From Math" as the trace source
\item Check all traces on which the trace should depend. Not all traces can be used, there are the following limitations:
\begin{itemize}
\item All used traces must have the same output domain
\item There can be no circular dependencies between "From Math" traces
This section is about transforming the already acquired trace data. If you are looking to create a trace by combining data from other traces and math operations, see section~\ref{trace:fromMath}.
The "math operations" section on the right contains the additional calculations that are performed on the trace data before it is displayed. Initially, it contains only one line (representing the measured data). New operations can be created using the buttons on the right. Each math operation adds a new line to the list, consisting of three columns:
\begin{itemize}
\item\textbf{Status:} Visual indication whether the calculation succeeded. On warnings or errors, a mouse-over text gives a hint about the problem.
\item\textbf{Description:} Short description of the configured math operation. Double clicking will open an (operation dependent) editing dialog providing more details.
\item\textbf{Output Domain:} Domain (Time or Frequency) of the data after this math operation. Certain math operations can only be applied to time domain data, others only to frequency domain data. The output domain at the last line decides in which domain the trace is displayed on the graphs.
\end{itemize}
Populated with several math operations, the window could look like this:
\screenshot{1.0}{TraceMath.png}
In this example, time domain gating is performed:
\begin{itemize}
\item A median filter is applied to the data, smoothing the trace a little bit (not actually necessary for the time domain gating)
\item Next, a TDR transformation creates the time domain response of the measurement
\item The impulse response is truncated at and above \SI{1}{\meter} with a custom expression
\item At last the time domain response is transformed back into the frequency domain with a DFT
This section is about the VNA calibration which is used to remove the effect of connectors and cables (as well as imperfections from the \vna{} itself). For the amplitude calibration see section~\ref{amplitude:calibration}.
Some general knowledge about the different calibration types is assumed, this manual only explains how to use them with the \vna{}.
\subsubsection{Introduction}
This section contains some implementation details of the calibration. It can be skipped but understanding them can be helpful when using the calibration.
Section~\ref{vna:calibration} uses the following definitions:
\begin{itemize}
\item\textbf{Calibration standard:} A single calibration standard (e.g. an Open standard). Most standards can either be defined by coefficients or a measurement file.
\item\textbf{Calibration kit:} It contains the definition of the calibration standards. When the calibration error terms are calculated, these definitions are taken into account.
\item\textbf{Measurement:} Raw (uncorrected) measurement of a calibration standard. Depending on the type of desired calibration, different measurements are required.
\item\textbf{Calibration type:} The calibration type determines which errors are corrected by the calibration and how the error terms are derived from the measurements.
The calibration type is followed by the ports for which the calibration corrects errors. For example, when using a SOLT calibration on ports 1 and 2, the calibration type will be shown as "SOLT\_12".
\end{itemize}
For the most accurate results, the calibration should be performed with the same settings (span, number of points, stimulus level, ...) as the intended measurement. However, it is possible to change these settings after the calibration. The calibration will be interpolated when a different span is used.
SOLT & Full SOLT calibration, removes influences at all ports and also corrects transmission measurements &\makecell{Open and Short for each port\\Load or SlidingLoad for each port\\Through between all of ports\\ Isolation(optional)}\\
ThroughNormalization & Only corrects for losses and phaseshift in through measurements. While this is not as accurate as SOLT, it is useful e.g. when measuring only the frequency response of a filter because it requires far less calibration measurements. &\makecell{Through between all of ports}\\
TRL & Full two-port calibration but with different (less accurately defined) standards than SOLT &\makecell{Reflection for each port\\Through between all of ports\\Line between all of ports}\\
The calibration kit contains the calibration standard definitions used in the calibration. It can be edited through the menu: \menu[,]{Calibration,Edit Calibration Kit} The same dialog can also be reached through the calibration measurement dialog: \menu[,]{Calibration,Calibration Measurements,Edit Calibration Kit}
The calibration kit can consist of an arbitrary number of calibration standards.
\screenshot{0.5}{CalibrationKitDialog.png}
The three text fields (Manufacturer, Serial number and Description) are meant for easy identification of the correct calibration kit. None of the contents are used anywhere by the GUI and the user is free to enter any text.
Calibration standards can be added, deleted and sorted with the buttons to the right of the calibration standard list. Double-click a standard to edit its definition.
\paragraph{Open Standard}
\screenshot{0.5}{OpenStandardDialog.png}
The Open standard can either be defined by its coefficients or by a touchstone measurement file. If defined by a touchstone file, the file limits the span of the calibration for which the standard can be used.
\textbf{Coefficients:}
\begin{itemize}
\item\textbf{Z0:} Impedance of the transmission line from the reference plane to the open termination
\item\textbf{Offset delay:} One-way length of the transmission line
\item\textbf{Offset loss:} Loss/attenuation of the transmission line
\item\textbf{C0--C3:} Parasitic capacitance of the open termination
\end{itemize}
\paragraph{Short Standard}
\screenshot{0.5}{ShortStandardDialog.png}
The Short standard can either be defined by its coefficients or by a touchstone measurement file. If defined by a touchstone file, the file limits the span of the calibration for which the standard can be used.
\textbf{Coefficients:}
\begin{itemize}
\item\textbf{Z0:} Impedance of the transmission line from the reference plane to the short termination
\item\textbf{Offset delay:} One-way length of the transmission line
\item\textbf{Offset loss:} Loss/attenuation of the transmission line
\item\textbf{L0--L3:} Parasitic inductance of the short termination
\end{itemize}
\paragraph{Load Standard}
\screenshot{0.5}{LoadStandardDialog.png}
The Load standard can either be defined by its coefficients or by a touchstone measurement file. If defined by a touchstone file, the file limits the span of the calibration for which the standard can be used.
\textbf{Coefficients:}
\begin{itemize}
\item\textbf{Resistance:} Resistance of the termination resistor
\item\textbf{Z0:} Impedance of the transmission line from the reference plane to the termination resistor
\item\textbf{Offset delay:} One-way length of the transmission line
\item\textbf{Offset loss:} Loss/attenuation of the transmission line
\item\textbf{Parallel C:} Parasitic capacitance in parallel to the termination resistor
\item\textbf{Series L:} Parasitic inductance in series to the termination resistor
\item\textbf{Load Parameter Model:} Two different Load models are implemented, with the order of the parasitic elements swapped:
\begin{itemize}
\item Series L first: \screenshot{0.8}{Lfirst.pdf}
\item Shunt C first: \screenshot{0.6}{Cfirst.pdf}
\end{itemize}
\end{itemize}
\paragraph{Reflect Standard}
\screenshot{0.5}{ReflectStandardDialog.png}
The Reflect standard doesn't have any coefficients as it is an unknown standard. The only available choice is whether it is assumed to be a short or an open.
\paragraph{Through Standard}
\screenshot{0.5}{ThroughStandardDialog.png}
The Through standard can either be defined by its coefficients or by a touchstone measurement file. If defined by a touchstone file, the file limits the span of the calibration for which the standard can be used.
\textbf{Coefficients:}
\begin{itemize}
\item\textbf{Z0:} Characterisitc impedance of the Through standard (fixed to \SI{50}{\ohm} for now)
\item\textbf{Delay:} One-way length of the transmission line
\item\textbf{Loss:} Loss/attenuation of the transmission line
\end{itemize}
\paragraph{Line Standard}
\screenshot{0.5}{LineStandardDialog.png}
The Line standard is an unknown standard and is not accurately defined by coefficients. The only parameter is its delay to determine the usable span when using this standard in a TLR calibration. The delay mustn't be specified with high accuracy either.
The calibration measurements can be found in \menu[,]{Calibration,Calibration Measurements}. Initially, the list is empty. Measurements can be added and removed with the buttons on the right of the list. For convenience, the required measurements for common calibrations can also be created automatically (select the desired calibration type from the drop-down list on the top).
Each measurement has a few settings, depending on the measurement type:
\paragraph{Open Measurement}
\screenshot{1.0}{OpenMeasurement.png}
\begin{itemize}
\item Select the calibration standard to be used with this measurement.
\item Select the port
\end{itemize}
\paragraph{Short Measurement}
\screenshot{1.0}{ShortMeasurement.png}
\begin{itemize}
\item Select the calibration standard to be used with this measurement.
\item Select the port
\end{itemize}
\paragraph{Load Measurement}
\screenshot{1.0}{LoadMeasurement.png}
\begin{itemize}
\item Select the calibration standard to be used with this measurement.
\item Select the port
\end{itemize}
\paragraph{Sliding Load Measurement}
\screenshot{1.0}{SlidingLoadMeasurement.png}
\begin{itemize}
\item No calibration standard is required
\item Select the port
\item At least three Sliding Load measurements must be used per port, each with a different setting on the sliding load. More measurements may result in more accurate results and there is no upper limit on measurements
\end{itemize}
\paragraph{Reflect Measurement}
\screenshot{1.0}{ReflectMeasurement.png}
\begin{itemize}
\item Any open, short or reflect standard can be selected
\item Select the port
\end{itemize}
\paragraph{Through Measurement}
\screenshot{1.0}{ThroughMeasurement.png}
\begin{itemize}
\item Select the calibration standard
\item Select the ports
\item When the Through standard is definded by a touchstone file and the port order in that file does not match the port order in the measurement, check the "Reversed" checkbox. Through standards defined by coefficients are always symmetrical and the checkbox has no effect
\end{itemize}
\paragraph{Line Measurement}
\screenshot{1.0}{LineMeasurement.png}
\begin{itemize}
\item Select the calibration standard
\item Select the ports
\item As Line standards are always symmetrical, the checkbox has no effect
\end{itemize}
\paragraph{Isolation Measurement}
\screenshot{1.0}{IsolationMeasurement.png}
\begin{itemize}
\item No settings available
\end{itemize}
\paragraph{Taking measurements}
To take a measurement, select the corresponding measurement and press \keys{Measure}. Multiple measurements may be taken at the same time if they use different ports.
All measurements required by a calibration type should have the same start and stop frequencies as well as number of points. Do not change the span inbetween measurements.
After all required measurements have been taken, the calibration can be enabled. There are two different options available for this:
\begin{itemize}
\item Select the calibration type in the calibration toolbar and enable the checkbox. If all required measurements have already been taken, the calibration is activated immediately. If some measurements are missing or have been taken with different span settings, applying the calibration is not possible. In that case, the calibration measurement dialog (see section~\ref{vna:cal:meas}) opens instead.
\item Select the calibration type in the calibration measurement dialog and click "Activate". Only calibration types for which all required measurements are available can be activated.
%\paragraph{Example:} After starting the application, the following steps are necessary to perform a SOLT calibration.
%\begin{enumerate}
%\item Edit the calibration kit to match the standards used in the measurements or open a saved calibration kit file.
%\item Change the span and acquisition settings to match the intended measurement. At this point no calibration is active yet, the measured data (here with both port directly connected) is inaccurate:
%\screenshot{1.0}{VNAUncalibratedThrough.png}
%\item Select \menu[,]{Calibration,Calibration Measurements} and take the required measurements. In this case, the measurement "Isolation" (optional for SOLT) has not been taken, as well as the "Line" measurement (not required for SOLT)
Once a calibration is active, it can be saved by selecting \menu[,]{Calibration,Save}. All raw measurements are saved together with the calibration type and the calibration kit.
\subsubsection{Assigning a default calibration to a device}
Once a calibration has been saved, it can be selected as the default calibration for a specific device. To do so, first connect to the device and then select \menu[,]{Device,Default Calibration,Assign...}. Once a default calibration has been assigned, it will automatically be opened and applied every time the application connects to that specific device.
The error terms calculated from the calibration measurements as well as the raw measurements used to derive these error terms can be imported by selecting \menu[,]{Calibration,Import error terms as traces} or \menu[,]{Calibration,Import measurements as traces}. This feature is mostly intended to debug calibration problems and is not normally required.
The de-embedding options are available under \menu[,]{Tools,De-embedding}. The GUI works similar to the math operations for traces (see section~\ref{trace:math}) but the de-embedding is performed before the data reaches the traces (compare with section~\ref{vna:dsp}).
\screenshot{0.8}{Deembedding.png}
Just like with the math operations, a list shows the de-embedding options. Once a new option is added (or is double clicked) a window opens which allows to configure the option. Depending on the de-embedding option, there might be some user adjustable parameters (e.g. the length and attenuation of a port extension) or the option needs a measurement from the \vna{} to calculate the de-embedding parameters (e.g. take a measurement to automatically measure the port extension length). If a measurement is required at any point, a new window opens with two choices to provide the measurement data:
\screenshot{0.9}{DeembeddingMeas.png}
The first possibility is to click the measure button (with the \vna{} connected) which starts a new measurement. The \vna{} connections must have been setup properly before (e.g. in the case of the port extension: extension cable connected and terminated either into an open or short. The exact setup depends on the de-embedding option). The other possibilty is to provide the measurement by using traces. This is useful if the same measurement has already been taken but the physical setup has changed since then. Select the correct traces for all required S parameters and click the "OK" button.
The hardware is not optimized for signal generation which means that the output level is not very accurate, especially at higher frequencies (also see section~\ref{amplitude:calibration}). Also, the signal will contain higher levels of harmonics than one would normally expect from a signal generator.
Although the \vna{} hardware is not designed to be used as a spectrum analyzer, the general hardware architecture of a spectrum analyzer is similar enough to that of a VNA to implement basic two-channel spectrum measurements. This is in no way on the same performance level as a dedicated spectrum analyzer but for simple measurements it might suffice if no other equipment is available. The main differences to a real spectrum analyzer are:
\begin{itemize}
\item\textbf{No input attenuator or pre-amplifier:} This means that the measurement range is essentially fixed to approximately \SI{-110}{\dBm} to \SI{-10}{\dBm}.
\item\textbf{No amplitude calibration:} The displayed signal level is not very accurate, especially at higher frequencies (also see section~\ref{amplitude:calibration}).
\item\textbf{No image rejection filters:} This is probably the most severe limitation, because it means that for every real signal several other signals will show up in the spectrum that are not actually present at the input. Most of the images can be filtered out by signal identification but some will remain (at lower amplitude) in the reported data.
\item\textbf{Highest resolution bandwidth is quite low:} The sweep speed is too slow to cover the complete frequency range of \SI{1}{\mega\hertz} to \SI{6}{\giga\hertz} in an acceptable time.
\item\textbf{RBW:} Resolution bandwidth. Lower values allow differentiating between signals at closer frequencies. Lower values also result in a reduced noisefloor but significantly increase sweep time.
For low RBWs, a faster DFT acquisition method is available. Instead of tuning the LOs to look at each frequency point by itself, several points can be measured at once by performing a DFT of the final IF. Due to limitations in the hardware and the available processing power, the DFT is limited to 96 points and can only cover up to \SI{30}{\kilo\hertz} at a time. Whether the DFT is used (and at which RBWs) can be selected in \menu[,]{Window,Preferences}
\item\textbf{Window:} Window type used in the DFT of the final IF. If in doubt, use Flat Top.
\item\textbf{Detector:} For every displayed point, several measurements are taken. The detector type determines which one of these measurement will be displayed:
\begin{center}
\begin{threeparttable}
\begin{tabularx}{\textwidth}{L{2cm}|X}
\toprule
\textbf{Detector}&\textbf{Displayed data}\\
\hline
+Peak & Highest amplitude\\
\hline
-Peak & Lowest amplitude\\
\hline
Sample & Only uses the middle measurement\\
\hline
Normal & Highest amplitude on odd points, lowest amplitude on even points\\
\hline
Average & Average all measurements for each point\\
\item\textbf{Signal ID:} Signal identification. This can help to determine whether a displayed signal is actually present or the result from internal imaging. When enabled, the \vna{} changes the LO frequencies for every measurement point and observes how the final IF signal is affected by that. This removes almost all of the mirror images but at the cost of increased sweep time.
The following example shows the effect of signal ID. For both measurements the only signal at the input was a \SI{1}{\giga\hertz} tone with a level of \SI{-10}{\dBm}. On the left, signal ID is turned off, resulting in a lot of extra tones. On the right, signal ID has removed most of these tones:
A tracking generator at either port is available in the spectum analyzer. If the tracking generator is active at a port, measurements from that port are still available but meaningless. The tracking generator also includes an optional frequency offset. To get accurate results, a Source/Receiver Calibration (section~\ref{amplitude:calibration}) should have been performed when using the tracking generator.
DFT acquisition is not available when the tracking generator is active. Also, due to hardware limitations, the tracking generator is unable to reach every frequency exactly. For narrow spans this could result in "drops" in the spectrum where the signal of the tracking generator is outside of the RBW filters passband. The frequency resolution is frequency dependent. A warning message appears if this could be a problem with the selected span and stop frequency.
In VNA and spectrum analyzer mode, the trace data in displayed on graphs. Several different graph types are available and most can be customized as well.
\subsection{General graph settings}
Common settings for the behavior and appearance of all graphs can be found in \menu[,]{Window,Preferences,Graphs}:
\screenshot{1.0}{GraphSettings.png}
Most of the settings are related to graph colors and sizes, allowing adjustments to personal preferences and different monitor resolutions.
Each graph type also has some specific settings. They can be reached by right-clicking on an existing graph and selecting \menu{Setup...} or \menu{Axis Setup...}.
\subsection{Creating and positioning graphs}
Graphs use an underlying tile system. Each tile can either:
\begin{itemize}
\item be empty
\item contain one graph
\item be split horizontally into two new empty tiles
\item be split vertically into two new empty tiles
\end{itemize}
For split tiles, the position of the split can be adjusted manually by using the cursor.
To create new graphs, an empty tile must be available. If all tiles are showing graphs (the default when starting the GUI), an empty one must be created first. This can be done by right-clicking a graph and either selecting \menu{close} to remove it from its tile or selecting \menu{Add tile...} and chosing in which direction the new tile should be added.
From the empty tile, all graph types are available:
\screenshot{0.5}{GraphEmptyTile.png}
\begin{information}
For a quick enlarged view of a graph, double-click it. The graph will take up the whole tile area. Another double-click returns the graph to its original size.
\end{information}
\subsection{Adding and removing traces}
When a new graph is created, it is empty by default and traces must be added to show up. There are two ways to add traces:
\begin{itemize}
\item Drag-and-drop traces from the trace list onto the graph
\item Right-click a graph and select the trace to add. Traces can also be removed be deselecting them in the context menu
\end{itemize}
\subsection{Smithchart}
\screenshot{0.6}{GraphSmithchart.png}
The smithchart is the default graph for reflection measurements (S11, S22,...). Adding through measurements (S12, S21,...) is not possible.
There are a few smithchart specific settings in the setup dialog:
\screenshot{1.0}{GraphSmithchartSetup.png}
The left side of the dialog contains settings on how data is displayed:
\begin{itemize}
\item\textbf{Display mode (Frequency)} There are three options on how much of a trace is visible in the frequency range:
\begin{itemize}
\item\textbf{Limit to current span} Shows all traces only in the frequency range of the currently selected span, even when the trace contains data outside of the span
\item\textbf{Show complete traces} Always shows the complete trace, regardless of the selected span
\item\textbf{Manual frequency range} Allows selection of an abitrary frequency range to display
\end{itemize}
\item\textbf{Display mode (Impedance)} There are two options on how much of a trace impedance is visible:
\begin{itemize}
\item\textbf{Limit to visible are} Clips the trace data at the edge of the smithchart circle
\item\textbf{Show complete traces} Always shows the complete trace, even when the trace data falls outside of the smithchart circle
\end{itemize}
\item\textbf{Zoom} Allows to change the center position and zoom factor of the smithchart. Zooming is also possible by using the mousewheel on the graph
\end{itemize}
The right side of the dialog allows the user to add lines of constant values to the smithchart for a quick visual comparisation of trace data to these values. Four types of lines are available:
\begin{itemize}
\item Constant VSWR
\item Constant resistance
\item Constant reactance
\item Constant Q
\end{itemize}
For each line, the color and constant value must be manually selected.
\subsection{XY-plot}
\screenshot{1.0}{GraphXYplot.png}
The XY-plot is the most versatile graph. It can display every trace type if configured correctly. The XY-plot consists of up to three axes:
\begin{itemize}
\item\textbf{X-axis} Always present
\item\textbf{Primary Y-axis} Optional, on the left side of the graph
\item\textbf{Secondary Y-axis} Optional, on the right side of the graph
\end{itemize}
Different types can be used for the X-axis and the selected type must match the output domain of all displayed traces. Available types are:
Frequency & Frequency & S-parameter data plotted across frequency \\
\hline
Power & Power & S-parameter data plotted across stimulus power \\
\hline
Time (Zerospan) & Time (Zerospan) & S-parameter data plotted across time at a fixed frequency \\
\hline
Time & Time & Time-domain data (transformed S-parameter data) \\
\hline
Distance & Time & Time-domain data (transformed S-parameter data), converted to distances according to the traces velocity factor \\
\bottomrule
\end{tabularx}
\end{threeparttable}
\end{center}
Different types are also available for the Y-axes. The Y-axis type determines how the trace data is plotted on the graph. The underlying trace data is not affected by the Y-axis type, the graph itself performs the required calculations to display the correct data. Available types are:
\begin{center}
\begin{threeparttable}
\begin{tabularx}{\textwidth}{L{5cm}|X}
\toprule
\textbf{Y-axis type}&\textbf{Description}\\
\hline
Disabled & No Y-axis displayed \\
\hline
Magnitude & Magnitude in dB (or dBm in spectrum analyzer mode) \\
\hline
Magnitude (dBuV) & Magnitude in dBuV \\
\hline
Magnitude (linear) & Magnitude of the complex S-parameter\\
\hline
Phase & Phase in degrees, confined to $\pm$\SI{180}{\degree}\\
\hline
Unwrapped phase & Unwrapped phase in degrees\\
\hline
VSWR & Standing wave ratio\\
\hline
Real & Real part of the complex S-parameter\\
\hline
Imaginary & Imaginary part of the complex S-paramter\\
\hline
Series Resistance & Real part of the impedance from a reflection measurement\\
\hline
Reactance & Imaginary part of the impedance from a reflection measurement\\
\hline
Capacitance & Extracted capacitance from a reflection measurement\\
\hline
Inductance & Extracted inductance from a reflection measurement\\
\hline
Quality Facotr & Quality Factor of the impedance from a reflection measurement\\
\hline
Group Delay & Group Delay of a transmission measurement\\
\hline
Impulse Response (real) & Real part of the impulse response from a TDR\\
\hline
Impulse Response (magnitude) & Magnitude of the impulse response from a TDR\\
\hline
Step Response & Step response from a TDR\\
\hline
Impedance & Impedance as calculated from the step response from a TDR\\
\bottomrule
\end{tabularx}
\end{threeparttable}
\end{center}
Not every Y-axis type can be combined with every X-axis type. The possible combinations are:
The axes types can be selected in the setup dialog for the XY-plot:
\screenshot{1.0}{GraphXYplotSetup.png}
For every axis, the displayed range can either be determined automatically or manually. Additionally, the X-axis can be displayed either in linear or logarithmic mode. Logarithmic mode for the Y-axes is not supported yet.
\subsubsection{Limit lines}
The XY-plot also supports custom limit lines:
\screenshot{1.0}{GraphXYplotLimit.png}
Limit lines can be added and removed in the bottom part of the Axis Setup Dialog. Each line is a list of manually defined points, a selectable color and can be configured either as a high limit, low limit or just as a constant line without any limit checking:
\screenshot{1.0}{GraphXYplotLine.png}
\subsection{Waterfall}
\screenshot{1.0}{GraphWaterfall.png}
The waterfall graph can display the amplitude trend of a single trace over multiple sweeps. Its specific settings are mostly a subset of the XY-plot, the Y-axis configuration is almost identical.
\screenshot{0.8}{GraphWaterfallSetup.png}
Other settings include:
\begin{itemize}
\item\textbf{Direction:} Determines whether the waterfall graph is filled from the top or bottom
\item\textbf{Pixels per line:} Provides a simple vertical zoom feature
\item\textbf{Mode:} Determines whether sweep data that doesn't fit onto the graph anymore is kept or deleted (a resize of the graph would reveal kept data)
\item\textbf{Number of sweeps:} The maximum number of sweeps kept if mode is set to "Keep offscreen data"
\item\textbf{Alignment:} The waterfall can be aligned to a XY-plot of equal size and peaks in the trace data of both plots will line up.
\begin{important}
Both plots are still completely independent of each other. For the alignment to work, they must have the same width and one must be placed exactly below the other.
\end{important}
\end{itemize}
\subsection{Polar Chart}
\screenshot{0.6}{GraphPolarplot.png}
The Polar Chart looks similar to the smithchart but doesn't perform the transformation from S-paramter to impedance. Furthermore, through measurements can be displayed as well. The available settings are identical to the smithchart but the Polar Chart does not support adding custom constant lines:
The LibreVNA supports combining multiple hardware units to a "Compound Device". When used, the configured physical LibreVNAs are combined into a virtual device with more ports. When connected to such a device, additional measurement paramaters are available (e.g. measuring S23 in VNA mode or port 3 in spectrumanalyzer mode).
\begin{important}
When connected to a compound device and in VNA mode, there is no phase information for through measurements between different physical devices. This is a hardware limitation and the phase is set to zero in the software. Through measurements within a physical device and all reflection measurements retain their phase information.
\end{important}
\subsection{Creating a compound device}
Compound devices must be configured in the preferences: \menu[,]{Window,Preferences,Compound Devices}
\screenshot{1.0}{CompoundDeviceList.png}
Create and remove compound devices with the buttons on the right. Edit an existing compound device by double-clicking it:
\screenshot{1.0}{CompoundDeviceEdit.png}
Required steps when creating a compound device:
\begin{enumerate}
\item Assign a name to the new compound device
\item Select the synchronization method between devices. At the moment, only USB synchronization is supported but future hardware versions might support faster synchronization via dedicated trigger ports
\item Drag-and-drop a LibreVNA symbol into the configuration area for every physical device in the compound device
\begin{itemize}
\item At least two physical devices must be used
\item At most four physical devices can be combined with a maximum of eight virtual ports
\end{itemize}
\item Assign the serialnumbers for each physical device. Serialnumbers for all currently connected devices are available as suggestions but it is also possible to enter a different serialnumber manually
\item Assign the virtual ports of the compound device:
\begin{itemize}
\item Each port number must appear only once
\item Port numbers must start with port 1
\item Port numbers must be consecutive, e.g. port 1,2 and 4 is not allowed because port 3 is missing
\item Physical ports may be left unused
\end{itemize}
\end{enumerate}
\subsection{Connecting to a compound device}
Configured compound devices appear in the device list with their name when all required physical devices are connected. Once connected, new measurements or ports are available depending on the number of configured ports in the compound device.
\begin{information}
Through measurements between physical devices depend on precise matching of the stimulus frequency. Depending on the accuracy of the internal frequency source and the selected IF bandwidth, the stimulus signal from the generating device may fall outside of the IF bandwidth of the receiving device, resulting in a reported lower amplitude than actually present. Either align both internal oscillators precisely with the frequency calibration or (recommended) switch to using the external reference input when using a compound device.
\end{information}
\subsection{Limitations}
Certain features are not available when connected to a compound device. To use them, disconnect from the compound device and connect directly to the individual physical devices:
This section is about calibrating the source output level and spectrum analyzer level. It does not affect VNA measurements at all. For the VNA calibration, see section~\ref{vna:calibration}.
Both the internal signal source and the receiver paths used in the generator or spectrum analyzer mode have no means of ensuring accurate amplitudes (as imperfections are removed by the VNA calibration, the hardware is not optimized for absolute amplitude accuracy). In order to improve the accuracy of both the generator and the spectrum analyzer (especially with enabled tracking generator), frequency dependent amplitude calibrations are available. They are permanently stored in the device and are only required to be performed once. The \textbf{Source Calibration} corrects the ouput of the (tracking) generator, while the \textbf{Receiver Calibration} corrects the measurement of the spectrum analyzer.
For both calibrations, other test equipment is required, ideally covering the whole range of \SI{1}{\mega\hertz} to \SI{6}{\giga\hertz} (a calibration of only the partial frequeny range is also possible but signals/measurements outside the calibrated range will be inaccurate). The Soure Calibration requires a way to measure the output of the \vna{} (e.g. a spectrum analyzer or power meter), the Receiver Calibration requires a signal source (e.g. a signal generator). Once either calibration has been completed, the \vna{} can also infer the other one with reasonable accuracy.
\subsection{Source Calibration}
Select \menu[,]{Device,Source Calibration}. A window showing the current source calibration opens:
\screenshot{1.0}{SourceCalibration.png}
These are the necessary steps:
\begin{enumerate}
\item\textbf{Set up the calibration frequencies:} Add or remove points according to your needs. Ideally, they should be evenly spaced across the range to calibrate, maybe with a slight emphasis on higher frequencies (signal levels generally vary more at higher frequencies). Additionally, it is advisable to set one point at \SI{25}{\mega\hertz} and one just below (at \SI{25}{\mega\hertz} a band is switched, resulting in an amplitude discontinuity). Up to 64 points can be used.
\item\textbf{Select the calibration mode:} Either calibrate both ports separately (best accuracy but more work) or assume that they are identical and use the measurement at one port for both.
\item\textbf{Perform the calibration:} For each frequency and port, select the corresponding cell in the table. The \vna{} will generate a signal at the selected frequency and port with (what it thinks are) \SI{-20}{\dBm}. Use external equipment to determine the actual output level and enter the measured value into the selected cell.
\item\textbf{Save the calibration:} Once all measurements have been taken, the "Save to Device" button becomes available. There is no way to save intermediate results, you have to calibrate all frequencies you have chosen in step 1.
\end{enumerate}
If the Receiver Calibration is already done, it is also possible to infer the Source Calibration from that. Press \keys{Automatic measurement} and connect both ports of the \vna{} directly to each other. This connection should be as ideal as possible (short, low loss cable) as every imperfection directly translates into calibration errors. During the automatic calibration, the \vna{} uses the already established frequency points from the Receiver Calibration and measures the output amplitude by itself to determine the coefficients of the Source Calibration.
\subsection{Receiver Calibration}
Select \menu[,]{Device,Receiver Calibration}. The Receiver Calibration works almost identically to the Source Calibration. The only difference is in step 3:
\begin{enumerate}
\setcounter{enumi}{2}
\item\textbf{Perform the calibration:} For each frequency and port, select the corresponding cell in the table and apply a signal with known level at the selected frequency and port. The signal level should be in the range of \SI{-40}{\dBm} to \SI{-10}{\dBm}. Higher signal levels might already compress in the receiver while lower levels unnecessary increase calibration errors due to noise. The \vna{} tunes its receiver to the selected frequency and measures the amplitude. Apply the signal for at least \SI{2}{\second} and enter its actual amplitude into the selected cell while the signal is still active.