Skip to content

Commit

Permalink
feat(hardware-control): disengage 96-channel and gripper z after retr…
Browse files Browse the repository at this point in the history
…act (#14119)

* disengage Zs after retract

* Update api/src/opentrons/hardware_control/ot3api.py

Co-authored-by: Laura Cox <[email protected]>
  • Loading branch information
2 people authored and ryanthecoder committed Jan 31, 2024
1 parent ff83f0a commit 5cca44d
Showing 1 changed file with 16 additions and 0 deletions.
16 changes: 16 additions & 0 deletions api/src/opentrons/hardware_control/ot3api.py
Original file line number Diff line number Diff line change
Expand Up @@ -1302,9 +1302,25 @@ async def _cache_and_maybe_retract_mount(self, mount: OT3Mount) -> None:
(and :py:attr:`_last_moved_mount` exists) then retract the mount
in :py:attr:`_last_moved_mount`. Also unconditionally update
:py:attr:`_last_moved_mount` to contain `mount`.
Disengage the 96-channel and gripper mount if retracted.
"""
if mount != self._last_moved_mount and self._last_moved_mount:
await self.retract(self._last_moved_mount, 10)

# disengage Axis.Z_L motor and engage the brake to lower power
# consumption and reduce the chance of the 96-channel pipette dropping
if (
self.gantry_load == GantryLoad.HIGH_THROUGHPUT
and self._last_moved_mount == OT3Mount.LEFT
):
await self.disengage_axes([Axis.Z_L])

# disegnage Axis.Z_G when we can to reduce the chance of
# the gripper dropping
if self._last_moved_mount == OT3Mount.GRIPPER:
await self.disengage_axes([Axis.Z_G])

if mount != OT3Mount.GRIPPER:
await self.idle_gripper()
self._last_moved_mount = mount
Expand Down

0 comments on commit 5cca44d

Please sign in to comment.