Skip to content

abr protocols for liquid-classes and LLD in v8.4.0 #17997

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

Draft
wants to merge 251 commits into
base: chore_release-8.4.0
Choose a base branch
from

Conversation

andySigler
Copy link
Contributor

@andySigler andySigler commented Apr 7, 2025

Overview

2x changes:

  1. Argument: --parameters
  2. Protocols

Argument: --parameters

Adds a new argument (--parameters) to configure runtime parameters when using opentrons.simulate and opentrons.execute.

Example: --parameters my_str=help my_bool=true my_int=1 my_float=1.23

Protocols

Protocols for volumetric (oh my!) testing release v8.4.0.

Located inside opentrons/hardware-testing/hardware_testing/protocols/volumetric, there are 3x protocols.

For teams: QA, ABR, and FAS:

  • flex_pipette_iq_oq.py

For teams: ABR only

  • flex_volumetric_low_volumes.py
  • flex_volumetric_high_volumes.py
Screenshot 2025-04-08 at 11 10 08 AM Screenshot 2025-04-08 at 11 10 20 AM Screenshot 2025-04-08 at 11 10 33 AM

Test Plan and Hands on Testing

Changelog

Review requests

Risk assessment

jerader and others added 30 commits March 26, 2025 11:24
This PR adds the ability to generate python for quick transfer behind a
feature flag. It also logs it in devtools so you can view the actual
python file, otherwise there is no other way to view the file.
…nds (#17881)

# Overview
We want to enable error recovery during a protocol if the Flex Stacker
shuttle is not detected. This PR does the first step, which is to catch
this error. The hardware controller layer now checks for the platform
status before executing dispense and store labware, and raises the
appropriate error.

closes EXEC-1287, EXEC-1200
…with liquid (#17818)

<!--
Thanks for taking the time to open a Pull Request (PR)! Please make sure
you've read the "Opening Pull Requests" section of our Contributing
Guide:


https://github.com/Opentrons/opentrons/blob/edge/CONTRIBUTING.md#opening-pull-requests

GitHub provides robust markdown to format your PR. Links, diagrams,
pictures, and videos along with text formatting make it possible to
create a rich and informative PR. For more information on GitHub
markdown, see:


https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax

To ensure your code is reviewed quickly and thoroughly, please fill out
the sections below to the best of your ability!
-->

# Overview

Removing instances where tips were returning with liquid in them

## Test Plan and Hands on Testing

Ran protocols and checked tip rack bases upon completion to ensure they
were empty.

## Changelog

<!--
List changes introduced by this PR considering future developers and the
end user. Give careful thought and clear documentation to breaking
changes.
-->

## Review requests

<!--
- What do you need from reviewers to feel confident this PR is ready to
merge?
- Ask questions.
-->

## Risk assessment

<!--
- Indicate the level of attention this PR needs.
- Provide context to guide reviewers.
- Discuss trade-offs, coupling, and side effects.
- Look for the possibility, even if you think it's small, that your
change may affect some other part of the system.
- For instance, changing return tip behavior may also change the
behavior of labware calibration.
- How do your unit tests and on hands on testing mitigate this PR's
risks and the risk of future regressions?
- Especially in high risk PRs, explain how you know your testing is
enough.
-->
…17899)

<!--
Thanks for taking the time to open a Pull Request (PR)! Please make sure
you've read the "Opening Pull Requests" section of our Contributing
Guide:


https://github.com/Opentrons/opentrons/blob/edge/CONTRIBUTING.md#opening-pull-requests

GitHub provides robust markdown to format your PR. Links, diagrams,
pictures, and videos along with text formatting make it possible to
create a rich and informative PR. For more information on GitHub
markdown, see:


https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax

To ensure your code is reviewed quickly and thoroughly, please fill out
the sections below to the best of your ability!
-->

# Overview

DVT Flex Stacker Accelerated Lifetime Test

## Test Plan and Hands on Testing

Ran in SZ

## Changelog

<!--
List changes introduced by this PR considering future developers and the
end user. Give careful thought and clear documentation to breaking
changes.
-->

## Review requests

<!--
- What do you need from reviewers to feel confident this PR is ready to
merge?
- Ask questions.
-->

## Risk assessment

<!--
- Indicate the level of attention this PR needs.
- Provide context to guide reviewers.
- Discuss trade-offs, coupling, and side effects.
- Look for the possibility, even if you think it's small, that your
change may affect some other part of the system.
- For instance, changing return tip behavior may also change the
behavior of labware calibration.
- How do your unit tests and on hands on testing mitigate this PR's
risks and the risk of future regressions?
- Especially in high risk PRs, explain how you know your testing is
enough.
-->
…ime Test (#17898)

<!--
Thanks for taking the time to open a Pull Request (PR)! Please make sure
you've read the "Opening Pull Requests" section of our Contributing
Guide:


https://github.com/Opentrons/opentrons/blob/edge/CONTRIBUTING.md#opening-pull-requests

GitHub provides robust markdown to format your PR. Links, diagrams,
pictures, and videos along with text formatting make it possible to
create a rich and informative PR. For more information on GitHub
markdown, see:


https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax

To ensure your code is reviewed quickly and thoroughly, please fill out
the sections below to the best of your ability!
-->

# Overview

DVT Flex Stacker Labware Compatibility Lifetime Test

## Test Plan and Hands on Testing

- Ran in SZ

## Changelog

<!--
List changes introduced by this PR considering future developers and the
end user. Give careful thought and clear documentation to breaking
changes.
-->

## Review requests

<!--
- What do you need from reviewers to feel confident this PR is ready to
merge?
- Ask questions.
-->

## Risk assessment

<!--
- Indicate the level of attention this PR needs.
- Provide context to guide reviewers.
- Discuss trade-offs, coupling, and side effects.
- Look for the possibility, even if you think it's small, that your
change may affect some other part of the system.
- For instance, changing return tip behavior may also change the
behavior of labware calibration.
- How do your unit tests and on hands on testing mitigate this PR's
risks and the risk of future regressions?
- Especially in high risk PRs, explain how you know your testing is
enough.
-->

---------

Co-authored-by: Carlos <fernandez.carlos40@gmail.com>
…uipment up in invariantContext (#17865)

Pretty big refactor with step-generation in particular (but also touched
a few files in PD and the app for quick transfer) where the
`invariantContext` type key `additionalEquipmentEntities` is split up to
4 separate keys. The total `InvariantContext` looks like this:

```
export interface InvariantContext {
  labwareEntities: LabwareEntities
  moduleEntities: ModuleEntities
  pipetteEntities: PipetteEntities
  wasteChuteEntities: WasteChuteEntities
  trashBinEntities: TrashBinEntities
  stagingAreaEntities: StagingAreaEntities
  gripperEntities: GripperEntities
  liquidEntities: LiquidEntities
  config: Config
}
…Props (#17843)

This PR utilizes the existing `propsForFields` structure to pass all
necessary fields to `CheckboxExpandStepFormField` for the implicated
checkbox stepform field. Instead of individually passing values for the
field props `value`, `updateValue`, `isChecked`, `tooltipText`, and
`disabled`, we can simply pass that field's `propsForFields`, and
destructure inside the checkbox expand component.
Covers EXEC-1266
Updates the Max pool limit  to accounts for the overlap of the last labware within a given pool over the first.
<!--
Thanks for taking the time to open a Pull Request (PR)! Please make sure
you've read the "Opening Pull Requests" section of our Contributing
Guide:


https://github.com/Opentrons/opentrons/blob/edge/CONTRIBUTING.md#opening-pull-requests

GitHub provides robust markdown to format your PR. Links, diagrams,
pictures, and videos along with text formatting make it possible to
create a rich and informative PR. For more information on GitHub
markdown, see:


https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax

To ensure your code is reviewed quickly and thoroughly, please fill out
the sections below to the best of your ability!
-->

# Overview

Multi purpose tip pick up test

## Test Plan and Hands on Testing

<!--
Describe your testing of the PR. Emphasize testing not reflected in the
code. Attach protocols, logs, screenshots and any other assets that
support your testing.
-->

## Changelog

- Protocol for tip pick up test
- Parameter creator for all deck slots
- Removed old evaporation protocol

## Review requests

<!--
- What do you need from reviewers to feel confident this PR is ready to
merge?
- Ask questions.
-->

## Risk assessment

<!--
- Indicate the level of attention this PR needs.
- Provide context to guide reviewers.
- Discuss trade-offs, coupling, and side effects.
- Look for the possibility, even if you think it's small, that your
change may affect some other part of the system.
- For instance, changing return tip behavior may also change the
behavior of labware calibration.
- How do your unit tests and on hands on testing mitigate this PR's
risks and the risk of future regressions?
- Especially in high risk PRs, explain how you know your testing is
enough.
-->
Covers: EXEC-1350
Implementation and test cases for a new unsafe command, Manual Stacker Retrieve.
…rrors (#17905)

This PR introduces a new error handling mechanism for detecting labware
presence on the Flex Stacker shuttle.

### Shuttle Labware Detection Error:
* Added a new error type `FlexStackerShuttleLabwareDetectionFailedError`
in shared-data to handle cases where labware detection on the shuttle
fails
* Updated the error definitions to include the new error code `3021`
* Implemented the `verify_shuttle_labware_presence` method to check for
labware presence on the shuttle using a placeholder for TOF sensor data,
and used it in the `dispense_labware`

### Hopper Labware Detection Error:
* Added a new error type `FlexStackerHopperLabwareDetectionFailedError`
in shared-data to handle cases where labware detection in the hopper
fails
* Updated the error definitions to include the new error code `3022`
* Implemented the `verify_hopper_labware_presence` method to check for
hopper labware in the engine `retrieve` command to make sure we're
raising the error properly
This PR wires up the conditioning volume field for multiDispense move
liquid steps. It also enforces the maximum allowed conditioning volume
based on pipette specs, transfer volume, and disposal volume configured.
The logic for determining the max conditioning volume is as follows:

- determine max working volume for that pipette based on whether low
volume mode is active
- determine max tip volume based on tiprack assigned for that step
- take the minimum of the above two calculations to determine the max
effective working volume
- from this number, subtract the transfer volume (need to accommodate at
least one destination-worth) and the disposal volume

Closes AUTH-912
* refactor(components): modify Tag component code structure
<!--
Thanks for taking the time to open a Pull Request (PR)! Please make sure
you've read the "Opening Pull Requests" section of our Contributing
Guide:


https://github.com/Opentrons/opentrons/blob/edge/CONTRIBUTING.md#opening-pull-requests

GitHub provides robust markdown to format your PR. Links, diagrams,
pictures, and videos along with text formatting make it possible to
create a rich and informative PR. For more information on GitHub
markdown, see:


https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax

To ensure your code is reviewed quickly and thoroughly, please fill out
the sections below to the best of your ability!
-->

# Overview
Support for runtime parameters
Updated prompt and added examples

Closes: AUTH-1636

<!--
Describe your PR at a high level. State acceptance criteria and how this
PR fits into other work. Link issues, PRs, and other relevant resources.
-->

## Test Plan and Hands on Testing

Run the app and request to add runtime parameters.

<!--
Describe your testing of the PR. Emphasize testing not reflected in the
code. Attach protocols, logs, screenshots and any other assets that
support your testing.
-->

## Changelog

- Enhanced prompts to account for runtime parameters
- Added runtime parameters examples

<!--
List changes introduced by this PR considering future developers and the
end user. Give careful thought and clear documentation to breaking
changes.
-->

## Review requests
Run the app and request to add runtime parameters.
You may add something like below to Description field:
`a simple reagent transfer with runtime parameters`

<!--
- What do you need from reviewers to feel confident this PR is ready to
merge?
- Ask questions.
-->

## Risk assessment

Low


<!--
- Indicate the level of attention this PR needs.
- Provide context to guide reviewers.
- Discuss trade-offs, coupling, and side effects.
- Look for the possibility, even if you think it's small, that your
change may affect some other part of the system.
- For instance, changing return tip behavior may also change the
behavior of labware calibration.
- How do your unit tests and on hands on testing mitigate this PR's
risks and the risk of future regressions?
- Especially in high risk PRs, explain how you know your testing is
enough.
-->
* feat(protocol-designer): add liquid classes button as step 2
Merge chore_release-8.4.0 mergeback branch into edge

Co-authored-by: Josh McVey <josh.mcvey@opentrons.com>
Co-authored-by: Jamey Huffnagle <jamey.huffnagle@opentrons.com>
Co-authored-by: Ryan Howard <ryan.howard@opentrons.com>
Co-authored-by: Sanniti Pimpley <sanni-t@users.noreply.github.com>
Co-authored-by: Andy Sigler <andrewsigler1@gmail.com>
Co-authored-by: Seth Foster <seth@opentrons.com>
Co-authored-by: emilyburghardt <emily.burghardt@opentrons.com>
Co-authored-by: Max Marrone <max@opentrons.com>
Co-authored-by: Jeremy Leon <jeremy.leon@opentrons.com>
… mix forms (#17922)

re AUTH-982

<!--
Thanks for taking the time to open a Pull Request (PR)! Please make sure
you've read the "Opening Pull Requests" section of our Contributing
Guide:


https://github.com/Opentrons/opentrons/blob/edge/CONTRIBUTING.md#opening-pull-requests

GitHub provides robust markdown to format your PR. Links, diagrams,
pictures, and videos along with text formatting make it possible to
create a rich and informative PR. For more information on GitHub
markdown, see:


https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax

To ensure your code is reviewed quickly and thoroughly, please fill out
the sections below to the best of your ability!
-->

# Overview

<!--
Describe your PR at a high level. State acceptance criteria and how this
PR fits into other work. Link issues, PRs, and other relevant resources.
-->

This PR adds only the UI for the reset aspirate/dispense settings button
to the transfer and mix step forms. The functionality for resetting form
fields to their default values will be implemented separately.

design:
https://www.figma.com/design/RcHb9UdygVtyXcvDcDmnTP/Feature%3A-Liquid-Classes?node-id=2997-115587&t=7jgREckiWjAkfOmo-4

## Test Plan and Hands on Testing

<!--
Describe your testing of the PR. Emphasize testing not reflected in the
code. Attach protocols, logs, screenshots and any other assets that
support your testing.
-->
-Create or import a protocol and enable the Liquid Classes feature flag
in the settings.
-Add a transfer step and verify that a reset button appears at the end
of both the aspirate and dispense settings.
-Clicking the reset button should scroll the view to the top.
-Verify the reset button on the mix step form as well.

## Changelog

<!--
List changes introduced by this PR considering future developers and the
end user. Give careful thought and clear documentation to breaking
changes.
-->
-Created the `ResetSettingsField` component to display the reset button.
-Currently, the reset button's `onClick` action only scrolls the view to
the top of the form.
-Added test


## Review requests

<!--
- What do you need from reviewers to feel confident this PR is ready to
merge?
- Ask questions.
-->

## Risk assessment

<!--
- Indicate the level of attention this PR needs.
- Provide context to guide reviewers.
- Discuss trade-offs, coupling, and side effects.
- Look for the possibility, even if you think it's small, that your
change may affect some other part of the system.
- For instance, changing return tip behavior may also change the
behavior of labware calibration.
- How do your unit tests and on hands on testing mitigate this PR's
risks and the risk of future regressions?
- Especially in high risk PRs, explain how you know your testing is
enough.
-->

---------

Co-authored-by: shiyaochen <shiyaochen@sys-macbook-pro.mynetworksettings.com>
Co-authored-by: shiyaochen <shiyaochen@sys-MacBook-Pro.local>
<!--
Thanks for taking the time to open a Pull Request (PR)! Please make sure
you've read the "Opening Pull Requests" section of our Contributing
Guide:


https://github.com/Opentrons/opentrons/blob/edge/CONTRIBUTING.md#opening-pull-requests

GitHub provides robust markdown to format your PR. Links, diagrams,
pictures, and videos along with text formatting make it possible to
create a rich and informative PR. For more information on GitHub
markdown, see:


https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax

To ensure your code is reviewed quickly and thoroughly, please fill out
the sections below to the best of your ability!
-->

# Overview

PD 8.5 alpha release notes. Includes liquid class details and several
[8.5 bug fixes and enhancements
](https://opentrons.atlassian.net/browse/AUTH-1414).
<!--
Describe your PR at a high level. State acceptance criteria and how this
PR fits into other work. Link issues, PRs, and other relevant resources.
-->

## Test Plan and Hands on Testing

<!--
Describe your testing of the PR. Emphasize testing not reflected in the
code. Attach protocols, logs, screenshots and any other assets that
support your testing.
-->

## Changelog

<!--
List changes introduced by this PR considering future developers and the
end user. Give careful thought and clear documentation to breaking
changes.
-->
- overall description of liquid classes in PD
- added quick and dirty description of how users use liquid classes in
PD (to be beefed up in a PD manual revision)
- described some advanced settings users will be able to edit with
liquid class changes
- added some bug fixes and enhancements to improved features/bug fixes
## Review requests

<!--
- What do you need from reviewers to feel confident this PR is ready to
merge?
- Ask questions.
-->
Anything missing that I should be sure to add in stable release notes? 
Any changes to formatting I need to make so this works for the modal?
How does formatting work for the modal- I noticed it might include an
"app changes" header?
## Risk assessment

<!--
- Indicate the level of attention this PR needs.
- Provide context to guide reviewers.
- Discuss trade-offs, coupling, and side effects.
- Look for the possibility, even if you think it's small, that your
change may affect some other part of the system.
- For instance, changing return tip behavior may also change the
behavior of labware calibration.
- How do your unit tests and on hands on testing mitigate this PR's
risks and the risk of future regressions?
- Especially in high risk PRs, explain how you know your testing is
enough.
-->
low.
* feat(app): add feature flag for liquid classes of qt
@andySigler andySigler force-pushed the abr-protocols-liquid-class-lld-v8.4.0 branch from 1e5d7a2 to 4a75de4 Compare May 2, 2025 14:42
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.