121 lines
3.5 KiB
Markdown
121 lines
3.5 KiB
Markdown
# py_dvt_ate
|
|
|
|
**Coupled Physics DVT Simulation Platform**
|
|
|
|
A software simulation environment for offline development of ATE (Automated Test Equipment) characterisation algorithms. Accurately models thermal-electrical coupling, enabling DVT engineers to develop and validate test sequences without physical laboratory access.
|
|
|
|
## Overview
|
|
|
|
py_dvt_ate simulates a complete DVT test bench:
|
|
|
|
- **Thermal Chamber** - Temperature control with realistic ramp and settling behaviour
|
|
- **Programmable Power Supply** - Voltage/current control and measurement
|
|
- **Digital Multimeter** - DC voltage measurement with configurable integration time
|
|
- **DUT Models** - Device Under Test simulation with thermal-electrical coupling (e.g., LDO voltage regulators)
|
|
|
|
## Key Features
|
|
|
|
- **Coupled Physics Simulation** - DUT self-heating affects electrical parameters realistically
|
|
- **SCPI Protocol** - Industry-standard commands for instrument control
|
|
- **Hardware Abstraction** - Same test code works with simulated or real instruments
|
|
- **Multiple Interfaces** - CLI, programmatic API, and Streamlit dashboard
|
|
- **Data Persistence** - SQLite for metadata, Parquet for time-series measurements
|
|
|
|
## Documentation
|
|
|
|
| Document | Purpose |
|
|
|----------|---------|
|
|
| [Requirements](docs/01_requirements.md) | Defines **what** the system must do |
|
|
| [Technical Specification](docs/02_technical_specification.md) | Specifies **how** to implement the system |
|
|
| [Architecture Decisions](docs/03_architecture_decisions.md) | Explains **why** decisions were made |
|
|
|
|
## Installation
|
|
|
|
```bash
|
|
# Install with development dependencies
|
|
pip install -e ".[dev]"
|
|
```
|
|
|
|
## Quick Start
|
|
|
|
### Interactive Dashboard
|
|
|
|
Launch the Streamlit dashboard to visualise the physics simulation and run tests:
|
|
|
|
```bash
|
|
py-dvt-ate dashboard
|
|
```
|
|
|
|
This opens a browser window with:
|
|
- **Live Simulation** - Real-time temperature/voltage charts with physics coupling
|
|
- **Test Execution** - Run TempCo characterisation tests
|
|
- **Results Viewer** - Browse and analyse historical test results
|
|
|
|
### CLI Commands
|
|
|
|
```bash
|
|
# Start the simulation server (TCP ports for SCPI instruments)
|
|
py-dvt-ate serve
|
|
|
|
# List available tests
|
|
py-dvt-ate tests list
|
|
|
|
# Run a TempCo test
|
|
py-dvt-ate tests run tempco --config config/tempco_test.yaml
|
|
```
|
|
|
|
### Programmatic API
|
|
|
|
```python
|
|
from py_dvt_ate.instruments import InstrumentFactory
|
|
from py_dvt_ate.simulation import SimulationServer
|
|
|
|
# Start simulation server
|
|
server = SimulationServer()
|
|
server.start()
|
|
|
|
# Create instruments via HAL
|
|
factory = InstrumentFactory()
|
|
instruments = factory.create_from_config("config/default.yaml")
|
|
|
|
# Control instruments using standard interfaces
|
|
instruments.chamber.set_temperature(85.0)
|
|
instruments.psu.set_voltage(1, 5.0)
|
|
instruments.psu.enable_output(1, True)
|
|
voltage = instruments.dmm.measure_dc_voltage()
|
|
|
|
print(f"Output voltage: {voltage:.4f} V")
|
|
```
|
|
|
|
## Project Status
|
|
|
|
**Status:** MVP Complete (v0.1.0)
|
|
|
|
The core vertical slice is functional:
|
|
- Physics engine with thermal-electrical coupling
|
|
- Virtual instruments (chamber, PSU, DMM)
|
|
- Hardware Abstraction Layer
|
|
- SCPI-over-TCP server
|
|
- Test framework with TempCo test
|
|
- Streamlit dashboard
|
|
- SQLite/Parquet data persistence
|
|
|
|
See the requirements document for the full scope and future phases.
|
|
|
|
## Technology Stack
|
|
|
|
- **Language:** Python 3.11+
|
|
- **Physics:** NumPy, SciPy
|
|
- **Configuration:** Pydantic, YAML
|
|
- **CLI:** Typer
|
|
- **Dashboard:** Streamlit
|
|
- **Data:** SQLite, PyArrow (Parquet)
|
|
|
|
## Author
|
|
|
|
Kai Chappell
|
|
|
|
## Licence
|
|
|
|
Proprietary - All rights reserved. See [LICENSE](LICENSE) for details.
|