UniteLabs
Use Cases

Multi-device Control

Coordinate multiple lab instruments simultaneously from a single Python script.

Real experiments rarely involve a single instrument. A typical assay might require a liquid handler, a thermocycler, a plate reader, and a shaker — each from different vendors, each with its own software. Coordinating them usually means manual handoffs, rigid schedules, or brittle point-to-point integrations.

UniteLabs gives every instrument a uniform Python interface. Coordinating five devices looks the same as coordinating one.

What this unlocks

  • Unified API across vendors: the same Python patterns regardless of instrument brand
  • Concurrent execution: run multiple instruments in parallel with asyncio.gather
  • One workflow per workcell: a single Python project coordinates your entire setup
  • Consistent observability: logging, status, and error handling work the same across all devices

How it works

Each connected instrument becomes a Python object. You can call them sequentially or concurrently — the SDK is fully async. A sync client is also available if you prefer.

workcell.py
import asyncio
from unitelabs.sdk import AsyncApiClient

async def main():
    client = AsyncApiClient()

    # Connect to each instrument by name
    liquid_handler = await client.get_service_by_name("Hamilton STAR")
    thermocycler   = await client.get_service_by_name("Thermocycler")
    plate_reader   = await client.get_service_by_name("Plate Reader")

    # Sequential steps
    await liquid_handler.iswap.transfer(source=plate_1, destination=thermocycler[0])

    # Parallel steps — start thermocycler and open a plate reader stage at the same time
    await asyncio.gather(
        thermocycler.temperature_controller.set_target_temperature(target_temperature=37),
        plate_reader.stage_controller.open(),
    )

asyncio.run(main())

Because all devices share the same connectivity layer, you get consistent error handling, logging, and observability across your whole workcell — not just per instrument.

When to use this

Multi-device control is the right approach when:

  • Your protocol involves handoffs between two or more instruments
  • You want to run instruments in parallel to reduce cycle time
  • You're replacing a scheduler or manual coordination with code

For fully reproducible, tracked runs with versioned inputs and outputs, see Workflow Orchestration.

Next steps