me-systeme/GSV-8_AlignmentProbe
Alignment Probe is a Windows application written in python designed to support mechanical testing according to ASTM E1012. The software communicates with a ME-Systeme GSV-8 amplifier (via MEGSV86x64.dll) and provides real-time visualization of axial strain and bending strain for two orthogonal measurement planes.
Alignment Probe โ Real-Time ASTM E1012 Bending & Alignment Visualization
๐ Introduction
Alignment Probe is a Windows application designed to support mechanical testing according to ASTM E1012.
The software communicates with a ME-Systeme GSV-8 amplifier (via MEGSV86x64.dll) and provides real-time visualization of axial strain and bending strain for two orthogonal measurement planes.
It is intended for:
- Mechanical testing laboratories
- Alignment verification before tensile or compression tests
- Calibration and setup of test machines
- R&D involving bending, straightness, or offset analyses
- Any workflow requiring live strain-gaugeโbased bending vector visualization
โจ Features
๐ง Real-Time Data Acquisition
- Reads 8 strain gauge channels at 50 Hz (default, is configurable)
- High-performance streaming via
GSV86readMultiple - Automatic buffer clearing on errors
- Clean device initialization and safe shutdown
๐ Live Visualization
- Two polar plots: Plane A and Plane B
- Real-time bending vector (ฮต_bx, ฮต_by)
- Dynamic color coding based on ASTM alignment classes
- Smooth auto-scaling of the bending radius
- Optional fixed-radius mode
๐ Alignment Calculations
- Axial strain (ฮต_ax)
- Bending strain magnitude (|ฮต_b|)
- Bending direction (ฯ in degrees)
- Percent bending
- ASTM alignment class assignment
๐ฅ๏ธ User Interface
- Modern, clean UI layout
- Dedicated info boxes for both planes
- Control panel for PNG export and view-adjustment
- PNG export captures the entire UI (plots + info boxes)
โ๏ธ Configuration Options
- Fully configurable via YAML
- Live adjustments through View Settings dialog
- External YAML overrides bundled embedded configuration
๐ผ Windows EXE Support
- Can be compiled as a single-file EXE
- Includes Python, dependencies, YAML (default), and DLL
- No Python installation required on the end-user machine
๐ Getting Started
In order to start up the Alignment Probe you can download a zip file of the repository with the following link: https://github.com/me-systeme/GSV-8_AlignmentProbe/archive/refs/heads/main.zip. If you have git installed you can also copy the repository in your working directory with
git clone https://github.com/me-systeme/GSV-8_AlignmentProbe.gitFolder Structure
Make sure your working directory contains:
\screenshots
alignment_viewer.py
axial_bending.py
alignment_config.yaml
MEGSV86x64.dll
build_alignment_exe.bat
README.mdIf built as an EXE, PyInstaller bundles the necessary resources.
You can find the latest version of the Windows DLL here: https://www.me-systeme.de/de/software/megsv86.
Running from Source
This requires a 64-bit Python installation. Install required dependencies:
pip install pyqtgraph PyQt6 pyyaml numpyRun the program:
python alignment_viewer.pyโ๏ธ Configuration
All parameters are stored in:
alignment_config.yamlBelow is a summary of the most relevant sections.
Device Settings
device:
com_port: 8
sample_frequency: 50
dll_name: "MEGSV86x64.dll"Channel Mapping
Define which strain-gauge channels belong to plane A and plane B:
channels:
section_map:
A:
e0: 1
e90: 2
e180: 3
e270: 4
B:
e0: 5
e90: 6
e180: 7
e270: 8GUI / View Settings
view:
auto_scale: true
fixed_radius: 1500
refresh_ms: 200
mult_frames: 1000- auto_scale: enables dynamic radius calculation
- fixed_radius: used when auto_scale = false
- refresh_ms: UI update interval
- mult_frames: number of samples per DLL read (boosts stability)
Alignment Classes
alignment_classes:
classes_axial_strain_small: [...]
classes_axial_strain_big: [...]
out_of_class: [...]The user may customize bending limits, class colors, and thresholds here.
๐ ๏ธ Runtime Adjustments (View Settings)
Inside the app, press:
Controls โ View settings
You can modify:
- Auto-scaling on/off
- Fixed polar radius
- Refresh interval
Changes apply immediately without restarting the application.
๐ฆ Building a Windows EXE
1. Install Packages
pip install pyinstaller pyqt6 pyqtgraph numpy pyyaml2. Build the EXE
Use this command:
pyinstaller --onefile --add-data alignment_config.yaml;. --add-data MEGSV86x64.dll;. alignment_viewer.pyExplanation:
--onefileโ bundle everything into one executable--add-data file;.โ embed YAML + DLL- Embedded resources are accessed via
sys._MEIPASSat runtime
The compiled EXE appears in:
dist/alignment_viewer.exeAlternatively, the above can be achieved by double-clicking on build_alignment_exe.bat.
3. Deployment (End User Installation)
You only need to distribute:
alignment_viewer.exeThe EXE already contains:
- Python runtime
- All necessary dependencies
- Default YAML configuration
- Embedded
MEGSV86x64.dll
End users do not need:
- Python
- pip
- Any third-party libraries
Users may override configuration by placing their own:
alignment_config.yamlnext to the EXE.
๐ง Notes for Developers
- Clean shutdown ensures
GSV86stopTXandGSV86releaseare always called - ESC, Ctrl+Q, window close, and Ctrl+C all exit safely
- Heartbeat timer ensures responsive SIGINT handling
- Layout is optimized for balancing info visibility and plot size
- Auto-scale transitions are smoothed for stable visualization

