Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(hardware-testing): Add lpc protocols for lld testing #15710

Merged
merged 3 commits into from
Jul 22, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions api/src/opentrons/hardware_control/ot3api.py
Original file line number Diff line number Diff line change
Expand Up @@ -2631,6 +2631,14 @@ async def liquid_probe(
)
max_speeds = self.config.motion_settings.default_max_speed
p_prep_speed = max_speeds[self.gantry_load][OT3AxisKind.P]
# We need to significatly slow down the 96 channel liquid probe
if self.gantry_load == GantryLoad.HIGH_THROUGHPUT:
max_plunger_speed = self.config.motion_settings.max_speed_discontinuity[
GantryLoad.HIGH_THROUGHPUT
][OT3AxisKind.P]
probe_settings.plunger_speed = min(
max_plunger_speed, probe_settings.plunger_speed
)

error: Optional[PipetteLiquidNotFoundError] = None
pos = await self.gantry_position(checked_mount, refresh=True)
Expand Down
18 changes: 10 additions & 8 deletions hardware-testing/hardware_testing/liquid_sense/__main__.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,11 @@
from .post_process import process_csv_directory, process_google_sheet

from hardware_testing.protocols.liquid_sense_lpc import (
liquid_sense_ot3_p50_single_vial,
liquid_sense_ot3_p1000_96_well,
liquid_sense_ot3_p50_multi,
liquid_sense_ot3_p50_single_96well,
liquid_sense_ot3_p1000_96_1well,
liquid_sense_ot3_p1000_single_96well,
liquid_sense_ot3_p50_multi_12well,
liquid_sense_ot3_p1000_multi_12well,
)

try:
Expand Down Expand Up @@ -71,13 +73,13 @@

LIQUID_SENSE_CFG: Dict[int, Dict[int, Any]] = {
50: {
1: liquid_sense_ot3_p50_single_vial,
8: liquid_sense_ot3_p50_multi,
1: liquid_sense_ot3_p50_single_96well,
8: liquid_sense_ot3_p50_multi_12well,
},
1000: {
1: liquid_sense_ot3_p1000_96_well,
8: None,
96: None,
1: liquid_sense_ot3_p1000_single_96well,
8: liquid_sense_ot3_p1000_multi_12well,
96: liquid_sense_ot3_p1000_96_1well,
},
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
"""lld OT3 P1000."""
from opentrons.protocol_api import ProtocolContext, OFF_DECK

metadata = {"protocolName": "liquid-sense-ot3-p1000-96"}
requirements = {"robotType": "Flex", "apiLevel": "2.17"}

SLOT_SCALE = 1
SLOT_DIAL = 9

SLOTS_TIPRACK = {
50: [2, 3, 4, 5, 6],
200: [2, 3, 4, 5, 6],
1000: [2, 3, 4, 5, 6],
}

LABWARE_ON_SCALE = "nest_1_reservoir_195ml"


def run(ctx: ProtocolContext) -> None:
"""Run."""
trash = ctx.load_trash_bin("A3")
vial = ctx.load_labware(LABWARE_ON_SCALE, SLOT_SCALE)
dial = ctx.load_labware("dial_indicator", SLOT_DIAL)
pipette = ctx.load_instrument("flex_96channel_1000", "left")
adapters = [
ctx.load_adapter("opentrons_flex_96_tiprack_adapter", slot)
for slot in SLOTS_TIPRACK[50]
]
for size, slots in SLOTS_TIPRACK.items():
tipracks = [
adapter.load_labware(f"opentrons_flex_96_tiprack_{size}uL")
for adapter in adapters
]
for rack in tipracks:
pipette.pick_up_tip(rack["A1"])
pipette.aspirate(10, vial["A1"].top())
pipette.dispense(10, vial["A1"].top())
pipette.aspirate(10, dial["A1"].top())
pipette.dispense(10, dial["A1"].top())
pipette.drop_tip(trash)
ctx.move_labware(rack, OFF_DECK)
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
"""Liquid Sense OT3 P1000."""
from opentrons.protocol_api import ProtocolContext, OFF_DECK

metadata = {"protocolName": "liquid-sense-ot3-p50-multi"}
requirements = {"robotType": "Flex", "apiLevel": "2.15"}

SLOT_SCALE = 1
SLOT_DIAL = 9
SLOTS_TIPRACK = {
50: [3],
200: [3],
1000: [3],
}
LABWARE_ON_SCALE = "nest_12_reservoir_15ml"


def run(ctx: ProtocolContext) -> None:
"""Run."""
trash = ctx.load_trash_bin("A3")
vial = ctx.load_labware(LABWARE_ON_SCALE, SLOT_SCALE)
dial = ctx.load_labware("dial_indicator", SLOT_DIAL)
pipette = ctx.load_instrument("flex_8channel_1000", "left")
for size, slots in SLOTS_TIPRACK.items():
for slot in slots:
rack = ctx.load_labware(f"opentrons_flex_96_tiprack_{size}uL", slot)
pipette.pick_up_tip(rack["A1"])
pipette.aspirate(10, vial["A1"].top())
pipette.dispense(10, vial["A1"].top())
pipette.aspirate(10, dial["A1"].top())
pipette.dispense(10, dial["A1"].top())
pipette.drop_tip(trash)
ctx.move_labware(rack, OFF_DECK)
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
"""Liquid Sense OT3."""
from opentrons.protocol_api import ProtocolContext, OFF_DECK

metadata = {"protocolName": "liquid-sense-ot3-p1000-single-vial"}
metadata = {"protocolName": "liquid-sense-ot3-p1000-single-96well"}
requirements = {"robotType": "Flex", "apiLevel": "2.17"}

SLOT_SCALE = 1
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@

def run(ctx: ProtocolContext) -> None:
"""Run."""
trash = ctx.load_trash_bin("A3")
tipracks = [
ctx.load_labware(f"opentrons_flex_96_tiprack_{size}uL", slot)
for size, slots in SLOTS_TIPRACK.items()
Expand All @@ -26,4 +27,4 @@ def run(ctx: ProtocolContext) -> None:
pipette.dispense(10, vial["A1"].top())
pipette.aspirate(1, dial["A1"].top())
pipette.dispense(1, dial["A1"].top())
pipette.drop_tip(home_after=False)
pipette.drop_tip(trash)
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
"""Liquid Sense OT3."""
from opentrons.protocol_api import ProtocolContext, OFF_DECK

metadata = {"protocolName": "liquid-sense-ot3-p50-single-vial"}
metadata = {"protocolName": "liquid-sense-ot3-p50-single-96well"}
requirements = {"robotType": "Flex", "apiLevel": "2.17"}

SLOT_SCALE = 1
SLOT_DIAL = 9
SLOTS_TIPRACK = {
50: [3],
}
LABWARE_ON_SCALE = "radwag_pipette_calibration_vial"
LABWARE_ON_SCALE = "corning_96_wellplate_360ul_flat"


def run(ctx: ProtocolContext) -> None:
Expand Down
Loading