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 instument can perform, and config, which provides the configuration options for the instrument driver. An example config parameter is the serial port connection information.
Simulation Configuration
Instruments also support a simulate Boolean field. When simulate is set to true, the instrument is treated as available without requiring hardware driver initialization.
This allows workflows to validate, plan, and publish without a live hardware connection for that instrument.
Example:
{
"id": "hamilton_1",
"driver": "hamilton_starlet_v2",
"simulate": true
}
When simulate is false (default), the driver is initialized normally and requires hardware connectivity.
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