Skip to content

STAR aspirate: one C0 AS from mm and uL, checked before it is sent - #1360

Merged
rickwierenga merged 2 commits into
mainfrom
star-aspirate-one-move
Sep 25, 2026
Merged

rickwierenga merged 2 commits into
mainfrom
star-aspirate-one-move

Conversation

@BioCam

@BioCam BioCam commented Sep 25, 2026

Copy link
Copy Markdown
Collaborator

_unchecked_fw_aspirate takes firmware units and checks nothing, so a caller had to convert every field and could send one the firmware refuses.

  • _aspirate_in_one_move takes mm and uL per channel, converts them and checks each field against its range in PipettesConfiguration before anything is sent, then sends one C0 AS. Pre-mix fields are part of it.
  • The channels' positions are read back after the command.

Tests: conversions, every range refusal before anything is sent, the frame for a given set of arguments.

🤖 Generated with Claude Code

@rickwierenga
rickwierenga added this pull request to stack #1357 September 25, 2026 07:51
@rickwierenga
rickwierenga force-pushed the star-aspirate-one-move branch 13 times, most recently from c324154 to 3476086 Compare September 25, 2026 10:40
Base automatically changed from star-aspirate-raw to main September 25, 2026 10:41
The raw C0 AS takes tenths of millimetres and microlitres, one list per channel, and checks
nothing. _aspirate_in_one_move takes deck heights in mm and volumes in uL per channel, fills every
field the caller leaves out with the default the command has always carried, and refuses a list
of the wrong length, a value outside the firmware's range, an unreachable height or a tip that
would overfill, before anything is sent. Pre-mixes reach the four mixing fields.

After the command only the channels it moved are read back along Z: _record_after_command takes
them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@rickwierenga
rickwierenga merged commit d9e9d23 into main Sep 25, 2026
3 of 20 checks passed
BioCam added a commit to BioCam/pylabrobot that referenced this pull request Sep 25, 2026
… tips state, liquid classes, Mix

v1 keeps its own code where it has moved on: the liquid-class lookup and resolver, aspiration,
dispense, the 96-head mix, the pistons model, the resolver tests where v1 keeps them. From main,
decided in review: soft Z-touch tips identified by model, aspiration range errors reported
together, the liquid-class docstring, the shortened legacy line, a tracker ignoring a callback it
already holds, and the tests main added. Duplicates the merge made are resolved.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@rickwierenga
rickwierenga deleted the star-aspirate-one-move branch September 25, 2026 12:45
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.

2 participants