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

async STAR.iswap_rotation_drive_request_predefined_z_positions() Dict[str, float]#

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

Sends R0 RA ra=pz. Firmware returns 10 signed-integer slots; all 10 are positions (no length slot, unlike pw/pt). Slots beyond home/parking are extra slots addressable via R0 ZP zp2..zp9.

Returns rotation-drive-bottom Z (matching iswap_rotation_drive_request_z and iswap_rotation_drive_move_z): each EEPROM finger-plane increment is converted via iswap_z_drive_increment_to_mm then offset by iswap_rotation_drive_z_offset_above_finger_mm.

Keys (mm):

“home” pz[0] - home position “parking” pz[1] - parking pose “extra_1” pz[2] - extra slot, address via R0 ZP zp2 “extra_2” pz[3] - extra slot, address via R0 ZP zp3 “extra_3” pz[4] - extra slot, address via R0 ZP zp4 “extra_4” pz[5] - extra slot, address via R0 ZP zp5 “extra_5” pz[6] - extra slot, address via R0 ZP zp6 “extra_6” pz[7] - extra slot, address via R0 ZP zp7 “extra_7” pz[8] - extra slot, address via R0 ZP zp8 “extra_8” pz[9] - extra slot, address via R0 ZP zp9

Raises:

RuntimeError – if the iSWAP module is not installed.

Return type:

Dict[str, float]