CaltechExperimentalGravity / CaltechExperimentalGravity/system_ident
[deferred] Operator-answer gate + the six hardware-only unknowns, before any live injection
- 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