From b981182b71045b8a4d6687ff5667c751cca80f07 Mon Sep 17 00:00:00 2001 From: Kai Chappell Date: Mon, 11 Aug 2025 13:11:17 +0000 Subject: [PATCH] Add default configuration file --- config/default.yaml | 149 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 149 insertions(+) create mode 100644 config/default.yaml diff --git a/config/default.yaml b/config/default.yaml new file mode 100644 index 0000000..7d02986 --- /dev/null +++ b/config/default.yaml @@ -0,0 +1,149 @@ +# py_dvt_ate Default Configuration +# This file contains default settings for the DVT simulation platform. +# Copy this file and modify values as needed for your environment. + +# ============================================================================= +# Instrument Configuration +# ============================================================================= +instruments: + # Backend selection: "simulator" or "pyvisa" + # - simulator: Use virtual instruments with physics simulation (for development) + # - pyvisa: Connect to real instruments via PyVISA (for production testing) + backend: simulator + + # Simulator backend configuration + # Used when backend=simulator. Virtual instruments are exposed as TCP servers. + simulator: + host: localhost + thermal_chamber_port: 5001 + power_supply_port: 5002 + multimeter_port: 5003 + + # PyVISA backend configuration + # Used when backend=pyvisa. Provide VISA resource strings for real instruments. + # Example: "TCPIP::192.168.1.10::5001::SOCKET" + pyvisa: + thermal_chamber: null + power_supply: null + multimeter: null + +# ============================================================================= +# Physics Simulation Parameters +# ============================================================================= +physics: + # Physics engine update rate (Hz) + # Higher rates provide better accuracy but use more CPU. + update_rate_hz: 100.0 + + # Thermal model parameters + thermal: + # Chamber thermal time constant (seconds) + # Time for chamber temperature to reach 63% of final value + chamber_time_constant_s: 30.0 + + # DUT case thermal time constant (seconds) + # Time for case temperature to reach 63% of final value + case_time_constant_s: 5.0 + + # Junction-to-case thermal resistance (°C/W) + # How much the junction heats above case per watt dissipated + theta_jc: 15.0 + + # Case-to-ambient thermal resistance (°C/W) + # How much the case heats above ambient per watt dissipated + theta_ca: 5.0 + + # Thermal chamber behaviour + chamber: + # Maximum temperature ramp rate (°C/min) + # Real chambers have limited heating/cooling rates + ramp_rate_c_per_min: 10.0 + + # Temperature stability window (°C) + # Chamber is considered stable when within ±this value of setpoint + stability_window_c: 0.5 + + # Stability duration requirement (seconds) + # Chamber must remain in stability window for this duration + stability_time_s: 30.0 + +# ============================================================================= +# DUT (Device Under Test) Configuration +# ============================================================================= +dut: + # DUT model type + # Currently supported: "ldo" + model: ldo + + # DUT model parameters + parameters: + # Nominal output voltage at 25°C (V) + nominal_output_voltage: 3.3 + + # Temperature coefficient (ppm/°C) + # Voltage change per degree: ΔV = V₀ × tempco × ΔT / 1e6 + tempco_ppm_per_c: 50.0 + + # Quiescent current at 25°C (µA) + quiescent_current_ua: 50.0 + + # Quiescent current temperature coefficient (per °C) + # Iq change per degree: ΔIq = Iq₀ × tempco × ΔT + quiescent_current_tempco: 0.003 + + # Dropout voltage (V) + # Minimum Vin-Vout differential for regulation + dropout_voltage: 0.3 + +# ============================================================================= +# Data Storage Configuration +# ============================================================================= +data: + # SQLite database path for test runs and results + database_path: ./data/py_dvt_ate.db + + # Directory for measurement data files (Parquet format) + measurements_dir: ./data/measurements + + # Directory for generated reports (PDF, HTML) + reports_dir: ./data/reports + +# ============================================================================= +# Logging Configuration +# ============================================================================= +logging: + # Logging level: DEBUG, INFO, WARNING, ERROR, CRITICAL + level: INFO + + # Log file path + # Use null to disable file logging + file: ./data/logs/py_dvt_ate.log + + # Log message format + # Uses Python logging format strings + format: "%(asctime)s - %(name)s - %(levelname)s - %(message)s" + +# ============================================================================= +# Dashboard Configuration (Streamlit) +# ============================================================================= +dashboard: + # Enable/disable the Streamlit dashboard + enabled: true + + # Dashboard server port + port: 8501 + +# ============================================================================= +# API Configuration (Phase 2) +# ============================================================================= +api: + # Enable/disable the REST API server + # Currently not implemented (Phase 2 feature) + enabled: false + + # API server host + # Use "0.0.0.0" to listen on all interfaces + host: "0.0.0.0" + + # API server port + port: 8000