Stage F: wire --cds (CLI, build_cds_backend, BACKENDS registry, mandatory channels.drive)
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 42/100
Research direction
Read the linked CDS design spec and plan first, then inspect cli.py, config.py, loop.py, and configs/rtsfreerun_hsts.yml. Trace the existing backend selection and channel validation entry points before implementing the --cds wiring, registry, configuration, mandatory drive validation, site-agnostic example, and band warning. Done means the CDS backend is selectable without the old refusal and all stated configuration and safety requirements are covered.
Written by the indexing model from the issue text.
Description
Stage F (spec §4, §6). The backend exists but nothing can reach it. Note --cds currently
appears exactly once in the whole repo — in the roadmap note, as future work.
cli.py
- Add
--cds. - Remove the hard refusal at
src/system_ident/cli.py:62("the CDS-hardware backend is not
available yet"). - (
_confirmand--yesare handled in the approval-gate issue.)
config.py
build_cds_backend(...)besidebuild_twin_backend(src/system_ident/config.py:144) and
build_rtsfreerun_backend(src/system_ident/config.py:162).- A
BACKENDSregistry mirroringESTIMATORS/DESIGNERS(src/system_ident/config.py:31), so
the backend choice stops being a pair of hard-coded booleans. NoteMIMOTwinBackend,ReducedPlantBackend
andDARMBackendcurrently have no config path at all — they are constructed directly in
experiments/and tests. A registry is the place to fix that later. - A
cds:section —transport: awg_nds | twin,start_buffer, the site IFO key — validated in
REQUIRED(src/system_ident/config.py:37). channels.drivemandatory for this backend — aConfigError, not a warning.
src/system_ident/loop.py:90silently falls back toexc[d]and_warn_open_drive_monitor
(src/system_ident/loop.py:274) only warns. On hardware that fallback, combined with a synthesised
X, is the measured 200%-error configuration (see theread()invariants issue).
New config
src/system_ident/configs/cds_twin_transport.yml, modelled on
src/system_ident/configs/rtsfreerun_hsts.yml — which already has the right shape
(channels.excitation/drive/readback, measurement.t_ramp, safety.actuator_sat). Deliberately
site-agnostic: no 40m channel names, no C1. Site specifics are the deferred site-profile layer.
Band guard
warnings.warn when freq_max > 0.8 * (fs/2), explaining the cost is SNR, not bias. The sibling
project needed a hard --f-max because scipy.signal.decimate uses cheby1(8, 0.05, 0.8/q), measured
−9.04 dB at 0.9·Nyquist and −22.37 dB at Nyquist; resample_poly's Kaiser FIR is +0.02 dB at 0.8 and
−0.67 dB at 0.9, and being LTI and applied to both X and Y it cancels exactly in Ybar/Xbar. Record
that cancellation argument in the docstring — it is a second, independent reason X must never be a
synthesised array.
pyproject.toml:34 already reserves the cds = [] extra; no change needed there.
Campaign: CDS hardware backend · branch feat/cds-hardware-backend
· spec · plan · handoff
Code is deferred until the plan and issues have been reviewed.
- Dominant language
- Python
- Stars
- 0
- Forks
- 1
- PR merge metrics
- No merged PRs in 30d
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from CaltechExperimentalGravity/system_ident
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
-
enhancement
Difficulty 5/5 Over a week Newbie friendliness 15/100
-
enhancement
Difficulty 5/5 Over a week Newbie friendliness 35/100
-
enhancement
Difficulty 5/5 Over a week Newbie friendliness 35/100
-
enhancement
Difficulty 5/5 Over a week Newbie friendliness 25/100
All issues in CaltechExperimentalGravity/system_ident
Similar issues
-
Context/namespace resources fail in-cluster: "Invalid kube-config file. No configuration found."Open
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
-
bug documentation
Difficulty 1/5 Under an hour Newbie friendliness 88/100
awslabs/visual-asset-management-system#880 ·
Maintainers usually reply within 1 day
-
netbox status: needs owner type: documentation
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
netbox-community/netbox#23533 ·
Maintainers usually reply within 1 day
-
app: scripts status: backlog type: documentation
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
netbox-community/netbox-scripts#68 ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 91/100
marin-community/marin#10765 ·
Maintainers usually reply within 1 day