Commit graph

77 commits

Author SHA1 Message Date
Roger Henderson 0b571688a9 add Correlated Double Sampling (CDS) support
Implements CDS to reduce noise by taking multiple measurements at
different source PLL phase offsets and combining with cosine weighting.

Firmware changes (VNA.cpp, Protocol.hpp):
- Add cdsPhases field to SweepSettings (0=disabled, 2-7=phase count)
- Configure N internal sweep points per user point with phase offsets
- Accumulate weighted samples: result = Σ(sample[k] × cos(2π×k/N))
- Per-stage accumulators for multi-stage measurements

PC application changes:
- Add "CDS" checkbox to VNA acquisition toolbar
- When enabled, sets cdsPhases=2 for 180° differential measurement
- Tooltip explains the feature

With 180° CDS (2 samples):
- Sample at 0°: weight = cos(0°) = 1
- Sample at 180°: weight = cos(180°) = -1
- Combined result = Sample₀ - Sample₁₈₀

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 23:47:02 +13:00
Jan Käberich bf028e2d21 add SCPI API for dwell time
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_15 (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
2026-01-27 18:24:05 +01:00
Jan Käberich 42aca8ff8d only set idle when mode is active 2025-12-09 12:26:45 +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 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 3e327e7e6b option to use already existing measurements for calibration 2025-09-22 16:01:38 +02:00
Jan Käberich 68e8d29e0c Calibration error term model view 2025-08-10 15:13:24 +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 7370fda2c7 fix de-embedding menu on macOS after loading setup (#297) 2025-03-05 07:57:56 +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 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 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 6ea8869f7f TraceWidget: support dropping files for importing measurements 2024-12-02 18:11:20 +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 67a186be4f workflow update + minor bugs/warnings fixes 2024-11-03 13:36:54 +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 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 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 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 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 5692356e90 decouple RST settings from startup settings 2024-05-01 13:33:18 +02:00
Jan Käberich 2963e8b3d5 Reset refernence on *RST, fix VNA:ACQ:RUN? query 2024-04-20 15:56:57 +02:00
Jan Käberich 3be48bddeb add sweep stop/run commands 2024-04-16 18:55:49 +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 5d3ce139b4 implementation of OPC/WAI 2024-04-07 14:11:04 +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 358872904e Fix impedance renormalization and honor new reference impedance for traces 2024-03-01 09:08:37 +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 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 ee8188775a minor improvements to eCal dialog 2024-01-13 18:21:29 +01:00
Jan Käberich 054e7ed995 Fix for de-embedding menu on macOS 2023-12-15 16:08:23 +01: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 69fe833715 Fix calibration progress dialog 2023-07-30 13:09:47 +02:00
Jan Käberich 853cf310c9 Start GUI with ideal calibration standards 2023-07-29 18:11:57 +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
Alexander Voronov 76448e64ee LibreVNA-GUI: Use 'horizontalAdvance' instead of 'width' for text width 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
Jan Käberich 5e46055d3c Output time per sweep on debug console 2023-03-17 18:50:46 +01:00