Multi-device Control
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.
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
- Set up your environment
- Device guides: instrument-specific code patterns
- Error handling and recovery