Skip to content

Add bulk dispenser module with Multidrop Combi backend support#964

Open
Robert-Keyser-Calico wants to merge 7 commits intoPyLabRobot:mainfrom
Robert-Keyser-Calico:keyser-multidrop-testing
Open

Add bulk dispenser module with Multidrop Combi backend support#964
Robert-Keyser-Calico wants to merge 7 commits intoPyLabRobot:mainfrom
Robert-Keyser-Calico:keyser-multidrop-testing

Conversation

@Robert-Keyser-Calico
Copy link
Contributor

New device category for bulk reagent dispensers, following the existing
pylabrobot patterns (mixin composition, abstract backend, frontend with
@need_setup_finished guards).

  • Abstract BulkDispenserBackend with dispense, prime, empty, shake, etc.
  • MultidropCombiBackend with full serial protocol support (RS232/USB)
  • Plate helpers to map PLR Plate resources to Multidrop plate types
  • Chatterbox backend for testing without hardware
  • 84 tests covering communication, commands, validation, and helpers
  • Demo script for real-device testing

Robert-Keyser-Calico and others added 7 commits March 25, 2026 09:48
New device category for bulk reagent dispensers, following the existing
pylabrobot patterns (mixin composition, abstract backend, frontend with
@need_setup_finished guards).

- Abstract BulkDispenserBackend with dispense, prime, empty, shake, etc.
- MultidropCombiBackend with full serial protocol support (RS232/USB)
- Plate helpers to map PLR Plate resources to Multidrop plate types
- Chatterbox backend for testing without hardware
- 84 tests covering communication, commands, validation, and helpers
- Demo script for real-device testing

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add `from __future__ import annotations` to errors.py for X | Y syntax
- Use explicit Serial() constructor calls instead of **dict unpacking
- Type intermediate variables to avoid no-any-return errors in queries
- Use plate.get_well("A1") instead of get_all_children() for proper typing
- Type mock io as Any in communication tests

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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