Skip to content

fix(api): remove invalid errors for lc positioning check #18698

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

Conversation

sanni-t
Copy link
Member

@sanni-t sanni-t commented Jun 20, 2025

Replaces #18585

Overview

About the error removal

Until now we have assumed, and pushed for the assumption, that a submerge start point and retract end point should be above the aspirate & dispense locations of the transfer properties specified in a liquid class. This requirement was mainly added to avoid getting into situations where the submerge start location or retract end location could end up being inside the liquid, especially when we have no idea of the liquid's height inside well.

The above situation was a concern because it could mean aspirating liquid by mistake when trying to aspirate air gaps or move the plunger to prepare for aspiration at either the submerge start point or retract end point. But over the course, we have changed this behavior so that prepareForAspirate and addAirGap both happen above the well, always (#18653, #17800). So we no longer truly need to enforce the positioning requirement of submerge start & retract end.

Additionally, consider this example-
An LC-based transfer that wants to set its dispense location as 5mm below the liquid meniscus. Note that this is 5mm below where the meniscus would be at the end of the dispense. Let's assume this location is Point(10, 10, 10).
Assuming the destination well is empty in the beginning, one could set their submerge location to be Point(10, 10, 8) and that would be totally fine since this location would actually not be inside liquid. The tip should be allowed to start at (10, 10, 8) and then move up to (10, 10, 10) to dispense. But the current check didn't allow that.
There's a couple of more examples like this where a submerge/ retract point might lie below the aspirate/dispense points without causing any real issues but our code won't allow it.

Because of these reasons we want to remove this check that looks for order of these positions.
We will still be raising errors for when submerge start or retract end positions lie inside the liquid.

About log level change

Internal users complained that the warning is too verbose and happens way too often and it shows up in the default simulation output. So I'm changing this to an INFO level so that it won't show up in the output but will still be available in the logs as useful info.

Test Plan and Hands on Testing

  • Updated tests. On-robot testing not required

Review requests

Do you agree with the two decisions above?

Risk assessment

None

@sanni-t sanni-t requested a review from a team as a code owner June 20, 2025 21:00
Copy link
Contributor

@ecormany ecormany left a comment

Choose a reason for hiding this comment

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

Not changing any user-facing text, so I defer to engineering reviews.

@sanni-t
Copy link
Member Author

sanni-t commented Jun 20, 2025

Not changing any user-facing text, so I defer to engineering reviews

It should change the output for opentrons_simulate such that it shouldn't see those warnings anymore.

Copy link
Contributor

@jbleon95 jbleon95 left a comment

Choose a reason for hiding this comment

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

Yup, I'm good with these changes, there was a way to silence the errors while doing simulate but it required some extra arguments and this way we don't alarm anybody unnecessarily while still logging if this occurred for debugging purposes.

@sanni-t sanni-t merged commit 445ba4b into chore_release-8.5.0 Jun 20, 2025
24 checks passed
@ecormany
Copy link
Contributor

Not changing any user-facing text, so I defer to engineering reviews

It should change the output for opentrons_simulate such that it shouldn't see those warnings anymore.

Right, but those strings are all the same — if you know where to find them now. No wordsmithing needed 🙂

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