STAR aspirate: one C0 AS from mm and uL, checked before it is sent - #1360
Merged
Merged
Conversation
rickwierenga
added this pull request to stack #1357
September 25, 2026 07:51
rickwierenga
force-pushed
the
star-aspirate-one-move
branch
from
September 25, 2026 10:06
4b5a6ad to
7b632ab
Compare
rickwierenga
force-pushed
the
star-aspirate-one-move
branch
from
September 25, 2026 10:09
7b632ab to
b855fc4
Compare
rickwierenga
force-pushed
the
star-aspirate-one-move
branch
13 times, most recently
from
September 25, 2026 10:40
c324154 to
3476086
Compare
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
force-pushed
the
star-aspirate-one-move
branch
from
September 25, 2026 10:41
3476086 to
03c2fcf
Compare
rickwierenga
approved these changes
Sep 25, 2026
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>
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.
_unchecked_fw_aspiratetakes firmware units and checks nothing, so a caller had to convert every field and could send one the firmware refuses._aspirate_in_one_movetakes mm and uL per channel, converts them and checks each field against its range inPipettesConfigurationbefore anything is sent, then sends oneC0 AS. Pre-mix fields are part of it.Tests: conversions, every range refusal before anything is sent, the frame for a given set of arguments.
🤖 Generated with Claude Code