pylabrobot.liquid_handling.backends.hamilton.STAR_backend.STAR.iswap_rotation_drive_request_predefined_y_positions#

async STAR.iswap_rotation_drive_request_predefined_y_positions(y_mm_per_increment: float = 0.046302083) Dict[str, float]#

Read iSWAP rotation-drive Y predefined-position table from EEPROM, in mm.

Sends R0 RA ra=py. Firmware returns 10 signed-integer slots; all 10 are positions (no length slot, unlike pw/pt). Slots beyond the documented semantic roles are extra slots addressable via R0 YP yp5..yp9.

y_mm_per_increment defaults to the class constant rather than self.iswap_information because this method runs during setup() to compute rotation_drive_y_max – i.e. before iswap_information exists.

Keys (mm):

“home” py[0] - home position “lower_limit” py[1] - lower travel limit “upper_limit” py[2] - upper travel limit “parking” py[3] - parking pose (back of travel) “pre_parking” py[4] - pre-parking pose (firmware requires py[4] < py[3] - 430) “extra_1” py[5] - extra slot, address via R0 YP yp5 “extra_2” py[6] - extra slot, address via R0 YP yp6 “extra_3” py[7] - extra slot, address via R0 YP yp7 “extra_4” py[8] - extra slot, address via R0 YP yp8 “extra_5” py[9] - extra slot, address via R0 YP yp9

Raises:

RuntimeError – if the iSWAP module is not installed.

Parameters:

y_mm_per_increment (float)

Return type:

Dict[str, float]