Skip to content

Commit 50f08a4

Browse files
c-reiterrickwierengaclaude
authored
Add HighRes Biosolutions MicroSpin centrifuge backend (#1047)
Co-authored-by: Rick Wierenga <rick_wierenga@icloud.com> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 8b0ccb8 commit 50f08a4

12 files changed

Lines changed: 3062 additions & 0 deletions

File tree

CHANGELOG.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,17 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
66

77
## Unreleased
88

9+
### Added
10+
11+
- HighRes Biosolutions MicroSpin centrifuge backend (`pylabrobot.centrifuge.highres.MicroSpinBackend`) speaking the device's ASCII command/response protocol over TCP/1000, plus a `MicroSpin(...)` factory.
12+
- In-process `MicroSpinMockServer` (`pylabrobot.centrifuge.highres.mock_server`) that faithfully emulates the MicroSpin's wire protocol -- including the firmware's "`status` blocks until the spindle has stopped" semantics and the low-G spin-down-detection hang -- usable as a Python async context manager or runnable as a script (`python -m pylabrobot.centrifuge.highres.mock_server`) for `nc`/`telnet` debugging.
13+
- `MicroSpinBackend.reset()` recovery helper that issues `abort` -> `clearbuttonabort` -> `status`, using the last as the gate that genuinely confirms the rotor has stopped.
14+
- User guide notebook for the MicroSpin (`docs/user_guide/01_material-handling/centrifuge/highres_microspin.ipynb`).
15+
16+
### Fixed
17+
18+
- Imported `unittest.mock` in `pylabrobot/centrifuge/centrifuge_tests.py` (pre-existing bug that prevented the test class from running).
19+
920
## 0.2.1
1021

1122
### Added

docs/api/pylabrobot.centrifuge.rst

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ This package contains APIs for working with centrifuges.
1111
:recursive:
1212

1313
centrifuge.Centrifuge
14+
centrifuge.Loader
1415

1516

1617
Backends
@@ -22,3 +23,21 @@ Backends
2223
:recursive:
2324

2425
vspin_backend.VSpinBackend
26+
highres.microspin_backend.MicroSpinBackend
27+
28+
29+
Errors
30+
------
31+
32+
.. autosummary::
33+
:toctree: _autosummary
34+
:nosignatures:
35+
:recursive:
36+
37+
standard.BucketHasPlateError
38+
standard.BucketNoPlateError
39+
standard.CentrifugeDoorError
40+
standard.LoaderNoPlateError
41+
standard.NotAtBucketError
42+
highres.microspin_backend.MicroSpinError
43+
highres.microspin_backend.MicroSpinProtocolError

docs/user_guide/01_material-handling/centrifuge/_centrifuge.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,5 @@ PLR supports the following centrifuges:
2121
:maxdepth: 1
2222
2323
agilent_vspin
24+
highres_microspin
2425
```

0 commit comments

Comments
 (0)