diff --git a/Software/PC_Application/LibreVNA-GUI/51-vna.rules b/Software/PC_Application/LibreVNA-GUI/51-vna.rules
new file mode 100644
index 0000000..a35c97c
--- /dev/null
+++ b/Software/PC_Application/LibreVNA-GUI/51-vna.rules
@@ -0,0 +1,2 @@
+SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="564e", MODE:="0666"
+SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="4121", MODE:="0666"
diff --git a/Software/PC_Application/LibreVNA-GUI/Calibration/CalStandardLineEditDialog.ui b/Software/PC_Application/LibreVNA-GUI/Calibration/CalStandardLineEditDialog.ui
new file mode 100644
index 0000000..92681e7
--- /dev/null
+++ b/Software/PC_Application/LibreVNA-GUI/Calibration/CalStandardLineEditDialog.ui
@@ -0,0 +1,147 @@
+
+
+ CalStandardLineEditDialog
+
+
+
+ 0
+ 0
+ 383
+ 202
+
+
+
+ Edit Line Standard
+
+
+ true
+
+
+ -
+
+
-
+
+
+ Name:
+
+
+
+ -
+
+
+
+
+ -
+
+
-
+
+
+ Z0:
+
+
+
+ -
+
+
+ false
+
+
+
+ -
+
+
+ Delay:
+
+
+
+ -
+
+
+ -
+
+
+ Minimum usable frequency:
+
+
+
+ -
+
+
+ false
+
+
+
+ -
+
+
+ Maximum usable frequency:
+
+
+
+ -
+
+
+ false
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QDialogButtonBox::Cancel|QDialogButtonBox::Ok
+
+
+
+
+
+
+
+ SIUnitEdit
+ QLineEdit
+ CustomWidgets/siunitedit.h
+
+
+
+
+
+ buttonBox
+ accepted()
+ CalStandardLineEditDialog
+ accept()
+
+
+ 248
+ 254
+
+
+ 157
+ 274
+
+
+
+
+ buttonBox
+ rejected()
+ CalStandardLineEditDialog
+ reject()
+
+
+ 316
+ 260
+
+
+ 286
+ 274
+
+
+
+
+
+
+
+
diff --git a/Software/PC_Application/LibreVNA-GUI/Calibration/CalStandardLoadEditDialog.ui b/Software/PC_Application/LibreVNA-GUI/Calibration/CalStandardLoadEditDialog.ui
new file mode 100644
index 0000000..6aebdf9
--- /dev/null
+++ b/Software/PC_Application/LibreVNA-GUI/Calibration/CalStandardLoadEditDialog.ui
@@ -0,0 +1,254 @@
+
+
+ CalStandardLoadEditDialog
+
+
+
+ 0
+ 0
+ 344
+ 386
+
+
+
+ Edit Load Standard
+
+
+ true
+
+
+ -
+
+
-
+
+
+ Name:
+
+
+
+ -
+
+
+
+
+ -
+
+
-
+
+
+ Coefficients
+
+
+ buttonGroup
+
+
+
+ -
+
+
+ Measurement file
+
+
+ buttonGroup
+
+
+
+
+
+ -
+
+
+ 0
+
+
+
+
-
+
+
-
+
+
+ Resistance:
+
+
+
+ -
+
+
+ -
+
+
+ Z0:
+
+
+
+ -
+
+
+ true
+
+
+
+ -
+
+
+ Offset delay [ps]:
+
+
+
+ -
+
+
+ -
+
+
+ Offset loss [GΩ/s]:
+
+
+
+ -
+
+
+ -
+
+
+ Parallel C:
+
+
+
+ -
+
+
+ -
+
+
+ Series L:
+
+
+
+ -
+
+
+
+
+ -
+
+
+ Load Parameter Model
+
+
+
-
+
+
+ Series L first
+
+
+ buttonGroup_2
+
+
+
+ -
+
+
+ Shunt C first
+
+
+ buttonGroup_2
+
+
+
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+ -
+
+
+ false
+
+
+ Update from file
+
+
+
+ -
+
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QDialogButtonBox::Cancel|QDialogButtonBox::Ok
+
+
+
+
+
+
+
+ SIUnitEdit
+ QLineEdit
+ CustomWidgets/siunitedit.h
+
+
+ TouchstoneImport
+ QWidget
+ CustomWidgets/touchstoneimport.h
+ 1
+
+
+
+
+
+ buttonBox
+ accepted()
+ CalStandardLoadEditDialog
+ accept()
+
+
+ 248
+ 254
+
+
+ 157
+ 274
+
+
+
+
+ buttonBox
+ rejected()
+ CalStandardLoadEditDialog
+ reject()
+
+
+ 316
+ 260
+
+
+ 286
+ 274
+
+
+
+
+
+
+
+
+
diff --git a/Software/PC_Application/LibreVNA-GUI/Calibration/CalStandardOpenEditDialog.ui b/Software/PC_Application/LibreVNA-GUI/Calibration/CalStandardOpenEditDialog.ui
new file mode 100644
index 0000000..f3fdcfb
--- /dev/null
+++ b/Software/PC_Application/LibreVNA-GUI/Calibration/CalStandardOpenEditDialog.ui
@@ -0,0 +1,230 @@
+
+
+ CalStandardOpenEditDialog
+
+
+
+ 0
+ 0
+ 358
+ 342
+
+
+
+ Edit Open Standard
+
+
+ true
+
+
+ -
+
+
-
+
+
+ Name:
+
+
+
+ -
+
+
+
+
+ -
+
+
-
+
+
+ Coefficients
+
+
+ buttonGroup
+
+
+
+ -
+
+
+ Measurement file
+
+
+ buttonGroup
+
+
+
+
+
+ -
+
+
+ 0
+
+
+
+
-
+
+
+ Z0:
+
+
+
+ -
+
+
+ true
+
+
+
+ -
+
+
+ Offset delay [ps]:
+
+
+
+ -
+
+
+ -
+
+
+ Offset loss [GΩ/s]:
+
+
+
+ -
+
+
+ -
+
+
+ C0 [10<sup>-15</sup>F]:
+
+
+
+ -
+
+
+ -
+
+
+ C1 [10<sup>-27</sup>F/Hz]:
+
+
+
+ -
+
+
+ -
+
+
+ C2 [10<sup>-36</sup>F/Hz<sup>2</sup>]:
+
+
+
+ -
+
+
+ -
+
+
+ <html><head/><body><p>C3 [10<span style=" vertical-align:super;">-45</span>F/Hz<span style=" vertical-align:super;">3</span>]:</p></body></html>
+
+
+
+ -
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+ -
+
+
+ false
+
+
+ Update from file
+
+
+
+ -
+
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QDialogButtonBox::Cancel|QDialogButtonBox::Ok
+
+
+
+
+
+
+
+ SIUnitEdit
+ QLineEdit
+ CustomWidgets/siunitedit.h
+
+
+ TouchstoneImport
+ QWidget
+ CustomWidgets/touchstoneimport.h
+ 1
+
+
+
+
+
+ buttonBox
+ accepted()
+ CalStandardOpenEditDialog
+ accept()
+
+
+ 248
+ 254
+
+
+ 157
+ 274
+
+
+
+
+ buttonBox
+ rejected()
+ CalStandardOpenEditDialog
+ reject()
+
+
+ 316
+ 260
+
+
+ 286
+ 274
+
+
+
+
+
+
+
+
diff --git a/Software/PC_Application/LibreVNA-GUI/Calibration/CalStandardReflectEditDialog.ui b/Software/PC_Application/LibreVNA-GUI/Calibration/CalStandardReflectEditDialog.ui
new file mode 100644
index 0000000..486ae8b
--- /dev/null
+++ b/Software/PC_Application/LibreVNA-GUI/Calibration/CalStandardReflectEditDialog.ui
@@ -0,0 +1,106 @@
+
+
+ CalStandardReflectEditDialog
+
+
+
+ 0
+ 0
+ 291
+ 109
+
+
+
+ Edit Reflect Standard
+
+
+ true
+
+
+ -
+
+
-
+
+
+ Name:
+
+
+
+ -
+
+
+
+
+ -
+
+
-
+
+
+ Reflection type:
+
+
+
+ -
+
+
-
+
+ Open
+
+
+ -
+
+ Short
+
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QDialogButtonBox::Cancel|QDialogButtonBox::Ok
+
+
+
+
+
+
+
+
+ buttonBox
+ accepted()
+ CalStandardReflectEditDialog
+ accept()
+
+
+ 248
+ 254
+
+
+ 157
+ 274
+
+
+
+
+ buttonBox
+ rejected()
+ CalStandardReflectEditDialog
+ reject()
+
+
+ 316
+ 260
+
+
+ 286
+ 274
+
+
+
+
+
diff --git a/Software/PC_Application/LibreVNA-GUI/Calibration/CalStandardShortEditDialog.ui b/Software/PC_Application/LibreVNA-GUI/Calibration/CalStandardShortEditDialog.ui
new file mode 100644
index 0000000..594cb06
--- /dev/null
+++ b/Software/PC_Application/LibreVNA-GUI/Calibration/CalStandardShortEditDialog.ui
@@ -0,0 +1,230 @@
+
+
+ CalStandardShortEditDialog
+
+
+
+ 0
+ 0
+ 358
+ 342
+
+
+
+ Edit Short Standard
+
+
+ true
+
+
+ -
+
+
-
+
+
+ Name:
+
+
+
+ -
+
+
+
+
+ -
+
+
-
+
+
+ Coefficients
+
+
+ buttonGroup
+
+
+
+ -
+
+
+ Measurement file
+
+
+ buttonGroup
+
+
+
+
+
+ -
+
+
+ 0
+
+
+
+
-
+
+
+ Z0:
+
+
+
+ -
+
+
+ true
+
+
+
+ -
+
+
+ Offset delay [ps]:
+
+
+
+ -
+
+
+ -
+
+
+ Offset loss [GΩ/s]:
+
+
+
+ -
+
+
+ -
+
+
+ <html><head/><body><p>L0 [10<span style=" vertical-align:super;">-12</span>H]:</p></body></html>
+
+
+
+ -
+
+
+ -
+
+
+ <html><head/><body><p>L1 [10<span style=" vertical-align:super;">-24</span>H/Hz]:</p></body></html>
+
+
+
+ -
+
+
+ -
+
+
+ <html><head/><body><p>L2 [10<span style=" vertical-align:super;">-33</span>H/Hz<span style=" vertical-align:super;">2</span>]:</p></body></html>
+
+
+
+ -
+
+
+ -
+
+
+ <html><head/><body><p>L3 [10<span style=" vertical-align:super;">-42</span>H/Hz<span style=" vertical-align:super;">3</span>]:</p></body></html>
+
+
+
+ -
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+ -
+
+
+ false
+
+
+ Update from file
+
+
+
+ -
+
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QDialogButtonBox::Cancel|QDialogButtonBox::Ok
+
+
+
+
+
+
+
+ SIUnitEdit
+ QLineEdit
+ CustomWidgets/siunitedit.h
+
+
+ TouchstoneImport
+ QWidget
+ CustomWidgets/touchstoneimport.h
+ 1
+
+
+
+
+
+ buttonBox
+ accepted()
+ CalStandardShortEditDialog
+ accept()
+
+
+ 248
+ 254
+
+
+ 157
+ 274
+
+
+
+
+ buttonBox
+ rejected()
+ CalStandardShortEditDialog
+ reject()
+
+
+ 316
+ 260
+
+
+ 286
+ 274
+
+
+
+
+
+
+
+
diff --git a/Software/PC_Application/LibreVNA-GUI/Calibration/CalStandardThroughEditDialog.ui b/Software/PC_Application/LibreVNA-GUI/Calibration/CalStandardThroughEditDialog.ui
new file mode 100644
index 0000000..7dfd09c
--- /dev/null
+++ b/Software/PC_Application/LibreVNA-GUI/Calibration/CalStandardThroughEditDialog.ui
@@ -0,0 +1,190 @@
+
+
+ CalStandardThroughEditDialog
+
+
+
+ 0
+ 0
+ 358
+ 342
+
+
+
+ Edit Through Standard
+
+
+ true
+
+
+ -
+
+
-
+
+
+ Name:
+
+
+
+ -
+
+
+
+
+ -
+
+
-
+
+
+ Coefficients
+
+
+ buttonGroup
+
+
+
+ -
+
+
+ Measurement file
+
+
+ buttonGroup
+
+
+
+
+
+ -
+
+
+ 0
+
+
+
+
-
+
+
+ Z0:
+
+
+
+ -
+
+
+ false
+
+
+
+ -
+
+
+ Delay [ps]:
+
+
+
+ -
+
+
+ -
+
+
+ Loss [GΩ/s]:
+
+
+
+ -
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+ -
+
+
+ false
+
+
+ Update from file
+
+
+
+ -
+
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QDialogButtonBox::Cancel|QDialogButtonBox::Ok
+
+
+
+
+
+
+
+ SIUnitEdit
+ QLineEdit
+ CustomWidgets/siunitedit.h
+
+
+ TouchstoneImport
+ QWidget
+ CustomWidgets/touchstoneimport.h
+ 1
+
+
+
+
+
+ buttonBox
+ accepted()
+ CalStandardThroughEditDialog
+ accept()
+
+
+ 248
+ 254
+
+
+ 157
+ 274
+
+
+
+
+ buttonBox
+ rejected()
+ CalStandardThroughEditDialog
+ reject()
+
+
+ 316
+ 260
+
+
+ 286
+ 274
+
+
+
+
+
+
+
+
diff --git a/Software/PC_Application/LibreVNA-GUI/Calibration/Eigen/Cholesky b/Software/PC_Application/LibreVNA-GUI/Calibration/Eigen/Cholesky
new file mode 100644
index 0000000..a318ceb
--- /dev/null
+++ b/Software/PC_Application/LibreVNA-GUI/Calibration/Eigen/Cholesky
@@ -0,0 +1,45 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_CHOLESKY_MODULE_H
+#define EIGEN_CHOLESKY_MODULE_H
+
+#include "Core"
+#include "Jacobi"
+
+#include "src/Core/util/DisableStupidWarnings.h"
+
+/** \defgroup Cholesky_Module Cholesky module
+ *
+ *
+ *
+ * This module provides two variants of the Cholesky decomposition for selfadjoint (hermitian) matrices.
+ * Those decompositions are also accessible via the following methods:
+ * - MatrixBase::llt()
+ * - MatrixBase::ldlt()
+ * - SelfAdjointView::llt()
+ * - SelfAdjointView::ldlt()
+ *
+ * \code
+ * #include
+ * \endcode
+ */
+
+#include "src/Cholesky/LLT.h"
+#include "src/Cholesky/LDLT.h"
+#ifdef EIGEN_USE_LAPACKE
+#ifdef EIGEN_USE_MKL
+#include "mkl_lapacke.h"
+#else
+#include "src/misc/lapacke.h"
+#endif
+#include "src/Cholesky/LLT_LAPACKE.h"
+#endif
+
+#include "src/Core/util/ReenableStupidWarnings.h"
+
+#endif // EIGEN_CHOLESKY_MODULE_H
diff --git a/Software/PC_Application/LibreVNA-GUI/Calibration/Eigen/CholmodSupport b/Software/PC_Application/LibreVNA-GUI/Calibration/Eigen/CholmodSupport
new file mode 100644
index 0000000..bed8924
--- /dev/null
+++ b/Software/PC_Application/LibreVNA-GUI/Calibration/Eigen/CholmodSupport
@@ -0,0 +1,48 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_CHOLMODSUPPORT_MODULE_H
+#define EIGEN_CHOLMODSUPPORT_MODULE_H
+
+#include "SparseCore"
+
+#include "src/Core/util/DisableStupidWarnings.h"
+
+extern "C" {
+ #include
+}
+
+/** \ingroup Support_modules
+ * \defgroup CholmodSupport_Module CholmodSupport module
+ *
+ * This module provides an interface to the Cholmod library which is part of the suitesparse package.
+ * It provides the two following main factorization classes:
+ * - class CholmodSupernodalLLT: a supernodal LLT Cholesky factorization.
+ * - class CholmodDecomposiiton: a general L(D)LT Cholesky factorization with automatic or explicit runtime selection of the underlying factorization method (supernodal or simplicial).
+ *
+ * For the sake of completeness, this module also propose the two following classes:
+ * - class CholmodSimplicialLLT
+ * - class CholmodSimplicialLDLT
+ * Note that these classes does not bring any particular advantage compared to the built-in
+ * SimplicialLLT and SimplicialLDLT factorization classes.
+ *
+ * \code
+ * #include
+ * \endcode
+ *
+ * In order to use this module, the cholmod headers must be accessible from the include paths, and your binary must be linked to the cholmod library and its dependencies.
+ * The dependencies depend on how cholmod has been compiled.
+ * For a cmake based project, you can use our FindCholmod.cmake module to help you in this task.
+ *
+ */
+
+#include "src/CholmodSupport/CholmodSupport.h"
+
+#include "src/Core/util/ReenableStupidWarnings.h"
+
+#endif // EIGEN_CHOLMODSUPPORT_MODULE_H
+
diff --git a/Software/PC_Application/LibreVNA-GUI/Calibration/Eigen/Core b/Software/PC_Application/LibreVNA-GUI/Calibration/Eigen/Core
new file mode 100644
index 0000000..5921e15
--- /dev/null
+++ b/Software/PC_Application/LibreVNA-GUI/Calibration/Eigen/Core
@@ -0,0 +1,384 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud
+// Copyright (C) 2007-2011 Benoit Jacob
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_CORE_H
+#define EIGEN_CORE_H
+
+// first thing Eigen does: stop the compiler from reporting useless warnings.
+#include "src/Core/util/DisableStupidWarnings.h"
+
+// then include this file where all our macros are defined. It's really important to do it first because
+// it's where we do all the compiler/OS/arch detections and define most defaults.
+#include "src/Core/util/Macros.h"
+
+// This detects SSE/AVX/NEON/etc. and configure alignment settings
+#include "src/Core/util/ConfigureVectorization.h"
+
+// We need cuda_runtime.h/hip_runtime.h to ensure that
+// the EIGEN_USING_STD macro works properly on the device side
+#if defined(EIGEN_CUDACC)
+ #include
+#elif defined(EIGEN_HIPCC)
+ #include
+#endif
+
+
+#ifdef EIGEN_EXCEPTIONS
+ #include
+#endif
+
+// Disable the ipa-cp-clone optimization flag with MinGW 6.x or newer (enabled by default with -O3)
+// See http://eigen.tuxfamily.org/bz/show_bug.cgi?id=556 for details.
+#if EIGEN_COMP_MINGW && EIGEN_GNUC_AT_LEAST(4,6) && EIGEN_GNUC_AT_MOST(5,5)
+ #pragma GCC optimize ("-fno-ipa-cp-clone")
+#endif
+
+// Prevent ICC from specializing std::complex operators that silently fail
+// on device. This allows us to use our own device-compatible specializations
+// instead.
+#if defined(EIGEN_COMP_ICC) && defined(EIGEN_GPU_COMPILE_PHASE) \
+ && !defined(_OVERRIDE_COMPLEX_SPECIALIZATION_)
+#define _OVERRIDE_COMPLEX_SPECIALIZATION_ 1
+#endif
+#include
+
+// this include file manages BLAS and MKL related macros
+// and inclusion of their respective header files
+#include "src/Core/util/MKL_support.h"
+
+
+#if defined(EIGEN_HAS_CUDA_FP16) || defined(EIGEN_HAS_HIP_FP16)
+ #define EIGEN_HAS_GPU_FP16
+#endif
+
+#if defined(EIGEN_HAS_CUDA_BF16) || defined(EIGEN_HAS_HIP_BF16)
+ #define EIGEN_HAS_GPU_BF16
+#endif
+
+#if (defined _OPENMP) && (!defined EIGEN_DONT_PARALLELIZE)
+ #define EIGEN_HAS_OPENMP
+#endif
+
+#ifdef EIGEN_HAS_OPENMP
+#include
+#endif
+
+// MSVC for windows mobile does not have the errno.h file
+#if !(EIGEN_COMP_MSVC && EIGEN_OS_WINCE) && !EIGEN_COMP_ARM
+#define EIGEN_HAS_ERRNO
+#endif
+
+#ifdef EIGEN_HAS_ERRNO
+#include
+#endif
+#include
+#include
+#include
+#include
+#include
+#include
+#ifndef EIGEN_NO_IO
+ #include
+#endif
+#include
+#include
+#include
+#include // for CHAR_BIT
+// for min/max:
+#include
+
+#if EIGEN_HAS_CXX11
+#include
+#endif
+
+// for std::is_nothrow_move_assignable
+#ifdef EIGEN_INCLUDE_TYPE_TRAITS
+#include
+#endif
+
+// for outputting debug info
+#ifdef EIGEN_DEBUG_ASSIGN
+#include
+#endif
+
+// required for __cpuid, needs to be included after cmath
+#if EIGEN_COMP_MSVC && EIGEN_ARCH_i386_OR_x86_64 && !EIGEN_OS_WINCE
+ #include
+#endif
+
+#if defined(EIGEN_USE_SYCL)
+ #undef min
+ #undef max
+ #undef isnan
+ #undef isinf
+ #undef isfinite
+ #include
+ #include