feat(kbiosystems): add Ultraseal PRO (formerly WASP) heat sealer driver#1176
Merged
Conversation
rickwierenga
force-pushed
the
feat/kbiosystems-wasp
branch
3 times, most recently
from
July 21, 2026 07:47
7775a7e to
f5c97c9
Compare
Contributor
|
I tested this on my kbiosystems wasp (also known as Thermo ALPS3000), and it works. Note that you need a straight rs232 cable to an rs232 port to control these instruments. I tried many different chipset rs232-usb cables, none worked besides an ol' rs232 port. |
The Ultraseal PRO - sold for years as the WASP - is an inline, pneumatically driven microplate heat sealer that advances and cuts its own film internally and moves its shuttle automatically during the seal cycle. It speaks the shared KBiosystems ASCII/RS-232 protocol, so KBiosystemsUltrasealPRO subclasses KBiosystemsSealer and adds only its status-bit layout (ParkMode at bit 7, bit 6 spare) and error table; unlike the Ultraseal XT Pro it exposes no shuttle park/unpark/reset commands. Named after the current product (matching the ePRO/eSeal precedent). Hardware-verified. Also moves the not-tested warning out of the shared _open() and into each unverified model's setup(), so verifying a model is just deleting that line (the ePRO and XT Pro keep theirs; the Ultraseal PRO has none). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
rickwierenga
force-pushed
the
feat/kbiosystems-wasp
branch
from
July 21, 2026 22:54
f5c97c9 to
b31dcf0
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.
What
Adds
KBiosystemsUltrasealPRO, a PyLabRobot driver for the KBiosystems Ultraseal PRO inline heat sealer, alongside the existing Ultraseal ePRO / XT Pro and KUBE sealers.Naming: the Ultraseal PRO was sold for years as the WASP (product page, "formerly the Wasp"). Following the ePRO/eSeal precedent in this package, the class, module, and docs are named after the current product (
KBiosystemsUltrasealPRO,ultraseal_pro.py,ultraseal-pro/), with "(formerly the WASP)" noted in the docstring and tutorial so people with older units can still find it.The Ultraseal PRO speaks the same shared ASCII/RS-232 protocol as the other KBiosystems sealers (
?/E/S/A/B/C/D/F, 9600 8-N-1, command-echo, CR-terminated), soKBiosystemsUltrasealPROsubclassesKBiosystemsSealerand reuses the shared transport and status/error state machine. It is closest to the Ultraseal XT Pro (inline, pneumatically driven, self-advancing/cutting film, compressed-air supply), with two deliberate differences taken from the protocol manual:ParkModeis bit 7 (0x80) with bit 6 (0x40) a documented spare, whereas the XT Pro reportsParkModeat0x40.UltrasealPROStatuskeepsSpare = 0x40as a member so a byte with that bit set decodes instead of raising.park/unpark/reset(P/U/R) over serial. It also self-initializes on power up (noIcommand).Its error table is the model-specific subset (1, 2, 3, 4, 7, 9, 10) and the sealing-temperature ceiling is 200 °C per the spec sheet.
Hardware-verified
The Ultraseal PRO driver has been confirmed against a real device, so it ships without the not-tested warning. As part of this, the warning was moved out of the shared
_open()and into each unverified model'ssetup()— so verifying a model is just deleting that one line. The ePRO and XT Pro (still unverified) keep theirs; the Ultraseal PRO has none.Included
pylabrobot/kbiosystems/ultraseal_pro.py—KBiosystemsUltrasealPRO,UltrasealPROStatus__init__.pyexportssealer.py—_open()no longer emits the maturity warning (relocated to the unverified subclasses'setup())sealer_tests.py(setup, seal wire-bytes, bit-7 Park Mode vs bit-6 spare, low-air decode, overheating error; extended the shared-low-bits check to include the Ultraseal PRO)ultraseal-pro/hello-world.ipynbtutorialChecks
pytest pylabrobot/kbiosystems/sealer_tests.py— 19 passedruff checkclean,ruff formatapplied,mypyclean🤖 Generated with Claude Code