Skip to content

Conversation

@BioCam
Copy link
Collaborator

@BioCam BioCam commented Jan 26, 2026

Screenshot 2026-01-26 at 15 37 22

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR exposes granular control over individual channel dispensing drives in the Hamilton STAR backend, enabling low-level operations for precise liquid handling. The changes introduce methods to query channel positions, move dispensing drives to specific volumes, and empty single or multiple channels.

Changes:

  • Added methods to request current dispensing drive positions for individual channels
  • Implemented direct control for moving dispensing drives to target volume positions with configurable speed/acceleration
  • Created convenience methods to empty single or multiple channels with optional drive reset

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

BioCam and others added 2 commits January 26, 2026 15:41
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@rickwierenga
Copy link
Member

what does "optionally returning to 0." mean?

@rickwierenga
Copy link
Member

answer for you: return to 0 is needed because empty is actually below 0

@BioCam
Copy link
Collaborator Author

BioCam commented Jan 26, 2026

what does "optionally returning to 0." mean?

Empty tips moves the piston to volume position -45 by default. It then stays there.

This optional parameter moves the plunger back to volume position 0 straight after. That seems like what people intuitively expect.

But there are situations when that is not desirable:
When there is still some liquid stuck to the inside of the tip, or if emtpy_tips happened while the tip bottom bottom has been immersed into a other liquid... In these scenarios any movement of the piston up would be undesirable.
Instead users might want to leave the piston at the lowest position, move out of the liquid, discard tips and let the piston automatically reset to 0 by itself - which happens during tip pickup I believe.

@BioCam
Copy link
Collaborator Author

BioCam commented Jan 26, 2026

Volume position -45 was empirically determined to be the lowest consistent position achievable.

For reasons unknown, I could get down to -52 but it would sometimes require multiple commands to get there and would sometimes start erroring at -50.

@rickwierenga rickwierenga merged commit dd9e1ed into PyLabRobot:main Jan 26, 2026
10 checks passed
@rickwierenga
Copy link
Member

works perfectly, thanks!

@BioCam BioCam deleted the dispensing-drive-request-move-empty branch January 26, 2026 21:11
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