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

feat(api): raise error if tip tracking is not available for current nozzle configuration #14231

Merged
merged 2 commits into from
Dec 18, 2023

Conversation

sanni-t
Copy link
Member

@sanni-t sanni-t commented Dec 18, 2023

Closes RSS-426

Overview

Raises error when pick_up_tip is called without a location when using pipette nozzle configurations that aren't supported in 7.1.0. See ticket for more deets.

Test Plan

Test protocol:

from opentrons.protocol_api import COLUMN, ALL
from opentrons.protocol_api._nozzle_layout import NozzleLayout


requirements = {
	"robotType": "Flex",
	"apiLevel": "2.16"
}

def run(protocol_context):
	trash_labware = protocol_context.load_labware("opentrons_1_trash_3200ml_fixed", "A3")

	tip_rack1 = protocol_context.load_labware("opentrons_flex_96_tiprack_50ul", "C3")
	tip_rack2 = protocol_context.load_labware("opentrons_flex_96_tiprack_50ul", "D2", adapter="opentrons_flex_96_tiprack_adapter")
	tip_rack3 = protocol_context.load_labware("opentrons_flex_96_tiprack_200ul", "B3", adapter="opentrons_flex_96_tiprack_adapter")

	instrument = protocol_context.load_instrument('flex_96channel_1000', mount="left", tip_racks=[tip_rack3, tip_rack2, tip_rack1])
	instrument.trash_container = trash_labware

	instrument.pick_up_tip()
	instrument.drop_tip()

	instrument.configure_nozzle_layout(style=COLUMN, start="A1")
	instrument.tip_racks = [tip_rack1]

	# Should raise error 
	instrument.pick_up_tip()

	instrument.configure_nozzle_layout(style=NozzleLayout.SINGLE, start="A12")
	instrument.tip_racks = [tip_rack1]

	# Should raise error 
	instrument.pick_up_tip()

	instrument.configure_nozzle_layout(style=NozzleLayout.ROW, start="H1")
	instrument.tip_racks = [tip_rack1]

	# Should raise error 
	instrument.pick_up_tip()

	instrument.configure_nozzle_layout(style=COLUMN, start="A12")
	instrument.tip_racks = [tip_rack1]
	
	# Should pick tips up column-wise from tiprack1
	for _ in range(12):
		instrument.pick_up_tip()
		instrument.drop_tip()

	######### CHANGE CONFIG TO ALL #########
	instrument.configure_nozzle_layout(style=ALL, tip_racks=[tip_rack2])
	instrument.pick_up_tip()
	instrument.drop_tip()

Changelog

  • added a new is_tip_tracking_available() method to instrument core
  • made pick_up_tip to check if tip tracking is available when no pickup location is passed else raise error

Review requests

  • test the above protocol on a robot
  • I don't think we need to update anything in return_tip() since it uses the tiprack/tip state to determine location to return tips to. But let me know if I'm wrong

Risk assessment

Medium. Impacts auto-tip-pickups

@sanni-t sanni-t requested a review from a team as a code owner December 18, 2023 12:21
Copy link
Member

@sfoster1 sfoster1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me!

Copy link
Contributor

@CaseyBatten CaseyBatten left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tested the included protocol (had to fix trash loading in A3), all calls failed at expected position. Cleaned protocol worked as intended. Also ran the ABR full and partial tip pickup end to end and it worked correctly. Looks good.

@CaseyBatten CaseyBatten merged commit c45ed00 into chore_release-7.1.0 Dec 18, 2023
29 checks passed
ncdiehl11 pushed a commit that referenced this pull request Dec 20, 2023
…ozzle configuration (#14231)

Raises error when pick_up_tip is called without a location when using pipette nozzle configurations that aren't supported in 7 1
@sanni-t sanni-t deleted the api-add-no-tip-tracking-error branch July 15, 2024 21:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants