Instruments and Drivers

Overview

This section covers the configuration of instruments and executing actions available via drivers within a workflow. It includes information on setting up and querying available instruments and actions on a given workcell and within LINQ Cloud.

Workcell

A workcell is a defined object in a workflow as well as the physical manifestation of a collection of instruments upon which a workflow executes.

To interact with the workcell, execute workflows, and get status, see Workflow Execution.

As an object referenced via the LINQ SDK, a workcell contains a transport_matrix (see Tasks and Transport) and instruments below.

class linq.workcell.Workcell(*, workcell_id: str | None = None, instruments: list[Instrument], transport_matrix: TransportMatrix)

Represents a workcell.

workcell_id: str | None

The identifier of the workcell.

instruments: list[Instrument]

The list of instruments present in the workcell.

transport_matrix: TransportMatrix

Describes transport times between benches in the workcell.

get_instrument(instrument_id: str) Instrument

Fetches the instrument with the given instrument_id from the list of instruments.

Parameters:

instrument_id (str) – The unique identifier of the instrument.

Raises:

KeyError – If no instrument with the specified ID is found in the workcell.

Returns:

The instrument with the matching ID.

Return type:

Instrument

Instruments

Config

Instruments are set up via the Instrument class.

class linq.workcell.Instrument(*, id: str, name: str, type: str, bench: str, driver: str, capacity: int = 1, is_slotless_container: bool = False, config: dict[str, JsonSerializable] = ..., mappings: list[str] = ...)

Describes an instrument in a workcell.

id: str

Instrument ID (must be unique for the entire workflow).

name: str

Instrument name.

type: str

Instrument type. Currently arbitrary.

bench: str

Id of the instrument’s bench.

driver: str

Name of the instrument driver.

capacity: int

Instrument labware capacity.

is_slotless_container: bool

Set to true for instruments like bins, which have capacity for many pieces of labware not distinct slots.

config: dict[str, JsonSerializable]

Configuration options for the instrument driver. Use the driver CLI to get valid values for each driver.

mappings: list[str]

Mappings this instrument is assigned to, used when a task can pick from several instruments.

Notable properties are driver, which dictates what actions the instrument can perform, and config, which provides the configuration options for the instrument driver. An example config parameter is the serial port connection information.

For more information on the mappings and is_slotless_container fields, see Labware Flow.

Drivers

To query a list of drivers, actions, and configs available for a given scheduler version use:

linq driver list

To retrieve scheduler versions, use:

linq scheduler-versions

For more information on scheduler versions, see Planning and Validation.

Mappings

The mappings field is used to specify which instrument a task executes on. See Labware Flow