Support code for the PhysIO USB instrument: an MCU-based device that exposes relays, ADC/DAC, UART, and an integrated SWD probe over a SCPI command grammar, drivable by an LLM agent through the Model Context Protocol (MCP).
This repository is an open-source snapshot of the host-side tooling and the device firmware; the hardware design files and full project history live elsewhere.
| Path | What it is |
|---|---|
host/mcp/ |
Rust MCP server. Exposes the instrument to an agent as MCP tools (relay control, ADC/DAC, UART, SWD flash/debug) over a SCPI/USB transport. Includes live-client integration tests. |
host/labgrid/ |
Plan for integrating the device into a labgrid test bench. |
dev-firmware/ |
Zephyr + Rust firmware: the app (device application), a shared protocol crate (on-wire command/response grammar), and hardware-in-the-loop tests. |
host/mcp— standard Cargo crate:cargo build --release(run the binary against a connected device; seehost/mcp/README.md).dev-firmware— Zephyr application built withwest. The Zephyr tree and modules are fetched viawest updatefromdev-firmware/app/west.ymland are not vendored here.
Snapshot of work in progress — interfaces may change.
The host tooling and device firmware in this repository are dual-licensed
under either Apache-2.0 or MIT, at
your option. The hardware design (not included here) is licensed
CERN-OHL-W-2.0 where it lives. See LICENSING.md for the full
breakdown, including the west-fetched Zephyr tree, which stays under its own
upstream licences.