Skip to content

Releases: RFingAdam/RFlect

v4.1.9 — Restore Active Chamber Calibration

14 Apr 19:46

Choose a tag to compare

Version 4.1.9 (04/14/2026)

Patch release — restores the Active Chamber Calibration routine.

Bug Fixes

  • Active Chamber Calibration: Tools → Active Chamber Calibration was always rejecting valid reference-antenna file pairs with Error: The selected files have mismatched angle data., preventing chamber operators from regenerating calibration files. Regression introduced in the v4.3.0-era check_matching_files rewrite, which compared Axis1/Axis2 angle headers between HPol and VPol. That check is correct for passive scans but wrong for active-cal references, where the gain-standard antenna is physically rotated 90° between polarizations (HPol measures at Axis1=0°, VPol at Axis1=90°) so the angle headers legitimately differ.

Improvements

  • check_matching_files gains a strict_angles parameter (default True, preserving all passive-scan callers). Active Chamber Calibration passes strict_angles=False to allow the H/V angle offset inherent to the measurement.
  • generate_active_cal_file now returns a result dict with output paths and row counts so the GUI can surface meaningful feedback.
  • Clearer GUI feedback in the active-cal flow: the premature "…Created Successfully" log that fired before the user clicked Generate Calibration File is replaced with Reference files validated — click 'Generate Calibration File' to produce the output.; the generate button now logs the output path, number of frequencies written, and how many frequencies were missing (e.g., outside the gain-standard's calibrated bands). Exceptions during generation are caught and logged instead of being silently swallowed by Tk.

Verification

  • Regenerating a 2024 BLPA 690-2700 MHz calibration with the restored routine matches the archived 2024 cal file to 0.0000 dB across all 252 frequencies.
  • 2026 reference files produce a valid cal file; 151 of 403 frequencies correctly route to the Missing Data section because they fall in the BLPA-19 gain standard's uncalibrated bands (960–1500 MHz, 1610–1710 MHz, 2170–2300 MHz gaps).

Tests

  • 3 new tests in tests/test_active_calibration.py covering: strict-mode rejection of the active-cal pair (preserves passive-scan contract), relaxed-mode acceptance, and end-to-end cal-file generation.


Downloads

  • Windows (installer): RFlect_Installer_4.1.9.exe — includes Start Menu shortcut and uninstaller
  • Windows (portable): RFlect_v4.1.9.exe — standalone, no install required
  • Linux: RFlect_v4.1.9_linux — standalone binary (chmod +x then run)

v4.1.8

10 Mar 20:32

Choose a tag to compare

Version 4.1.8 (03/10/2026)

Patch release — maritime metrics, conducted power CSV, and table layout improvements.

New Features

  • Per-frequency conducted power CSV: Batch processing now accepts a CSV file mapping frequency (MHz) to conducted power (dBm), enabling per-frequency efficiency calculations across bulk runs. Single-file processing continues to use the manual settings entry.
  • Maritime Power Fraction: New pattern-only metric showing what percentage of total radiated power falls in the maritime band (50% = isotropic baseline). Always displayed, no conducted power required.

Improvements

  • Maritime stats table: Larger fonts (13pt body, 14pt header, 16pt title), taller rows, and dynamic figure height so all rows display without manual window resizing.
  • Unified maritime band math: Shared spherical-band statistics helper ensures consistent metrics across all plot surfaces and batch processing.
  • Efficiency rows: Total Efficiency and Maritime Efficiency shown when conducted power is provided, alongside the new Maritime Power Fraction.


Downloads

  • Windows (installer): RFlect_Installer_4.1.8.exe — includes Start Menu shortcut and uninstaller
  • Windows (portable): RFlect_v4.1.8.exe — standalone, no install required
  • Linux: RFlect_v4.1.8_linux — standalone binary (chmod +x then run)

v4.1.6

04 Mar 17:45

Choose a tag to compare

Version 4.1.6 (03/04/2026)

Feature release — per-plot-type 3D colorbar scaling.

New Features

  • Independent 3D colorbar scaling: Total Power/Gain, H-Pol, and V-Pol 3D plots now have separate Auto/Manual scale controls with independent Min/Max ranges. Enables consistent visual comparison across frequencies by locking each plot type to a fixed colorbar range (e.g., Total [-20, 10], H-Pol [-25, 5], V-Pol [-25, 10])
  • Per-type scale UI: Both active and passive settings dialogs display a compact 3-row layout (Total / H-Pol / V-Pol) with Auto/Manual radio buttons and Min/Max entry fields per row

Improvements

  • Per-type scale settings propagate through all code paths: interactive viewing, batch processing, save-to-folder, and AI chat 3D plot generation
  • Config template includes per-type defaults (AXIS_SCALE_MODE_TOTAL, AXIS_MIN_TOTAL, etc.)

Bug Fixes

  • Active settings row overlap: H-Pol and V-Pol scale rows were hidden behind the maritime settings frame due to grid row collision


Downloads

  • Windows (installer): RFlect_Installer_4.1.6.exe — includes Start Menu shortcut and uninstaller
  • Windows (portable): RFlect_v4.1.6.exe — standalone, no install required
  • Linux: RFlect_v4.1.6_linux — standalone binary (chmod +x then run)

v4.1.5

25 Feb 02:14
7008ea2

Choose a tag to compare

Version 4.1.5 (02/24/2026)

Feature release — advanced RF analysis suite with 5 new analysis modules.

New Features: Advanced Antenna Analysis

  • Link Budget / Range Estimation: Integrated Friis path-loss range calculator using measured antenna gain. Includes protocol presets (BLE, WiFi, LoRa, Zigbee, LTE, NB-IoT) that auto-populate Tx power and Rx sensitivity. Two-panel plot: waterfall bar chart + range-vs-azimuth polar plot with target range overlay.
  • Indoor Propagation Analysis: ITU-R P.1238 indoor path loss model with ITU-R P.2040 wall penetration loss. Environment presets (Office, Residential, Hospital, etc.) auto-set path loss exponent, shadow fading, and fading model. Three-panel plot: path loss vs distance, received power heatmap, and coverage range contour.
  • Multipath Fading Assessment: Rayleigh and Rician fading CDF models with Monte-Carlo pattern degradation. Four-panel plot: CDF curves, fade margin vs reliability, pattern with fading envelope (mean +/- 1 sigma), and outage probability polar map.
  • Enhanced MIMO Analysis: Capacity-vs-SNR curves (SISO, 2x2 AWGN, Rayleigh, Rician), MRC/EGC/Selection combining gain comparison, and Mean Effective Gain with cross-polarization ratio (Taga model). Builds on existing ECC/diversity infrastructure.
  • Wearable / Medical Device Assessment: Body-worn pattern analysis across configurable positions (wrist, chest, hip, head) using directional human shadow model. Dense device SINR estimation via Monte-Carlo random placement. SAR exposure screening with FCC/ICNIRP limits. IEEE 802.15.6 WBAN link budget.

New Features: GUI & Settings

  • Scrollable settings dialogs: Active and passive settings windows now scroll to accommodate the new analysis sections
  • Smart presets: Protocol dropdown auto-fills Tx power, Rx sensitivity; environment dropdown auto-fills path loss exponent, shadow fading, wall count, and fading model
  • Cross-feature parameter sharing: Shared parameters (Tx power, fading model, etc.) stay consistent across analysis modules

Improvements

  • Professional 3D antenna pattern plots: Shared _setup_3d_axes() helper across all 3D routines (active TRP, passive gain, masked horizon) with equal aspect ratio, symmetric limits, and transparent grid panes
  • DUT orientation triad: XYZ arrow tripod anchored at the corner of the bounding box (X=green, Y=red, Z=blue) matches the physical orientation marker used in the anechoic chamber, enabling correlation between 3D plots and measured antenna position from any view angle
  • 3D plot layout: Tighter figure layout with fig.suptitle(), improved colorbar positioning, and max EIRP/gain annotation on the colorbar — consistent across all four 3D routines (active, passive, polarization, masked)
  • Bulk processing failure reporting: Per-job/per-file outcome tracking replaces blanket success-on-partial-failure messages
  • Non-blocking update checker: Startup update check runs in a background thread — no more GUI freezes on slow networks
  • Matplotlib deprecation cleanup: Replaced all deprecated plt.get_cmap() / cm.get_cmap() calls with matplotlib.colormaps.get_cmap() for forward compatibility
  • Code cleanup: Removed unused imports (patheffects), dead utility functions in ai_analysis.py, stale TODO comments, and unused variables

Bug Fixes

  • Indoor propagation heatmap: Vectorised free_space_path_loss() to accept distance arrays, fixing the indoor propagation heatmap calculation that previously failed on array inputs
  • Multipath fading outage plot: Outage probability calculation now correctly includes path loss; previously the fading-only CDF produced unrealistic outage values
  • Shadow fading heatmap: Shadow fading sigma is now applied to the indoor propagation heatmap colourmap; previously the shadow fading parameter was accepted but had no visible effect
  • Link budget margin row: Fixed hardcoded row index for the margin annotation in the link budget waterfall chart

Tests

  • 448 tests collected (300 passing, 148 skipped), up from 391 in v4.1.0
  • 45 new unit tests for advanced analysis functions (Friis, ITU, CDF, MIMO, wearable)
  • 10 new batch failure regression integration tests
  • Fixture-based parser tests replacing placeholder TODOs
  • Removed 2 stale tests for deleted utility functions


Downloads

  • Windows (installer): RFlect_Installer_4.1.5.exe — includes Start Menu shortcut and uninstaller
  • Windows (portable): RFlect_v4.1.5.exe — standalone, no install required
  • Linux: RFlect_v4.1.5_linux — standalone binary (chmod +x then run)

v4.1.4

11 Feb 17:34

Choose a tag to compare

Version 4.1.4 (02/11/2026)

Feature release — horizon band TRP, efficiency calculations, and enhanced maritime statistics.

New Features

  • Horizon TRP: Integrated radiated power over the horizon band (the "donut" between theta min/max), computed using sin(θ)-weighted numerical integration
  • Full Sphere TRP: Total radiated power integrated over the entire measurement sphere for reference
  • Horizon Efficiency: Percentage of total radiated power concentrated in the horizon band — the key figure of merit for maritime antennas
  • 3D pattern statistics: The 3D masked horizon plot now includes an annotation box with max/min/avg, horizon TRP, full TRP, and efficiency

Improvements

  • Multi-cut polar plot: Horizon statistics page now shows 3–5 polar cuts spanning the full horizon band instead of a single θ=90° cut
  • Enhanced statistics table: Added Horizon TRP, Full Sphere TRP, and Horizon Efficiency rows with appropriate labels (Gain/Directivity for passive, Power/TRP for active)
  • Batch processing: Disabled interactive matplotlib during batch jobs so figure windows no longer briefly pop up and interfere with queuing additional work


Downloads

  • Windows (installer): RFlect_Installer_4.1.4.exe — includes Start Menu shortcut and uninstaller
  • Windows (portable): RFlect_v4.1.4.exe — standalone, no install required
  • Linux: RFlect_v4.1.4_linux — standalone binary (chmod +x then run)

v4.1.3

10 Feb 18:17
7b7387d

Choose a tag to compare

Version 4.1.3 (02/10/2026)

Patch release — coverage threshold and horizon statistics fixes.

Bug Fixes

  • Coverage threshold reference line: The -3 dB reference line in conical cuts and GOA plots was hardcoded at y=-3 on the Y-axis (meaningless for active dBm data). Now drawn relative to peak using the coverage threshold setting, and legend shows the absolute value (e.g., "-3 dB ref (17.5 dBm)")
  • Configurable threshold: Changing the coverage threshold setting (e.g., to -6 dB) now applies to the reference line in all maritime Cartesian plots
  • MEG denominator bug: Fixed incorrect array shape reference in MEG calculation (gain_2d.shape[1] vs horizon_gain.shape[1])
  • MEG label for active data: Horizon statistics table now shows "Avg EIRP (sin-θ weighted)" for active power data instead of "MEG" which is only meaningful for passive gain


Downloads

  • Windows (installer): RFlect_Installer_4.1.3.exe — includes Start Menu shortcut and uninstaller
  • Windows (portable): RFlect_v4.1.3.exe — standalone, no install required
  • Linux: RFlect_v4.1.3_linux — standalone binary (chmod +x then run)

v4.1.2

10 Feb 17:48
0bd7c55

Choose a tag to compare

Version 4.1.2 (02/10/2026)

Patch release — maritime plot title corrections.

Improvements

  • Maritime plot titles: All maritime plot titles now dynamically show "Gain (dBi)" for passive or "Power (dBm)" for active measurements instead of hardcoded "Gain"
  • Theta range in titles: Conical cuts and Gain/Power-over-Azimuth plots now display the theta cut range in the title
  • GOA summary annotation: Added max/min/avg summary below the Gain/Power-over-Azimuth plot
  • Horizon statistics title: Now includes data type and unit (e.g., "Horizon Gain Statistics @ 2400 MHz (dBi)")
  • 3D masked pattern title: Now shows "3D Gain Pattern" or "3D Power Pattern" based on data type


Downloads

  • Windows (installer): RFlect_Installer_4.1.2.exe — includes Start Menu shortcut and uninstaller
  • Windows (portable): RFlect_v4.1.2.exe — standalone, no install required
  • Linux: RFlect_v4.1.2_linux — standalone binary (chmod +x then run)

v4.1.1

09 Feb 23:28

Choose a tag to compare

Version 4.1.1 (02/09/2026)

Patch release with 8 bug fixes for v4.1.0.

Bug Fixes

  • Settings dialog crash: Added missing SECTION_HEADER_FONT import in dialogs_mixin — the maritime settings section crashed the entire settings dialog
  • HPOL/VPOL file matching: Replaced brittle [:-4] filename slice with regex that correctly strips AP_HPol/AP_VPol suffixes
  • Matplotlib mainloop conflict: Added plt.ion() to prevent "main thread is not in main loop" errors during passive processing
  • Batch processing warnings: Suppressed noisy "GUI outside main thread" and "Tight layout not applied" warnings during bulk runs
  • 3D axis labels: Added white stroke outline so X/Y/Z labels are readable when occluded by the radiation pattern surface
  • Mercator summary overlap: Moved gain summary annotation below X-axis labels
  • Bulk settings pass-through: Maritime settings (theta min/max, cuts, gain threshold) and axis scaling now forwarded from GUI to batch routines
  • Black formatting: Fixed CI formatting failures across 17 files


Downloads

  • Windows (installer): RFlect_Installer_4.1.1.exe — includes Start Menu shortcut and uninstaller
  • Windows (portable): RFlect_v4.1.1.exe — standalone, no install required
  • Linux: RFlect_v4.1.1_linux — standalone binary (chmod +x then run)

v4.1.0

09 Feb 20:42

Choose a tag to compare

Version 4.1.0 (02/09/2026)

Maritime antenna plots, Windows installer overhaul, and startup crash fixes.

Maritime / Horizon Antenna Visualization

  • 5 new plot types for on-water and maritime antenna analysis, focusing on the horizon region (theta 60-120 deg):
    • Mercator heatmap of gain vs azimuth/elevation
    • Conical cuts at configurable elevation angles
    • Gain-over-azimuth at horizon
    • Horizon statistics table (min/max/mean gain, coverage)
    • 3D radiation pattern with horizon band highlighting
  • Controlled by a settings toggle (off by default) in active/passive settings dialogs
  • get_horizon_statistics() added to AntennaAnalyzer and MCP server
  • Integrated into all 4 entry points (View/Save/Bulk Passive/Bulk Active)
  • Desaturation-based 3D masking (avoids depth-sort alpha artifacts)
  • 45 new tests (391 total, 0 regressions)

Windows Installer Overhaul

  • App icon: Smith chart icon on exe, Start Menu shortcuts, desktop shortcut, installer wizard, and uninstall entry
  • No console window: Fixed console=True in PyInstaller spec — GUI-only with runw.exe bootloader
  • Upgrade handling: UsePreviousAppDir=yes for seamless in-place upgrades; [InstallDelete] cleans up old RFlect_v*.exe from pre-v4 installs
  • Release notes: Shown after install via InfoAfterFile
  • Uninstall cleanup: Removes settings.json and assets directory
  • Smaller exe: Excludes torch, tensorflow, jupyter, sklearn, and other unused packages
  • Consistent naming: Release assets use v prefix (RFlect_v4.1.0.exe, RFlect_v4.1.0_linux)

Bug Fixes

  • Startup crash fix: check_for_updates no longer crashes when log_text widget isn't ready or when network requests fail
  • Network error handling: get_latest_release catches RequestException instead of letting connection errors propagate
  • Release workflow: Fixed Inno Setup Action parameters, awk release notes extraction, and YAML parsing


Downloads

  • Windows (installer): RFlect_Installer_4.1.0.exe — includes Start Menu shortcut and uninstaller
  • Windows (portable): RFlect_v4.1.0.exe — standalone, no install required
  • Linux: RFlect_v4.1.0_linux — standalone binary (chmod +x then run)

v4.0.0

08 Feb 21:40

Choose a tag to compare

Release v4.0.0

See RELEASE_NOTES.md for full changelog.


Downloads

  • Windows (installer): RFlect_Installer_v4.0.0.exe — includes Start Menu shortcut and uninstaller
  • Windows (portable): RFlect_v4.0.0.exe — standalone, no install required
  • Linux: RFlect_v4.0.0_linux — standalone binary (chmod +x then run)