ART.stdf (Automatic Report Tool) is a high-performance software designed to automatically process MDRF STDF (Standard Test Data Format) files in engineering environments. The tool streamlines daily work by automating the generation of comprehensive test reports with interactive visualizations.
- Automatic Processing: Monitors directories and automatically processes STDF files
- Multiple Report Types: Condition, Stability, Volume, Test Time, Yield, and Characterization reports
- Interactive Visualizations: Uses Plotly for rich, interactive charts and graphs
- High Performance: Built with Polars for ultra-fast data processing
- Efficient Storage: Stores data in Apache Parquet format for optimal performance
-
Network Access: Ensure access to the shared drive:
\\gpm-pe-data.gnb.st.com\ENGI_MCD_STDF -
Python Environment: Python 3.8 or higher
-
STDF Files: Preferably in compressed
.std.gzformat
# Clone the repository
git clone https://github.com/terranovamt/automaticReportTool.git
cd automaticReportTool
# Install dependencies
pip install -r requirements.txt# Run the main polling system (monitors default directory)
python main.py
# Monitor a specific directory
python main.py "path/to/your/STDF/directory"automaticReportTool/
├── main.py # Entry point
├── src/
│ ├── polling.py # Main processing system
│ ├── core.py # Report generation core
│ ├── stdf2data.py # STDF conversion utilities
│ ├── charv3.py # Characterization reports
│ ├── shmoo.py # Shmoo plot processing
│ ├── condition.py # Condition report logic
│ ├── pystdf/ # STDF parsing library
│ ├── jupiter/ # Customization utilities
│ ├── script/ # HTML generation and analytics
│ └── web/ # Web templates
├── doc/ # Documentation
│ ├── ART.html # User guide (current)
│ ├── USER_GUIDE.html # Enhanced user guide (NEW)
│ └── DEVELOPER_GUIDE.html # Developer documentation (NEW)
└── README.md # This file
| Report Type | Purpose | Input | Key Metrics |
|---|---|---|---|
| Condition | Test condition analysis | anaflow.html | Per-test conditions |
| Stability (LOOP) | Process consistency | 30 test loops | Cp > 10 for parametric |
| Volume IP | Volume validation | 1 wafer/100 parts | CpK > 1.6 |
| Test Time | Time analysis | Any volume file | Average/Max times |
| Yield | Production yield | Volume data | Hardware/Software bins |
| CHAR | Characterization | Multi-corner STDF | Temperature variations |
| Shmoo | Parameter sweeps | .shm files | Interactive shmoo plots |
Create an ART.jsonc file in your product directory:
Create a configuration file to specify which products to process:
[44E, 44F, 449]
- User Guide - Complete guide for end users
- Developer Guide - Technical documentation for developers
- Original Docs - Original documentation
- Polars - Lightning-fast DataFrame library
- Plotly - Interactive visualization library
- Apache Parquet - Efficient columnar storage format
- Python 3.8+ - Core language
┌─────────────────┐
│ Directory │
│ Polling │
└────────┬────────┘
│
├──> STDF Files ──> STDF2DATA ──> Parquet Files
│ │
├──> Condition HTML ─────────────────> │
│ │
├──> Shmoo Files (.shm) ──────────────┤
│ │
└──────────────────────────────────────┴──> Report Generation
│
┌─────────────────────┴──────────────────┐
│ │
HTML Reports Analytics
(Interactive Charts) (Usage Stats)
- Processing Speed: Handles large STDF files (>1GB) in minutes
- Memory Efficiency: Columnar storage allows processing datasets larger than RAM
- Concurrent Processing: Multi-threaded operations for faster throughput
Logs are stored in the log/ directory:
polling.log- Directory polling eventsstdf2data.log- STDF conversion logsdata2report.log- Report generation logscondition2report.log- Condition report logsshmoo.log- Shmoo processing logs
Each log automatically rotates after 1000 lines.
Contributions are welcome! Please contact the development team before making significant changes.
For questions, issues, or feature requests:
- Email: matteo.terranova@st.com
- GitHub Issues: Report an issue
Matteo Terranova MDRF - GPAM | Test Engineer STMicroelectronics - Catania, Italy
Copyright © STMicroelectronics - Automatic Report Tool. All rights reserved.

{ "product_name": "Mosquito512K", // Product name "xwafer": [0, 30], // Wafer X-axis range "ywafer": [0, 30], // Wafer Y-axis range "touch_down": 150, // Touchdown count // Wafer map reconstruction test numbers "XY_XL": "4500001", "XY_XH": "4500002", "XY_YL": "4500003", // ... additional XY parameters // Optional: Temperature-to-color mapping for CHAR "STPaletteChar": { "-40": "#03234B", "-10": "#3CB4E6", "30": "#49B170", "60": "#A4C238", "90": "#FFD200", "130": "#F3693F" } }