RAPID is being rewritten from legacy 32-bit Visual Basic 6 into a clean Python 64-bit stack — keeping the same instrument protocols while adding live plotting, CSV export, and a maintainable open codebase.
Released Apps
Each module is a self-contained executable — operators can run only the panels they need without installing the full system.
Driver-backed operator panel for the FW Bell 908A USB gaussmeter. Live field readings, configurable sampling sessions with alarm thresholds, and an interactive hover tooltip on the session plot.
Three-axis SQUID live-view logger for viscous remanent magnetisation decay experiments. Configurable log/linear time steps, per-axis calibration, and direct legacy INI file loading.
Diagnostic and dense-capture panel for validating ADwin digital I/O, direct DAC and ADC channels, and board-timed loopback waveform acquisition before running AF demagnetisation hardware.
Utility for detecting and assigning serial COM ports to each hardware device (gaussmeter, SQUID, motor controllers) before starting a measurement session.
Alternating-field coil tuning panel — Python port of
frmAFTuner. Manages ADwin-driven AF ramps,
relay selection, and field calibration curves.
Stage-centric operator panel aligned to
frmDCMotors. Supports click/double-click tray
moves, Active Cup calibration edits, and optional XY-only
operation when the Z axis is disconnected.
Z-axis operator panel aligned to frmDCMotors.
Combines raw-count motion, top-switch readback, vacuum control,
and SQUID-guided MeasPos scanning in one window.
Unified operator interface replacing the VB6 MDI shell. Sidebar navigation across Sample Queue, Sequence Builder, Live Measurement, and System Settings. Phase 2 complete: all dialogs (Zijderveld plots, SQUID comm, IRM/ARM, vacuum, sample select, debug console) fully wired.
Standalone demagnetisation data viewer with 2D component plots, 3D vector view, equal-area stereonet, normalized moment quicklook, and lightweight next-step hints. Opens CIT `.sam` sets, MagIC directories, and auto-reloads watched files.
Manuals
Use this index to see which compiled apps already have a full manual, which ones still rely on a README, and where a dedicated VB6 transition sheet has already been written.
Repo-side index of compiled executables, manual sources, website app pages, and current VB6 transition-sheet coverage.
Current reference manual for the new transition-sheet format, mapping
frmDCMotors and vacuum tasks onto the Python Z-axis panel.
Full manuals currently exist for Gaussmeter Control, VRM Decay Logger, ADwin Communications Tester, XY Sample Changer, and Up/Down Control.
Codebase
A shared hardware abstraction layer sits beneath all subsystem apps, keeping driver code in one place and subsystem UIs thin.
RAPID/ ├── RapidPy/ │ ├── rapidpy_common/ # Shared layer │ │ ├── ui.py # UMN maroon/gold style sheet │ │ ├── hardware.py # Quicksilver motor protocol + motion helpers │ │ ├── adwin_af.py # ADwin AF ramp backend │ │ └── gaussmeter.py # gm0.dll / FW Bell wrapper │ │ │ ├── gaussmeter_control/ # ✅ Released │ ├── vrm_logger/ # ✅ Released │ ├── adwin_comms/ # ✅ Released │ ├── af_tuner/ # 🔧 In progress │ ├── changer_xy_control/ # ✅ Released │ ├── updown_control/ # ✅ Released │ ├── dc_motor_control/ # 🔧 In progress │ ├── data_viewer/ # ✅ Released — standalone demagnetisation data viewer │ └── rapid_main/ # 🔧 Phase 2 — full system shell │ ├── installer/ # PyInstaller specs + Inno Setup ├── docs/ # User and developer manuals └── VB6/ # Original VB6 source (reference)
Transition Plan
Subsystem-by-subsystem replacement, each validated against real hardware before the next one begins.
gm0.dll, FW Bell usb5100.dll,
Quicksilver motor protocol, and ADwin AF ramp. UMN maroon/gold Qt style sheet.
rapid_main) reaches Phase 2: all 8
settings tabs populated, 9 dialog windows wired (Zijderveld plots, SQUID comm,
IRM/ARM, vacuum, sample select, debug console), standalone
data_viewer utility released.
Backend hardware integration (Phase 3) now active.
RAPID is open source under GPLv3. Bug reports, hardware compatibility notes, and pull requests are welcome.