Repository navigation
Add Synergy HT absorbance support and share BioTek reader code - #1512
Conversation
|
Just tested out on our Synergy HT and it works great! All the steps in the hello-world notebook worked as expected. What would it take to add shaking commands into this? That is really the last piece to enable the reader to do endpoint and kinetic experiments. I'm playing around with it too |
|
thanks for testing @harley-pioneer ! see the latest PR for shaking based on the pcaps you shared |
|
Awesome you beat me to it. Is this something I can also edit? The
I will have another chance to test this in lab tomorrow |
|
hm, not sure what's the easiest way for you to edit here... just send me your prompts and I'll have it executed |
|
@harley-pioneer lmk when you think this is ready to merge. also feel free to make follow on PRs in the future! |
|
ok great!
Could be merged as is Things I can do in a PR I will do today or this week
2026-10-20 10:14:56,840 - pylabrobot.io.ftdi - INFO - Successfully opened FTDI device: FTNE6HGA
2026-10-20 10:14:57,402 - pylabrobot.agilent.biotek.synergy_ht - WARNING - Discarded 30 stale bytes from an earlier Synergy HT session: b'\x067090202 Version 2.24 \x1e000\x03'
2026-10-20 10:14:58,008 - pylabrobot.agilent.biotek._reader - INFO - Connected to SynergyHT, firmware 2.24
|
… verified (#1521) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
|
thanks for the pr @harley-pioneer ! I merged this into main. feel free to add follow on PRs onto main |
Add a
SynergyHTinterface supporting endpoint absorbance, built-in 24- and 96-well plate presets, well selection, tray movement, incubation, and shaking before reads.Shake intensity accepts
"slow","medium","fast", or"variable". A zero duration disables shaking; each read uses its own settings.Measurements return the same
AbsorbanceResultclass used by H1 and Cytation, including wavelength, temperature, and timestamp. Unselected wells containNone; instrument overflow producesNaN.Synergy HT uses the legacy
V/Smeasurement protocol. Share connection lifecycle, command framing, identity queries, tray commands, temperature queries, and operation locking through an internal BioTek base, while keeping assay encoding and parsing specific to each protocol. Existing result-type imports remain compatible.Includes a hello-world notebook, API documentation, and device registration. Fluorescence, luminescence, standalone shaking, kinetics, 384-well plates, and custom plate geometry are not implemented.
Hardware testing covers basecode
7090202, firmware2.24: notebook operations and all four shaking intensities and shake duration.Validation: BioTek unit tests, Ruff, mypy, notebook validation, and the offline documentation build.