Opentrons / opentrons

Software for writing protocols and running them on the Opentrons Flex and Opentrons OT-2
https://opentrons.com
Apache License 2.0
425 stars 178 forks source link

Removal of calibrateToBottom - add it back? #9674

Closed Koeng101 closed 2 years ago

Koeng101 commented 2 years ago

https://github.com/Opentrons/opentrons/blob/97497e9a8243b4f53639698d3c1509e7b22fd6e7/api/src/opentrons/config/advanced_settings.py#L428

Can this be added back in? I specifically requested this feature to be added back in beta, if I remember correctly, and have been using it ever since.

Calibration to top is not as precise as calibrate to bottom. Why? Because when you calibrate to bottom, you can place a pipette tip in the next well and then you only have to equalize the two pipette tips, one on the opentrons and one that you're holding. This greatly increases the speed of calibration, since you're looking at two objects that are significantly above the well, which usually calibrating to A1 means that you don't have to get down to the well level. This makes it a lot easier and faster to calibrate.

In addition, when working with small volumes, you usually need to set the pipette tip to be ever so slightly offset in order to break surface tension of the target liquid. This actually significantly enhances how much liquid you can pick up. Calibration to the top means you can't get that precision - how do you know where the pipette will actually lower to?

Furthermore, because the API was updated, I can't even use the app to downgrade.

This also prevents more advanced use of the opentrons, for example, with plating by punching, which really needs the depth to be right with a relatively undefined dish.

I am also curious as to why it was removed in the first place.

mcous commented 2 years ago

Hey @Koeng101, I'm afraid the "why" isn't going to be very satisfying, but here's my best shot:

We would've had to delay the v5 release to rebuild calibrate-to-bottom, and since we thought nobody was using the feature, it fell victim to the banal realities of software development. Also, importantly, hearing you describe your calibrate-to-bottom procedure makes a lot of sense, but nobody here - myself very much included - was aware that this was a way people were using calibrate-to-bottom! 🤦

So, where do we go from here?

We definitely want to make sure we're supporting longtime Opentrons users like yourself, so we're exploring getting calibrate-to-bottom back into the advanced settings in an upcoming release. Thanks for your (continued) patience as we work on this, because the big foundational stuff we were able to ship under-the-hood in 5.0 is going to lead to some really cool - not to mention long-awaited - stuff in the 5.x release line.

mcous commented 2 years ago

Just noticed this comment:

Furthermore, because the API was updated, I can't even use the app to downgrade.

The robot's update API is kept entirely separate from the "connect" API, so you should still be able to downgrade.

Please follow these steps to use the 4.7 app to downgrade the robot:

  1. Download and install the 4.7 Opentrons App
  2. Navigate to your robot's settings page and click "Downgrade" Screen Shot 2022-03-08 at 9 27 45 AM
  3. When the app asks you to update, click this link in the message "If you wish to skip this app update and only sync your robot server with your current app version, please click here." Screen Shot 2022-03-08 at 9 27 54 AM
  4. Follow the instructions to install v4.7 on the robot as normal
Koeng101 commented 2 years ago

This is absolutely reasonable and I was in the wrong. I apologize.

According to our anonymous usage data, we thought nobody was using calibrate-to-bottom

This is the core of it. I use essentially all open source software with zero tracking, and it turns out sometimes tracking is actually really useful for developers.

nobody here - myself very much included - was aware that this was a way people were using calibrate-to-bottom

I'm actually super surprised by this! I guess I got super used to calibrating quickly using calibrate-to-bottom from transitioning off of the OT1.

lead to some really cool - not to mention long-awaited - stuff in the 5.x release line

I'm hyped! Gonna be good. Downgraded to 4.7 for now, but excited to see new updates. Thank you for your prompt and reasonable answer!

pbeaucage commented 2 years ago

Hi @mcous,

Thanks for this really useful write-up, I'm another user for whom "calibrate to bottom" was critical to my workflow and like @Koeng101 I don't turn on analytics. I actually started using "calibrate to bottom" after bad labware offsets caused my robot to miss pickups for liquid with a resulting waste of something like $100k in measurement time way back in late 2020-early 2021, so this hurts a lot to have removed. I actually have my robots pinned way back at 3.7 (?, newest 3.x release) due to these calibration changes causing large swings in performance and the nature of my workflow being time-critical.

It looks like since this issue was closed the feature hasn't made it back into any 5.x or 6.x release. Was the issue closed in error, since the feature wasn't actually completed? Should we reopen this or should I open a new issue?

For side context, the way I use calibrate to bottom is to move the tip to within 1 mm of the bottom by eye then physically grab the pipette and very gently wiggle to feel that the tip is close to the bottom but NOT binding. By doing this I am able to reproducibly pick up all but perhaps 5 uL from the bottom of a well. It's about the same level of tedium as the normal calibration, BUT it guarantees that you both can draw up nearly all the liquid from a well, and you won't ram the tip into the well bottom and have inaccurate transfer volumes.

pbeaucage commented 2 years ago

I'm sorry, I missed a critical detail here. I need to be running 6.1.0 or newer to use a heater-shaker, and I also need to use a "calibrate to bottom" workflow to get a useful alignment precision. Right now my solution is looking like I'll roll my own small class that sends the H-S gcode commands and continue to keep my robots on 3.x, but adding this feature back would enable me to run on current releases.

pbeaucage commented 2 years ago

May be related to #9124.