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:
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