Skip to content

v1 CLARIOstar: refuse to close the drawer on a plate too tall for it - #1529

Merged
BioCam merged 1 commit into
PyLabRobot:mainfrom
BioCam:bmg-clariostar-v1-drawer-plate-height
Oct 22, 2026
Merged

BioCam merged 1 commit into
PyLabRobot:mainfrom
BioCam:bmg-clariostar-v1-drawer-plate-height

Conversation

@BioCam

@BioCam BioCam commented Oct 22, 2026 •

Copy link
Copy Markdown
Collaborator

The Problem

Closing the v1 CLARIOstar's drawer carries whatever stands on the plate holder into the CLARIOstar, however tall it is. The plate holder accepts any plate while the drawer is out, so a deep-well plate (about 43.5 mm) or a plate with a tall lid is closed into the CLARIOstar as readily as a standard 14.35 mm wellplate, and nothing stops it before the drawer moves. The CLARIOstar's own wellplate sensor reads the plate only once it is already travelling in. And when the CLARIOstar refuses a command over its wellplate sensor (quit codes 242 and 243), the error names no reason.

PR Content

  • Drawer.close() checks the plate on the plate holder, its lid included, against Drawer._maximum_plate_size_z (20 mm) before anything is sent, and raises ValueError naming the plate and both heights if it is taller. With no plate on the holder it closes as before.
  • Placing a plate is not checked: a tall plate or a deep-well plate can stand on the open drawer; only closing over it is refused.
  • stop() raises the same error instead of closing the drawer over the plate; the drawer and the connection stay open.
  • 20 mm lets every standard wellplate through, with its lid (15.5 mm) and PCR plates (about 16 mm), and refuses deep-well plates. It is a cautious limit until the CLARIOstar's clearance is measured.
  • Quit codes 242 and 243 are named: "the wellplate sensor failed or could not be read" and "no wellplate is inserted, or the focal height is too low for the one detected".
from pylabrobot.bmg_labtech.clariostar import CLARIOstarPlus
from pylabrobot.resources import cor_96_wellplate_2mL_Vb

clariostar = CLARIOstarPlus()
await clariostar.setup()

clariostar.drawer._maximum_plate_size_z
# 20.0: the tallest plate, lid included, the drawer closes with, in mm

await clariostar.drawer.open()
clariostar.plate_holder.assign_child_resource(cor_96_wellplate_2mL_Vb("deep_well"))
await clariostar.drawer.close()
# ValueError: cannot close the drawer: deep_well is 43.5 mm high; the drawer takes at most 20 mm

🤖 Generated with Claude Code

@BioCam
BioCam force-pushed the bmg-clariostar-v1-drawer-plate-height branch from 7972053 to 3310b27 Compare October 22, 2026 15:38
@BioCam
BioCam marked this pull request as ready for review October 22, 2026 17:15
- `Drawer.close()` checks the plate on the plate holder, its lid included, against
  `_maximum_plate_size_z` (20 mm) before anything is sent, and raises `ValueError` if it is
  taller; with no plate it closes as before.
- Placing a plate is not checked: a tall plate can stand on the open drawer.
- `stop()` raises the same error and leaves the drawer and the connection open.
- Quit codes 242 and 243 are named: the wellplate sensor failed, or no wellplate is inserted or
  the focal height is too low for the one detected.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@BioCam
BioCam force-pushed the bmg-clariostar-v1-drawer-plate-height branch from 3310b27 to 930a171 Compare October 22, 2026 17:23
@BioCam
BioCam merged commit e8c73da into PyLabRobot:main Oct 22, 2026
60 of 64 checks passed
@BioCam
BioCam deleted the bmg-clariostar-v1-drawer-plate-height branch October 22, 2026 18:35
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