CaltechExperimentalGravity / CaltechExperimentalGravity/system_ident

[deferred] Operator-answer gate + the six hardware-only unknowns, before any live injection

Open
#27 3 comments 0 reactions 0 assignees View on GitHub
question
Dominant language
Python
Stars
0
Forks
1
PR merge metrics
No merged PRs in 30d

Description

**Component 2 — deferred.** Enumerate and answer; **write no live-injection code** until then.

### Operator questions

Already enumerated at [`notes/40m-sos-campaign-handoff-2026-07.md`](https://github.com/CaltechExperimentalGravity/system_ident/blob/feat/cds-hardware-backend/notes/40m-sos-campaign-handoff-2026-07.md) (Stage 5) and
[`notes/strategic-roadmap-2026-07-draft.md`](https://github.com/CaltechExperimentalGravity/system_ident/blob/feat/cds-hardware-backend/notes/strategic-roadmap-2026-07-draft.md) §Phase-C: exact optic and channel names; OSEM basis matrix,
counts↔N calibration and the DAC/coil limit; awg/nds2 GPS timing and fractional-sample drift; damping on vs
off and the stability margin with a comb near the UGF; Guardian / lock-state and abort-on-lock-loss; the
delivered-fit manifest and Foton drop-in. Pull the site foton bank at hardware time.

### The six things no fake transport can settle

These are the genuinely hardware-only unknowns, and therefore exactly the human-gated set (spec §6):

1. Whether `awg` 3.1.2 accepts the **untapered integer-period array** with `ramptime` start/stop semantics
(the ramp-contract decision rests on this).
2. Whether a channel's AWG slot is **released** after `stop()`, so a second `ArbitraryLoop` on the same
channel succeeds rather than failing with "channel in use".
3. **Multi-channel common `start_gps`** when `inj.start(ramptime>0, wait=False)` **blocks until
`start_gps`** — three loops started in a Python `for` loop leave loops 2 and 3 starting late, with their
`start_gps` already past. Each individual FRF is still unbiased (X is a readback) but the drives are then
not the synchronous simultaneous excitation the mode assumes, **and the loop cannot tell.** Candidate
fix: start all with `ramptime=0` at a common `start_gps` and ramp separately.
4. Whether the `_EXC` channel is **NDS-readable at this site** — it is a testpoint rather than a recorded
channel at many sites. The `read()` invariants depend on reading it back.
5. `getdata` **live short-read / gap behaviour** under real conditions.
6. **Actual DAC counts** against the design power budget.

Every one of these is gated by the hardware-safety rules in [`CLAUDE.md`](https://github.com/CaltechExperimentalGravity/system_ident/blob/feat/cds-hardware-backend/CLAUDE.md): only humans authorize, and
each individual injection needs separate approval.

---
**Campaign:** CDS hardware backend · branch [`feat/cds-hardware-backend`](https://github.com/CaltechExperimentalGravity/system_ident/tree/feat/cds-hardware-backend)
· [spec](https://github.com/CaltechExperimentalGravity/system_ident/blob/feat/cds-hardware-backend/docs/superpowers/specs/2026-08-03-cds-hardware-backend-design.md) · [plan](https://github.com/CaltechExperimentalGravity/system_ident/blob/feat/cds-hardware-backend/docs/superpowers/plans/2026-08-03-cds-hardware-backend.md) · [handoff](https://github.com/CaltechExperimentalGravity/system_ident/blob/feat/cds-hardware-backend/notes/cds-hardware-bringup-2026-08.md)
*Code is deferred until the plan and issues have been reviewed.*

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with notes/40m-sos-campaign-handoff-2026-07.md Stage 5, notes/strategic-roadmap-2026-07-draft.md §Phase-C, and CLAUDE.md, then review the linked spec, plan, and bringup handoff. Work with authorized operators to answer the six hardware-only questions and record the results; done means every gate is resolved before any live-injection code or individual injection approval.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend, embedded-iot
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.