- Wrap simulation controls in form to prevent page reruns on change - Fix TempCo test configs to use 2+ temperature points - Add Installation, Quick Start, and usage examples to README 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
125 lines
3.6 KiB
Markdown
125 lines
3.6 KiB
Markdown
# py_dvt_ate
|
|
|
|
**ThermalATE: Coupled Physics DVT Simulation Platform**
|
|
|
|
A software simulation environment that accurately models the physical coupling between thermal and electrical domains, enabling DVT (Design Validation Test) engineers to develop, validate, and debug characterisation test sequences without physical access to laboratory equipment.
|
|
|
|
## Overview
|
|
|
|
ThermalATE enables offline development of ATE (Automated Test Equipment) characterisation algorithms by simulating:
|
|
|
|
- **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
|
|
# Clone the repository
|
|
git clone https://github.com/yourrepo/py_dvt_ate.git
|
|
cd py_dvt_ate
|
|
|
|
# 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
|
|
|
|
TBD
|