feat(kbioscience): add KBioscience KUBE thermal plate sealer driver#1171
Merged
Conversation
Single plain async class `KBioscienceKUBE` over an ASCII RS-232 protocol (9600 8N1, CR terminator, command echoed in front of each reply). Supports sealing by user-defined time/temperature or by one of the six presets stored on the instrument, plate orientation, status/error decoding, and the ALPS300-compatibility protocol check performed at setup. Not yet hardware-tested; a warning is emitted at setup. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
rickwierenga
force-pushed
the
feat/kbioscience-kube
branch
from
July 21, 2026 00:06
89e18c5 to
69541f4
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds a driver for the KBioscience KUBE thermal plate sealer, reverse-engineered from the Thermo Momentum device DLL (
Thermo.Automation.Devices.Instruments.KBioscience.KUBE.dll).Device
\rterminator.A160→A160ok), which is stripped before parsing. A reply containingsyntaxmeans the command was rejected.API
Single plain async class
KBioscienceKUBE(following the same shape as theKBiosystemsUltrasealEPROdriver in #1170):setup()/stop()seal(temperature, duration, preset=SealPreset.USER_DEFINED, idle_temperature)— seals by user-defined time/temperature or by one of the six presets stored on the instrumentset_temperature,set_sealing_time,set_seal_preset,set_plate_orientation,clear_error_windowrequest_status,request_error_code,request_sealing_temperature,request_sealing_time,request_temperature,request_firmware_version,request_product_namewait_for_idle,wait_for_sealing_temperatureKUBEStatusIntFlag; error codes decode to messages viaDEVICE_ERRORS.At setup the driver performs the vendor's ALPS300-compatibility check: a unit configured for ALPS Compatibility speaks the older, incompatible protocol and is rejected with instructions to disable it in the instrument menu.
Testing
ruff checkandruff format --check: cleanmypy: no errors in the new moduleA160,B25,P3,X1/X2), echo-strip decoding of readers, the error-code→message path, and the ALPS300 probeWarning
This driver has not been tested against hardware. A warning is emitted at
setup(); please open a follow-up PR to remove it once verified on a real KUBE.🤖 Generated with Claude Code