Downloads
Desktop applications for particle measurement and PSM data analysis.
Airmodus MultiLogger CPC data logging and device management
v1.0.3
Release notes
- Show actual PSM mode (Scan/Step/Fixed) in status bar
- Distinquish PSM drain HIGH (warning) from FULL (error) states
Previous versions (6)
-
v1.0.2Download
- Fix app failing to launch with
AttributeError: 'AuthManager' object has no attribute 'token_refreshed' orphan signal connection left behind by the 1.0.1 single-token cleanup - Active Issues dialog now headlines self-test root causes and standby state for CPC/PSM, so downstream temperature/pressure/voltage symptoms are no longer chased before the actual fault
- Status bar device pill flips to an orange
STANDBYindicator when the firmware parks the device - IO worker re-queries
:STAT:SELF:LOGevery 5 minutes so a fixed-and-reset device clears its standby/self-test state without needing a reconnect - Sim button gains
(with errors)variants for CPC and PSM that drive the new path without real hardware - Drop stale warnings from the Active Issues dialog when a device is removed (was rendering as
Unknown)
- Fix app failing to launch with
-
v1.0.1Download
- Cloud sync: keep retrying after a failed upload instead of permanently disabling; a single transient auth or network error no longer silences the session until a manual re-enable
- Simplified cloud authentication: single long-lived token, no more silent refresh dance
-
v1.0.0Download
- PSM live inversion and history view
- AI chat and cloud sync (requires sign-in)
- Command palette with instant fuzzy search (Ctrl+K)
- Serial port selection dialog with automatic device type detection
- Redesigned serial IO handling with slot-based priority queuing
- AFC (Airmodus Flow Controller) device type support
- CPC ACTRIS database saving support
- Various UI/UX improvements
-
v0.12.1Download
Serial port handling
- Track ports assigned to device widgets to prevent reconnection blocking
- Skip port query for ports already assigned to a device
- Check port availability when opening dialog and selecting a port
- Skip built-in and virtual ports in port scanner
- Query unrecognized devices multiple times before giving up
- Reduced port scanner interval to 1 second
- Show full IDN string in port selection dialog
- Fix occasional freeze when closing serial connection
- Fix tab menu "Select Port" and "Disconnect" actions
bug fixes
- Fix legend not updating when removing the last device
refactoring
- Rename
close()toclose_connection()to avoid confusion withSerial.close() - Rename
widget.connectiontowidget.device_connectionto avoid confusion with the underlyingSerialobject - Remove unused
set_inquiry_flag,disable_dtr, and_parse_idn_response
-
v0.12.0Download
Command palette and AI navigation
- Command palette with instant fuzzy search (Ctrl+K)
- AI-powered navigation: describe any setting or action in natural language
- Single source of truth for all navigable UI elements (
ui_tree.py)
PSM scan visualization
- Individual scan plot with draggable marker in contour tab
- Scan playback controls in Distribution tab
- Individual scan plot displayed as step histogram
- Bin plot with log scale and cursor snapping
PSM inversion and data processing
- Re-invert feature: rebuild CSV from raw .dat files with updated parameters
- Gaussian correction for 10 Hz PSM data
- Scan offset time correction for 10 Hz inversion
- Dynamic running average scan offset calculation (matches Inversion GUI)
- Apply dilution and polynomial correction to historical 10 Hz data
- Extract trailing concentrations for 1 Hz scans
- Preserve scan type in
finalize_scanfor correct 10 Hz flow calculation
other features
- Load multiple CSV files to fill time window gaps
- Cross-platform auto-start when Resume on Startup is enabled
- Auto-start simulators on config load with improved saving status feedback
- Windows exe build and auto-release via GitHub Actions
bug fixes
- Fix main plot empty when follow mode is off at startup (stale view range)
- Fix PSM scan/inversion broken by
connect_asyncrunning on non-Qt thread - Fix stale axes and curve leaks on device removal
- Fix stale port cache after device tab close
- Fix UI freeze when opening files/folders on Windows
- Fix averaging controls not disabled when menu opened after CSV load
- Fix re-inverted data not persisting to CSV
- Fix PSM contour tab UI issues on Windows
- Fix PSM single scan cursor playback freezing at fast speeds
- Fix pulse analysis dialog parent
UI improvements
- Refactor plot control panel
- Loading overlay with card-style container
- UI polish: text overflow elision, field order, legend labels, COM port read-only
- Persistent tooltip on manual port input field
- Port removed signal so COM port dialog refreshes on device unplug
dev / CI
- Fix test suite: broken CPC tests, slow test skipping, PyQt5 segfault on teardown
- Reduce CI costs: Linux-only runner, single Python version (3.11)
- Add
CLAUDE.mdproject instructions - Add
pytest.inito skip slow simulator tests by default
-
v0.11.5Download
- fixed AFC set flow widget
logging (.log) changes:
- changed logging level to
INFOto avoid spam (previouslyDEBUG) - changed log filename to
multilogger_log.logfor clarity (previouslydebug.log) - changed date format to '%Y-%m-%d %H:%M:%S' (previously '%m/%d/%Y %I:%M:%S %p')