pylabrobot icon indicating copy to clipboard operation
pylabrobot copied to clipboard

Core96Head on STAR Failing During Setup

Open mackenziekormann opened this issue 1 year ago • 11 comments

When attempting await lh.setup() using the Hamilton STAR, setup fails with the error STARFirmwareError: {'CoRe 96 Head': HardwareError('Y drive position outside of permitted area')}, C0EIid0008er99/00 H002/58

Below is the full code used before setup.

%load_ext autoreload
%autoreload 2

from pylabrobot.liquid_handling import LiquidHandler
from pylabrobot.liquid_handling.backends import STAR
import time

from pylabrobot.resources import (
    TIP_CAR_480_A00,
    PLT_CAR_L5AC_A00,
    PLT_CAR_L5PCR,
    nest_1_troughplate_195000uL_Vb,
    STF,
    nest_12_troughplate_15000uL_Vb,
    Eppendorf_96_wellplate_250ul_Vb_semiskirted,
    Hamilton_96_adapter_188182,
    Coordinate
)
import opentrons_shared_data

from pylabrobot.resources.hamilton import STARDeck

backend = STAR()
lh = LiquidHandler(backend=backend, deck=STARDeck())

wait lh.setup()

So far, I've tried replacing the y-values in the line location=Coordinate(x=-232.1, y=110.3, z=189.0) in pylabrobot/pylabrobot/resources/Hamilton/hamilton_decks.py, shown below with 200, -200, and 1000, all yielding the same error.

      # got this location from a .lay file, but will probably need to be adjusted by the user.
      self._trash96 = Trash("trash_core96", size_x=82.6, size_y=122.4, size_z=0)  # size of tiprack
      self.assign_child_resource(
        resource=self._trash96,
        location=Coordinate(x=-232.1, y=110.3, z=189.0),
      )  # 165.0 -> 189.0

mackenziekormann avatar Dec 04 '24 19:12 mackenziekormann

dumb q: when you change the values, do you actually re-initialize the deck? the location is only set at initialization, so autoload doesn't affect it.

you can alternatively change the location using deck._trash96 = something. There should be some location that works, which you can use to narrow it down to the trash chute you see on the front left of the robot.

rickwierenga avatar Dec 04 '24 21:12 rickwierenga

I re-initialize the deck every time. Current workflow is change values in PLR/PLR/resources/Hamilton/hamilton_decks.py, restart jupyter notebook kernel, run lh.setup() and that's where the error is, so there's no deck set for me to change the location using deck._trash96

mackenziekormann avatar Dec 04 '24 21:12 mackenziekormann

To add on, I printed lh.deck._trash96.location before running setup to confirm that my changes to the file are actually there and they are.

mackenziekormann avatar Dec 04 '24 21:12 mackenziekormann

is it possible the x or z location needs changing? i have seen examples where the star errors aren't entirely accurate

i used the 96 head recently on a starlet and it worked fine. not sure if we have stars with the 96 head tho, but can check

rickwierenga avatar Dec 04 '24 21:12 rickwierenga

It seems to be loading the x location just fine, moving the head to be in line with the trash area before attempting to move to the y location and failing. I can try playing with the z location to see if that fixes anything, but by appearance in setup it seems to sequentially check x, then y, then z

mackenziekormann avatar Dec 04 '24 22:12 mackenziekormann

just in the odd case that the bounding box isn't rectangular (meaning y may be dependent on x). just guessing here

does the 96 head home correctly?

rickwierenga avatar Dec 04 '24 22:12 rickwierenga

I know Adit already tried changing x values to 0 and 1000 to no avail. I tried -500 and also didn't work. if you have other recommended values I'll give them a shot

mackenziekormann avatar Dec 04 '24 22:12 mackenziekormann

did you manage to install venus? i'd be curious to see where their firmware command differs from the one we generate. i'm at a loss if changing the location of the trash doesn't work.

rickwierenga avatar Dec 04 '24 22:12 rickwierenga

I haven't tried venus yet, but maybe could get a location from it for trash location to try (?). i haven't worked with venus at all, so may take a bit to get up and running

mackenziekormann avatar Dec 04 '24 22:12 mackenziekormann

i would try running initialization there and seeing how the firmware command differs. i find that easier than using their deck layout editor

rickwierenga avatar Dec 04 '24 22:12 rickwierenga

@mackenziekormann can you verify the actual firmware command being sent, not the response from the instrument?

It should be in the format below, that way you can tell if those parameters are actually being sent correctly:

insturment

cwehrhan avatar Dec 18 '24 22:12 cwehrhan