ST_ERA is a high-performance desktop application built to simplify oscilloscope signal analysis in automotive and electronic software development. In complex engineering workflows, validating ECU or sensor responses requires comparing high-frequency signals against baseline specifications — an effort that is difficult to perform manually with accuracy at scale.
ST_ERA addresses this by offering an interactive visual environment that automatically aligns signals, detects fine-grained deviations, and delivers instant OK / NG validation. Designed for electrical engineers, ECU developers, and signal analysts, it enables rapid verification of parameters, identification of extreme variations, and reliable validation across test iterations.
The application runs on Windows with a Python-powered backend capable of processing large datasets. It requires minimal setup and provides a comprehensive dashboard with synchronized signal tracking and detailed deviation insights, supporting efficient review and collaboration.
- 1Clone the ST_ERA repository and switch to your designated branch.
- 2Verify Flutter SDK is installed by running
flutter doctorin a terminal. All checks should pass. - 3Verify Python 3.9+ is installed by running
python --version. - 4Open the project in VS Code and install the Dart and Python extensions from the Extensions marketplace.
- 5Install Python backend dependencies by navigating to the backend folder and running
pip install -r requirements.txt.
flutter doctor or python --version fails, resolve the environment variables before proceeding.- 1Open the first terminal (PowerShell), navigate to the backend folder, and start the Data Processing Engine.
- 2Open a second terminal, navigate to the project root, and launch the Flutter Signal Visualization Hub on Windows.
- 3Wait for both processes to report they are running before interacting with the UI.
.pkl (Pickle) or .parquet formats, enabling near-instant loading of millions of data points on subsequent runs.- 1In the ST_ERA UI, click the Upload button and select your target
.datfile(s) in MDF format. - 2The backend will process the file and convert it to
.pklor.parquetformat automatically. - 3Wait for the conversion to complete. A progress indicator will be visible in the UI. Large files may take a moment on first load.
- 4Once converted, subsequent loads of the same file will be near-instant due to the optimised format.
- 1Open the Variable Discovery List panel in the sidebar of the UI.
- 2Use the search bar to filter through thousands of signal tags by name or keyword.
- 3Identify the data streams you need for your analysis and note or select them for plotting in the next step.
ECU_, CAN_) to quickly narrow down relevant variables in large datasets.- 1From the Variable Discovery List, drag a signal variable into the main workspace area to create a new Graph Panel.
- 2Add additional variables to create multiple independent Graph Panels side by side.
- 3Each panel manages its own rendering state — zoom level, visible range, and Y-axis bounds are panel-specific.
- 4All panels remain part of the global synchronisation context, so trackball and time-axis navigation stays aligned across panels (see Step 9).
- 1As you pan left or right along the time axis, the Y-axis automatically recalculates its upper and lower bounds based on the currently visible data range.
- 2The signal remains perfectly centred and legible at all zoom levels without requiring manual axis adjustments.
- 3This is especially valuable when inspecting high-frequency signals with large amplitude variations across different time windows.
- 1Click the Inline Zoom Toggle on any Graph Panel to enable the dual view.
- 2Use the selection handle in the macro view to choose the time-slice you want to inspect in detail.
- 3The micro view below updates in real time as you move the selection window.
- 1Move your cursor over any active Graph Panel. The trackball cursor will appear on all panels at the corresponding time position.
- 2Read the exact signal values at that time point from the tooltip on each panel simultaneously.
- 3Use this to verify that multiple signals — for example ECU output and sensor response — are in the correct temporal relationship to each other.
- 1With your signals plotted, activate the Comparison Logic from the toolbar or comparison panel.
- 2The system calculates variance between the reference and target signals instantly across the full dataset.
- 3Review the colour-coded results — each signal section is marked OK (within tolerance) or NG (deviation exceeded).
- 4Extreme deviation points are marked with precision markers on the graph for immediate identification.
- 5Document or export the results for review and sign-off.
flutter doctor --verbose to see the detailed diagnosis. Commonly missing items are Visual Studio build tools or Android Studio setup. For Windows desktop targets, ensure "Desktop development with C++" workload is installed via Visual Studio Installer.requirements.txt installed successfully. Common culprits are missing numpy, pandas, or mdflib packages. Run pip install -r requirements.txt again and check for error messages.5000 or as configured) is not blocked by a Windows Firewall rule. Restart both processes if needed..dat file. Check that the backend terminal is still running — a stopped backend causes uploads to hang silently. For very large files, allow more time; the first conversion to .pkl can take several minutes.