Compare commits

...

575 commits

Author SHA1 Message Date
Jan Käberich 6a7b985fa9 Refactor Calkit::fromFile without the need for move semantics
Some checks failed
Build / PC_Application_Ubuntu (push) Has been cancelled
Build / PC_Application_RPi5 (push) Has been cancelled
Build / PC_Application_Windows (push) Has been cancelled
Build / PC_Application_OSX (push) Has been cancelled
Build / PC_Application_OSX_13 (push) Has been cancelled
Build / Embedded_Firmware (push) Has been cancelled
HIL_Tests / Get_Repository (push) Has been cancelled
Unit_Tests / Tests (push) Has been cancelled
HIL_Tests / PC_Application_RPi5 (push) Has been cancelled
HIL_Tests / Embedded_Firmware (push) Has been cancelled
HIL_Tests / HIL (push) Has been cancelled
2025-12-02 16:52:34 +01:00
Jan Käberich 7bdbcde9be SCPI API for editing calibration kit standards 2025-12-02 15:29:47 +01:00
Jan Käberich fbef4b364f fix ambiguous conversion error 2025-12-02 13:50:21 +01:00
Jan Käberich da1228c9b1 Document and fix deembedding SCPI API 2025-12-02 13:43:21 +01:00
Jan Käberich 3aac724298 prevent the combination of log sweep and start frequency = 0 2025-12-02 11:36:36 +01:00
Jan Käberich 0f9510e7a0 save number of averages in setup files 2025-12-02 11:30:16 +01:00
Jan Käberich 65bc247a65 SCPI API for querying the sweep cursor 2025-12-02 11:22:54 +01:00
Jan Käberich d0c8a1ae8e SCPI API for setting/reading calkit meta data 2025-12-02 11:05:51 +01:00
Jan Käberich 9923038d6c allow spaces in arguments of SCPI commands 2025-12-02 10:33:04 +01:00
Jan Käberich 72d547eb08 SCPI: support lower case for calkit file names 2025-12-02 10:08:06 +01:00
Jan Käberich d853571aea move to dedicated driver
Some checks failed
Build / PC_Application_Ubuntu (push) Has been cancelled
Build / PC_Application_RPi5 (push) Has been cancelled
Build / PC_Application_Windows (push) Has been cancelled
Build / PC_Application_OSX (push) Has been cancelled
Build / PC_Application_OSX_13 (push) Has been cancelled
Build / Embedded_Firmware (push) Has been cancelled
HIL_Tests / Get_Repository (push) Has been cancelled
Unit_Tests / Tests (push) Has been cancelled
HIL_Tests / PC_Application_RPi5 (push) Has been cancelled
HIL_Tests / Embedded_Firmware (push) Has been cancelled
HIL_Tests / HIL (push) Has been cancelled
2025-11-17 16:38:02 +01:00
Jan Käberich 64791e6d4e option to restore default values of device configuration
Some checks failed
Build / PC_Application_Ubuntu (push) Has been cancelled
Build / PC_Application_RPi5 (push) Has been cancelled
Build / PC_Application_Windows (push) Has been cancelled
Build / PC_Application_OSX (push) Has been cancelled
Build / PC_Application_OSX_13 (push) Has been cancelled
Build / Embedded_Firmware (push) Has been cancelled
HIL_Tests / Get_Repository (push) Has been cancelled
Unit_Tests / Tests (push) Has been cancelled
HIL_Tests / PC_Application_RPi5 (push) Has been cancelled
HIL_Tests / Embedded_Firmware (push) Has been cancelled
HIL_Tests / HIL (push) Has been cancelled
2025-11-15 19:22:15 +01:00
Jan Käberich b6718c57b2 Improve marker handling when at the edge of a graph 2025-11-15 19:03:41 +01:00
Jan Käberich 87ab2fccca install missing svg library for RPi5 build
Some checks failed
Build / PC_Application_Ubuntu (push) Has been cancelled
Build / PC_Application_RPi5 (push) Has been cancelled
Build / PC_Application_Windows (push) Has been cancelled
Build / PC_Application_OSX (push) Has been cancelled
Build / PC_Application_OSX_13 (push) Has been cancelled
Build / Embedded_Firmware (push) Has been cancelled
HIL_Tests / Get_Repository (push) Has been cancelled
Unit_Tests / Tests (push) Has been cancelled
HIL_Tests / PC_Application_RPi5 (push) Has been cancelled
HIL_Tests / Embedded_Firmware (push) Has been cancelled
HIL_Tests / HIL (push) Has been cancelled
2025-11-14 08:55:57 +01:00
alexey.lysiuk 56dbec82d4 Add image saving to SVG format
This allows to create images independent from screen resolution
Replaced copy-pasted screenshot code with the single implementation
2025-11-12 15:14:37 +02:00
Jan Käberich bbd1bce0b8 accept enter key along with return key when setting values
Some checks failed
Build / PC_Application_Ubuntu (push) Has been cancelled
Build / PC_Application_RPi5 (push) Has been cancelled
Build / PC_Application_Windows (push) Has been cancelled
Build / PC_Application_OSX (push) Has been cancelled
Build / PC_Application_OSX_13 (push) Has been cancelled
Build / Embedded_Firmware (push) Has been cancelled
HIL_Tests / Get_Repository (push) Has been cancelled
Unit_Tests / Tests (push) Has been cancelled
HIL_Tests / PC_Application_RPi5 (push) Has been cancelled
HIL_Tests / Embedded_Firmware (push) Has been cancelled
HIL_Tests / HIL (push) Has been cancelled
2025-11-05 10:41:56 +01:00
Jan Käberich 937b002dfb Minor UI improvememts
- Add space between number and unit
- Increase width of toolbar items to (hopefully) be fully visible for
  all operating systems and themes
- Adjust order of automatically created calibration measurements to
  match LibreCAL
- Disable edit triggers for calibration measurement table
- Show timestamps of calibration measurements in local time
- Allow starting calibration measurements by double clicking row
2025-11-05 09:19:02 +01:00
Jan Käberich d77215aecb initialize new plots with the correct span
Some checks failed
Build / PC_Application_Ubuntu (push) Has been cancelled
Build / PC_Application_RPi5 (push) Has been cancelled
Build / PC_Application_Windows (push) Has been cancelled
Build / PC_Application_OSX (push) Has been cancelled
Build / PC_Application_OSX_13 (push) Has been cancelled
Build / Embedded_Firmware (push) Has been cancelled
HIL_Tests / Get_Repository (push) Has been cancelled
Unit_Tests / Tests (push) Has been cancelled
HIL_Tests / PC_Application_RPi5 (push) Has been cancelled
HIL_Tests / Embedded_Firmware (push) Has been cancelled
HIL_Tests / HIL (push) Has been cancelled
2025-10-31 15:42:42 +01:00
Jan Käberich 7acb847a2b update compound device section in manual 2025-10-31 15:06:45 +01:00
Jan Käberich 92088ec646 Enable auto mode comobobox when auto range is active for X axis 2025-10-31 14:26:19 +01:00
Jan Käberich be123420db Configuration for hardware version 0xD0
Some checks failed
Build / PC_Application_Ubuntu (push) Has been cancelled
Build / PC_Application_RPi5 (push) Has been cancelled
Build / PC_Application_Windows (push) Has been cancelled
Build / PC_Application_OSX (push) Has been cancelled
Build / PC_Application_OSX_13 (push) Has been cancelled
Build / Embedded_Firmware (push) Has been cancelled
HIL_Tests / Get_Repository (push) Has been cancelled
Unit_Tests / Tests (push) Has been cancelled
HIL_Tests / PC_Application_RPi5 (push) Has been cancelled
HIL_Tests / Embedded_Firmware (push) Has been cancelled
HIL_Tests / HIL (push) Has been cancelled
2025-10-28 12:08:13 +01:00
Jan Käberich 273dfa8037 add support for hardware version 0xD0 device status
Some checks failed
Build / PC_Application_Ubuntu (push) Has been cancelled
Build / PC_Application_RPi5 (push) Has been cancelled
Build / PC_Application_Windows (push) Has been cancelled
Build / PC_Application_OSX (push) Has been cancelled
Build / PC_Application_OSX_13 (push) Has been cancelled
Build / Embedded_Firmware (push) Has been cancelled
HIL_Tests / Get_Repository (push) Has been cancelled
Unit_Tests / Tests (push) Has been cancelled
HIL_Tests / PC_Application_RPi5 (push) Has been cancelled
HIL_Tests / Embedded_Firmware (push) Has been cancelled
HIL_Tests / HIL (push) Has been cancelled
2025-10-24 12:55:09 +02:00
Jan Käberich 6e2079fcfb menu entry to run internal alignment if supported by hardware version
Some checks are pending
Build / PC_Application_Ubuntu (push) Waiting to run
Build / PC_Application_RPi5 (push) Waiting to run
Build / PC_Application_Windows (push) Waiting to run
Build / PC_Application_OSX (push) Waiting to run
Build / PC_Application_OSX_13 (push) Waiting to run
Build / Embedded_Firmware (push) Waiting to run
HIL_Tests / Get_Repository (push) Waiting to run
HIL_Tests / PC_Application_RPi5 (push) Blocked by required conditions
HIL_Tests / Embedded_Firmware (push) Blocked by required conditions
HIL_Tests / HIL (push) Blocked by required conditions
Unit_Tests / Tests (push) Waiting to run
2025-10-23 12:57:49 +02:00
Jan Käberich ed699cfd6a hide device specific actions based on the hardware version
Some checks are pending
Build / PC_Application_Ubuntu (push) Waiting to run
Build / PC_Application_RPi5 (push) Waiting to run
Build / PC_Application_Windows (push) Waiting to run
Build / PC_Application_OSX (push) Waiting to run
Build / PC_Application_OSX_13 (push) Waiting to run
Build / Embedded_Firmware (push) Waiting to run
HIL_Tests / Get_Repository (push) Waiting to run
HIL_Tests / PC_Application_RPi5 (push) Blocked by required conditions
HIL_Tests / Embedded_Firmware (push) Blocked by required conditions
HIL_Tests / HIL (push) Blocked by required conditions
Unit_Tests / Tests (push) Waiting to run
2025-10-23 10:16:33 +02:00
Jan Käberich f51c6a0bce Manual control dialog for prototype 0xD0
Some checks failed
Build / PC_Application_Ubuntu (push) Has been cancelled
Build / PC_Application_RPi5 (push) Has been cancelled
Build / PC_Application_Windows (push) Has been cancelled
Build / PC_Application_OSX (push) Has been cancelled
Build / PC_Application_OSX_13 (push) Has been cancelled
Build / Embedded_Firmware (push) Has been cancelled
HIL_Tests / Get_Repository (push) Has been cancelled
Unit_Tests / Tests (push) Has been cancelled
HIL_Tests / PC_Application_RPi5 (push) Has been cancelled
HIL_Tests / Embedded_Firmware (push) Has been cancelled
HIL_Tests / HIL (push) Has been cancelled
2025-10-15 10:23:08 +02:00
Jan Käberich 5d00d4786b new calibration type without receiver matching for lossy calibration standards
Some checks failed
Build / PC_Application_Ubuntu (push) Has been cancelled
Build / PC_Application_RPi5 (push) Has been cancelled
Build / PC_Application_Windows (push) Has been cancelled
Build / PC_Application_OSX (push) Has been cancelled
Build / PC_Application_OSX_13 (push) Has been cancelled
Build / Embedded_Firmware (push) Has been cancelled
HIL_Tests / Get_Repository (push) Has been cancelled
Unit_Tests / Tests (push) Has been cancelled
HIL_Tests / PC_Application_RPi5 (push) Has been cancelled
HIL_Tests / Embedded_Firmware (push) Has been cancelled
HIL_Tests / HIL (push) Has been cancelled
2025-09-22 16:58:49 +02:00
Jan Käberich 3e327e7e6b option to use already existing measurements for calibration 2025-09-22 16:01:38 +02:00
Jan Käberich b2fd49d800 increase resolution for referenced data in 0xE0 manual control dialog 2025-09-17 10:47:27 +02:00
Jan Käberich f327a4b4a0 allow firmware updates for version 0xE0 2025-09-17 10:46:44 +02:00
Jan Käberich 5947584e63 manual control dialog for experimental hardware version 0xE0
Some checks failed
Build / PC_Application_Ubuntu (push) Has been cancelled
Build / PC_Application_RPi5 (push) Has been cancelled
Build / PC_Application_Windows (push) Has been cancelled
Build / PC_Application_OSX (push) Has been cancelled
Build / PC_Application_OSX_13 (push) Has been cancelled
Build / Embedded_Firmware (push) Has been cancelled
HIL_Tests / Get_Repository (push) Has been cancelled
Unit_Tests / Tests (push) Has been cancelled
HIL_Tests / PC_Application_RPi5 (push) Has been cancelled
HIL_Tests / Embedded_Firmware (push) Has been cancelled
HIL_Tests / HIL (push) Has been cancelled
2025-08-31 18:49:38 +02:00
Jan Käberich 3071d8de72 Set new markers to middle of trace by default
Some checks failed
Build / PC_Application_Ubuntu (push) Has been cancelled
Build / PC_Application_RPi5 (push) Has been cancelled
Build / PC_Application_Windows (push) Has been cancelled
Build / PC_Application_OSX (push) Has been cancelled
Build / PC_Application_OSX_13 (push) Has been cancelled
Build / Embedded_Firmware (push) Has been cancelled
HIL_Tests / Get_Repository (push) Has been cancelled
Unit_Tests / Tests (push) Has been cancelled
HIL_Tests / PC_Application_RPi5 (push) Has been cancelled
HIL_Tests / Embedded_Firmware (push) Has been cancelled
HIL_Tests / HIL (push) Has been cancelled
2025-08-28 07:59:58 +02:00
Jan Käberich d882bca547 rework editor creation for MarkerTraceDelegate
Some checks failed
Build / PC_Application_Ubuntu (push) Has been cancelled
Build / PC_Application_RPi5 (push) Has been cancelled
Build / PC_Application_Windows (push) Has been cancelled
Build / PC_Application_OSX (push) Has been cancelled
Build / PC_Application_OSX_13 (push) Has been cancelled
Build / Embedded_Firmware (push) Has been cancelled
HIL_Tests / Get_Repository (push) Has been cancelled
Unit_Tests / Tests (push) Has been cancelled
HIL_Tests / PC_Application_RPi5 (push) Has been cancelled
HIL_Tests / Embedded_Firmware (push) Has been cancelled
HIL_Tests / HIL (push) Has been cancelled
2025-08-22 11:47:48 +02:00
Jan Käberich f0c7f289cb Bugfix: remove not used optional parameter
Some checks failed
Build / PC_Application_Ubuntu (push) Has been cancelled
Build / PC_Application_RPi5 (push) Has been cancelled
Build / PC_Application_Windows (push) Has been cancelled
Build / PC_Application_OSX (push) Has been cancelled
Build / PC_Application_OSX_13 (push) Has been cancelled
Build / Embedded_Firmware (push) Has been cancelled
HIL_Tests / Get_Repository (push) Has been cancelled
Unit_Tests / Tests (push) Has been cancelled
HIL_Tests / PC_Application_RPi5 (push) Has been cancelled
HIL_Tests / Embedded_Firmware (push) Has been cancelled
HIL_Tests / HIL (push) Has been cancelled
2025-08-17 20:18:38 +02:00
Jan Käberich 8b44421ea3 improve PLL fractional divider algorithm 2025-08-17 19:37:10 +02:00
Jan Käberich 66d5bdd91b Add calibrated parameters table
Some checks failed
Build / PC_Application_Ubuntu (push) Has been cancelled
Build / PC_Application_RPi5 (push) Has been cancelled
Build / PC_Application_Windows (push) Has been cancelled
Build / PC_Application_OSX (push) Has been cancelled
Build / PC_Application_OSX_13 (push) Has been cancelled
Build / Embedded_Firmware (push) Has been cancelled
HIL_Tests / Get_Repository (push) Has been cancelled
Unit_Tests / Tests (push) Has been cancelled
HIL_Tests / PC_Application_RPi5 (push) Has been cancelled
HIL_Tests / Embedded_Firmware (push) Has been cancelled
HIL_Tests / HIL (push) Has been cancelled
2025-08-15 21:07:34 +02:00
Jan Käberich 10ba138104 Allow manual calibration of incomplete trace sets
Some checks failed
Build / PC_Application_Ubuntu (push) Has been cancelled
Build / PC_Application_RPi5 (push) Has been cancelled
Build / PC_Application_Windows (push) Has been cancelled
Build / PC_Application_OSX (push) Has been cancelled
Build / PC_Application_OSX_13 (push) Has been cancelled
Build / Embedded_Firmware (push) Has been cancelled
HIL_Tests / Get_Repository (push) Has been cancelled
Unit_Tests / Tests (push) Has been cancelled
HIL_Tests / PC_Application_RPi5 (push) Has been cancelled
HIL_Tests / Embedded_Firmware (push) Has been cancelled
HIL_Tests / HIL (push) Has been cancelled
2025-08-10 17:48:18 +02:00
Jan Käberich 2f018e3867 New calibration type: OSL 2025-08-10 17:17:53 +02:00
Jan Käberich 68e8d29e0c Calibration error term model view 2025-08-10 15:13:24 +02:00
Jan Käberich 1b3c1c4b3b Merge branch 'master' of github.com:jankae/LibreVNA
Some checks are pending
Build / PC_Application_Ubuntu (push) Waiting to run
Build / PC_Application_RPi5 (push) Waiting to run
Build / PC_Application_Windows (push) Waiting to run
Build / PC_Application_OSX (push) Waiting to run
Build / PC_Application_OSX_13 (push) Waiting to run
Build / Embedded_Firmware (push) Waiting to run
HIL_Tests / Get_Repository (push) Waiting to run
HIL_Tests / PC_Application_RPi5 (push) Blocked by required conditions
HIL_Tests / Embedded_Firmware (push) Blocked by required conditions
HIL_Tests / HIL (push) Blocked by required conditions
Unit_Tests / Tests (push) Waiting to run
2025-08-09 19:12:07 +02:00
Jan Käberich 38b4a6ba39 Bugfix: correct PLL configuration at the band switch frequency (25 MHz) 2025-08-09 19:11:32 +02:00
Jan Käberich abe2aefcf9 use PLL A to generate lowband source 2025-08-09 19:10:53 +02:00
Jan Käberich 3483b7baec
Merge pull request #323 from HanfG/master
change LM3370 MPN
2025-07-30 10:39:27 +02:00
hanf 1a21a49dfd change LM3370 MPN to LM3370SD-3021(defualt 1.2v for buck 1) 2025-07-28 01:36:34 +08:00
Jan Käberich 8f689637ff Marker display and handling improvements
- prevent interaction with invisible markers on graph
- helper markers get their own (reduced) context menu
- only update required columns in table when marker data changes
- persistent helper markers for peak table
- New format for peak table markers
2025-07-24 10:32:55 +02:00
Jan Käberich 67cffbb69e fix windows build workflow 2025-07-20 18:30:25 +02:00
Jan Käberich 2f256117db add unit tests for lin/log calibration detection 2025-07-19 13:38:49 +02:00
Jan Käberich 8e917faed4 add support for logarithmically spaced calibration points 2025-07-18 19:18:28 +02:00
Jan Käberich c1705290ff update workflows to use windows-2022 runner 2025-07-16 07:46:47 +02:00
Jan Käberich ceaf412c2a
Merge pull request #317 from alekssadowski95/master
Added README title for SEO and more immediate understanding
2025-07-16 07:36:46 +02:00
Aleksander Sadowski 514fcd180c
Added README title for SEO and more immediate understanding
Signed-off-by: aleksander.sadowski@alsado.de Aleksander Sadowski
2025-07-12 21:43:03 +02:00
Jan Käberich b3eb1735cc option to prevent electronic calibrations while LibreCAL temperature unstable 2025-06-24 08:50:43 +02:00
Jan Käberich 3330cee2ba remember last used load/save paths in preferences 2025-06-23 16:39:18 +02:00
Jan Käberich d8f042dcaa remember touchstone export settings 2025-06-23 16:08:06 +02:00
Jan Käberich d615089afe Merge branch 'master' of github.com:jankae/LibreVNA 2025-06-23 15:25:14 +02:00
Jan Käberich d6020a6a26 Custom expression bugfixes
- Off-by-one error when number of input samples changes
- race condition when closing custom expression edit dialog
- adjust available variables when input data type changes
2025-06-23 15:23:57 +02:00
Jan Käberich a2b3146f1c Changelog + version bump 2025-05-31 16:05:21 +02:00
Jan Käberich b5da8015b5 HIL: more rigorous test of firmware update process 2025-05-31 15:14:19 +02:00
Jan Käberich 162309e54a 1us delay after CS high on SPI flash 2025-05-31 14:59:14 +02:00
Jan Käberich fde6707c9c show trace names for traces which are only on secondary Y axis 2025-05-18 13:36:44 +02:00
Jan Käberich 8a56b36166 add optional title to graphs 2025-05-18 13:35:36 +02:00
Jan Käberich c808c6d4e4 allow variable x when checking if from math formula is valid 2025-05-18 12:54:50 +02:00
Jan Käberich 8a172d7f40 Changelog + version bump 2025-05-13 10:54:03 +02:00
Jan Käberich 0cdc4b138a new feature: changing the name of modes 2025-05-12 17:04:23 +02:00
Jan Käberich 6b81b307b7 Fix: do not reset variable names for from math traces when opening trace edit dialog 2025-05-12 16:56:38 +02:00
Jan Käberich 69bb1e493e fix buffer overflow when combining de-embedding with custom expressions 2025-05-06 17:07:03 +02:00
Jan Käberich 8a5d56ee39 adjust scope of enum declaration to fix macOS builds 2025-05-04 13:17:16 +02:00
Jan Käberich 199bb7bbd7 improve GUI synchronization for compound device 2025-05-04 13:01:00 +02:00
Jan Käberich b3b3fa7718 improve domain handling for math traces 2025-05-01 14:53:48 +02:00
Jan Käberich 4f63a28b61 force PLL turn on when assembling device status in VNA mode 2025-04-23 16:18:26 +02:00
Jan Käberich 8a30f95aa7 fix missing initialization for compound device in SA mode 2025-04-23 16:16:47 +02:00
Jan Käberich 5827f2b927 disable debug output for packet queuing 2025-04-23 15:53:21 +02:00
Jan Käberich 47db70a12e Preselect most likely matching traces in touchstone export dialog 2025-04-23 15:40:04 +02:00
Jan Käberich 0818cda62e Configurable defauly Y axis limits 2025-04-21 10:25:33 +02:00
Jan Käberich 51c9ef2795 Update workflows to use Ubuntu 22.04 for firmware builds 2025-04-16 20:02:25 +02:00
Jan Käberich b8600be086 fix streaming server output for zero span sweeps 2025-04-16 19:55:21 +02:00
Jan Käberich 798ffc4867 update marker symbol when preferences are updated 2025-04-13 14:42:16 +02:00
Jan Käberich b1c4c4ffad Option to show markers symbols at top/bottom of graph for out-of-range markers 2025-04-13 14:27:44 +02:00
Jan Käberich a28dd50e36 use filled marker triangles by default 2025-04-13 14:11:43 +02:00
Jan Käberich c296111bcc disable min/max/div settings in XY plot dialog when axis set to disabled 2025-04-06 21:22:42 +02:00
Jan Käberich 57615f1b39 Allow group delay for reflection traces 2025-03-24 16:55:52 +01:00
Jan Käberich 345ab827c0 Set serial of connected device in *IDN? response 2025-03-13 11:35:56 +01:00
Jan Käberich 8d219c0523 use theme dependent font color for device log INFO messages 2025-03-13 11:27:04 +01:00
Jan Käberich 1fb1c85208 Increase USB buffer timeout in VNA sweep 2025-03-13 10:02:36 +01:00
Jan Käberich 91e4a87dc0 Merge branch 'DanChianucci-master' 2025-03-06 15:11:49 +01:00
Jan Käberich eb3098a2ad remove and ignore KiCad backups 2025-03-06 15:11:23 +01:00
Jan Käberich 5ea02a71fe move Eagle PnP files 2025-03-06 15:11:03 +01:00
Jan Käberich c96101960f Merge branch 'master' of github.com:DanChianucci/LibreVNA into DanChianucci-master 2025-03-06 15:06:49 +01:00
Jan Käberich a39b9465a6 fix intermittent source generation problem 2025-03-05 09:34:41 +01:00
Jan Käberich 99d34a39ce add icon for macOS (#298) 2025-03-05 07:58:10 +01:00
Jan Käberich 7370fda2c7 fix de-embedding menu on macOS after loading setup (#297) 2025-03-05 07:57:56 +01:00
Jan Käberich b133728f1d switch PLL reference to avoid integer spurs 2025-03-03 15:42:14 +01:00
Jan Käberich 224b2abc5c Merge branch 'master' into integer_spur_improvement 2025-03-03 14:25:44 +01:00
Jan Käberich cbd7d7149c Merge branch 'master' of github.com:jankae/LibreVNA 2025-03-03 11:35:34 +01:00
Jan Käberich cef3b7483d Reset LibreCAL port standards to none when aborting calibration measurement. 2025-03-03 11:35:15 +01:00
Jan Käberich 05d6112605
Merge pull request #296 from mylesagray/macos-13-builds
Added builder and docs for MacOS >13.7 and MacOS 14+ builds.
2025-03-03 07:47:50 +01:00
M Gray 2d5609b1c5
Updated release tagger to build and tag MacOS 13.7 builds. 2025-03-02 19:03:33 +00:00
M Gray 8c3b76e2d0
Reflect multiple MacOS builds in docs
Added MacOS details to readme to reflect MacOS 14+ and 13.7 builds
2025-03-02 18:47:30 +00:00
M Gray 7eaa72529a
Added MacOS 13 builder
To combat the "application can not run on this version of MacOS" errors - due to latest have a minimum compat version of MacOS 14 - we need to add another builder to ship an "Up-to-13.7" build.
2025-03-02 18:31:51 +00:00
Dan Chianucci 1405d0a599
Merge pull request #2 from nateof8/master
Updates to fix issues with Mar 2024 PWB version
2025-03-01 22:37:16 -05:00
Jan Käberich 9da7edc31f disable start button when determining ports, reset stylesheet instead of forcing black 2025-02-28 14:32:14 +01:00
Jan Käberich 86fbe929d4 prevent race condition when aborting calibration measurement 2025-02-27 19:59:52 +01:00
Jan Käberich 28150307ca update cal widget after auto-adjusting the span 2025-02-27 19:46:42 +01:00
Jan Käberich d3610011e6 Merge branch 'manual_update' 2025-02-27 19:05:32 +01:00
Jan Käberich a4c1cd5274 Squashed commit of the following:
commit b48be940320c31d4745d3898d760f2dbdc944813
Author: Jan Käberich <j.kaeberich@gmx.de>
Date:   Thu Feb 27 19:02:29 2025 +0100

    escape # and generate PDF

commit 28f78c46dc
Author: Bryan Paradis <bryan.paradis@gmail.com>
Date:   Wed Feb 26 04:10:50 2025 -0800

    LibreVNA manual - fix rogue whitespace

commit 1e608661f3
Author: Bryan Paradis <bryan.paradis@gmail.com>
Date:   Tue Feb 25 19:14:57 2025 -0800

    LibreVNA manual - Soure to Source

commit b6334214ef
Author: Bryan Paradis <bryan.paradis@gmail.com>
Date:   Tue Feb 25 19:13:28 2025 -0800

    LibreVNA manual - indentical to identical

commit c26e3c45d3
Author: Bryan Paradis <bryan.paradis@gmail.com>
Date:   Tue Feb 25 19:12:47 2025 -0800

    LibreVNA manual - awkward phrasing

commit 9078764087
Author: Bryan Paradis <bryan.paradis@gmail.com>
Date:   Tue Feb 25 19:08:51 2025 -0800

    LibreVNA manual - Live Capture flesh out

    Descriptions of the Max hold and min hold may need tweaking

commit 092400951b
Author: Bryan Paradis <bryan.paradis@gmail.com>
Date:   Tue Feb 25 18:39:49 2025 -0800

    LibreVNA manual - und to and

commit cc550eabee
Author: Bryan Paradis <bryan.paradis@gmail.com>
Date:   Tue Feb 25 18:38:55 2025 -0800

    LibreVNA manual - add so for flow

commit 51fe1a2699
Author: Bryan Paradis <bryan.paradis@gmail.com>
Date:   Tue Feb 25 18:37:43 2025 -0800

    LibreVNA manual - support to supports

commit 93f57930d0
Author: Bryan Paradis <bryan.paradis@gmail.com>
Date:   Tue Feb 25 18:35:32 2025 -0800

    LibreVNA manual - serialnumber to serial number

commit 5133cba541
Author: Bryan Paradis <bryan.paradis@gmail.com>
Date:   Tue Feb 25 18:22:09 2025 -0800

    LibreVNA manual - wording order change and additional info

    I am not 100% here why the 2 seconds minimum but I am assuming for an accurate measurement

commit 3bead3338a
Author: Bryan Paradis <bryan.paradis@gmail.com>
Date:   Tue Feb 25 18:05:48 2025 -0800

    LibreVNA manual - add start measurement key and a comma

commit 4ef99363e3
Author: Bryan Paradis <bryan.paradis@gmail.com>
Date:   Tue Feb 25 18:00:53 2025 -0800

    LibreVNA manual - wording clarity

commit 0edc148538
Author: Bryan Paradis <bryan.paradis@gmail.com>
Date:   Tue Feb 25 17:34:30 2025 -0800

    LibreVNA manual - your for user focus and simplify with it

commit 8d55fa51c3
Author: Bryan Paradis <bryan.paradis@gmail.com>
Date:   Tue Feb 25 17:29:49 2025 -0800

    LibreVNA manual - with to at and are to is

commit 6878bc50ab
Author: Bryan Paradis <bryan.paradis@gmail.com>
Date:   Tue Feb 25 17:29:11 2025 -0800

    LibreVNA manual - and port to on the selected port and commas

commit 32b87842e4
Author: Bryan Paradis <bryan.paradis@gmail.com>
Date:   Tue Feb 25 17:21:59 2025 -0800

    LibreVNA manual - nit clarity one just below to another point just below

commit a3bab22030
Author: Bryan Paradis <bryan.paradis@gmail.com>
Date:   Tue Feb 25 17:18:43 2025 -0800

    LibreVNA manual - range of calibration to calibration range

commit cf27f9ef21
Author: Bryan Paradis <bryan.paradis@gmail.com>
Date:   Tue Feb 25 17:13:00 2025 -0800

    LibreVNA manual - frequeny to frequency

commit 2b2469ef6c
Author: Bryan Paradis <bryan.paradis@gmail.com>
Date:   Tue Feb 25 17:11:36 2025 -0800

    LibreVNA manual - nit clarity

commit 0ef981de81
Author: Bryan Paradis <bryan.paradis@gmail.com>
Date:   Tue Feb 25 17:09:38 2025 -0800

    LibreVNA manual - ouput to output

commit a6f4d39f83
Author: Bryan Paradis <bryan.paradis@gmail.com>
Date:   Tue Feb 25 17:08:13 2025 -0800

    LibreVNA manual - They to These calibrations for clarity

commit c545aa8172
Author: Bryan Paradis <bryan.paradis@gmail.com>
Date:   Tue Feb 25 17:07:36 2025 -0800

    LibreVNA manual - remove ambiguity the tracking gen only available in SA mode

commit 27d0981cad
Author: Bryan Paradis <bryan.paradis@gmail.com>
Date:   Tue Feb 25 16:46:28 2025 -0800

    LibreVNA manual - generator to signal generator and mode to modes

commit 65e5d90b6f
Author: Bryan Paradis <bryan.paradis@gmail.com>
Date:   Tue Feb 25 16:42:41 2025 -0800

    LibreVNA manual - remove with their name

commit de12d8be3b
Author: Bryan Paradis <bryan.paradis@gmail.com>
Date:   Tue Feb 25 16:39:08 2025 -0800

    LibreVNA manual - remove the, for to to, serialnumbers to serial numbers, dropdown

commit 347437beb6
Author: Bryan Paradis <bryan.paradis@gmail.com>
Date:   Tue Feb 25 16:18:12 2025 -0800

    LibreVNA manual - spectrumanalyzer to spectrum analyzer

commit f7f5ebca47
Author: Bryan Paradis <bryan.paradis@gmail.com>
Date:   Tue Feb 25 16:15:53 2025 -0800

    LibreVNA manual - to to into

commit 333f62bf0e
Author: Bryan Paradis <bryan.paradis@gmail.com>
Date:   Tue Feb 25 16:14:55 2025 -0800

    LibreVNA manual - chose to choose

commit 0c0de97634
Author: Bryan Paradis <bryan.paradis@gmail.com>
Date:   Tue Feb 25 16:12:26 2025 -0800

    LibreVNA manual - markers to marker's

commit 7005ff6bf0
Author: Bryan Paradis <bryan.paradis@gmail.com>
Date:   Tue Feb 25 16:11:19 2025 -0800

    LibreVNA manual - markers to marker's

commit 4fe9f54c91
Author: Bryan Paradis <bryan.paradis@gmail.com>
Date:   Tue Feb 25 16:10:46 2025 -0800

    LibreVNA manual - chose to choose

commit 4afa9e5024
Author: Bryan Paradis <bryan.paradis@gmail.com>
Date:   Tue Feb 25 16:09:06 2025 -0800

    LibreVNA manual - subject markers not marker types cannot be added

commit 2d9b3c8772
Author: Bryan Paradis <bryan.paradis@gmail.com>
Date:   Tue Feb 25 16:00:45 2025 -0800

    LibreVNA manual - missing closing parenthesis

commit a1c1dcbbf5
Author: Bryan Paradis <bryan.paradis@gmail.com>
Date:   Tue Feb 25 15:55:42 2025 -0800

    LibreVNA manual - toi marker flesh out and clarity

commit 60c224f3b0
Author: Bryan Paradis <bryan.paradis@gmail.com>
Date:   Tue Feb 25 15:29:07 2025 -0800

    LibreVNA manual - calculated to calculates

commit 9f5b7852da
Author: Bryan Paradis <bryan.paradis@gmail.com>
Date:   Tue Feb 25 15:21:31 2025 -0800

    LibreVNA manual - data description read as one sentence

commit 2fc31b3e96
Author: Bryan Paradis <bryan.paradis@gmail.com>
Date:   Tue Feb 25 15:19:44 2025 -0800

    LibreVNA manual - simpler sentence structure

commit 6527f79d17
Author: Bryan Paradis <bryan.paradis@gmail.com>
Date:   Tue Feb 25 15:18:12 2025 -0800

    LibreVNA manual - markers to marker

commit 25a46b6a3b
Author: Bryan Paradis <bryan.paradis@gmail.com>
Date:   Tue Feb 25 15:16:07 2025 -0800

    LibreVNA manual - marker position typo the to they plus changes

commit 61792de4b5
Author: Bryan Paradis <bryan.paradis@gmail.com>
Date:   Tue Feb 25 15:13:08 2025 -0800

    LibreVNA manual - marker description change

commit 4cc84a5122
Author: Bryan Paradis <bryan.paradis@gmail.com>
Date:   Tue Feb 25 04:11:53 2025 -0800

    LibreVNA manual - S-paramter to S-parameter

commit 1cec8628d6
Author: Bryan Paradis <bryan.paradis@gmail.com>
Date:   Tue Feb 25 04:09:16 2025 -0800

    LibreVNA manual - a to an and wording

commit 27ce1ab928
Author: Bryan Paradis <bryan.paradis@gmail.com>
Date:   Tue Feb 25 03:49:55 2025 -0800

    LibreVNA manual - comma to and

commit 67fe11bf9c
Author: Bryan Paradis <bryan.paradis@gmail.com>
Date:   Tue Feb 25 03:27:31 2025 -0800

    LibreVNA manual - Flesh out limit line section

commit 447277099e
Author: Bryan Paradis <bryan.paradis@gmail.com>
Date:   Tue Feb 25 02:13:47 2025 -0800

    LibreVNA manual - add colons to list items with descriptions

commit 06452cd6e5
Author: Bryan Paradis <bryan.paradis@gmail.com>
Date:   Tue Feb 25 02:06:16 2025 -0800

    LibreVNA manual - comparisation to comparison

commit 1bc190e115
Author: Bryan Paradis <bryan.paradis@gmail.com>
Date:   Tue Feb 25 02:05:48 2025 -0800

    LibreVNA manual - add constant lines heading consistent with TDR and DFT

commit 7f9022e296
Author: Bryan Paradis <bryan.paradis@gmail.com>
Date:   Tue Feb 25 01:55:19 2025 -0800

    LibreVNA manual - add colon consistent ex TDR or DFT

commit aa37f5d627
Author: Bryan Paradis <bryan.paradis@gmail.com>
Date:   Tue Feb 25 01:44:43 2025 -0800

    LibreVNA manual - a to the for consistency

commit b9c2dbe844
Author: Bryan Paradis <bryan.paradis@gmail.com>
Date:   Tue Feb 25 01:40:18 2025 -0800

    LibreVNA manual - whole tile area to whole trace display area

commit 50e2b108e4
Author: Bryan Paradis <bryan.paradis@gmail.com>
Date:   Tue Feb 25 01:36:48 2025 -0800

    LibreVNA manual - chosing to choosing

commit 2de5937a06
Author: Bryan Paradis <bryan.paradis@gmail.com>
Date:   Tue Feb 25 01:33:22 2025 -0800

    LibreVNA manual - in to is

commit a47d81e0da
Author: Bryan Paradis <bryan.paradis@gmail.com>
Date:   Tue Feb 25 01:31:17 2025 -0800

    LibreVNA manual - also see to see also

commit 38715a0d5f
Author: Bryan Paradis <bryan.paradis@gmail.com>
Date:   Tue Feb 25 00:55:04 2025 -0800

    LibreVNA manual - remove rogue tick
2025-02-27 19:04:23 +01:00
nateof8 af26764539 Mar 2024 KiCad PWB as-built w/ fixes
Includes all updates made to Mar 2024 version of KiCad PWB plus fixes found during assembly.  Update board version to Feb 2025.
2025-02-26 20:56:34 -05:00
Jan Käberich b9523b4864 Capture parentTile value, fix crash on macOS (#292) 2025-02-26 10:16:55 +01:00
Jan Käberich 72e2a331da WIP: detect integer spurs 2025-02-26 08:55:31 +01:00
Jan Käberich b6f26eb6dc Interpolate calibration with magnitude/phase instead of real/imag 2025-02-26 08:54:45 +01:00
Jan Käberich 9660b4e58b do not run HIL tests on PRs 2025-02-26 08:50:11 +01:00
Bryan Paradis e131c4c996 LibreVNA manual - Fix wording referring to LibreCal manual 2025-02-25 00:54:19 -08:00
Jan Käberich 54eb6c8cd3
Merge pull request #288 from bryanparadis/ignore-build-folder
add LibreVNA-GUI build folder to .git-ignore
2025-02-24 13:28:13 +01:00
Bryan Paradis 1fa3516612 add LibreVNA-GUI build folder to .git-ignore 2025-02-24 04:19:50 -08:00
Jan Käberich 269c7b9859 Validate math formula immediately and show error message 2025-02-24 13:10:52 +01:00
Bryan Paradis 0966466686 validate math formula on text change 2025-02-23 10:01:00 -08:00
Jan Käberich 3c7534a35c do not update number of points in from math trace when paused 2025-02-23 13:20:49 +01:00
Jan Käberich e47ca98b95
Merge pull request #285 from bryanparadis/windows_icon
add librevna windows application icon
2025-02-22 11:19:55 +01:00
Bryan Paradis fa9e90df24 add librevna windows application icon 2025-02-21 14:47:57 -08:00
Jan Käberich 2b9b623dd0 update windows release workflow 2025-02-21 16:47:42 +01:00
Jan Käberich 351b040237 Version bump + changelog 2025-02-21 16:00:36 +01:00
Jan Käberich d722f62947 dwell time defaults to 0 2025-02-21 15:59:56 +01:00
Jan Käberich 705661e322 padding always adds resolution 2025-02-21 15:59:26 +01:00
Jan Käberich 8962cab40c adjust impedance renormalization test to pass 2025-02-21 15:56:21 +01:00
Jan Käberich 3f64653ed3 general Y parameters 2025-02-21 15:17:04 +01:00
Jan Käberich 3e0f3df48c adjust Z0 when de-embedding traces 2025-02-21 15:06:20 +01:00
Jan Käberich 0205ab494d Improve de-embedding
- Add Z parameters with general conversion from and to S parameters
- Implement impedance renormalization over general Z parameters
- Fix crash after taking de-embedding measurement
- Fix various small bugs with new parameter implementation
2025-02-21 12:37:39 +01:00
Jan Käberich 77a3fc5039 Merge branch 'master' into arb_port_parameters 2025-02-21 09:32:34 +01:00
Jan Käberich 15db0236a8 add missing file to tests 2025-02-19 12:45:07 +01:00
Jan Käberich c56fdf0ce5 update LibreCAL API from LibreCAL repository 2025-02-19 12:34:43 +01:00
Jan Käberich d4df1c1b22 WIP: use Eigen::MatrixXcd in parameters in preparation for arbitrary number of ports 2025-02-14 17:52:44 +01:00
Jan Käberich ef8cdeccd7 Various bugfixes, mostly eye diagram related
- Update eye diagram when settings are changed but data is static
- Keep trace on eye diagram visible when random other trace is deleted
- resolve references when duplicating a math trace
- use correct trace output domain in various checks throughout the code
2025-02-14 14:03:09 +01:00
Jan Käberich 50bde261af Fix impedance renormalization + add unit tests 2025-02-09 12:59:11 +01:00
Jan Käberich 523946447a Force correct file ending when exporting touchstone files 2025-01-22 19:07:28 +01:00
Jan Käberich ab9605cb85 use trace model source and correct units for graph axes and edit dialogs 2025-01-08 08:59:04 +01:00
Jan Käberich 185f8a9e16 fix release_tag RPi5 upload url 2025-01-08 08:44:54 +01:00
Jan Käberich cd83921f49 Short switch to idle when the reference is changed 2025-01-07 08:30:17 +01:00
Jan Käberich ca25969574 Startup and communication bugfixes
- reduce amount of mode switched when starting and loading setups
- improve logging for errors during HIL tests
- fix small USB communication bugs
2025-01-06 17:34:46 +01:00
Jan Käberich 733d0ffbf4 fix order of LO1 and source unlock LEDs 2025-01-05 18:15:30 +01:00
Jan Käberich b77ba278de Improve spectrum analyzer
- revert LO2 shift mechanism (restores previous SA speed)
- allow tracking generator to reach all(?) frequencies with sufficient accuracy
2025-01-04 16:52:32 +01:00
Jan Käberich 8df7d1b7be adjust limits and run HIL tests in no-gui mode 2025-01-03 17:07:29 +01:00
Jan Käberich a4faeb28b0 Working dwell time feature
- Bugfixes:
	- improve SPI timing in FPGA
	- fix markers and reduce CPU load when using markers with fast traces
- New features:
	- dwell time configurable in acquisition toolbar
	- PLL settling delay in device configuration
	- device configuration persistent across power cycles
2025-01-03 14:36:10 +01:00
Jan Käberich 24314e2361 WIP: rework 2.LO + add dwell time 2025-01-02 19:16:53 +01:00
Jan Käberich a2abc0c2af speed up tests 2024-12-17 12:06:55 +01:00
Jan Käberich 70ac53aa75 add mutex for trace data (fixes DFT/TDR thread crashes) 2024-12-17 10:48:52 +01:00
Jan Käberich acb79fa3bc WIP: TDR/DFT improvements 2024-12-16 22:21:33 +01:00
Jan Käberich 4725942727 actually run temperature test + sanity check update 2024-12-15 18:11:25 +01:00
Jan Käberich e8482783f7 Add temperature and manual control SCPI commands 2024-12-15 17:40:19 +01:00
Jan Käberich f2b01f71c4 version bump + changelog 2024-12-07 16:23:28 +01:00
Jan Käberich a5b9195ac9 new SCPI command: delete traces 2024-12-07 15:54:35 +01:00
Jan Käberich 8be82589c5 make file drop work on Windows 2024-12-04 11:51:42 +01:00
Jan Käberich 199975bdd0 fix: clean device disconnection when loading setup files 2024-12-03 08:05:16 +01:00
Jan Käberich 6ea8869f7f TraceWidget: support dropping files for importing measurements 2024-12-02 18:11:20 +01:00
Jan Käberich 0b8e1a7b50 remove debug output 2024-12-02 14:23:54 +01:00
Jan Käberich 9e33a294cd fix tests 2024-12-02 14:02:34 +01:00
Jan Käberich b95e966041 Fix tests 2024-12-02 12:10:13 +01:00
Jan Käberich 82e215881a improve handling of SCPI commands received with short/no time between 2024-12-02 10:46:28 +01:00
Jan Käberich 57e6812cf8 fix for future qt versions: keep one instance of the calibation progressbar 2024-12-01 18:17:39 +01:00
Jan Käberich e2bbd6fad3 update Ubuntu install instructions 2024-11-14 15:20:00 +01:00
Jan Käberich 0cc4470cbf skip fixMacDylibs.sh for macos-latest 2024-11-03 13:56:53 +01:00
Jan Käberich 4dc75c13c5 macos libusb workflow fix 2024-11-03 13:48:17 +01:00
Jan Käberich 48cc3891cd macos libusb workflow fix 2024-11-03 13:43:00 +01:00
Jan Käberich 67a186be4f workflow update + minor bugs/warnings fixes 2024-11-03 13:36:54 +01:00
Jan Käberich 69b2fac95f new setting: chose pass/fail for limit checking of NaN/inf values 2024-11-03 13:15:26 +01:00
Jan Käberich 64a7ddc455 use native OS dialogs by default for load/save 2024-11-03 12:54:16 +01:00
Jan Käberich fc717a8f88 bugfixes from LibreCAL repo 2024-09-26 13:47:05 +02:00
Jan Käberich 6d6ffc60ea partial loading of coefficient sets 2024-09-25 17:58:32 +02:00
Jan Käberich 74858c1098 only use fast coefficient protocol for newer LibreCAL firmware 2024-09-25 15:45:35 +02:00
Jan Käberich 2c639d8080 Improved electronic calibration
- Added automatic port detection mode
- Faster coefficient readout
- LibreCAL using asynchronous libusb API
2024-09-25 15:30:42 +02:00
Jan Käberich 392cb6dc3f WIP: improve coefficient readout from LibreCAL 2024-09-24 19:19:43 +02:00
Jan Käberich f9d1b0de42 initialize missing measurements to 0 2024-09-18 10:18:43 +02:00
Jan Käberich 5fd77343ac allow calibration to continue with missing measurements (better than doing nothing) 2024-09-18 09:30:16 +02:00
Jan Käberich b9e4117db1 Import/export options in file menu 2024-09-16 20:56:02 +02:00
Jan Käberich 009de1af17 new SCPI command to switch between linear/log sweeps in VNA mode 2024-09-16 20:22:25 +02:00
Jan Käberich b09ea7da44 Merge branch 'master' of github.com:jankae/LibreVNA 2024-07-10 10:05:34 +02:00
Jan Käberich f2df7ad3f0 Shift TDR output from positive times only to centered around zero 2024-07-10 10:05:25 +02:00
Jan Käberich 2d0c857a12
Merge pull request #262 from kpobrien/Device_protocol_v13_edits
update DeviceInfo MinIFBW and MaxIFBW datatypes and recompile pdf
2024-07-02 07:42:29 +02:00
Kevin P. O'Brien 6a1f6a35b6 update DeviceInfo MinIFBW and MaxIFBW datatypes and recompile pdf 2024-07-01 18:30:59 -04:00
Jan Käberich 5f2788467b remove duplicate RUN and STOP commands for spectrum analyzer 2024-06-29 12:47:44 +02:00
Jan Käberich 4dea10552c option to link RHS ticks to LHS ticks on XY-plots 2024-06-29 12:44:10 +02:00
Jan Käberich 8b021cf5d1 fix upload_url for RPi release 2024-06-28 09:48:50 +02:00
Jan Käberich b4a22176a4 Changelog and version bump 2024-06-28 09:31:49 +02:00
Jan Käberich 2fbfb96dda Fix SCPI parsing for arguments containing ':'; allow lower case calibration file names 2024-06-24 09:04:17 +02:00
Jan Käberich 253e2d3517 example script for using the live streaming servers 2024-06-21 11:33:51 +02:00
Jan Käberich ee1adc0f85 Pick&place files as created by Eagle 2024-06-20 16:24:32 +02:00
Jan Käberich 45a30a4159 only stream data if calculations are performed + documentation of streaming servers 2024-06-20 16:21:39 +02:00
Jan Käberich 6ca54547bb added streaming servers 2024-06-20 15:56:38 +02:00
Jan Käberich 2ba954537b Add SCPI command to read/write the preferences 2024-06-20 14:40:06 +02:00
Jan Käberich aeea13347e Merge branch 'master' of github.com:jankae/LibreVNA 2024-06-02 19:40:10 +02:00
Jan Käberich b2d07d532d Improve graph divisions and markers
- Added group delay option to markers
- Additional configuration for calculation of group delay in the preferences
- Specify divisions as amount of divisions instead of spacing
- Add option for auto divisions on graph with manual min/max limits
2024-06-02 19:37:14 +02:00
Jan Käberich 61db859c3d delete math operations when deleting a trace 2024-05-28 11:07:39 +02:00
Jan Käberich fe08937bb7 Improve taking de-embedding measurements
- Automatically restart measurement even when the sweep was stopped
- Fix crash due to zeroed de-embedding reference impedance
- Fix crash due to not cleaned up dialog pointer with dangling connections
- Automatically excite the correct ports for the measurement
2024-05-17 19:07:34 +02:00
Jan Käberich e1168f2a32 Check for ID collisions when loading calibration standards 2024-05-10 18:12:37 +02:00
Jan Käberich 792a6a4974 continuous updates for TDR/DFT with optional rate limit 2024-05-08 20:00:15 +02:00
Jan Käberich 5ae57bfa9a Preset default traces in mixed mode conversion dialog 2024-05-08 10:42:28 +02:00
Jan Käberich 37c1064881 increase delays/timeouts for RPi in HIL tests 2024-05-01 15:37:39 +02:00
Jan Käberich 1edaceec4b run tests with offscreen plugin 2024-05-01 14:48:19 +02:00
Jan Käberich cdef035e74 allow more time for OPC poll with updated *RST settings 2024-05-01 14:08:30 +02:00
Jan Käberich 5692356e90 decouple RST settings from startup settings 2024-05-01 13:33:18 +02:00
Jan Käberich 77efc4d924 rename test workflow, add badges 2024-04-22 17:35:27 +02:00
Jan Käberich 2a3343d464 update other workflows 2024-04-22 17:17:14 +02:00
Jan Käberich dbc99c011d add documentation for new SCPI commands 2024-04-22 17:03:15 +02:00
Jan Käberich a6c70e0bfa enable start button in FW update dialog, remove unique lambda connection 2024-04-22 15:57:03 +02:00
Jan Käberich 77cd3a9d4b Add missing file + delay in RST test 2024-04-22 15:23:35 +02:00
Jan Käberich 0fc6c912fc Stop sweep after reset, fix failing tests 2024-04-22 15:08:10 +02:00
Jan Käberich c5d045364c Merge branch 'SCPI_improvement' into HIL_actions 2024-04-22 13:21:48 +02:00
Jan Käberich 2b521c4aaa Add firmware update command 2024-04-22 13:21:41 +02:00
Jan Käberich b09f409509 Adjust HIL workflow 2024-04-22 12:38:10 +02:00
Jan Käberich 6cc83a1aba Adjust HIL workflow 2024-04-22 12:37:41 +02:00
Jan Käberich 70c44d006d add return value to tests, allow GUI to start without display 2024-04-22 12:26:13 +02:00
Jan Käberich f897d98ab0 Adjust workflows, disable debug build for firmware 2024-04-22 12:05:53 +02:00
Jan Käberich e3b4972025 first test of self-hosted actions 2024-04-22 11:57:15 +02:00
Jan Käberich 792f678b99 Merge branch 'master' into SCPI_improvement 2024-04-20 15:59:31 +02:00
Jan Käberich a202a10507 Fix failing tests 2024-04-20 15:57:16 +02:00
Jan Käberich 2963e8b3d5 Reset refernence on *RST, fix VNA:ACQ:RUN? query 2024-04-20 15:56:57 +02:00
Scott Guthridge c1d1bc7aed Add integration tests for *RST 2024-04-19 23:46:09 -07:00
Scott Guthridge 15024eb91e Add tests for SCPI synchronization: *WAI, *OPC? and *OPC 2024-04-19 23:41:34 -07:00
Scott Guthridge 41033fdecd Add tests for SCPI status registers 2024-04-19 23:41:31 -07:00
Scott Guthridge 106832624a Shorten class libraVNA check_cmds, timeout arguments
default_check_cmds -> check_cmds
default_timeout -> timeout
2024-04-19 23:27:08 -07:00
Scott Guthridge 95e59769fd Update integration tests for SCPI improvements
libraVNA.cmd() no longer expects blank line responses.  By default,
it checks status after each command to match the previous behavior.
Check can be disabled by optional cmd() parameter for handling expected
failure cases.

Commands such as *WAI may take longer than anything previously.  Make
it possible to override the default time-out in cmd() and query().

Change poll loops in TestCalibration and TestVNASweep to *WAI calls.
2024-04-18 00:54:14 -07:00
Jan Käberich 3f6dad5b92 disable impedance for transmission traces, reword graph adjustment dialog 2024-04-16 21:31:30 +02:00
Jan Käberich 994b536bc6 improve XY-plot rendering, especially for logarithmic Y-axes 2024-04-16 21:13:23 +02:00
Jan Käberich cdfe95af17 Add YAxis: impedance and enable log option 2024-04-16 18:56:26 +02:00
Jan Käberich 3be48bddeb add sweep stop/run commands 2024-04-16 18:55:49 +02:00
Jan Käberich 645821a9bd Update SCPI documentation 2024-04-12 13:15:23 +02:00
Jan Käberich 5e75802bf4 do not set OPC bit for *OPC?, allow exponential notation in integer parameters 2024-04-12 12:23:54 +02:00
Jan Käberich 73ba0f9692 do not set operation pending if no device connected 2024-04-12 12:23:00 +02:00
Jan Käberich 626d4110e2 continue handling commands when multiple lines arrive at once 2024-04-10 20:00:15 +02:00
Jan Käberich bd781764fb CLS/ESE/ESR commands 2024-04-07 14:39:27 +02:00
Jan Käberich de3f3c092a omit response to commands 2024-04-07 14:22:57 +02:00
Jan Käberich 5d3ce139b4 implementation of OPC/WAI 2024-04-07 14:11:04 +02:00
Jan Käberich bb66883de2 Add RST command, parse command tree from root for each line 2024-04-07 12:54:42 +02:00
Jan Käberich 124feb5b6b update macOS action for releases 2024-04-05 12:13:29 +02:00
Jan Käberich f2ac39238c add explanation for temperatures in status bar 2024-04-05 11:57:27 +02:00
Jan Käberich a77d675a39 Improve averaging
- keep already acquired data when changing the amount of averaging
- add reset button for averaging
2024-04-05 11:49:27 +02:00
Jan Käberich d99dab35aa Improve automatic graph configuraion when traces change domains 2024-04-05 10:28:43 +02:00
nateof8 73a2a64158 Production files
Production files as sent to fabricator.
 Includes various PCB cleanup an the TCXO footprint change due to an unavailable part.
2024-03-25 22:18:16 -04:00
nateof8 677415bee8 Merge branch 'master' of https://github.com/nateof8/LibreVNA 2024-03-17 22:46:17 -04:00
Jan Käberich 7dd2c0501e keep de-embedding active when changing settings 2024-03-14 11:17:04 +01:00
Dan Chianucci 69f255d181 Removed Unused vias per DRC [Net-(IC34-EN)], [PORTSW2_CTL_F], [PORTSW1_CTL_F], [Net-(IC30-EN)]
Reverted Soldermask Extension for top cover plate
Regenerated Gerbers
2024-03-13 17:28:12 -04:00
nateof8 a62f9a77f1 Swapped LED1 and LED2
1) Swapped LED1 and LED2 identifiers to be consistent with original schematic and correct color in BOM
2024-03-11 23:08:13 -04:00
nateof8 2d319bcc76 Removed unused vias
Removed unused vias per DRC [Net-(IC34-EN)], [PORTSW2_CTL_F], [PORTSW1_CTL_F], [Net-(IC30-EN)]; verified unused against original gerbers
2024-03-10 22:29:54 -04:00
Jan Käberich 087bd8e4f1 re-compute calibration when a measurement is updated 2024-03-05 18:26:02 +01:00
Jan Käberich b26dc41907 full PDF schematic 2024-03-05 07:50:18 +01:00
Jan Käberich 6a65966846
Fix formatting 2024-03-03 10:59:05 +01:00
Jan Käberich a7aae7e8c6 documentation on how to download action builds 2024-03-03 10:53:15 +01:00
Jan Käberich e93e364079 update smith chart reference impedance when trace impedance changes but keep smith lines in place 2024-03-01 09:25:47 +01:00
Jan Käberich b7c2bf7cdd Merge branch 'master' of github.com:jankae/LibreVNA 2024-03-01 09:08:43 +01:00
Jan Käberich 358872904e Fix impedance renormalization and honor new reference impedance for traces 2024-03-01 09:08:37 +01:00
Dan Chianucci a247d304f1 Moved Old Gerbers into Eagle Subdirectory 2024-02-29 21:02:41 -05:00
Dan Chianucci 5ce832b7ec Generated Gerbers 2024-02-29 19:45:42 -05:00
Dan Chianucci 54149bfcb2 Added Initial Kicad Board 2024-02-29 14:58:33 -05:00
Dan Chianucci 83e948803c Moved EAGLE files into own directory 2024-02-29 12:13:30 -05:00
Jan Käberich a3223aa08c Version bump and changelog 2024-02-27 11:44:13 +01:00
Jan Käberich 38da235175 Fix size of device configuration dialog 2024-02-27 11:28:02 +01:00
Jan Käberich 5fee8ee974 reduce VCCint to 1.2V 2024-02-26 15:37:27 +01:00
Jan Käberich 21eb612601 improve MCP33131 sample timing 2024-02-26 15:37:07 +01:00
Jan Käberich ef5f9c1ab5 update BOM and PDF schematic 2024-02-26 15:29:20 +01:00
Jan Käberich 542b07f52c postpone deletion of caldialog to prevent race condition crash 2024-02-18 11:37:46 +01:00
Jan Käberich 993957d4d2 Fix calculation of through standard 2024-02-18 11:33:15 +01:00
Jan Käberich 4aa1564de0 Merge branch 'master' of github.com:jankae/LibreVNA 2024-02-17 19:45:55 +01:00
Jan Käberich 82dc84be8a improve SIUnitEdit behavior on windows when the value is changed while the widget has the focus 2024-02-17 19:45:43 +01:00
Jan Käberich 0afcbaac5d store packetlog with correct file ending 2024-02-11 11:46:57 +01:00
Jan Käberich 5136418e26 use frequency calibration when shifting 2.LO 2024-02-09 17:20:18 +01:00
Jan Käberich 15d893d3cc prevent crash when device disconnects while a dialog acquired control 2024-02-08 16:07:54 +01:00
Jan Käberich 2bbb8792d8 disable FFT mode for zero span 2024-02-04 16:11:10 +01:00
Jan Käberich 8c44a8de2d replot trace plot when moving marker 2024-02-03 18:57:25 +01:00
Jan Käberich 56de3dca11 Fix determination of excited ports 2024-02-03 18:34:28 +01:00
Jan Käberich 3bc9070eea option to match span to active calibration 2024-01-27 18:18:04 +01:00
Jan Käberich 8a900600f5 Remember user choice on questions 2024-01-27 18:04:14 +01:00
Jan Käberich ec4828d4c4 Allow changing Z0 in through standard 2024-01-20 21:19:25 +01:00
Jan Käberich ee16dbc070 Allow firmware update with invalid magic header after user confirmation 2024-01-13 19:08:51 +01:00
Jan Käberich ee8188775a minor improvements to eCal dialog 2024-01-13 18:21:29 +01:00
Jan Käberich c8efeea9b3
Update build instructions to Qt6 2024-01-04 17:45:36 +01:00
Jan Käberich 8c1d2d1f06 Bugfixes LibreCAL automatic calibration dialog 2024-01-04 15:55:55 +01:00
Jan Käberich 10e31356df Add new PID/VID for LibreCAL 2023-12-31 17:34:42 +01:00
Jan Käberich 3c567704ad
Merge pull request #234 from hpux735/master
WIP: Attempt to fix missing dylibs in macos
2023-12-19 07:14:11 +01:00
William Dillon 4fcd1abf85 Fix deployment 2023-12-17 19:07:46 -08:00
William Dillon 186d94fa94
Merge branch 'jankae:master' into master 2023-12-17 17:29:09 -08:00
Jan Käberich 67ce6718fe Remove unnecessary trace/type data in marker model 2023-12-17 19:51:23 +01:00
William Dillon 99d4d089b9
Attempt to fix missing dylibs in macos
First attempt; these commits will be collapsed when it's verified working.
2023-12-16 12:22:34 -08:00
Jan Käberich 054e7ed995 Fix for de-embedding menu on macOS 2023-12-15 16:08:23 +01:00
Jan Käberich ed0b968752 CI update test 2023-11-19 17:36:19 +01:00
Jan Käberich 07c2b8961e Bump version and update changelog 2023-11-18 18:01:56 +01:00
Jan Käberich 11612e44d5 added dialogs for hardware version 0xFE 2023-11-07 14:26:31 +01:00
Jan Käberich 772ef44d49 partial driver for SNA5000A 2023-10-31 18:49:08 +01:00
Jan Käberich 4c0d18b5f4 ignore other devices on startup when device serial specified 2023-10-31 13:28:59 +01:00
Jan Käberich 79290d0f36 Use trace data after math operations for eye diagram plot 2023-10-24 17:41:45 +02:00
Jan Käberich 503d689d51 reduce inter-segment delay, add integration test for segmented sweep 2023-10-24 16:39:21 +02:00
Jan Käberich ccb71f9650 Shortcuts for adding/removing plots 2023-10-24 14:04:31 +02:00
Jan Käberich 59f3057dd9 Fix segmented sweep 2023-10-23 19:29:01 +02:00
Jan Käberich 5a78091f2b Merge branch 'master' of github.com:jankae/LibreVNA 2023-09-05 11:13:13 +02:00
Jan Käberich 70a0079f92 Fix missing device log if USB connection is not established at power up 2023-09-05 11:13:05 +02:00
Jan Käberich 69fe833715 Fix calibration progress dialog 2023-07-30 13:09:47 +02:00
Jan Käberich 8a6bff5248 add new VID 2023-07-30 13:08:49 +02:00
Jan Käberich 1c09b8e1cb Clear old VNA data when starting new sweep 2023-07-30 13:08:27 +02:00
Jan Käberich 6901278185 update documentation 2023-07-30 13:08:06 +02:00
Jan Käberich 853cf310c9 Start GUI with ideal calibration standards 2023-07-29 18:11:57 +02:00
Jan Käberich 175cade3da Merge branch 'master' of github.com:jankae/LibreVNA 2023-07-24 10:29:20 +02:00
Jan Käberich d0620287a2 fix quality factor formula 2023-07-24 10:28:44 +02:00
Jan Käberich 94482fe151 New SCPI command: load/save setup files 2023-07-21 13:43:38 +02:00
Jan Käberich a697f65de6 De-embedding example scipt 2023-07-16 12:35:27 +02:00
Jan Käberich 0ba1493d19 Changes to standard SCPI commands: IDN/OPC 2023-07-16 12:35:10 +02:00
Jan Käberich 7370ed7f17 Merge branch 'qt6' 2023-07-16 12:22:28 +02:00
jankae 8962965883
Update path to .pro file 2023-06-29 17:31:05 +02:00
Jan Käberich 727040c132 Update to new VID/PID from pidcodes 2023-04-17 23:38:24 +02:00
Jan Käberich 1aaba21723 Improve graph axis labeling
- Use correct Y height to display full font
- Fix floating point issue when calculating amount of displayed digits
  in Unit::ToString
2023-04-05 17:13:21 +02:00
Jan Käberich 5f022c42b6 Ignore first point of next sweep when in single sweep mode, fix parsing of VFF MCU temperature in VNA log 2023-04-03 13:05:52 +02:00
Jan Käberich b729600cd8 adjust test workflow to qt6 2023-03-28 11:58:00 +02:00
Jan Käberich 50dd9e6002 Merge branch 'qt6' 2023-03-28 11:54:20 +02:00
Jan Käberich f422ef1274 remove qt6 branch as workflow trigger 2023-03-28 11:54:11 +02:00
Jan Käberich b0e44b9fcf Adjust documentation and release workflow to Qt6 2023-03-28 11:28:03 +02:00
Jan Käberich c18845fce5 removed warning, updated lohmann::json, fix qt6 static assertion error 2023-03-27 00:13:01 +02:00
Jan Käberich ac2d532b0c Attempt to adapt the github workflows to Qt6 2023-03-26 19:21:56 +02:00
Alexander Voronov f84a0f7c1a LibreVNA-GUI: Use Qt::BackgroundRole instead of Qt::BackgroundColorRole 2023-03-25 00:28:42 +03:00
Alexander Voronov 1c1ef29e7b LibreVNA-GUI:librevnatcpdriver: Convert QString to QByteArray 2023-03-25 00:28:42 +03:00
Alexander Voronov 84953d23d1 LibreVNA-GUI:Traces:tracepolot: Fix getting QWheelEvent position 2023-03-25 00:28:42 +03:00
Alexander Voronov 3f39a736e0 LibreVNA-GUI: Update QVariant usage 2023-03-25 00:28:42 +03:00
Alexander Voronov 76448e64ee LibreVNA-GUI: Use 'horizontalAdvance' instead of 'width' for text width 2023-03-25 00:28:42 +03:00
Alexander Voronov daf7218cfd LibreVNA-GUI: Remove obsolete 'setMargin' calls 2023-03-25 00:28:42 +03:00
Alexander Voronov 714953f8aa LibreVNA-GUI: Fix usage of QAbstractSocket's slot 'errorOccurred' 2023-03-25 00:28:42 +03:00
Alexander Voronov 8b17a445c7 LibreVNA-GUI: Remove obsolete QDesktopWidget inclusions 2023-03-25 00:28:42 +03:00
Alexander Voronov 7a561224e2 LibreVNA-GUI: Fix 'QButtonGroup' signals usage 2023-03-25 00:28:42 +03:00
Alexander Voronov 7a75a3cfbe LibreVNA-GUI:compounddriver: Fix obsolete 'toSet'/'toList'
See https://doc.qt.io/qt-5/qset-obsolete.html
and https://doc.qt.io/qt-5/qlist-obsolete.html
2023-03-25 00:28:42 +03:00
Alexander Voronov e12cc850db LibreVNA-GUI:CustomWidgets:siunitedit: Fix ambiguous conversion
This commit adds a static_cast to the 'QChar' for the keycode if it
is less than or equal to 255.
2023-03-25 00:28:42 +03:00
Alexander Voronov f0d0f3bde2 LibreVNA-GUI: Fix obsolete calls 'setBackgroundColor'
'setBackgroundColor' is deprecated. Instead we use 'setBackground'.
2023-03-25 00:28:42 +03:00
Alexander Voronov f4b8a0b3ad LibreVNA-GUI: Specify namespace for Qt::flush
This commit fixes compilation errors related to flush scoping.
2023-03-25 00:28:42 +03:00
Jan Käberich 7ebb1ea0c0 Apply button for preferences 2023-03-22 08:40:51 +01:00
Jan Käberich 9eb2a913b7 Fix parsing of timestamp in packet logs, change file ending 2023-03-21 13:03:10 +01:00
Jan Käberich 2111f5844a Fix polarity of fixed power setting in protocol documentation 2023-03-21 12:44:40 +01:00
Jan Käberich 4dd477f604 Apply buttons for graph setup dialogs 2023-03-19 21:43:03 +01:00
Jan Käberich 54de9fd6b0 Fix :DEV:CONN SCPI command 2023-03-17 18:51:40 +01:00
Jan Käberich f6ff4727c8 Debug-option: preserve phase for through measurements in compound driver 2023-03-17 18:51:27 +01:00
Jan Käberich 5e46055d3c Output time per sweep on debug console 2023-03-17 18:50:46 +01:00
Jan Käberich 87c1f4d576 Duplicate mode switch control in menu 2023-03-10 17:56:08 +01:00
Jan Käberich d30fa8b2ce Compound device driver improvements 2023-03-10 00:08:13 +01:00
Jan Käberich ce50ddc702 make reference impedance editable for math traces 2023-03-05 23:26:49 +01:00
Jan Käberich f5aeca60da add reference impedance to trace storage 2023-03-05 23:14:35 +01:00
Jan Käberich afda0e2994 Off-by-one bugfix for raw port receiver value 2023-03-05 23:06:52 +01:00
Jan Käberich 4caec3989e Fix impedance for mixed mode traces 2023-03-01 10:34:54 +01:00
Jan Käberich 99c6d77ad8 Device protocol update: support device with up to 4 ports 2023-02-23 23:04:50 +01:00
Jan Käberich a0c45d3c56 VFF device config update 2023-02-23 15:14:49 +01:00
Jan Käberich e05df7ef19 properly cleanup drag pointer 2023-02-21 13:56:30 +01:00
Jan Käberich 76c63e8585 remove debug output 2023-02-21 13:56:06 +01:00
Jan Käberich 1fc9ae0c0d Attempt to fix OSX workflow 2023-02-20 13:25:38 +01:00
Jan Käberich 9b4865dceb Renaming packet types, implementing different packet contents per hardware version 2023-02-20 13:08:31 +01:00
Jan Käberich 83dbfadf20 Nicer preset graph configuration for one port devices 2023-02-17 17:30:54 +01:00
Jan Käberich 8ac9707242 Safeguard against writing a wrong firmware to a different hardware version 2023-02-17 17:30:22 +01:00
Jan Käberich 0fd9d35a5d Cleanup old device.h file and register Protocol::AmplitudeCorrectionPoint as metatype 2023-02-17 16:31:32 +01:00
Jan Käberich 289a3909fd Change device connections to catch initial device status 2023-02-17 15:12:59 +01:00
Jan Käberich 5544bec231 When failing to open a device show normal message instead of error 2023-02-17 15:12:34 +01:00
Jan Käberich eb81fbdd25 use correct marker interpolation for markerToPixel 2023-02-16 00:40:22 +01:00
Jan Käberich ffeebc6ea6 remove debug output of position 2023-02-15 22:50:32 +01:00
Jan Käberich a2b8f2a00d Fix trace point calculation on distance X axis 2023-02-15 20:30:37 +01:00
Jan Käberich 045cf6cc65 Catch midnight rollover and reschedule replot timer 2023-02-16 00:01:13 +01:00
Jan Käberich 483c16bcbb add missing form to test project 2023-02-12 23:08:59 +01:00
Jan Käberich 952c43073e add IP address list for TCP drivers 2023-02-12 22:58:45 +01:00
Jan Käberich 9b5bb1678c moved USB/packet log into LibreVNA driver, cleanup old device class 2023-02-12 21:43:51 +01:00
Jan Käberich 9e858feeba Merge branch 'master' into DeviceInterface 2023-02-12 19:21:13 +01:00
Jan Käberich e16b4fca69 Fix sign error in SDC parameters 2023-02-12 19:20:56 +01:00
Jan Käberich 06912584b0 removing TODOs 2023-02-12 19:19:01 +01:00
Jan Käberich d02efdb146 Add warnings if calibration standard does not cover calibration measurement range 2023-02-12 13:21:07 +01:00
Jan Käberich d9b4da3a8f Merge branch 'master' into DeviceInterface 2023-02-10 12:32:55 +01:00
Jan Käberich a0fbd3ba8f v1.4.1 changes added 2023-02-10 12:32:14 +01:00
Jan Käberich 169d51d5ba LM3370 initialization fix 2023-02-10 12:20:35 +01:00
Jan Käberich fe6ee093cb Merge branch 'master' of github.com:jankae/LibreVNA 2023-02-10 11:55:20 +01:00
Jan Käberich ea4c637842 improve touchstone parsing robustness 2023-02-10 11:41:53 +01:00
Jan Käberich ad9e19c102 working SSA3000X driver 2023-02-08 22:57:17 +01:00
Jan Käberich b701479e87 WIP: working compound driver, partial SSA3000X as a demonstration 2023-02-07 18:30:05 +01:00
Jan Käberich 89e46057a5 LibreVNA settings widget 2023-02-06 18:06:50 +01:00
Jan Käberich 2c86cf1d6c LibreVNA TCP driver 2023-01-29 18:02:32 +01:00
Jan Käberich 80c5fc0ff6 LibreVNADriver specific actions 2023-01-25 23:07:33 +01:00
Jan Käberich cde564299c WIP: device driver abstraction 2023-01-17 00:25:58 +01:00
Jan Käberich db6d823e0f WIP: device driver abstraction 2023-01-16 00:25:29 +01:00
Jan Käberich 59e30e93c5 DeviceDriver base class 2023-01-15 00:41:49 +01:00
Jan Käberich 9776b81b45 Fix min calibration frequency after taking measurement 2023-01-14 19:56:03 +01:00
Jan Käberich 8aec59f32b Fix API for Windows 2023-01-08 13:55:27 +01:00
Jan Käberich 6aef3fe0ac Merge branch 'master' of github.com:jankae/LibreVNA 2023-01-05 19:53:03 +01:00
Jan Käberich 0dbf362f57 new marker type: negative peak table 2023-01-05 19:52:54 +01:00
Jan Käberich 3d51f1f497 .gitignore temp data 2022-12-22 22:16:50 +01:00
Jan Käberich b41b3e218e provide de-embedding data for rData() if available 2022-12-22 22:15:03 +01:00
Jan Käberich 77dfabc67f Fix import bug for through standard touchstone files 2022-12-21 16:51:38 +01:00
jankae d022f944c5
Merge pull request #182 from andredunford/sweep_standby
implement sweep standby operation
2022-12-21 08:29:27 +01:00
Andre Dunford cc8256b4cc commit missed changes to VNA.cpp 2022-12-20 11:42:11 -08:00
Andre Dunford 916d6e3e38 refactor evaluation of standby waiting state 2022-12-20 11:14:02 -08:00
Andre Dunford 5bb6fdf686 Revert "evaluate AUX3 in standby state"
This reverts commit ec5e0e208c.
2022-12-20 09:11:13 -08:00
Andre Dunford ec5e0e208c evaluate AUX3 in standby state 2022-12-20 01:16:22 -08:00
Andre Dunford fc8eee58e7 relocate standby condition 2022-12-18 16:54:47 -08:00
Andre Dunford 61594d53fb modify standby documentation 2022-12-17 23:04:50 -08:00
Andre Dunford 795b1eb3fa respond to InitiateSweep with nack when misconfigured 2022-12-17 01:19:46 -08:00
Andre Dunford 9a23938180
Merge branch 'jankae:master' into sweep_standby 2022-12-17 00:40:14 -08:00
Andre Dunford a294a92e2f update docs with standby configuration and InitiateSweep packet 2022-12-17 00:37:46 -08:00
Andre Dunford 08fa3fa0a0 implement sweep standby configuration 2022-12-16 23:41:59 -08:00
Jan Käberich 5ad44c780c Rename: non-uniformity -> flatness, also show lines 2022-12-16 22:29:21 +01:00
Jan Käberich e35766c7b8 assign signal receiver to delete connection when closing dialog 2022-12-16 14:16:09 +01:00
Jan Käberich be340f2adc Fix device connection when loading setups 2022-12-16 13:56:28 +01:00
Jan Käberich 0cc5968b12 Check device serial when loading calibration 2022-12-15 22:43:41 +01:00
Jan Käberich fe340ac620 Add virtual destructors, fix warnings 2022-12-15 00:00:15 +01:00
Jan Käberich 4568be8ff4 Merge branch 'master' of github.com:jankae/LibreVNA 2022-12-14 11:00:02 +01:00
Jan Käberich 886be660f6 New marker type: non-uniformity 2022-12-14 10:59:53 +01:00
Jan Käberich 2c62fe71a3 Prevent updating trace widget for every added de-embedding point 2022-12-13 11:32:49 +01:00
Jan Käberich 0c3046b9c7 Prevent error message when connecting to compound device on Windows 2022-12-13 11:32:21 +01:00
Jan Käberich 8778d82576 prevent scrolling when zooming graph 2022-12-12 23:09:27 +01:00
Jan Käberich fb347c37ac add scroll bars to graph area 2022-12-12 22:59:10 +01:00
Jan Käberich e6678435bd WIP: additional SCPI commands for de-embedding 2022-12-12 22:42:33 +01:00
Jan Käberich a0476d1bf2 raise exception when error is returned by cmd 2022-12-12 22:41:35 +01:00
Jan Käberich d674d05083 WIP: SCPI commands for de-embedding 2022-12-12 17:39:17 +01:00
Jan Käberich fa8f49086c Only evaluate file if filename has changed 2022-12-12 13:59:25 +01:00
Jan Käberich 7f5228d934 Add missing break 2022-12-12 13:58:59 +01:00
Jan Käberich 917b33f17d fix wrong format when saving 2xthru de-embedding 2022-12-12 10:57:23 +01:00
Jan Käberich 89c9f20d16 keep original trace data when de-embedding, toggle de-embedding view for individual traces 2022-12-11 20:37:29 +01:00
Jan Käberich b67275831b consider internal reflection path for matching network 2022-12-09 17:41:32 +01:00
Jan Käberich a84d8de0e6 Allow higher port number for de-embedding 2022-12-08 22:05:31 +01:00
Jan Käberich d30d444bc7 increase robustness of option line parsing 2022-12-08 14:19:20 +01:00
Jan Käberich 8db7f003ee new matching network option: defined shunt 2022-12-08 13:45:07 +01:00
Jan Käberich 32a5fac5ef Fix matching calculation order for remote port 2022-12-08 12:35:34 +01:00
Jan Käberich 77f73d3e05 Fix reference impedance for de-embedding traces 2022-12-08 00:02:51 +01:00
jankae 3cf37d17b1
Merge pull request #169 from andredunford/usb_docs
corrections to subsection headings
2022-12-07 11:21:48 +01:00
Andre Dunford 251a2a92b0 corrections to subsection headings 2022-12-07 02:15:02 -08:00
jankae 83e9817415
Merge pull request #168 from andredunford/update_dev_status
implement optional device status updates
2022-12-07 07:58:37 +01:00
Andre Dunford f3a05da1eb add new device status update packets to docs 2022-12-05 22:38:35 -08:00
Andre Dunford 9b38a1fc3d implement optional device status updates 2022-12-05 22:29:33 -08:00
jankae 35cdfa5922
Merge pull request #166 from andredunford/usb_docs
correction to sweep settings table
2022-12-01 22:15:58 +01:00
Andre Dunford 8c29d12e65 correction to signed data types 2022-12-01 12:21:29 -08:00
Andre Dunford de33f632e1 correction to sweep settings table 2022-12-01 10:43:45 -08:00
jankae e6dfc83330
Merge pull request #165 from andredunford/packet_constants
replace USB protocol literals with named constants
2022-11-30 21:40:15 +01:00
Andre Dunford f557a059ab
Merge branch 'jankae:master' into packet_constants 2022-11-29 11:26:39 -08:00
Andre Dunford be433c00cb include PacketConstants.h and update FW_CHUNK_SIZE reference 2022-11-29 09:59:18 -08:00
Andre Dunford 5bf824220e replace USB protocol literals with named constants 2022-11-29 00:44:27 -08:00
Jan Käberich cd4698d92f Attempt to fix OSX workflow 2022-11-27 18:55:33 +01:00
jankae 8531d399f3
Merge pull request #164 from andredunford/usb_docs
correction to usb device PID reference
2022-11-27 09:29:05 +01:00
Andre Dunford bcc3ea87c3 correction to usb device PID reference 2022-11-26 22:18:00 -08:00
jankae b5b758dc87
Merge pull request #163 from andredunford/scpi_review
fix duplicate condition in match() string comparisons
2022-11-26 18:34:24 +01:00
Andre Dunford c05b3a5c8b fix duplicate condition in match() string comparisons 2022-11-26 00:16:32 -08:00
Jan Käberich 73426459ef moved to -alpha.2, updated release workflow 2022-11-20 21:08:57 +01:00
Jan Käberich 0c17288ece SA/GEN integration tests + bugfixes 2022-11-20 20:48:36 +01:00
Jan Käberich ec6fae5822 Remove IFTable limitation, calculate 2.LO shift on the fly 2022-11-20 01:19:42 +01:00
Jan Käberich df8fa25935 Increase settling time for PLLs 2022-11-19 16:26:38 +01:00
Jan Käberich 32e2a4d96d Manufacturing files 2022-11-19 15:58:45 +01:00
Jan Käberich 46b41a4a04 Further integration tests 2022-11-19 15:47:08 +01:00
Jan Käberich 6e5f2635d1 Hardfault handler + FPGA abort/interrupt collision fix 2022-11-19 15:46:17 +01:00
Jan Käberich 5536d3b89b Merge branch 'master' of github.com:jankae/LibreVNA 2022-11-17 18:06:39 +01:00
Jan Käberich 30aa5f414f Bugfix calibration range calculation 2022-11-17 18:06:28 +01:00
Jan Käberich 94fc6ab840 Added calibration test with actual measurements 2022-11-17 18:06:18 +01:00
jankae 69b1d95ab5
Exchange picture for 6 layer version 2022-11-17 14:02:19 +01:00
Jan Käberich 2b9cc78e55 Pictures of 6-layer board 2022-11-17 13:59:27 +01:00
Jan Käberich 9b0853be01 Merged hardware changes from layout_6_layers 2022-11-17 12:21:34 +01:00
Jan Käberich d4d1d2d272 limit calibration span to selected standard 2022-11-17 12:06:15 +01:00
Jan Käberich a4b1978098 wait for lock on Si5351C 2022-11-17 12:05:52 +01:00
Jan Käberich aeaf9340d3 Add option to capture raw receiver values 2022-11-16 12:28:46 +01:00
Jan Käberich a29c323556 LibreCAL API udpate 2022-11-14 15:40:32 +01:00
Jan Käberich 60c280b454 Some integration tests 2022-11-14 00:09:19 +01:00
Jan Käberich b03c8b3958 Save/load calkit SCPI command + re-entrancy bugfix during calibration 2022-11-14 00:08:45 +01:00
Jan Käberich 9b7f457aa5 new command: :VNA:CAL:ACTIVE? + bugfixes in LibreCAL handling 2022-11-13 18:44:19 +01:00
Jan Käberich 879dfab882 Merge branch 'master' of github.com:jankae/LibreVNA 2022-11-09 23:29:46 +01:00
Jan Käberich 4ad3d3ac54 support saving of trace data in setup files 2022-11-09 23:29:37 +01:00
jankae c4f75916a4
Update description of necessary files 2022-11-09 23:27:48 +01:00
Jan Käberich 7d7bd3a44c Added mixed mode conversion dialog 2022-11-09 12:33:14 +01:00
Jan Käberich 1a1c9fd345 disable source if not used in active stage 2022-11-07 00:46:54 +01:00
Jan Käberich 93ade5afe6 Limit movement of markers to displayed span 2022-11-03 20:08:36 +01:00
Jan Käberich a0cacdfbef fix marker grab position 2022-11-03 20:08:14 +01:00
Jan Käberich e400f62f04 Fix calibration measurement interpolation bug 2022-11-02 22:42:06 +01:00
Jan Käberich aaea3cb3a3 increase displayed precision of calkit entries 2022-11-01 15:28:40 +01:00
Jan Käberich 5ace021e41 added mutexes 2022-11-01 01:12:04 +01:00
Jan Käberich 22542a81b6 attempt to restart USB communication 2022-10-31 22:14:59 +01:00
Jan Käberich f3eb560d61 USB logging 2022-10-31 22:06:23 +01:00
Jan Käberich 69f7c878b9 Fix calibration bug + improve device shutdown 2022-10-31 15:09:19 +01:00
Jan Käberich 39a91034d9 Do not send further USB packets when connections is stale 2022-10-31 15:09:00 +01:00
Jan Käberich 6500f67b5e various minor improvements 2022-10-31 11:25:33 +01:00
Jan Käberich e58a76c488 activate mode when created 2022-10-30 13:19:02 +01:00
Jan Käberich 6c1bc842f0 select individual default formats to show for markers 2022-10-30 13:05:05 +01:00
Jan Käberich 19a5e3f57e Selectable cursor format 2022-10-30 12:34:35 +01:00
Jan Käberich eff18a22e8 Improve load time of setup files by omitting excessive device configuration 2022-10-30 12:07:59 +01:00
Jan Käberich 2f5cbc80e9 Added run/stop button 2022-10-30 00:20:57 +02:00
Jan Käberich dfd1abeea5 pan/zoom for smith chart and polar plot 2022-10-29 22:59:17 +02:00
Jan Käberich 7889676ac7 fix crash on preferences save 2022-10-29 22:57:50 +02:00
Jan Käberich 6f0fb5430d Sweep indicator on graphs 2022-10-29 21:19:30 +02:00
Jan Käberich 1fcf25d060 Set full span behavior in preferences 2022-10-29 19:32:16 +02:00
Jan Käberich 6552100775 switch cursor label to black on light background 2022-10-29 19:11:55 +02:00
Jan Käberich 658e8252b1 improve USB protocol decoding 2022-10-28 00:14:24 +02:00
Jan Käberich 87429c076f copy/paste fix 2022-10-27 16:40:30 +02:00
Jan Käberich 5dfe2f02e7 small additions 2022-10-26 22:47:34 +02:00
Jan Käberich 514309f477 USB protocol description 2022-10-26 22:41:54 +02:00
Jan Käberich 2357052c95 remove rise/fall time restriction 2022-10-26 10:52:50 +02:00
Jan Käberich 2dd4edfae6 Improve old calibration import + graph pan/zoom settings 2022-10-25 14:21:09 +02:00
Jan Käberich c343cdf69f Improve autoscaling when no traces are visible, fix display issue of long tick labels 2022-10-25 13:23:08 +02:00
jankae 53702a8154
Merge pull request #156 from sophiekovalevsky/fix-std-runtime
prbs: add stdexcept
2022-10-25 00:35:10 +02:00
Jan Käberich 776ccf8d55 Add parsing of old calibration file format 2022-10-25 00:24:59 +02:00
Jan Käberich d2eb15c776 Copy only the required library 2022-10-24 22:26:17 +02:00
Kiara Navarro f4d69baa7d
prbs: add stdexcept 2022-10-24 09:06:22 -03:00
Jan Käberich 5ee4208c32 Remove unnecessary code 2022-10-24 00:10:49 +02:00
Jan Käberich 70488f8262 eye diagram thread rework + uninitialized variables fix 2022-10-24 00:08:10 +02:00
Jan Käberich 0539dea4ef use queued connections for all device signals 2022-10-23 21:19:53 +02:00
Jan Käberich a5e837076b Qt path fixed 2022-10-23 21:08:45 +02:00
Jan Käberich 44feac6e64 adjust workflows 2022-10-23 20:55:53 +02:00
Jan Käberich 3a9d169d46 Fixing variable initializations part 1 2022-10-23 20:34:20 +02:00
Jan Käberich 796a8cb3f9 update marker when restrict frequencies are changed 2022-10-21 19:51:38 +02:00
Jan Käberich cda27314b7 typos corrected 2022-10-21 19:55:08 +02:00
Jan Käberich b9b501bd00 Improve display of eye diagram 2022-10-21 19:50:06 +02:00
Jan Käberich ee3c6274ad Move eye diagram from tools to new graph type, enable zoom/pan on graphs 2022-10-21 16:50:04 +02:00
Jan Käberich 329f4487ee Improve impulse response interpolation 2022-10-20 15:58:57 +02:00
jankae 7ca93af620
Merge pull request #153 from marcel-vital/release-includes
Add missing configurations to release
2022-10-20 13:10:18 +02:00
Jan Käberich 5387019f5f Wait for calculation thread when closing dialog 2022-10-20 00:41:13 +02:00
Jan Käberich 168f3beec8 Graph axes + input value checking 2022-10-20 00:28:10 +02:00
Jan Käberich c7a99af820 partial eye diagram implementation 2022-10-19 17:31:14 +02:00
Marcel Vital 1401249d77
Add missing configurations to release 2022-10-19 10:49:20 +00:00
Jan Käberich 9a198217b8 Added de-embedding, electronic calibration and marker section 2022-10-19 11:48:35 +02:00
Jan Käberich 47b260711a Added math operations 2022-10-18 14:47:53 +02:00
Jan Käberich 7043ba1fee Added graph chapter to user manual 2022-10-14 19:43:02 +02:00
Jan Käberich a7f3565064 Improve autonaming of calibration 2022-10-14 17:55:46 +02:00
Jan Käberich 735aa1d746 Bugfix: allow taking of isolation measurements 2022-10-14 15:00:36 +02:00
Jan Käberich 615a9adacc User manual: calibration, compound devices, trace from math 2022-10-14 15:00:10 +02:00
Jan Käberich c5cbc8af20 Prevent activating calibration without defined calibration standard 2022-10-14 12:26:37 +02:00
Jan Käberich 532702f7fb Removed warnings 2022-10-14 00:27:22 +02:00
Jan Käberich 3f7fb99f58 Github actions test for calibration crash 2022-10-13 23:28:02 +02:00
Jan Käberich 4ae7b31a48 Fix test compile on windows 2022-10-11 14:37:24 +02:00
Jan Käberich 03eac96557 Prevent X axis label clipping for large font sizes 2022-10-08 13:29:17 +02:00
Jan Käberich 61a7a8e352 Uncommited user manual update 2022-10-05 22:18:10 +02:00
Jan Käberich 26ba329a0c Option: restrict marker position 2022-10-05 22:17:53 +02:00
jankae ce84370a03
Update CHANGELOG.md 2022-10-01 23:46:39 +02:00
jankae 90acbc1ca1
Update README.md 2022-10-01 23:34:27 +02:00
Jan Käberich 5a1e29ab73 Merge branch 'master' of github.com:jankae/LibreVNA 2022-10-01 23:30:30 +02:00
Jan Käberich 541b10f494 remove compoundDevice branch from workflows 2022-10-01 23:28:31 +02:00
Jan Käberich 63ebbf8348 Version number increase + boot LED debug reverted 2022-10-01 23:27:03 +02:00
Jan Käberich 101819fd36 moved udev rule file back to original place 2022-10-01 23:14:50 +02:00
Jan Käberich f56cb40e9c removed binary files from git 2022-10-01 23:13:30 +02:00
Jan Käberich d43a1e6e38 TRL calibration routine 2022-10-01 23:11:13 +02:00
Jan Käberich 2ef913f073 try GUI test with -platform offscreen 2022-10-01 20:31:32 +02:00
Jan Käberich b20e5598be Port extension test 2022-10-01 20:09:46 +02:00
Jan Käberich 96f8b6c90a split test and build workflow, adjust windows copy path 2022-10-01 17:25:07 +02:00
Jan Käberich fa7d789935 remove unused test code, adjust release workflow paths 2022-10-01 17:19:37 +02:00
Jan Käberich ba7ec1914d .github test failure check 2022-10-01 17:15:26 +02:00
Jan Käberich d8da82c74d remove binary 2022-10-01 17:14:18 +02:00
Jan Käberich 8d66770acf Move project, add simple test 2022-10-01 17:10:44 +02:00
Jan Käberich a58b705f08 Move project, add simple test 2022-10-01 17:10:34 +02:00
Jan Käberich fc1d006edd Sliding load support + TRL standard and measurements 2022-10-01 16:12:33 +02:00
Jan Käberich 858e945373 Add loss to load standard 2022-10-01 02:31:53 +02:00
Jan Käberich d2f1ca8f95 remove calEdited flag from VNA class 2022-10-01 02:31:42 +02:00
Jan Käberich 8dd747af62 Calibration SCPI API adjusted 2022-10-01 02:05:30 +02:00
Jan Kaeberich e41e321309 Fix limit command syntax 2022-09-20 03:14:05 +02:00
Jan Käberich 9cf76c9681 WIP: make de-embedding and calibration work with arbitrary number of ports 2022-09-13 21:42:47 +02:00
Jan Käberich 8301448343 Take automatic calibration measurements 2022-09-11 23:22:11 +02:00
Jan Käberich cb0e553a17 Parial eCal dialog 2022-09-10 00:06:54 +02:00
Jan Käberich 00ef868671 Merge branch 'master' into compoundDevice 2022-09-04 19:15:53 +02:00
Jan Käberich ab828ec292 Additional options for marker symbol style 2022-09-04 15:19:08 +02:00
Jan Käberich 0e0173f62a switched to new calibration implementation 2022-08-29 20:07:07 +02:00
Jan Käberich dced8105f2 WIP: general SOLT calculations + EIGEN library 2022-08-28 22:06:16 +02:00
Jan Käberich 5c1180e443 WIP: calibration measurement GUI widgets 2022-08-28 13:49:53 +02:00
Jan Käberich 6e38aaddb8 WIP: flexible calibration measurements 2022-08-27 15:28:45 +02:00
Jan Käberich b442736cb5 Save/load new calkit format 2022-08-26 19:25:24 +02:00
Jan Käberich 623aa2b29a Calkit with flexible number of standards 2022-08-26 00:46:53 +02:00
Jan Käberich 1c607d2c42 Preparations for new calkit format: individual cal standards 2022-08-25 16:59:11 +02:00
Jan Käberich 0ca87ec867 Fix trace parsing of old setup files 2022-08-23 12:20:07 +02:00
Jan Käberich 2b591aa362 Handle more than two ports in SCPI and SA/SG GUI 2022-08-23 00:37:25 +02:00
Jan Käberich 4107c6ca73 Merge branch 'master' into compoundDevice 2022-08-21 22:51:56 +02:00
Jan Käberich 0281f13ba6 Fix circle/line intersection 2022-08-21 22:51:48 +02:00
Jan Käberich c05d248f83 interrupt safe USB send function 2022-08-21 22:20:59 +02:00
Jan Käberich 5137457545 Merge branch 'master' into compoundDevice 2022-08-21 17:41:23 +02:00
Jan Käberich 71239842f6 Frequency range override for smith/polar chart 2022-08-21 17:38:46 +02:00
Jan Käberich 33726a815a Merge branch 'master' of github.com:jankae/LibreVNA 2022-08-21 13:03:19 +02:00
Jan Käberich 77bdd7fd4b Merge branch 'polar' 2022-08-21 13:02:40 +02:00
Jan Käberich 75ebed2b5d partial line drawing for smith/polar charts 2022-08-21 13:02:29 +02:00
Kiara Navarro 0f22bd1287
widgets/charts: implement base polar chart class 2022-08-10 17:49:26 -05:00
jankae adc873e776
Merge pull request #145 from sophiekovalevsky/minimize-tile-full-screen
tile: minimize full screen when adding new tile if its enabled
2022-08-09 14:03:50 +02:00
Jan Käberich 73e26a25c4 WIP: synchronization 2022-08-08 18:08:40 +02:00
Jan Käberich 7b3aa6e158 WIP: synchronization 2022-08-07 13:28:31 +02:00
Kiara Navarro 4d818db64c
tile: minimize full screen if its enabled when adding new graph 2022-08-06 20:13:59 -05:00
Jan Käberich 58918f81c1 WIP: device synchronization 2022-08-07 03:01:22 +02:00
Kiara Navarro 5b26a4a9c1
widgets/charts: implement polar diagram 2022-08-06 16:54:29 -05:00
Jan Käberich 047f6ce981 more flexible USB protocol for VNA settings/measurements 2022-08-06 16:22:12 +02:00
Jan Käberich 74e6a439af Compound device edit dialog 2022-08-05 18:29:31 +02:00
Jan Käberich 90ac9c57e1 basic working wrapper 2022-08-05 12:20:41 +02:00
Jan Käberich a530cea085 wrapper work 2022-08-04 20:12:15 +02:00
Jan Käberich f0a40417e4 Partial virtual device wrapper 2022-08-04 17:31:24 +02:00
Jan Käberich 6a27d39444 update contextmenu after editing smith chart settings 2022-07-28 15:51:18 +02:00
Jan Käberich 1c6422b524 Fix release workflows 2022-07-28 15:47:52 +02:00
Jan Käberich 181ba1d6bd Fix release action for embedded firmware 2022-07-24 21:39:07 +02:00
1272 changed files with 1597496 additions and 47195 deletions

2
.github/FUNDING.yml vendored Normal file
View file

@ -0,0 +1,2 @@
github: [jankae]

View file

@ -48,10 +48,11 @@ body:
validations:
required: true
- type: checkboxes
- type: markdown
attributes:
label: Confirming that you haven´t forgot to include configuration files (if applicable)
options:
- label: Setup file
- label: Calibration file
- label: Touchstone file of measurements
value: |
Please attach the following files if applicable:
- Setup file
- File->Save Setup
- If available, make sure that "include datapoints" under "Window->Preferences->Debug->Trace saving" is enabled
- Calibration file

View file

@ -4,38 +4,39 @@ on:
push:
branches:
- master
- embedded_firmware_ci
pull_request:
branches:
- master
jobs:
PC_Application_Ubuntu:
runs-on: ubuntu-18.04
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v4
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y libusb-1.0-0-dev qt5-default qt5-qmake qtbase5-dev
sudo apt-get install -y libusb-1.0-0-dev qt6-tools-dev qt6-base-dev libqt6svg6-dev libgl-dev
qtchooser -install qt6 $(which qmake6)
- name: Get build timestamp
id: id_date
run: echo "::set-output name=timestamp::$(date +%Y-%m-%d-%H-%M-%S)"
run: echo "timestamp=$(date +%Y-%m-%d-%H-%M-%S)" >> $GITHUB_OUTPUT
- name: Get app version
id: id_version
run: |
cd Software/PC_Application
cd Software/PC_Application/LibreVNA-GUI
fw_major=`grep -oP '(?<=FW_MAJOR=)[0-9]+' LibreVNA-GUI.pro`
fw_minor=`grep -oP '(?<=FW_MINOR=)[0-9]+' LibreVNA-GUI.pro`
fw_patch=`grep -oP '(?<=FW_PATCH=)[0-9]+' LibreVNA-GUI.pro`
echo "::set-output name=app_version::v$fw_major.$fw_minor.$fw_patch-${{steps.id_date.outputs.timestamp}}"
echo "app_version=v$fw_major.$fw_minor.$fw_patch-${{steps.id_date.outputs.timestamp}}" >> $GITHUB_OUTPUT
- name: Build application
run: |
cd Software/PC_Application
cd Software/PC_Application/LibreVNA-GUI
export QT_SELECT=qt6
qmake LibreVNA-GUI.pro
make -j9
shell: bash
@ -43,101 +44,138 @@ jobs:
- name: Upload artifact
env:
LIBREVNA_VERSION: "${{steps.id_version.outputs.app_version}}"
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: LibreVNA-GUI-Ubuntu-${{env.LIBREVNA_VERSION}}
path: Software/PC_Application/LibreVNA-GUI
path: Software/PC_Application/LibreVNA-GUI/LibreVNA-GUI
PC_Application_RPi5:
runs-on: RPi-HIL
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y libusb-1.0-0-dev qt6-tools-dev qt6-base-dev libqt6svg6-dev
- name: Get build timestamp
id: id_date
run: echo "timestamp=$(date +%Y-%m-%d-%H-%M-%S)" >> $GITHUB_OUTPUT
- name: Get app version
id: id_version
run: |
cd Software/PC_Application/LibreVNA-GUI
fw_major=`grep -oP '(?<=FW_MAJOR=)[0-9]+' LibreVNA-GUI.pro`
fw_minor=`grep -oP '(?<=FW_MINOR=)[0-9]+' LibreVNA-GUI.pro`
fw_patch=`grep -oP '(?<=FW_PATCH=)[0-9]+' LibreVNA-GUI.pro`
echo "app_version=v$fw_major.$fw_minor.$fw_patch-${{steps.id_date.outputs.timestamp}}" >> $GITHUB_OUTPUT
- name: Build application
run: |
cd Software/PC_Application/LibreVNA-GUI
qmake6 LibreVNA-GUI.pro
make -j9
shell: bash
- name: Upload artifact
env:
LIBREVNA_VERSION: "${{steps.id_version.outputs.app_version}}"
uses: actions/upload-artifact@v4
with:
name: LibreVNA-GUI-RPi5-${{env.LIBREVNA_VERSION}}
path: Software/PC_Application/LibreVNA-GUI/LibreVNA-GUI
PC_Application_Windows:
runs-on: windows-2019
runs-on: windows-2022
steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v4
- uses: msys2/setup-msys2@v2
- name: Install Qt
uses: jurplel/install-qt-action@v2
uses: jurplel/install-qt-action@v4
with:
version: '5.15.1'
arch: 'win64_mingw81'
version: '6.2.4'
arch: 'win64_mingw'
- name: Download libusb
run: |
curl -o libusb.7z -L https://github.com/libusb/libusb/releases/download/v1.0.23/libusb-1.0.23.7z
curl -o libusb.7z -L https://github.com/libusb/libusb/releases/download/v1.0.25/libusb-1.0.25.7z
7z x libusb.7z -r -olibusb
Xcopy /E /I /Y libusb\include ..\Qt\5.15.1\mingw81_64\include
Xcopy /E /I /Y libusb\MinGW64\static Software\PC_Application
Xcopy /E /I /Y libusb\include %QT_ROOT_DIR%\include
Xcopy /E /I /Y libusb\MinGW64\static\libusb-1.0.a Software\PC_Application\LibreVNA-GUI
shell: cmd
- name: Get build timestamp
shell: msys2 {0}
id: id_date
run: echo "::set-output name=timestamp::$(date +%Y-%m-%d-%H-%M-%S)"
run: echo "timestamp=$(date +%Y-%m-%d-%H-%M-%S)" >> $GITHUB_OUTPUT
- name: Get app version
id: id_version
shell: msys2 {0}
run: |
cd Software/PC_Application
cd Software/PC_Application/LibreVNA-GUI
fw_major=`grep -oP '(?<=FW_MAJOR=)[0-9]+' LibreVNA-GUI.pro`
fw_minor=`grep -oP '(?<=FW_MINOR=)[0-9]+' LibreVNA-GUI.pro`
fw_patch=`grep -oP '(?<=FW_PATCH=)[0-9]+' LibreVNA-GUI.pro`
echo "::set-output name=app_version::v$fw_major.$fw_minor.$fw_patch-${{steps.id_date.outputs.timestamp}}"
echo "app_version=v$fw_major.$fw_minor.$fw_patch-${{steps.id_date.outputs.timestamp}}" >> $GITHUB_OUTPUT
- name: Build application
run: |
cd Software/PC_Application
cd Software/PC_Application/LibreVNA-GUI
qmake LibreVNA-GUI.pro
make -j9
shell: cmd
- name: Deploy application
run: |
cd Software/PC_Application/release
cd Software/PC_Application/LibreVNA-GUI/release
del *.o *.cpp
windeployqt.exe .
copy ..\..\..\..\Qt\5.15.1\mingw81_64\bin\libwinpthread-1.dll .
copy ..\..\..\..\Qt\5.15.1\mingw81_64\bin\libgcc_s_seh-1.dll .
copy "..\..\..\..\Qt\5.15.1\mingw81_64\bin\libstdc++-6.dll" .
copy ..\..\..\..\Qt\5.15.1\mingw81_64\bin\Qt5OpenGL.dll .
copy %QT_ROOT_DIR%\bin\libwinpthread-1.dll .
copy %QT_ROOT_DIR%\bin\libgcc_s_seh-1.dll .
copy %QT_ROOT_DIR%\bin\Qt6OpenGL.dll .
shell: cmd
- name: Upload
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
env:
LIBREVNA_VERSION: "${{steps.id_version.outputs.app_version}}"
with:
name: GUI_Windows-${{env.LIBREVNA_VERSION}}
path: Software/PC_Application/release
path: Software/PC_Application/LibreVNA-GUI/release
PC_Application_OSX:
runs-on: macos-10.15
runs-on: macos-latest
steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v4
- name: Install dependencies
run: |
brew install qt@5 libusb
brew install qt@6 pcre
- name: Set Environment
run: |
echo "/usr/local/opt/qt@5/bin" >> $GITHUB_PATH
echo "/usr/local/opt/qt@6/bin" >> $GITHUB_PATH
- name: Get build timestamp
id: id_date
run: echo "::set-output name=timestamp::$(date +%Y-%m-%d-%H-%M-%S)"
run: echo "timestamp=$(date +%Y-%m-%d-%H-%M-%S)" >> $GITHUB_OUTPUT
- name: Get app version
id: id_version
run: |
cd Software/PC_Application
cd Software/PC_Application/LibreVNA-GUI
fw_major=`pcregrep -o '(?<=FW_MAJOR=)[0-9]+' LibreVNA-GUI.pro`
fw_minor=`pcregrep -o '(?<=FW_MINOR=)[0-9]+' LibreVNA-GUI.pro`
fw_patch=`pcregrep -o '(?<=FW_PATCH=)[0-9]+' LibreVNA-GUI.pro`
echo "::set-output name=app_version::v$fw_major.$fw_minor.$fw_patch-${{steps.id_date.outputs.timestamp}}"
echo "app_version=v$fw_major.$fw_minor.$fw_patch-${{steps.id_date.outputs.timestamp}}" >> $GITHUB_OUTPUT
- name: Build application
run: |
cd Software/PC_Application
cd Software/PC_Application/LibreVNA-GUI
qmake LibreVNA-GUI.pro
make -j9
macdeployqt LibreVNA-GUI.app
@ -147,15 +185,58 @@ jobs:
- name: Upload artifact
env:
LIBREVNA_VERSION: "${{steps.id_version.outputs.app_version}}"
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: LibreVNA-GUI-OSX-${{env.LIBREVNA_VERSION}}
path: Software/PC_Application/LibreVNA-GUI.zip
name: LibreVNA-GUI-OSX-latest-${{env.LIBREVNA_VERSION}}
path: Software/PC_Application/LibreVNA-GUI/LibreVNA-GUI.zip
PC_Application_OSX_13:
runs-on: macos-13
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
brew install qt@6 pcre
- name: Set Environment
run: |
echo "/usr/local/opt/qt@6/bin" >> $GITHUB_PATH
- name: Get build timestamp
id: id_date
run: echo "timestamp=$(date +%Y-%m-%d-%H-%M-%S)" >> $GITHUB_OUTPUT
- name: Get app version
id: id_version
run: |
cd Software/PC_Application/LibreVNA-GUI
fw_major=`pcregrep -o '(?<=FW_MAJOR=)[0-9]+' LibreVNA-GUI.pro`
fw_minor=`pcregrep -o '(?<=FW_MINOR=)[0-9]+' LibreVNA-GUI.pro`
fw_patch=`pcregrep -o '(?<=FW_PATCH=)[0-9]+' LibreVNA-GUI.pro`
echo "app_version=v$fw_major.$fw_minor.$fw_patch-${{steps.id_date.outputs.timestamp}}" >> $GITHUB_OUTPUT
- name: Build application
run: |
cd Software/PC_Application/LibreVNA-GUI
qmake LibreVNA-GUI.pro
make -j9
macdeployqt LibreVNA-GUI.app
zip -ry LibreVNA-GUI.zip LibreVNA-GUI.app
shell: bash
- name: Upload artifact
env:
LIBREVNA_VERSION: "${{steps.id_version.outputs.app_version}}"
uses: actions/upload-artifact@v4
with:
name: LibreVNA-GUI-OSX-13.7-${{env.LIBREVNA_VERSION}}
path: Software/PC_Application/LibreVNA-GUI/LibreVNA-GUI.zip
Embedded_Firmware:
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v4
- name: Install toolchain
run: |
@ -163,7 +244,7 @@ jobs:
- name: Get build timestamp
id: id_date
run: echo "::set-output name=timestamp::$(date +%Y-%m-%d-%H-%M-%S)"
run: echo "timestamp=$(date +%Y-%m-%d-%H-%M-%S)" >> $GITHUB_OUTPUT
- name: Get app version
id: id_version
@ -173,7 +254,7 @@ jobs:
fw_minor=`grep -oP '(?<=FW_MINOR=)[0-9]+' Makefile`
fw_patch=`grep -oP '(?<=FW_PATCH=)[0-9]+' Makefile`
hw_revision=`grep "DHW_REVISION=" Makefile | sed "s/-DHW_REVISION=\"'//" | sed "sr'\" [\]rr"`
echo "::set-output name=app_version::hw-rev-$hw_revision-v$fw_major.$fw_minor.$fw_patch-${{steps.id_date.outputs.timestamp}}"
echo "app_version=hw-rev-$hw_revision-v$fw_major.$fw_minor.$fw_patch-${{steps.id_date.outputs.timestamp}}" >> $GITHUB_OUTPUT
- name: Build application
run: |
@ -188,7 +269,7 @@ jobs:
shell: bash
- name: Upload
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
env:
LIBREVNA_VERSION: "${{steps.id_version.outputs.app_version}}"
with:

60
.github/workflows/HIL_Tests.yml vendored Normal file
View file

@ -0,0 +1,60 @@
name: HIL_Tests
on:
push:
branches:
- master
- HIL_actions
jobs:
Get_Repository:
runs-on: RPi-HIL
steps:
- uses: actions/checkout@v1
PC_Application_RPi5:
runs-on: RPi-HIL
needs: Get_Repository
steps:
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y libusb-1.0-0-dev qt6-tools-dev qt6-base-dev qt6-svg-dev
- name: Build application
run: |
cd Software/PC_Application/LibreVNA-GUI
qmake6 LibreVNA-GUI.pro
make -j9
shell: bash
Embedded_Firmware:
runs-on: RPi-HIL
needs: Get_Repository
steps:
- name: Install toolchain
run: |
sudo apt-get install -y gcc-arm-none-eabi binutils-arm-none-eabi
- name: Build application
run: |
cd Software/VNA_embedded
make -j9
cp build/VNA_embedded.elf ../../
shell: bash
- name: Combine with FPGA bitstream
run: |
python3 AssembleFirmware.py
shell: bash
HIL:
runs-on: RPi-HIL
needs: [PC_Application_RPi5, Embedded_Firmware]
steps:
- name: Run HIL tests
run: |
cd Software/Integrationtests
export DISPLAY=:0
python3 Integrationtest.py

View file

@ -8,29 +8,31 @@ on:
jobs:
PC_Application_Ubuntu:
runs-on: ubuntu-18.04
runs-on: ubuntu-22.04
outputs:
upload_url: ${{ steps.bump_release.outputs.upload_url }}
steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v4
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y libusb-1.0-0-dev qt5-default qt5-qmake qtbase5-dev zip
sudo apt-get install -y libusb-1.0-0-dev qt6-tools-dev qt6-base-dev libqt6svg6-dev libgl-dev zip
qtchooser -install qt6 $(which qmake6)
- name: Get app version
id: id_version
run: |
cd Software/PC_Application
cd Software/PC_Application/LibreVNA-GUI
fw_major=`grep -oP '(?<=FW_MAJOR=)[0-9]+' LibreVNA-GUI.pro`
fw_minor=`grep -oP '(?<=FW_MINOR=)[0-9]+' LibreVNA-GUI.pro`
fw_patch=`grep -oP '(?<=FW_PATCH=)[0-9]+' LibreVNA-GUI.pro`
echo "::set-output name=app_version::v$fw_major.$fw_minor.$fw_patch"
echo "app_version=v$fw_major.$fw_minor.$fw_patch" >> $GITHUB_OUTPUT
- name: Build application
run: |
cd Software/PC_Application
cd Software/PC_Application/LibreVNA-GUI
export QT_SELECT=qt6
qmake LibreVNA-GUI.pro
make -j9
zip LibreVNA-GUI.zip LibreVNA-GUI
@ -57,57 +59,95 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.bump_release.outputs.upload_url }}
asset_path: ./Software/PC_Application/LibreVNA-GUI.zip
asset_path: ./Software/PC_Application/LibreVNA-GUI/LibreVNA-GUI.zip
asset_name: LibreVNA-GUI-Ubuntu-${{env.LIBREVNA_VERSION}}.zip
asset_content_type: application/tar+gzip
PC_Application_RPi5:
needs: PC_Application_Ubuntu
runs-on: RPi-HIL
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y libusb-1.0-0-dev qt6-tools-dev qt6-base-dev qt6-svg-dev
- name: Get app version
id: id_version
run: |
cd Software/PC_Application/LibreVNA-GUI
fw_major=`grep -oP '(?<=FW_MAJOR=)[0-9]+' LibreVNA-GUI.pro`
fw_minor=`grep -oP '(?<=FW_MINOR=)[0-9]+' LibreVNA-GUI.pro`
fw_patch=`grep -oP '(?<=FW_PATCH=)[0-9]+' LibreVNA-GUI.pro`
echo "app_version=v$fw_major.$fw_minor.$fw_patch" >> $GITHUB_OUTPUT
- name: Build application
run: |
cd Software/PC_Application/LibreVNA-GUI
qmake6 LibreVNA-GUI.pro
make -j9
zip LibreVNA-GUI.zip LibreVNA-GUI
shell: bash
- name: 'Upload release asset'
uses: actions/upload-release-asset@v1
env:
LIBREVNA_VERSION: "${{steps.id_version.outputs.app_version}}"
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.PC_Application_Ubuntu.outputs.upload_url }}
asset_path: ./Software/PC_Application/LibreVNA-GUI/LibreVNA-GUI.zip
asset_name: LibreVNA-GUI-RPi5-${{env.LIBREVNA_VERSION}}.zip
asset_content_type: application/tar+gzip
PC_Application_Windows:
needs: PC_Application_Ubuntu
runs-on: windows-latest
runs-on: windows-2022
steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v4
- uses: msys2/setup-msys2@v2
- name: Install Qt
uses: jurplel/install-qt-action@v2
uses: jurplel/install-qt-action@v4
with:
version: '5.15.1'
arch: 'win64_mingw81'
version: '6.2.4'
arch: 'win64_mingw'
- name: Download libusb
run: |
curl -o libusb.7z -L https://github.com/libusb/libusb/releases/download/v1.0.23/libusb-1.0.23.7z
curl -o libusb.7z -L https://github.com/libusb/libusb/releases/download/v1.0.25/libusb-1.0.25.7z
7z x libusb.7z -r -olibusb
Xcopy /E /I /Y libusb\include ..\Qt\5.15.1\mingw81_64\include
Xcopy /E /I /Y libusb\MinGW64\static Software\PC_Application
Xcopy /E /I /Y libusb\include %QT_ROOT_DIR%\include
Xcopy /E /I /Y libusb\MinGW64\static\libusb-1.0.a Software\PC_Application\LibreVNA-GUI
shell: cmd
- name: Get app version
id: id_version
shell: msys2 {0}
run: |
cd Software/PC_Application
cd Software/PC_Application/LibreVNA-GUI
fw_major=`grep -oP '(?<=FW_MAJOR=)[0-9]+' LibreVNA-GUI.pro`
fw_minor=`grep -oP '(?<=FW_MINOR=)[0-9]+' LibreVNA-GUI.pro`
fw_patch=`grep -oP '(?<=FW_PATCH=)[0-9]+' LibreVNA-GUI.pro`
echo "::set-output name=app_version::v$fw_major.$fw_minor.$fw_patch"
echo "app_version=v$fw_major.$fw_minor.$fw_patch" >> $GITHUB_OUTPUT
- name: Build application
run: |
cd Software/PC_Application
cd Software/PC_Application/LibreVNA-GUI
qmake LibreVNA-GUI.pro
make -j9
shell: cmd
- name: Deploy application
run: |
cd Software/PC_Application/release
cd Software/PC_Application/LibreVNA-GUI/release
del *.o *.cpp
windeployqt.exe .
copy ..\..\..\..\Qt\5.15.1\mingw81_64\bin\libwinpthread-1.dll .
copy ..\..\..\..\Qt\5.15.1\mingw81_64\bin\libgcc_s_seh-1.dll .
copy "..\..\..\..\Qt\5.15.1\mingw81_64\bin\libstdc++-6.dll" .
copy ..\..\..\..\Qt\5.15.1\mingw81_64\bin\Qt5OpenGL.dll .
copy %QT_ROOT_DIR%\bin\libwinpthread-1.dll .
copy %QT_ROOT_DIR%\bin\libgcc_s_seh-1.dll .
copy %QT_ROOT_DIR%\bin\Qt6OpenGL.dll .
shell: cmd
- name: Zip app
@ -115,7 +155,7 @@ jobs:
env:
LIBREVNA_VERSION: "${{steps.id_version.outputs.app_version}}"
run: |
7z a LibreVNA-GUI_Windows-${{env.LIBREVNA_VERSION}}.zip ./Software/PC_Application/release
7z a LibreVNA-GUI_Windows-${{env.LIBREVNA_VERSION}}.zip ./Software/PC_Application/LibreVNA-GUI/release
- name: 'Upload release asset'
uses: actions/upload-release-asset@v1
@ -130,30 +170,30 @@ jobs:
PC_Application_OSX:
needs: PC_Application_Ubuntu
runs-on: macos-10.15
runs-on: macos-latest
steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v4
- name: Install dependencies
run: |
brew install qt@5 libusb
brew install qt@6 pcre
- name: Set Environment
run: |
echo "/usr/local/opt/qt@5/bin" >> $GITHUB_PATH
echo "/usr/local/opt/qt@6/bin" >> $GITHUB_PATH
- name: Get app version
id: id_version
run: |
cd Software/PC_Application
cd Software/PC_Application/LibreVNA-GUI
fw_major=`pcregrep -o '(?<=FW_MAJOR=)[0-9]+' LibreVNA-GUI.pro`
fw_minor=`pcregrep -o '(?<=FW_MINOR=)[0-9]+' LibreVNA-GUI.pro`
fw_patch=`pcregrep -o '(?<=FW_PATCH=)[0-9]+' LibreVNA-GUI.pro`
echo "::set-output name=app_version::v$fw_major.$fw_minor.$fw_patch"
echo "app_version=v$fw_major.$fw_minor.$fw_patch" >> $GITHUB_OUTPUT
- name: Build application
run: |
cd Software/PC_Application
cd Software/PC_Application/LibreVNA-GUI
qmake LibreVNA-GUI.pro
make -j9
macdeployqt LibreVNA-GUI.app
@ -167,15 +207,58 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.PC_Application_Ubuntu.outputs.upload_url }}
asset_path: ./Software/PC_Application/LibreVNA-GUI.zip
asset_name: LibreVNA-GUI-OSX-${{env.LIBREVNA_VERSION}}.zip
asset_path: ./Software/PC_Application/LibreVNA-GUI/LibreVNA-GUI.zip
asset_name: LibreVNA-GUI-OSX-latest-${{env.LIBREVNA_VERSION}}.zip
asset_content_type: application/tar+gzip
PC_Application_OSX_13:
needs: PC_Application_Ubuntu
runs-on: macos-13
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
brew install qt@6 pcre
- name: Set Environment
run: |
echo "/usr/local/opt/qt@6/bin" >> $GITHUB_PATH
- name: Get app version
id: id_version
run: |
cd Software/PC_Application/LibreVNA-GUI
fw_major=`pcregrep -o '(?<=FW_MAJOR=)[0-9]+' LibreVNA-GUI.pro`
fw_minor=`pcregrep -o '(?<=FW_MINOR=)[0-9]+' LibreVNA-GUI.pro`
fw_patch=`pcregrep -o '(?<=FW_PATCH=)[0-9]+' LibreVNA-GUI.pro`
echo "app_version=v$fw_major.$fw_minor.$fw_patch" >> $GITHUB_OUTPUT
- name: Build application
run: |
cd Software/PC_Application/LibreVNA-GUI
qmake LibreVNA-GUI.pro
make -j9
macdeployqt LibreVNA-GUI.app
zip -ry LibreVNA-GUI.zip LibreVNA-GUI.app
shell: bash
- name: 'Upload release asset'
uses: actions/upload-release-asset@v1
env:
LIBREVNA_VERSION: "${{steps.id_version.outputs.app_version}}"
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.PC_Application_Ubuntu.outputs.upload_url }}
asset_path: ./Software/PC_Application/LibreVNA-GUI/LibreVNA-GUI.zip
asset_name: LibreVNA-GUI-OSX-13.7-${{env.LIBREVNA_VERSION}}.zip
asset_content_type: application/tar+gzip
Embedded_Firmware:
needs: PC_Application_Ubuntu
runs-on: ubuntu-18.04
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v4
- name: Install toolchain
run: |
@ -189,7 +272,7 @@ jobs:
fw_minor=`grep -oP '(?<=FW_MINOR=)[0-9]+' Makefile`
fw_patch=`grep -oP '(?<=FW_PATCH=)[0-9]+' Makefile`
hw_revision=`grep "DHW_REVISION=" Makefile | sed "s/-DHW_REVISION=\"'//" | sed "sr'\" [\]rr"`
echo "::set-output name=app_version::hw-rev-$hw_revision-v$fw_major.$fw_minor.$fw_patch"
echo "app_version=hw-rev-$hw_revision-v$fw_major.$fw_minor.$fw_patch" >> $GITHUB_OUTPUT
- name: Build application
run: |

35
.github/workflows/Test.yml vendored Normal file
View file

@ -0,0 +1,35 @@
name: Unit_Tests
on:
push:
branches:
- master
pull_request:
branches:
- master
jobs:
Tests:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v1
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y libusb-1.0-0-dev qt6-tools-dev qt6-base-dev libqt6svg6-dev libgl-dev
qtchooser -install qt6 $(which qmake6)
- name: Build Tests
run: |
cd Software/PC_Application/LibreVNA-Test
export QT_SELECT=qt6
qmake LibreVNA-Test.pro
make -j9
shell: bash
- name: Run Tests
run: |
cd Software/PC_Application/LibreVNA-Test
./LibreVNA-Test -platform offscreen

View file

@ -1,5 +1,155 @@
# Changelog
## v1.6.4
Critical bugfix for the embedded firmware:
- Fix SPI flash timing, see #315
Minor improvement for the GUI:
- Option to add titles to graphs
- Show trace names even when only enabled on secondary Y axis
- Add x axis variable to the available variables for formulas in "from math" traces
## v1.6.3
Bugfixes and quality of life improvements
- Windows and macOS: add icon to GUI application
- From math traces:
- Validate formula immediately and show error messages
- Bugfix: do not reset variable names when opening trace edit dialog again
- Fix crash when combining with de-embedding
- Calibration:
- Interpolate points using mag/phase instead of real/imag (minor improvements in accuracy)
- Update widget when changing span
- Fix race condition when aborting measurement
- Reset LibreCAL port settings when aborting measurement
- Manual improvement: typos and wording
- Increase USB buffer timeout during sweep (should prevent disconnect when CPU is very busy)
- Include actual serial of connected device in SCPI \*IDN? response
- Allow group delay plot for reflection traces
- Configurable default Y axis limits per Y axis type
- Fix streaming server output for zero span sweeps
- Synchronization improvements for compound device
- Allow name changes for existing modes
## v1.6.2
Mostly bugfixes with only minor new features
- New features:
- New SCPI commands:
- Temperatures readout
- Complete control over manual control via SCPI
- Padding option for TDR/DFT to increase resolution
- Support for dwell time (adjustable delay before each point in the sweep)
- Bugfixes:
- Fix crash when deleting traces with TDR/DFT math
- Spectrum analyzer: Improve tracking generator frequency accuracy
- Fix swapped LO and Source unlock LEDs
- Reduce amount of mode switches when starting and loading setups (faster loading time)
- Use correct units on spectrum analyzer graphs (dBm instead of dB)
- Fix Touchstone export file ending
- Update eye diagram when changing settings while the trace data does not change
- Keep eye diagram trace visible when other trace is deleted
- Resolve math references when duplicating "from math" traces
- Update LibreCAL API, detect LibreCALs with bad factory coefficients
- Fix impedance renormalization (general formulas for parameter conversions)
- Fix rare and random phase reversals of S parameter measurements
## v1.6.1
Mostly bugfixes with only minor new features
- New features:
- New SCPI commands:
- switch between linear/log sweeps in VNA mode
- delete traces
- Option to align axis ticks for left and right Y-axes
- Import/export options in file menu
- User-selectable handling of NaN values for limit checking
- drop files on trace list to import them
- Bugfixes:
- center TDR output values at zero (fixes impedance calculations in cases where there is a reflection from before the calibration plane)
- fix calibration calculation when non-required S parameters are not available
- improve LibreCAL coefficient extraction
- use native OS dialogs for opening/saving files
- future Qt version fix: prevent crash after taking calibration measurement
- SCPI command handling improved
- fix menus after loading setup files in certain scenarios
## v1.6.0
This update contains API breaking changes to the SCPI server. This was necessary because the previous implementation did not follow the standard completely. If you were talking to the SCPI server directly yourself, you will need to make the required changes. If you are using the provided libreVNA.py class, you just need to update that file.
- New featues:
- New SCPI command: read/write preferences
- New API: option to stream live trace data
- Bugfixes and improvements:
- Keep de-embedding active when changing settings
- Improvements to trace averaging
- adjust SCPI API to conform better with the standard:
- new required commands RST, CLS, ESE, ESR, OPC and WAI
- no responses to commands, errors are reported through status registers instead
- TDR updates happen during a sweep not just afterwards (with configurable update rate)
- Additional sanity checks when loading calibration files
## v1.5.1
Mostly bugfixes with only minor new features
- New features:
- Z0 of through standard now adjustable
- Option to automatically adjust the span to the active calibration
- Bugfixes:
- Make De-embedding menu visible on MacOS
- Detection of handling of LibreCAL in the automatic calibration dialog
- Allow updates of devices with older firmwares (a matching older GUI version had to be used previously)
- Fix port excitation when not all S-parameters are measured
- Do not use DFT in spectrum analyzer when in zero span mode
- Readback of certain GUI values on Windows now correct (was stuck on 0 before)
- Prevent crash when disconnecting the device while a dialog was open
- Prevent occasional crash at the end of calibration measurements
- Fix spikes in sweep when a frequency calibration is set
- Improve sample timing between ADC and FPGA (resulted in very noisy traces on some devices)
## v1.5.0
- New features:
- Further abstraction from the LibreVNA hardware. The GUI now supports VNAs with up to 8 ports
- Capsulation of communication to the hardware inside of the DeviceDriver class. This simplifies the integration of drivers for other equipment
- Experimental drivers for Siglent SSA3000X and SNA5000A series devices as examples
- Allow cascading of muliple LibreVNAs, see Preferences->Device Drivers->LibreVNA/Compound. You need to configure a compound device first (consisting of up to 4 LibreVNAs). Afterwards, you are able to use them as one larger, virtual VNA with more ports (or more physical separation between the ports). Measurements within one physical LibreVNA will contain phase information, measurements between different LibreVNAs have their phase set to zero
- Support for calibrating with sliding loads
- New graph type: Eye Diagram
- Restrict markers to a certain frequency range
- Switched to a dedicated USB VID/PID thanks to pid.codes
- Switched to Qt6
- Easier
- API-breaking changes: Unfortunately, some major rework was required to make the GUI compatible to devices with more than two ports. In some areas, the file storage format and the SCPI API had to change. Almost all changes are within the calibration system.
- Calibration kit file format changed (old calibration kits can be imported)
- Calibration file format changed (old calibration can be imported)
- Calibration API changed significantly, see Programming Guide
- Lots of bugfixes, for example:
- Fix X-label clipping on graphs
- Prevent activation of a calibration without defined calibration standards
- Fix isolation measurements for calibration
- Valgrind issues fixed (mostly variable initializations)
- made USB communication more robust
- PLL locking issue fixed
- no more disappearing device log
## v1.4.1
- Bugfix: Configure voltage regulator for correct voltage at startup
## v1.4.0
- New features:

View file

@ -12,17 +12,17 @@ Creating all the different parts from the source code requires quite a few tools
## Building the PC application:
* Install the required tools (Qt and libusb-1.0):
```
sudo apt-get install qt5-default qt5-qmake qtbase5-dev libusb-1.0-0-dev
sudo apt-get install libusb-1.0-0-dev qt6-tools-dev qt6-base-dev
```
* Build the application:
* either:
```
cd Software/PC_Application
qmake
cd Software/PC_Application/LibreVNA-GUI
qmake6
make
```
* or:
* Open Software/PC_Application/Application.pro with Qt Creator
* Open Software/PC_Application/LibreVNA-GUI/LibreVNA-GUI.pro with Qt Creator
* Build the application with Qt Creator
## Building the MCU firmware:

Binary file not shown.

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,27 @@
# Download automatically build binaries
The Github actions are set up in such a way that binary files are created for each commit on the master branch. Feel free to try them out if you want the latest features but be prepared to find some unfinished things in them as well.
## Finding the binaries
1. Switch to the `Actions` tab in the repository:
![Binaries1](Screenshots/Binaries1.png)
2. Each commit will trigger two workflow runs, one for the binaries and one for some automated tests. Pick a commit and chose the workflow run with the higher build number:
![Binaries2](Screenshots/Binaries2.png)
4. The next window should look like this:
![Binaries3](Screenshots/Binaries3.png)
If it looks like this instead, you have picked the test workflow run (which does not contain any binaries):
![Binaries4](Screenshots/Binaries4.png)
5. Scroll down to find the binaries:
![Binaries5](Screenshots/Binaries5.png)
6. Click on an artifact to download it. If that doesn't seem to work, check that you are logged in on Github (required for the download)

View file

@ -13,6 +13,7 @@
{geometry}
\usepackage{tikz}
\usepackage{siunitx}
\usepackage{minibox}
\DeclareSIUnit{\belmilliwatt}{Bm}
\DeclareSIUnit{\dBm}{\deci\belmilliwatt}
@ -65,12 +66,17 @@ MOSI & in & MOSI for SPI communication/MOSI for PLL communication\\
MISO & out & MISO for SPI communication/MUX for PLL communication\\
NSS & in & Chip Select for SPI communication/LE for PLL communication\\
INTR & out & Active high interrupt indicator\\
RESET & in & FPGA reset\\
RESET\footnotemark & in & FPGA reset\\
AUX1 & in & Selector for direct communication with Source PLL\\
AUX2 & in & Selector for direct communication with LO PLL\\
AUX3 & in & Active low sweep enable. Has to be high when changing settings\\
Trigger In\footnotemark & in & Trigger input for synchronization across devices\\
Trigger Out\footnotemark & Out & Trigger output for synchronization across devices\\
\end{tabular}
\end{center}
\footnotetext[1]{Reset is named "MCU\_FPGA\_UNUSED1" in the schematic as this is a later software addition}
\footnotetext[2]{Trigger In is named "MCU\_FPGA\_UNUSED2" in the schematic as this is a later software addition}
\footnotetext[3]{Trigger Out is named "MCU\_FPGA\_UNUSED3" in the schematic as this is a later software addition}
Depending on the voltage on AUX1/AUX2 the SPI port controls either the FPGA or one of the MAX2871 PLLs:
\begin{center}
\begin{tabular}{ c|c|c }
@ -343,9 +349,9 @@ The register contains the number of points per sweep negative one, e.g. set to 1
\rwbits{9}{2}{Window[1:0]}
\rwbits{11}{1}{SCEN}
\rwbits{12}{1}{LCEN}
\robits{13}{2}{reserved}
\robits{13}{1}{reserved}
%\rwbits{13}{1}{EXP2}
%\rwbits{14}{1}{EXP1}
\rwbits{14}{1}{SYM}
\rwbits{15}{1}{PSEN}
\end{tikzpicture}
\end{center}
@ -373,7 +379,7 @@ Setting & Window type\\
\item \textbf{SCEN:}{Source chip enable}
\item \textbf{LCEN:}{LO chip enable}
%\item \textbf{EXP1:}{Excite Port1 during sweep}
%\item \textbf{EXP2:}{Excite Port2 during sweep}
\item \textbf{SYM:}{Sync master, see also section~\ref{synchronization}. If multiple devices are combined, exactly one must have this bit set.}
\item \textbf{PSEN:}{Port switch enable}
\end{itemize}
@ -415,7 +421,7 @@ Each point in the sweep is done in stages. Each stage consists of (optionally) r
\begin{tikzpicture}
\bitrect{16}{16-\bit}
\rwbits{0}{3}{Stages}
\rwbits{3}{1}{IH}
\rwbits{3}{1}{SYNC}
\robits{4}{6}{reserved}
\rwbits{10}{3}{Port 1 stage}
\rwbits{13}{3}{Port 2 stage}
@ -423,7 +429,7 @@ Each point in the sweep is done in stages. Each stage consists of (optionally) r
\end{center}
\begin{itemize}
\item \textbf{Stages} Number of stages per point - 1. Normally the number of stages is equal to the number of ports but it can also be less (e.g. if only S11 is measured).
\item \textbf{IH:} Individual halt: Sets the behavior of the "halt sweep" bit (see section~\ref{sweepconfig}). If 1, the sampling is halted before each stage. If 0, the sampling is only halted before the point and all stages are executed without additional halts inbetween.
\item \textbf{SYNC:} Enables synchronization mode (see section~\ref{synchronization}).
\item \textbf{Port 1 stage} Number of stage during which the source signal is routed to port 1. Must not have the same value as Port 2 stage.
\item \textbf{Port 2 stage} Number of stage during which the source signal is routed to port 2. Must not have the same value as Port 1 stage.
\end{itemize}
@ -529,6 +535,26 @@ $$ f_{firstBin} = \frac{SR_{ADC} * DFT\_FIRST\_BIN}{2^{16}}$$
$$ \Delta f = \frac{SR_{ADC} * DFT\_FREQ\_SPACING}{2^{24}}$$
\end{itemize}
\subsection{SETTLING\_TIME: 0x14}
\begin{center}
\begin{tikzpicture}
\bitrect{16}{16-\bit}
\rwbits{0}{16}{SETTLING\_TIME[15:0]}
\end{tikzpicture}
\end{center}
\begin{itemize}
\item \textbf{SETTLING\_TIME[19:0]:} This value determines the time delay between applying the stimulus signal and the beginning of the ADC sampling.
$$ t_{delay} = \frac{1}{\SI{102.4}{\mega\hertz}} SETTLING\_TIME $$
\end{itemize}
\subsection{SETTLING\_TIME: 0x15}
\begin{center}
\begin{tikzpicture}
\bitrect{16}{16-\bit}
\robits{0}{12}{reserved}
\rwbits{12}{4}{SETTLING\_TIME[19:16]}
\end{tikzpicture}
\end{center}
\section{SweepConfig}
\label{sweepconfig}
The SweepConfig contains data for the source and LO1 PLL as well as the attenuator and source filter. Each point in the sweep, needs a valid SweepConfig before the sweep is started.
@ -537,7 +563,9 @@ The SweepConfig contains data for the source and LO1 PLL as well as the attenuat
\begin{tikzpicture}
\bitrect{16}{96-\bit}
\rwbits{0}{1}{HS}
\rwbits{1}{2}{SettlingTime}
%\rwbits{1}{2}{SettlingTime}
\rwbits{1}{1}{\tiny LO N[6]}
\rwbits{2}{1}{\minibox{\tiny Source\\N[6]}}
\rwbits{3}{3}{Samples}
\rwbits{6}{2}{SourceFilter}
\rwbits{8}{8}{LO M[11:4]}
@ -575,17 +603,17 @@ The SweepConfig contains data for the source and LO1 PLL as well as the attenuat
\end{center}
\begin{itemize}
\item \textbf{HS: Halt sweep.} If set, settling and sampling of this sweep point will be postponed until the sweep resume command is issued.
\item \textbf{SettlingTime:} Amount of time between locking of PLLs and beginning of ADC sampling
\begin{center}
\begin{tabular}{ c|c }
Setting & Time\\
\hline
00 & \SI{20}{\micro\second}\\
01 & \SI{60}{\micro\second}\\
10 & \SI{180}{\micro\second}\\
11 & \SI{540}{\micro\second}\\
\end{tabular}
\end{center}
%\item \textbf{SettlingTime:} Amount of time between locking of PLLs and beginning of ADC sampling
%\begin{center}
%\begin{tabular}{ c|c }
%Setting & Time\\
%\hline
%00 & \SI{20}{\micro\second}\\
%01 & \SI{60}{\micro\second}\\
%10 & \SI{180}{\micro\second}\\
%11 & \SI{540}{\micro\second}\\
%\end{tabular}
%\end{center}
\item \textbf{Samples:} Number of ADC samples to take
\begin{center}
\begin{tabular}{ c|c|c }
@ -715,4 +743,37 @@ Each point in the sweep generates a sampling results for each stage (see section
\end{tikzpicture}
\end{center}
\section{Synchronization}
\label{synchronization}
The FPGA supports synchronization of the sweep across multiple devices. This feature can be enabled by setting the SYNC bit in the sweep setup register (see section~\ref{reg:sweepsetup}). When enabled, the following conditions must be met:
\begin{itemize}
\item All participating devices must be connected in a loop via the trigger input and output pins. The order of the devices is not important.
\item All devices must use the same sweep settings with the exception of the "Port 1 stage" and "Port 2 stage" settings in the sweep setup register.
\item The port stages must be configured in such a way, that for each stage exactly one port is active in one device.
\end{itemize}
The synchronization works by delaying sampling until the stimulus signal is present, even when generated by another device. For each sampling stage, performs the following steps:
\begin{itemize}
\item When the device is the synchronization master (SYM bit set):
\begin{itemize}
\item Set up source and 1.LO PLLs
\item If applicable: wait for the "resume sweep" command
\item Set the trigger output to high
\item Wait for high level on trigger input
\item Sample ADCs
\item Set the trigger output to low
\item Wait for low level on trigger input
\end{itemize}
\item When the device is the synchronization slave (SYM bit not set):
\begin{itemize}
\item Set 1.LO PLL
\item If applicable: wait for the "resume sweep" command
\item Wait for high level on trigger input
\item Set trigger output to high
\item Sample ADCs
\item Wait for low level on trigger input
\item Set the trigger output to low
\end{itemize}
\end{itemize}
\end{document}

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

File diff suppressed because it is too large Load diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 509 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 518 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 255 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 290 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 293 KiB

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,57 @@
#!/usr/bin/env python3
import time
from libreVNA import libreVNA
# Create the control instance
vna = libreVNA('localhost', 19542)
# Quick connection check (should print "LibreVNA-GUI")
print(vna.query("*IDN?"))
# Make sure we are connecting to a device (just to be sure, with default settings the LibreVNA-GUI auto-connects)
vna.cmd(":DEV:CONN")
dev = vna.query(":DEV:CONN?")
if dev == "Not connected":
print("Not connected to any device, aborting")
exit(-1)
else:
print("Connected to "+dev)
# Capture live data as it is coming in. Stop acquisition for now
vna.cmd(":VNA:ACQ:STOP")
# switch to VNA mode, set up the sweep parameters
print("Setting up the sweep...")
vna.cmd(":DEV:MODE VNA")
vna.cmd(":VNA:SWEEP FREQUENCY")
vna.cmd(":VNA:STIM:LVL -10")
vna.cmd(":VNA:ACQ:IFBW 100")
vna.cmd(":VNA:ACQ:AVG 1")
vna.cmd(":VNA:ACQ:POINTS 501")
vna.cmd(":VNA:FREQuency:START 10000000")
vna.cmd(":VNA:FREQuency:STOP 6000000000")
sweepComplete = False
def callback(data):
global sweepComplete
print(data)
if data["pointNum"] == 500:
# this was the last point
vna.remove_live_callback(19000, callback)
sweepComplete = True
# Set up the connection for the live data
vna.add_live_callback(19000, callback)
print("Starting the sweep...")
vna.cmd(":VNA:ACQ:RUN")
while not sweepComplete:
time.sleep(0.1)
print("Sweep complete")

View file

@ -0,0 +1,50 @@
#!/usr/bin/env python3
import time
from libreVNA import libreVNA
# Create the control instance
vna = libreVNA('localhost', 19542)
# Quick connection check (should print "LibreVNA-GUI")
print(vna.query("*IDN?"))
vna.cmd(":VNA:DEEMB:CLEAR")
vna.cmd(":VNA:DEEMB:NEW PORT_EXTENSION")
vna.cmd(":VNA:DEEMB:NEW 2XTHRU")
vna.cmd(":VNA:DEEMB:NEW MATCHING_NETWORK")
vna.cmd(":VNA:DEEMB:NEW IMPEDANCE_RENORMALIZATION")
print("Number of total deembedding options:")
num_options = int(vna.query(":VNA:DEEMB:NUM?"))
print(num_options)
for i in range(1, num_options+1):
option_name = vna.query(":VNA:DEEMB:TYPE? "+str(i))
print("Option "+str(i)+": "+option_name)
# edit port extension
vna.cmd(":VNA:DEEMB:1:PORT 2")
vna.cmd(":VNA:DEEMB:1:DELAY 0.00002")
vna.cmd(":VNA:DEEMB:1:DCLOSS 1")
vna.cmd(":VNA:DEEMB:1:LOSS 3")
vna.cmd(":VNA:DEEMB:1:FREQUENCY 5000000000")
vna.cmd(":VNA:DEEMB:3:PORT 3")
vna.cmd(":VNA:DEEMB:3:CLEAR")
vna.cmd(":VNA:DEEMB:3:ADD FALSE")
vna.cmd(":VNA:DEEMB:3:NEW ParallelC")
vna.cmd(":VNA:DEEMB:3:NEW SeriesR")
vna.cmd(":VNA:DEEMB:3:NEW ParallelL")
vna.cmd(":VNA:DEEMB:3:NEW SeriesL")
vna.cmd(":VNA:DEEMB:3:NEW touchstone_shunt")
vna.cmd(":VNA:DEEMB:3:1:VALUE 0.0001")
vna.cmd(":VNA:DEEMB:3:2:VALUE 0.00002")
vna.cmd(":VNA:DEEMB:3:3:VALUE 0.000003")
vna.cmd(":VNA:DEEMB:3:4:VALUE 0.000004")
vna.cmd(":VNA:DEEMB:3:5:FILE TEST.S2P")
vna.cmd(":VNA:DEEMB:4:IMPedance 75")

139
Documentation/UserManual/SCPI_Examples/libreVNA.py Normal file → Executable file
View file

@ -1,10 +1,16 @@
import re
import socket
from asyncio import IncompleteReadError # only import the exception class
import time
import threading
import json
class SocketStreamReader:
def __init__(self, sock: socket.socket):
def __init__(self, sock: socket.socket, default_timeout=1):
self._sock = sock
self._sock.setblocking(0)
self._recv_buffer = bytearray()
self.default_timeout = default_timeout
def read(self, num_bytes: int = -1) -> bytes:
raise NotImplementedError
@ -19,12 +25,14 @@ class SocketStreamReader:
pos += n
return bytes(buf)
def readline(self) -> bytes:
return self.readuntil(b"\n")
def readline(self, timeout=None) -> bytes:
return self.readuntil(b"\n", timeout=timeout)
def readuntil(self, separator: bytes = b"\n") -> bytes:
def readuntil(self, separator: bytes = b"\n", timeout=None) -> bytes:
if len(separator) != 1:
raise ValueError("Only separators of length 1 are supported.")
if timeout is None:
timeout = self.default_timeout
chunk = bytearray(4096)
start = 0
@ -32,10 +40,13 @@ class SocketStreamReader:
bytes_read = self._recv_into(memoryview(buf))
assert bytes_read == len(buf)
time_limit = time.time() + timeout
while True:
idx = buf.find(separator, start)
if idx != -1:
break
elif time.time() > time_limit:
raise Exception("Timed out waiting for response from GUI")
start = len(self._recv_buffer)
bytes_read = self._recv_into(memoryview(chunk))
@ -53,36 +64,121 @@ class SocketStreamReader:
self._recv_buffer = self._recv_buffer[bytes_read:]
if bytes_read == len(view):
return bytes_read
bytes_read += self._sock.recv_into(view[bytes_read:])
try:
bytes_read += self._sock.recv_into(view[bytes_read:], 0)
except:
pass
return bytes_read
class libreVNA:
def __init__(self, host='localhost', port=19542):
def __init__(self, host='localhost', port=19542,
check_cmds=True, timeout=1):
self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.host = host
try:
self.sock.connect((host, port))
except:
raise Exception("Unable to connect to LibreVNA-GUI. Make sure it is running and the TCP server is enabled.")
self.reader = SocketStreamReader(self.sock)
self.reader = SocketStreamReader(self.sock,
default_timeout=timeout)
self.default_check_cmds = check_cmds
self.live_threads = {}
self.live_callbacks = {}
def __del__(self):
self.sock.close()
def __read_response(self):
return self.reader.readline().decode().rstrip()
def __read_response(self, timeout=None):
return self.reader.readline(timeout=timeout).decode().rstrip()
def cmd(self, cmd):
def cmd(self, cmd, check=None, timeout=None):
self.sock.sendall(cmd.encode())
self.sock.send(b"\n")
self.__read_response()
if check or (check is None and self.default_check_cmds):
status = self.get_status(timeout=timeout)
if status & 0x20:
raise Exception("Command Error")
if status & 0x10:
raise Exception("Execution Error")
if status & 0x08:
raise Exception("Device Error")
if status & 0x04:
raise Exception("Query Error")
return status
else:
return None
def query(self, query):
def query(self, query, timeout=None):
self.sock.sendall(query.encode())
self.sock.send(b"\n")
return self.__read_response()
return self.__read_response(timeout=timeout)
def get_status(self, timeout=None):
resp = self.query("*ESR?", timeout=timeout)
if not re.match(r'^\d+$', resp):
raise Exception("Expected numeric response from *ESR? but got "
f"'{resp}'")
status = int(resp)
if status < 0 or status > 255:
raise Exception(f"*ESR? returned invalid value {status}.")
return status
def add_live_callback(self, port, callback):
# check if we already have a thread handling this connection
if not port in self.live_threads:
# needs to create the connection and thread first
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
sock.connect((self.host, port))
except:
raise Exception("Unable to connect to streaming server at port {}. Make sure it is enabled.".format(port))
self.live_callbacks[port] = [callback]
self.live_threads[port] = threading.Thread(target=self.__live_thread, args=(sock, port))
self.live_threads[port].start()
else:
# thread already existed, simply add to list
self.live_callbacks[port].append(callback)
def remove_live_callback(self, port, callback):
if port in self.live_callbacks:
# remove all matching callbacks from the list
self.live_callbacks[port] = [cb for cb in self.live_callbacks[port] if cb != callback]
# if the list is now empty, the thread will exit
if len(self.live_callbacks) == 0:
self.live_threads[port].join()
del self.live_threads[port]
def __live_thread(self, sock, port):
reader = SocketStreamReader(sock, default_timeout=0.1)
while len(self.live_callbacks[port]) > 0:
try:
line = reader.readline().decode().rstrip()
# determine whether this is data from the VNA or spectrum analyzer
data = json.loads(line)
if "Z0" in data:
# This is VNA data which has the imag/real parts of the S-parameters split into two float values.
# This was necessary because json does not support complex number. But python does -> convert back
# to complex
measurements = {}
for meas in data["measurements"].keys():
if meas.endswith("_imag"):
# ignore
continue
name = meas.removesuffix("_real")
real = data["measurements"][meas]
imag = data["measurements"][name+"_imag"]
measurements[name] = complex(real, imag)
data["measurements"] = measurements
for cb in self.live_callbacks[port]:
cb(data)
except:
# ignore timeouts
pass
@staticmethod
def parse_trace_data(data):
def parse_VNA_trace_data(data):
ret = []
# Remove brackets (order of data implicitly known)
data = data.replace(']','').replace('[','')
@ -97,3 +193,18 @@ class libreVNA:
ret.append((freq, complex(real, imag)))
return ret
@staticmethod
def parse_SA_trace_data(data):
ret = []
# Remove brackets (order of data implicitly known)
data = data.replace(']','').replace('[','')
values = data.split(',')
if int(len(values) / 2) * 2 != len(values):
# number of values must be a multiple of two (frequency, dBm)
raise Exception("Invalid input data: expected tuples of two values each")
for i in range(0, len(values), 2):
freq = float(values[i])
dBm = float(values[i+1])
ret.append((freq, dBm))
return ret

View file

@ -42,7 +42,7 @@ data = vna.query(":VNA:TRACE:DATA? S11")
# Returned data is just a string containing all the measurement points.
# Parsing the data returns a list containing frequency/complex tuples
S11 = vna.parse_trace_data(data)
S11 = vna.parse_VNA_trace_data(data)
for x in S11:
print(x)

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 131 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Some files were not shown because too many files have changed in this diff Show more