Skip to content

feat(kbiosystems): add Ultraseal XT Pro driver and share a base sealer class#1172

Merged
rickwierenga merged 2 commits into
v1b1from
feat/kbiosystems-ultraseal-xt-pro
Jul 21, 2026
Merged

feat(kbiosystems): add Ultraseal XT Pro driver and share a base sealer class#1172
rickwierenga merged 2 commits into
v1b1from
feat/kbiosystems-ultraseal-xt-pro

Conversation

@rickwierenga

Copy link
Copy Markdown
Member

What

Adds a driver for the KBiosystems Ultraseal XT Pro heat sealer and extracts a shared base class for the KBiosystems sealers.

  • KBiosystemsSealer (new base): serial transport, command-echo stripping, the ?/E status and error state machine (wait_for_idle, busy/temperature waits), and the A/B/C/D/F temperature and time commands.
  • KBiosystemsUltrasealXTPro (new): the inline, pneumatically actuated model. Adds park/unpark/reset, move_shuttle_in/move_shuttle_out, a LowAir status bit, its own error table, a 25 °C temperature floor, and a seal() with no foil/force/distance/eco parameters (the device advances and cuts its film internally).
  • KBiosystemsUltrasealEPRO: now subclasses KBiosystemsSealer. Public API unchanged; keeps its foil/force/distance/eco/init/firmware commands.

Serial protocol for both: 9600 8-N-1, no handshake, CR terminator; ASCII commands with the command echoed in front of the reply.

Tests

sealer_tests.py (13 tests) covers wire bytes for both models via a fake echoing serial, status decoding, the error path, temperature floors, and the shared-base contract. mypy, ruff check, and ruff format are clean.

Status

Not tested against hardware. setup() logs a warning asking for a follow-up PR to remove it once verified.

🤖 Generated with Claude Code

rickwierenga and others added 2 commits July 20, 2026 17:13
…r class

KBiosystemsSealer holds the serial transport, command-echo handling, the
status/error state machine (wait_for_idle, busy/temperature waits), and the
temperature and time commands common to the KBiosystems sealers.

KBiosystemsUltrasealXTPro drives the inline, pneumatically actuated model:
park/unpark/reset shuttle commands, move_shuttle_in/out, a LowAir status bit,
its own error table, a 25 C temperature floor, and a seal() without foil, force,
distance, or eco parameters (the device advances and cuts its film internally).

KBiosystemsUltrasealEPRO now subclasses KBiosystemsSealer; its public API is
unchanged and it keeps its foil/force/distance/eco/init/firmware commands.

Adds sealer_tests.py (fake-serial wire bytes, status decode, error path, and the
shared-base contract) and an Ultraseal XT Pro user-guide notebook.

Not tested against hardware; setup() logs a warning.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
KBiosystemsSealer now subclasses abc.ABC with abstract setup() and seal()
methods, so it cannot be instantiated directly and the override contract is
explicit. Concrete drivers are unchanged.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@rickwierenga
rickwierenga merged commit fe74e0c into v1b1 Jul 21, 2026
1 of 19 checks passed
@rickwierenga
rickwierenga deleted the feat/kbiosystems-ultraseal-xt-pro branch July 21, 2026 00:20
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