Expose STARBackend.channels_request_stop_disk_z_positions() (bulk read)#1058
Merged
BioCam merged 2 commits intoMay 22, 2026
Merged
Conversation
…ead) Reads each channel's stop-disk Z (the bare probe, excluding any mounted tip) by fanning out the per-channel `request_probe_z_position` read, which has no master-level equivalent. Mirrors the single-channel stop-disk / tip-bottom split at the all-channel level. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.
Reads every channel's stop-disk Z (the bare stop disk, excluding any mounted tip) across all channels. The stop-disk read is a per-channel-module command with no master-level equivalent, so this fans out one
request_probe_z_positioncall per channel rather than a single master read.Mirrors the existing single-channel stop-disk / tip-bottom split (
request_probe_z_positionvsrequest_tip_bottom_z_position) at the all-channel level, and follows thechannels_request_*naming.Why not just wrap the firmware's
C0 RZ? The firmware has a one-shot all-channel reader (C0 RZ) that returns each channel's bottom-most Z - tip end if a tip is fitted, bare stop disk if not. It is tempting because it is a single round-trip. We deliberately do not expose it, because that tip-vs-no-tip branch is computed invisibly inside the firmware: a caller readingchannels_request_stop_disk_z_positions()cannot tell from the call site whether a given number is a tip end or a bare stop disk, and the rule that produced it lives in firmware we do not control. That implicitness is a maintenance hazard - the meaning of the returned number silently depends on machine state, and any future change to the firmware's tip handling changes the result with no signal in our code. Reading the stop-disk Z explicitly and letting the caller branch onrequest_tip_presencekeeps the tip logic legible and owned in Python, at the cost of N round-trips instead of one. For the iSWAP collision use case correctness and clarity matter more than the extra round-trips.Motivated by the upcoming iSWAP
move_ychannel-collision check, which needs each channel's Z to decide whether it sits in the arm's swept band.Also adds a
TODO(v1)to renamerequest_probe_z_positiontorequest_stop_disk_z_position, aligning it withmove_channel_stop_disk_zand the new bulk reader.🤖 Generated with Claude Code