Skip to content

Add Labcyte Echo Support#1001

Draft
alexjamesgodfrey wants to merge 18 commits intoPyLabRobot:v1b1from
alexjamesgodfrey:labcyte-echo-plate-access
Draft

Add Labcyte Echo Support#1001
alexjamesgodfrey wants to merge 18 commits intoPyLabRobot:v1b1from
alexjamesgodfrey:labcyte-echo-plate-access

Conversation

@alexjamesgodfrey
Copy link
Copy Markdown

@alexjamesgodfrey alexjamesgodfrey commented Apr 20, 2026

Summary

Draft support for Labcyte (acq Beckman) echo support under PyLabRobot's v1b1 architecture.

I only have the echo 650 so this will be tailored to that specific machine for now.

This includes:

  • Echo driver/frontend for Medman SOAP-over-HTTP calls
  • lock/unlock, instrument info, DIO/access-state polling, and event stream support
  • source/destination plate access operations and safe close-door handling
  • source plate map upload, plate survey, saved survey retrieval, and dry plate support
  • raw DoWellTransfer execution for existing Echo protocol XML via do_well_transfer() and EchoTransferPrintOptions
  • focused tests for Echo RPC serialization/parsing, access state normalization, survey helpers, transfer execution, and plate-access behavior

Todo

  • Add pylabrobot.labcyte namespace
  • Add EchoDriver, EchoPlateAccessBackend, and Echo frontend
  • Implement Echo Medman SOAP-over-HTTP transport
  • Handle gzip-compressed responses and Echo request quirks
  • Add instrument setup/teardown path
  • Add GetInstrumentInfo
  • Add lock/unlock/session control
  • Add DIO/access-state polling
  • Normalize source/destination access state
  • Add source plate present/retract operations
  • Add destination plate present/retract operations
  • Add safe close_door() behavior
  • Add generic PLR plate_access capability
  • Wire Echo into PlateAccess
  • Add event stream parsing/reading support
  • Add source plate map upload
  • Add PlateSurvey
  • Add GetSurveyData
  • Add DryPlate
  • Add survey_source_plate() helper workflow
  • Add SetSurveyData
  • Add transfer-volume metadata helpers
  • Add raw DoWellTransfer execution
  • Add EchoTransferPrintOptions
  • Parse Echo transfer report XML
  • Add focused unit tests for access, survey, events, and raw transfer execution
  • Add user docs for Echo access, survey, and transfer execution
  • Run focused pytest validation
  • Run focused ruff validation
  • Fast-forward local checkout to PR head: git pull --ff-only
  • Run or document live validation for the expanded survey/transfer path
  • Add PLR-native Echo protocol generation from PLR resources/wells
  • Add a higher-level transfer(...) API instead of requiring raw Echo protocol XML
  • Model Echo source/destination load positions as PLR resources or PlateHolders
  • Integrate physical plate movement with PLR arms/workcells
  • Add examples for robot loads plate -> Echo surveys/transfers -> robot unloads plate
  • Decide how Echo transfer results should update PLR liquid trackers
  • Add broader docs explaining what is Echo-native vs PLR-native

Validation (WIP)

  • uv run --with pytest --with pytest-timeout python -m pytest pylabrobot/labcyte/echo_tests.py pylabrobot/capabilities/plate_access/plate_access_tests.py
  • uv run --with ruff ruff check pylabrobot/labcyte pylabrobot/capabilities/plate_access

@alexjamesgodfrey alexjamesgodfrey changed the title Add Labcyte Echo Medman support Add Labcyte Echo Support Apr 20, 2026
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