Core96Head on STAR Failing During Setup
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
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.
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
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.
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
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
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?
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
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.
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
i would try running initialization there and seeing how the firmware command differs. i find that easier than using their deck layout editor
@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: