Files
py-dvt-ate/README.md
Kai Chappell d0c8135fff
All checks were successful
CI / Lint (push) Successful in 4s
CI / Type Check (push) Successful in 18s
CI / Test (push) Successful in 36s
CI / Release (push) Successful in 6s
Release v0.1.0
2025-12-04 13:18:17 +00:00

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.