Kai Chappell 885196d933
All checks were successful
CI / Lint (push) Successful in 4s
CI / Type Check (push) Successful in 20s
CI / Test (push) Successful in 57s
CI / Release (push) Has been skipped
refactor(deploy): remove per-app tunnel in favour of central cloudflared
Routing now handled by central cloudflared + NPM on public-network.
2026-02-03 23:43:29 +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%