pylabrobot.liquid_handling.backends.hamilton.STAR_backend.STAR.probe_liquid_heights#

async STAR.probe_liquid_heights(containers: List[Container], use_channels: List[int] | None = None, resource_offsets: List[Coordinate] | None = None, lld_mode: LLDMode = LLDMode.GAMMA, search_speed: float = 10.0, n_replicates: int = 1, move_to_z_safety_after: bool = True) List[float]#

Probe liquid surface heights in containers using liquid level detection.

Performs capacitive or pressure-based liquid level detection (LLD) by moving channels to container positions and sensing the liquid surface. Heights are measured from the bottom of each container’s cavity.

Parameters:
  • containers (List[Container]) – List of Container objects to probe, one per channel.

  • use_channels (List[int] | None) – Channel indices to use for probing (0-indexed).

  • resource_offsets (List[Coordinate] | None) – Optional XYZ offsets from container centers. Auto-calculated for single containers with odd channel counts to avoid center dividers. Defaults to container centers.

  • lld_mode (LLDMode) – Detection mode - LLDMode(1) for capacitive, LLDMode(2) for pressure-based. Defaults to capacitive.

  • search_speed (float) – Z-axis search speed in mm/s. Default 10.0 mm/s.

  • n_replicates (int) – Number of measurements per channel. Default 1.

  • move_to_z_safety_after (bool) – Whether to move channels to safe Z height after probing. Default True.

Returns:

Mean of measured liquid heights for each container (mm from cavity bottom).

Raises:
Return type:

List[float]

Notes

  • All specified channels must have tips attached

  • All channels must be at the same X position (single-row operation)

  • For single containers with odd channel counts, Y-offsets are applied to avoid center dividers (Hamilton 1000 uL spacing: 9mm, offset: 5.5mm)