-
Notifications
You must be signed in to change notification settings - Fork 131
Expose Granular Channel Control: Dispensing Drive Request, Move, Empty #842
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Expose Granular Channel Control: Dispensing Drive Request, Move, Empty #842
Conversation
BioCam
commented
Jan 26, 2026
There was a problem hiding this 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.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
|
what does "optionally returning to 0." mean? |
|
answer for you: return to 0 is needed because empty is actually below 0 |
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: |
|
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. |
|
works perfectly, thanks! |