Skip to content

Add Azure BioSystems Cielo 6 qPCR support - #1234

Open
hazlamshamin wants to merge 2 commits into
PyLabRobot:mainfrom
hazlamshamin:azure-cielo6
Open

Add Azure BioSystems Cielo 6 qPCR support#1234
hazlamshamin wants to merge 2 commits into
PyLabRobot:mainfrom
hazlamshamin:azure-cielo6

Conversation

@hazlamshamin

Copy link
Copy Markdown
Contributor

Summary

Add a v1 PyLabRobot backend for the Azure BioSystems Cielo 6 that communicates directly with the firmware through the shared serial transport and supports complete qPCR workflows.

  • Implement lifecycle management, identity and status requests, workspace and stored-program operations, thermal protocol compilation, run control, live progress, and verified .AZE result transfer.
  • Parse raw and processed amplification measurements and melting-curve measurements into PLR qPCR result models, with OEM-compatible CSV serialization.
  • Make serial captures binary-safe and add device registration, API documentation, a runnable hello-world guide, and focused protocol, lifecycle, transport, and result tests.

Verification

  • uv run pytest -q — 2,883 tests and 590 subtests passed.
  • Ruff lint, formatting, and import-order checks passed across 760 Python files.
  • uv run mypy pylabrobot — passed across 760 source files.
  • The no-API Sphinx documentation build passed with warnings treated as errors.
  • Hardware checks covered USB setup, identity and status requests, workspace and program retrieval, short qPCR runs, live progress and fluorescence data, run stopping, and verified .AZE result transfer.
  • Parsed amplification and melting data were compared with the available OEM .AZE and CSV exports.

hazlamshamin added 2 commits September 2, 2026 19:50
Preserve arbitrary byte values when recording and replaying serial
commands. Latin-1 provides a reversible mapping between bytes and capture
JSON strings without changing the capture schema.
Add direct USB serial control for Cielo 6 identity, status, storage,
run progress, thermal protocol execution, and verified result download.
Decode amplification and melting measurements into PLR plate-data models.

Compile thermal protocols from instrument-read templates so optical, lid,
and exposure settings remain firmware-defined. Program deletion, mechanical
lid operation, and tray movement remain outside the public API.
@rickwierenga

Copy link
Copy Markdown
Member

PR 1234, the first qPCR machine in PLR!

@hazlamshamin

Copy link
Copy Markdown
Contributor Author

PR 1234, the first qPCR machine in PLR!

first thermocycler ✅
first electroporator ✅
first qpcr ✅

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.

2 participants