Temperature acquisition and stimulation control stack for UID Mouse Matrices with:
- TCP reader ingest
- live Rich UI
- closed-loop and open-loop stimulation modes
- optional Teensy TTL capture pipeline
- The TCP module builds on earlier contribution work by Derek Jordan.
- The current runtime, UI, stimulation, replay, TTL capture, and configuration system were created and are maintained by Matias Andina.
uv venv -p 3.11 .venv
uv sync
cp config.example.yaml config.local.yaml
# edit config.local.yaml for machine-specific values
uv run --python .venv/bin/python main.py --config configs/open_loop/openloop_20hz.yamlmain.py: live acquisition + preflightreplay.py: replay CSV data through the runtimesimulate.py: synthetic scenario generation
Config file roles:
config.local.yaml: machine-specific values used at runtimeconfigs/...: experiment/protocol overlays passed with--configconfig.example.yaml: documentation/template only, not runtime input
See detailed config docs:
docs/config.md
docs/operator_guide.md: human-first entry point for operatorsdocs/preflight.md: step-by-step preflight walkthroughdocs/open_loop.md: operator-facing open-loop timing guidedocs/closed_loop.md: operator-facing closed-loop guidedocs/troubleshooting.md: symptom-first troubleshootingdocs/docs_site_plan.md: docs IA and site-bootstrap plandocs/runtime.md: architecture and runtime flowdocs/stimulation.md: closed/open-loop semantics and safetydocs/ttl_capture.md: Teensy TTL capture setup and outputsdocs/analysis.md: session analysis loaders, timezone handling, and normalized tablesreplay_samples/README.md: where to place local replay CSV files
As of 2026-04-15, the repo includes a Great Docs scaffold for GitHub Pages:
- config:
great-docs.yml - user guide pages:
user_guide/ - workflow:
.github/workflows/docs.yml
Local docs commands:
uv sync --group docs --group dev
uv run great-docs buildThe GitHub Actions workflow installs Quarto and publishes the site to Pages from main.
replay_samples/is intentionally local-data only (ignored except README).- Hardware validation on Windows remains required before merge to
main.
Install the optional analysis dependencies:
uv sync --extra analysisBuild normalized session tables from a run folder:
uv run python -m analysis_tools.cli data/<session_dir>The analysis parquet outputs store normalized temperature, trigger, stimulation-window,
TTL-edge, and TTL-pulse tables. They do not embed raw ttl_raw.bin bytes.