Releases: drandyhaas/HaasoscopePro
v32.01-beta
Changes from v32.00-beta
Firmware watchdog timer:
- Will go back to init state, ready for new commands, after 10 seconds in case anything goes wrong
- Can test from Advanced menu if --testing command line option added
- Add firmware minor version: 1
Disable lvds out triggers by putting all boards in ext trig mode and no rolling trigger
- Safer for firmware upgrade in multi-board setup
v32.00-beta
Summary of Changes Since 31.09-beta
Firmware Changes (Version 31 → 32)
Runt pulse rejection for the trigger system
- Prevents triggering on pulses that overshoot or fall within unwanted amplitude ranges
Software Changes
Runt trigger controls
- New UI elements for configuring runt rejection threshold - "Runt delta"
- Visual lines (draggable!) showing trigger thresholds, delta, runt delta, ToT, and holdoff
Zoom window improvements
- ROI synced crosshairs between main and zoom windows
Firmware version checking
- Software now validates firmware version compatibility, prevents using newer firmware than software expects
Clock output management
- Enable clkout on all boards at startup (don't assume which is first)
Polynomial filtering bug fix
- Fixed settings loading issue
v31.09-beta
Summary of Changes Since v31.07-beta3
Major Features
- Persist Heatmap: color-coded heatmap visualization for persist mode
- FIR Frequency Response Calibration: Corrects hardware frequency response using adaptive FIR filtering with pre-calibrated data for all modes (normal, two-channel, oversample, interleaved)
- Polynomial Filtering: Alternative smoothing method for waveform data
Improvements
- Polyphase Upsampling: High-quality resampling option using scipy.signal.resample_poly
- Downsample factor now shown in status bar
- FFT plot no longer draws DC bin + adjacent bin for clearer display
Bug Fixes
- Measurement histogram colors
- Frequency measurement in interleave mode
- Oscillation in mean/rms calibration at very high frequencies (2700+ MHz)
- Persist settings preserved when entering oversample mode
- Invisible channel click issues
v31.07-beta3
Changes since v31.06
- New pulse width measurement, calculated as width of 50% max-min crossing nearest to trigger position
- Zoom window (in View menu), lets you see a zoomed in view of the main plot via draggable ROI
- Fix trigger position when depth is changed
- Don't disable trig stabilizers at downsample>0
In beta2:
- Don't disable extra trig stabilizer at downsample>0
- Updated pulse stabilizer min calculation (delta -> 0)
- Fix to math calculations: now done on non-upsampled data, gets the FFT of math channels right when channel is upsampled
- Reference waveforms line width same as original line, fix math channel line width changes, FFT line color changes
In beta3:
- When changing the line color, also change the peak detect line color
- Draw the peak detect lines, and all the persist lines, in the zoom plot
- Clear persist lines when loading from settings with no persist
v31.06-beta5
Changes since 31.05
Some fixes and added features:
- GUI: Fix line color change bug, channel 1 visibility bug, adjust size, checks for newer release upon startup
- Measurement System: 3 decimal precision, improved formatting, speed ups, fix gain bug
- Reference Lines: Dynamic color tracking, transparency support
- Two-Channel Mode: Fixed resampling settings for channel 1 when zoomed
- Trigger System: Auto-reset on depth change, cursor position management
- Oversampling: External trigger mode for board+1, delay offset reset on disable
- Settings: Fixed loading errors
- XY plot: does two-channel mode right
- Math: low, high, band, notch, time shift filters with adjustable parameters
v31.05-beta
Summary of Changes Since Version 31.04-beta
New Features
- XY Mode Window (a52615d)
- Added dedicated XY mode window (xy_window.py)
- Pops up to the left of the main windows with bottom edges aligned
- Can use any available channels or math channels for X and Y - Multiple Dummy Board Support (9ca49e9, 4748f93, df48a8e, 2220f20)
- Can now configure and run multiple dummy boards
- Added --max-devices command line option
- Dummy boards labeled with "(D)" suffix in GUI
- Can add dummy boards after real boards - Dummy Server Configuration Dialog (2cde59c, f8f59b3, f9eb2fb)
- Enhanced configuration dialog with per-board settings
Bug Fixes & Improvements
-
Resampling Behavior (536e458, 2a1dee8)
- More sane resampling behavior
- Fixed resampling handling bugs -
Channel Mode UI (a9325be)
- Fixed early return bug in _update_channel_mode_ui when in XY mode
- Properly restore channel visibility when turning off interleaving -
Clicking on channel color box brings up color change dialog
-
Better saving of settings for XY mode and dummy scopes
-
Added driver files to releases
v31.04-beta
Summary of Git Changes Since Version 31.03
Major Features Added:
- Per-Channel Resampling (Commits: 88028c4, 56c7ad2)
- Converted doresamp from global setting to per-channel array
- GUI updates resamp box when switching channels
- Each channel can have independent resampling settings
- Backward compatible with old settings files - Per-Channel Peak Lines (Commit: 7f70cae)
- Peak detect mode now works per-channel instead of globally
- Menu checkbox syncs with active channel's state
- Multiple channels can show peak lines simultaneously
- Each channel gets its own max/min peak lines - Per-Board Pulse Stabilizer (Commit: 7a9fa9c)
- Converted pulse_stabilizer_enabled to per-board array
- Menu checkbox updates when switching boards
- Each board can have independent pulse stabilizer settings - Pulse Stabilizer Feature (Commit: 1d883d8)
- New stabilization mode using edge midpoint instead of threshold crossing
- Better for pulse/digital signals
- Uses trigger delta to find edge min/max - Peak Lines Improvements (Commit: 2253119)
- Peak lines width now updates with global line width setting
- Fixed x-axis stability using fixed reference x-axis
- Prevents jitter from trigger stabilization
Trigger Stabilizer Improvements:
- Extra Trigger Stabilizer Tuning (Commits: a4972d1, 98b653c, 6522c51, 3d605bc, 2933963)
- Reset totdistcorr when resetting time axis (fixes stability bug)
- Removed nsunits from trigger stabilizer calculation
- Adjusted distcorr range for better performance
- Minor cleanup of extra trig stabilizer code
Build & Documentation:
- Build Scripts Updated (Commit: 19ca95f)
- Added dummy_server to PyInstaller builds (Linux, Mac, Windows) - Documentation Updates (Commits: 4e01904, c499cdf)
- Updated README.md to point to main branch
- Updated firmware README.md to main branch - Misc Improvements:
- Measurement table geometry adjustment (d411f20)
- Removed spec files (1b7afa8, b95b6b0)
v31.03-beta
Summary of Changes Since Version 31.02
🎯 Major New Feature: Dummy Server/Scope
- New dummy scope implementation - A simulated oscilloscope for testing without hardware
- Added complete dummy server with waveform generation (software/dummy_scope/)
- GUI configuration dialog for dummy server parameters
- Waveform types: sine, square, pulse, including noise and trigger jitter
- Supports 1-2 channel operation with configurable frequency, amplitude, gain, offset
- Firmware version reporting
- Configurable buffer sizes (up to 100k samples)
- Proper triggering simulation with position tracking
- Accessible via Advanced menu
- Status bar integration
🎨 GUI Improvements
- Measurement width adjustments
- Layout improvements for better display
- Mac-specific button and label fixes (multiple commits for compatibility)
- Persistence features:
- Per-channel persistence control
- Persistent averaged lines (clickable checkbox)
- Channel legend enabled by default
- Reset persistence when starting/stopping oversampling
- Line width now default to 2 pixels and savable to settings
- Improved line colors
- Removed fitwidthfraction box (defaults to 0.2)
⚙️ Hardware & Clock Management
- Trigger stabilizer fixes (now "perfect")
- Proper point spacing for two-channel mode
- Better internal/external clock switching at startup
- External clock output control (disabled on last board)
- ADF reset functionality from menu
- ADF lock success checking
- Auto-calibration state based on board detection
- Error handling for missing hardware ("no beef")
- Distcorr trigger stabilizers' ranges limited to 3 ns with max 30 samples
v31.02-beta
Summary of Changes since 31.01-beta
UI/UX Improvements
- Combo boxes for board and channel selection (replacing spin boxes)
- History window feature to view and replay past 100 events with save/load capability
- Triangular arrow markers at ends of cursor lines and trigger lines
- Clickable labels for trigger position and threshold to reset values
- Default file extensions automatically added when saving files
- Disabled "Clear all" menu item when no reference lines exist
- Disabled right-click context menu on plot (including secondary axis)
Trigger & Zoom Enhancements
- Improved trigger position reset when zoomed - centers view on trigger position
- Full range trigger position slider when zoomed (downsamplezoom > 1)
- Fixed trigger stabilizer for two-channel and interleaved modes - now accounts for board mode time factors
- Trigger lines and triangles hidden until PLL calibration completes
Settings Management
- Added missing settings to save/load:
- Peak detect
- Channel name legend
- PLL controls visibility
- Auto oversample alignment
- Settings now properly trigger associated actions when loaded (not just checkbox state)
- Fixed cursor visibility when loading settings
Linux Compatibility
- Added DontUseNativeDialog flag for all file dialogs (QFileDialog and QColorDialog) on Linux
Bug Fixes & Error Handling
- More robust board setup error handling
- Fixed trigger position reset when zoomed
- Fixed settings save/load bugs
- Info displays stay fixed during pan and zoom
- Triangles stay at plot borders during pan and zoom
v31.01-beta
Summary of Changes Since v30.10
New Features
- Channel Naming & Labels
- Fan PWM Control
- Implemented fan PWM control with temperature-based speeds (f131644)
- Fan speeds adjust at 30°C, 40°C, and 50°C thresholds
- Update interval set to ~10 seconds to reduce overhead (c6c0507, 7238eb8)
- Added ADC and board temperature menu (dc6e993)
- Math Channel Enhancements
- Custom math operations support (e4bd054)
- Reference lines for math channels (03e8c17)
- Save/load reference lines functionality (166ecdd)
- Time skew per channel adjustment (cd39d0a)
- FFT Improvements
- FFT peak hold now uses max of all channels (45aa7a3)
- Reset peaks functionality for all channels (0f7edfa, e8af3ee)
- Clear FFT cache support (f579aea)
Bug Fixes & Error Handling
- Enhanced board setup error handling and thread cleanup (111c37f, 8ad4bae)
- Better error handling for USB communication failures due to power drops (6efb2b6)
- Skip bad boards and handle old bytes (b6a257b)
- Disable calibration if fewer than 2 boards (027e4bd)
Firmware Updates
- Updated ADC board firmware with new PWM generator (pwm_generator.v)
- Firmware update/verify progress bars (b025c5a)