Skip to content

STARBackend: tip-aware 96-head Z with stop-disk / tool reference pair#1086

Merged
BioCam merged 1 commit into
PyLabRobot:mainfrom
BioCam:head96-z-tipaware-pr
Jun 11, 2026
Merged

STARBackend: tip-aware 96-head Z with stop-disk / tool reference pair#1086
BioCam merged 1 commit into
PyLabRobot:mainfrom
BioCam:head96-z-tipaware-pr

Conversation

@BioCam

@BioCam BioCam commented Jun 11, 2026

Copy link
Copy Markdown
Collaborator

Mirrors the single-channel Z reference split (move_channel_stop_disk_z / move_channel_tool_z) for the 96-head, so a Z target can be expressed against either the stop disk or the tip bottom. Builds on #1084.

H0 ZA (the move) and C0 QI (the position report) reference different things: head96_move_z commands the stop disk, but head96_request_position reports the tip bottom once a tip is mounted. This PR makes that split explicit.

  • head96_request_stop_disk_z (H0 RZ): the raw z-drive (stop disk) position, the request twin of head96_request_position (tip bottom).
  • head96_move_stop_disk_z: the stop-disk move primitive (owns the ZA send and the range / speed / acceleration checks). head96_move_z becomes a deprecating shim delegating to it, as move_channel_z points to its two replacements.
  • head96_move_tool_z: moves the tip bottom to an absolute Z by reading the overhang (stop disk minus tip bottom) and offsetting the stop-disk move; guards tip presence and range-checks in tip space.
  • head96_move_to_z_safety retargets to the top of Head96Information.z_range via the primitive, speed / acceleration forwarded, instead of the hardcoded C0 EV.

Two behaviours to note: head96_move_z is deprecated (shim, no break), and head96_move_to_z_safety now issues an H0 ZA move, which writes the z-drive speed/acceleration register that later commands inherit.

@BioCam BioCam force-pushed the head96-z-tipaware-pr branch 9 times, most recently from 1f30915 to 02c2efd Compare June 11, 2026 15:14
… pair

Mirror the single-channel reference-split for the 96-head Z axis:
- Add head96_request_stop_disk_z (H0 RZ): the raw z-drive (stop disk) position, the request twin of head96_request_position (tip bottom).
- Make head96_move_stop_disk_z the primitive (owns the H0 ZA send + range/speed/accel asserts + firmware acceleration scaling); head96_move_z becomes a deprecating shim that delegates to it, the way move_channel_z points to move_channel_stop_disk_z / move_channel_tool_z.
- Add head96_move_tool_z: positions the tip bottom by reading the overhang move-free (head96_request_stop_disk_z vs head96_request_position) and offsetting the stop-disk move; guards tip presence and validates against the tip-space window, mirroring move_channel_tool_z.
- head96_move_to_z_safety now retracts to the top of Head96Information.z_range via the primitive, with speed/acceleration parameters forwarded (no hardcoded 342.5).
Guard the two new moves with @_requires_head96 (queries stay unguarded, matching the existing convention).

Also correct the _head96_request_configuration QU note: index 1 (stop_disc_type) is populated on firmware at least back to 2021; index 2 (instrument_type) reliability across builds is unverified.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@BioCam BioCam force-pushed the head96-z-tipaware-pr branch from 02c2efd to dd15701 Compare June 11, 2026 16:04
@BioCam BioCam merged commit cce2883 into PyLabRobot:main Jun 11, 2026
21 checks passed
@BioCam BioCam deleted the head96-z-tipaware-pr branch June 11, 2026 16:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant