feat(amx): scaffold NSLS-II AMX deployment (17-ID-1 highly automated macromolecular crystallography), reverse-engineered#391
Merged
Conversation
…macromolecular crystallography), reverse-engineered AMX (NSLS-II 17-ID-1) reverse-engineered from the public NSLS2/amx-profile-collection (LSDC/mxtools). FMX's high-throughput sibling: they share the 17-ID straight and the IVU21 undulator, and AMX completes the NSLS-II MX pair. CORA's third MX deployment after Diamond i03 and NSLS-II FMX: rotation data collection on a single-omega goniometer + Eiger, fast grid scans, and an autonomous EMBL-robot sample-exchange loop. Descriptor + docs scaffold, scenarios deferred. Every PV read from the startup/*.py device classes; goniometer/robot/detector identities and the crystal cut carried as confirm questions. Pure-reuse deployment: coins no Family and graduates nothing. Reuses the i03/FMX MX vocabulary: the graduated Goniometer (single-omega micro-goniometer), Camera (Eiger), Monochromator (here a vertical DCM), Mirror (tandem-deflection + KB), Filter (BCU attenuator), BeamStop, EnergyDispersiveSpectrometer (Mercury), FluxMonitor (Keithley), TimingController (Zebra), and the loose BeamPositionMonitor (DIAG-1). The EMBL robot is one Positioner-presenting Asset, NOT a new SampleChanger Family (the i03/19-BM/FMX precedent, ROBOT-1). FMX-vs-AMX differences (per-Asset, not Family splits): vertical vs horizontal DCM, tandem-deflection vs horizontal focusing mirror, no CRL transfocator, no on-axis backlight; the Eiger PV is not exposed in the AMX profile (Camera confirm-only). The three MX Methods (mx_data_collection, grid_scan, sample_exchange) stay PENDING: AMX is their THIRD consumer (i03 + FMX + AMX). Methods coin on a conduct-path (a deployment that runs them), not a sighting count, so n=3 strengthens the case but does not coin them (the energy_scan deferral discipline; TECH-1). The genuine MX-graduation path is an MX conduct-path scenario, flagged as a follow-on. Added AMX to the NSLS-II site beamlines + three pending MX Practices, updated the MX method reasons (3 consumers), the nav, and the deployments index. 361 deployment guard tests pass; strict docs build clean; no catalog change. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
322f25a to
429e8c7
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Scaffolds AMX (NSLS-II 17-ID-1, Highly Automated Macromolecular Crystallography), FMX's sibling on the shared 17-ID straight (same IVU21 undulator). Building it completes the NSLS-II MX pair; CORA's third MX deployment after Diamond i03 and NSLS-II FMX. Reverse-engineered from the public
NSLS2/amx-profile-collection(LSDC/mxtools). Descriptor + docs scaffold, scenarios deferred. Deployment idamx.Pure reuse, no graduation
AMX coins no Family and graduates nothing — it reuses the i03/FMX MX vocabulary wholesale: graduated
Goniometer(single-omega micro-goniometer),Camera(Eiger),Monochromator(a vertical DCM),Mirror(tandem-deflection + KB),Filter(BCU attenuator),BeamStop,EnergyDispersiveSpectrometer(Mercury),FluxMonitor(Keithley),TimingController(Zebra), looseBeamPositionMonitor. The EMBL robot is one Positioner-presenting Asset, not a new SampleChanger Family (i03/19-BM/FMX precedent, ROBOT-1).FMX-vs-AMX differences (per-Asset, not Family splits): vertical vs horizontal DCM, tandem-deflection vs horizontal focusing mirror, no CRL transfocator, no on-axis backlight; the Eiger PV is not exposed in the AMX profile (Camera confirm-only).
The three MX Methods (
mx_data_collection,grid_scan,sample_exchange) stay pending — AMX is their 3rd consumer (i03+FMX+AMX). Methods coin on a conduct-path (a deployment that runs them), not a sighting count, so n=3 strengthens the case but doesn't coin them (the energy_scan discipline). The genuine MX-graduation path is an MX conduct-path scenario, flagged as a follow-on. Nocatalog.yamlchange.Verification
tests/unit/deployments/guard tests pass.make docs-build(mkdocs--strict) clean.catalog.yamldiff). Rebased past the IOS feat(ios): scaffold NSLS-II IOS (23-ID-2) deployment (ambient-pressure soft X-ray spectroscopy: AP-XPS + NEXAFS/XAS), reverse-engineered #387 + LIX feat(lix): scaffold NSLS-II LIX (16-ID) deployment, the fleet's first life-science solution scattering + fluidic delivery, reverse-engineered #388 additive treadmill (site.yaml/nav/index/methods union, keeping all), now fast-forward-clean.🤖 Generated with Claude Code