Skip to content

fix(api,app): Block protocol start if the Flex Stacker is not homed or shuttle is missing + home stacker from Desktop app. #18701

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

Merged
merged 4 commits into from
Jun 25, 2025

Conversation

vegano1
Copy link
Contributor

@vegano1 vegano1 commented Jun 20, 2025

Overview

The Flex stacker Platform might not always be at the homed (gripper) position, which could cause a problem when loading labware on a stacker occupied column 4, since the labware would not be physically where we expected. So let's ensure we can't start the protocol if the relevant stackers are not homed or the shuttle is missing. The Platform missing status coming from the backend was also wrong, let's also fix that.

Stacker needs home

Screenshot 2025-06-24 at 11 18 35 AM

Stacker Missing shuttle

Screenshot 2025-06-24 at 12 09 31 PM

Module needs setup

Screenshot 2025-06-24 at 10 13 14 AM

Modules and fixtures ready

Screenshot 2025-06-24 at 12 09 57 PM

Closes: EXEC-1563 EXEC-1572

Test Plan and Hands on Testing

  • Make sure the "Play" or "Start Protocol" button is disabled on the ODD and Desktop app if a stacker needs homing or the shuttle is missing.
  • Make sure that the "Home Stacker" button is shown in protocol setup for the Desktop App and ODD if the stacker needs to be homed.
  • Make sure the "Action needed" button is shown in protocol setup on the desktop app if the shuttle is missing
  • Make sure the "missing-shuttle" status is shown in protocol setup on the ODD if the shuttle is missing

Changelog

  • Move PlatformState.MISSING logic to the get_platform_sensor_state method of the FlexStacker Reader, since we need up-to-date limit switch status
  • Added 'set_refresh_state' to the FlexStacker module in the API to tell the reader when to refetch states not polled, like limit switch status, TOF sensors, etc.
  • Change "Calibration needed" copy in deck configuration to "Action needed" per design
  • Added "Home Stacker" button to the protocol setup of the desktop app if the flex stacker needs to home.
  • Block protocol start if the flex stacker is not homed or the platform is not extended

Review requests

  • Makes sense?

Risk assessment

Low, unreleased.

@vegano1 vegano1 requested review from a team as code owners June 20, 2025 22:03
@vegano1 vegano1 requested review from smb2268 and ahiuchingau and removed request for a team and smb2268 June 20, 2025 22:03
@sfoster1 sfoster1 requested a review from mjhuff June 23, 2025 13:48
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.

Approving to unblock since this is time sensitive, but there's some small things I think we can improve

m => m.attachedModuleMatch?.moduleOffset?.last_modified == null
)
moduleData.some(m => {
if (m.attachedModuleMatch?.moduleType === FLEX_STACKER_MODULE_TYPE) {
Copy link
Member

Choose a reason for hiding this comment

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

this is probably not the right place fo rthis, since it will disable the run button with "calibrate attached module(s) to continue" - wants its own reason, right?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@smb2268 and I spoke about it,

I think it should be, I think the confusion is that calibration is now a part of the greater "Module Setup" flow. However, some areas reference "calibration required," which should say "Module Setup Required" or something similar.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Spoke to design, will change the copy to "Action needed".

…ded" per design

move PlatformState.MISSING logic into `get_platform_sensor_state` method of the FlexStacker Reader since we need up-to-date limit switch status
Copy link
Contributor

@ahiuchingau ahiuchingau left a comment

Choose a reason for hiding this comment

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

Tested on robot and worked as expected

@vegano1 vegano1 force-pushed the EXEC-1563-block-protocol-start-stacker branch from 7376a7f to 69a3e72 Compare June 24, 2025 22:43
@vegano1 vegano1 merged commit 9202091 into edge Jun 25, 2025
46 of 49 checks passed
@vegano1 vegano1 deleted the EXEC-1563-block-protocol-start-stacker branch June 25, 2025 02:50
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