Skip to content

Repository files navigation

English · العربية · Español · Français · 日本語 · 한국어 · Tiếng Việt · 中文 (简体) · 中文(繁體) · Deutsch · Русский

AgInTi Hardware Console icon

AgInTi Hardware Console

A file-backed laboratory hardware digital twin and control workbench.

Release MIT License Python PySide6 Sponsor

AgInTi Hardware Console showing the interactive F103 pin atlas

AgInTi Hardware Console turns laboratory controllers, pins, sensors, storage, firmware, telemetry, and control intents into one inspectable software mirror. It combines a LabVIEW-style workbench with a Git-friendly hardware filesystem: humans use the visual console while scripts and agents use structured JSON files.

Why it exists

Laboratory hardware is usually fragmented across serial terminals, vendor flash tools, handwritten wiring notes, and one-off scripts. AgInTi Hardware Console creates one explicit model:

physical board → device profile → live state → telemetry → safe control intent
                                      ↓
                         runtime/hardwarefs/devices/

The interface remains useful offline. Missing boards are shown as offline instead of being simulated as connected.

Current capabilities

  • Hardware Task Manager for CPU, execution contexts, RAM, Flash, NAND, QSPI, SD, and connection state.
  • Interactive full-pin atlas with hover lessons, click-to-lock details, risk colors, zoom, and pan.
  • STM32H743, STM32F103, and Waveshare ESP32-S3-DEV-KIT-N8R8 profiles.
  • AS7343 spectrum, TSL2591 intensity, and dual INA219 power-monitor visualization.
  • Safe dual-lamp PWM controls with timed operation, emergency OFF, and auditable intents.
  • Build/flash profiles for ST-Link, OpenOCD, Arduino CLI, and ESP32 serial workflows.
  • Source browser/editor for connected laboratory repositories.
  • File-backed digital twin designed for human, script, and agent collaboration.

Install on Windows

Download the portable ZIP from Releases, extract it, and run AgInTi-HardwareConsole.exe.

To run from source:

git clone https://github.com/lachlanchen/AgInTi-HardwareConsole.git
cd AgInTi-HardwareConsole
python -m venv .venv
.\.venv\Scripts\python.exe -m pip install -r requirements.txt
.\run.ps1

Create desktop and Start Menu shortcuts:

.\scripts\build_icon.py
.\scripts\install_windows_app.ps1

Workspace integration

The console automatically discovers sibling DualLampHI and stm32dev repositories. Override locations with AGINTI_PROJECTS_ROOT, DUALLAMPHI_ROOT, STM32DEV_ROOT, or copy workspace.example.json to:

%APPDATA%\AgInTi-HardwareConsole\workspace.json

Use it inside another repository as a submodule:

git submodule add https://github.com/lachlanchen/AgInTi-HardwareConsole.git apps/hardware_console
git submodule update --init --recursive

Hardware as files

Runtime state is materialized under the ignored runtime/hardwarefs/ tree:

devices/<id>/identity.json
devices/<id>/pins.json
devices/<id>/storage.json
devices/<id>/telemetry.json
devices/<id>/controls/desired.json
devices/<id>/controls/actual.json
intents/<intent-id>.json
events.jsonl

Files express state and intent. Arbitrary file content is never executed; control actions pass through a whitelist and hardware safety checks.

Safety boundary

The application starts offline-safe and does not automatically flash firmware or energize lamps. Timed lamp controls are the default, closing the application requests all lamps OFF, and hold mode requires explicit confirmation. Always provide correct external power, current limiting, and a shared signal ground.

Project links

Support development

If this work helps your laboratory or research, sponsorship supports hardware adapters, calibration tools, documentation, and reproducible releases.

GitHub Sponsors Donate PayPal Stripe
GitHub Sponsors Donate PayPal Stripe

License

MIT © 2026 Lachlan Chen

Releases

Packages

Contributors

Languages