Kai Chappell b826337b36
All checks were successful
CI / Lint (push) Successful in 5s
CI / Type Check (push) Successful in 19s
CI / Release (push) Has been skipped
CI / Test (push) Successful in 54s
fix(dashboard): use st.cache_resource for server singleton
Replace module-level singleton with @st.cache_resource decorator.
This properly survives Streamlit reruns without losing the server
reference, preventing "port already in use" errors when refreshing
the browser in Docker.

The cache is tied to the Streamlit process lifecycle, so when the
process restarts, both the cache and daemon threads are cleared
together.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 23:44:37 +00:00
2026-01-29 22:00:59 +00:00
2025-12-04 13:18:17 +00:00
2025-12-04 13:18:17 +00:00

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 Defines what the system must do
Technical Specification Specifies how to implement the system
Architecture Decisions Explains why decisions were made

Installation

# Install with development dependencies
pip install -e ".[dev]"

Quick Start

Interactive Dashboard

Launch the Streamlit dashboard to visualise the physics simulation and run tests:

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

# 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

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 for details.

Description
Coupled physics DVT simulation platform for offline ATE algorithm development
Readme 2.1 MiB
v0.1.0 Latest
2025-12-04 13:18:26 +00:00
Languages
Python 97.4%
HTML 1.2%
CSS 1.2%
Dockerfile 0.2%