[{"data":1,"prerenderedAt":2372},["ShallowReactive",2],{"navigation":3,"\u002Foperate\u002Fdevices\u002Fhamilton-star\u002Fiswap":750,"\u002Foperate\u002Fdevices\u002Fhamilton-star\u002Fiswap-surround":2367},[4,80,134,364,428,530,567,646],{"title":5,"path":6,"stem":7,"children":8,"page":42},"Get Started","\u002Fget-started","01.get-started",[9,13,17,43,47],{"title":10,"path":11,"stem":12},"Welcome to UniteLabs","\u002Fget-started\u002Fwelcome","01.get-started\u002F00.welcome",{"title":14,"path":15,"stem":16},"How it works","\u002Fget-started\u002Fhow-it-works","01.get-started\u002F01.how-it-works",{"title":18,"path":19,"stem":20,"children":21,"page":42},"Use Cases","\u002Fget-started\u002Fuse-cases","01.get-started\u002F02.use-cases",[22,26,30,34,38],{"title":23,"path":24,"stem":25},"Instrument Control","\u002Fget-started\u002Fuse-cases\u002Flow-level-instrument-control","01.get-started\u002F02.use-cases\u002F10.low-level-instrument-control",{"title":27,"path":28,"stem":29},"Multi-device Control","\u002Fget-started\u002Fuse-cases\u002Fmulti-device-control","01.get-started\u002F02.use-cases\u002F20.multi-device-control",{"title":31,"path":32,"stem":33},"Workflow Orchestration","\u002Fget-started\u002Fuse-cases\u002Fworkflow-orchestration","01.get-started\u002F02.use-cases\u002F30.workflow-orchestration",{"title":35,"path":36,"stem":37},"Custom Apps and LIMS Integration","\u002Fget-started\u002Fuse-cases\u002Fcustom-apps-lims","01.get-started\u002F02.use-cases\u002F40.custom-apps-lims",{"title":39,"path":40,"stem":41},"Scale and Fleet Management","\u002Fget-started\u002Fuse-cases\u002Fscale-and-fleet","01.get-started\u002F02.use-cases\u002F50.scale-and-fleet",false,{"title":44,"path":45,"stem":46},"Lab as Code","\u002Fget-started\u002Fwhy-code","01.get-started\u002F03.why-code",{"title":48,"path":49,"stem":50,"children":51,"page":42},"Setup","\u002Fget-started\u002Fsetup","01.get-started\u002F20.setup",[52,56,60,64,68,72,76],{"title":53,"path":54,"stem":55},"GroundControl","\u002Fget-started\u002Fsetup\u002Fgroundcontrol","01.get-started\u002F20.setup\u002F10.groundcontrol",{"title":57,"path":58,"stem":59},"Network requirements","\u002Fget-started\u002Fsetup\u002Fnetwork-requirements","01.get-started\u002F20.setup\u002F20.network-requirements",{"title":61,"path":62,"stem":63},"Multi-device Networking","\u002Fget-started\u002Fsetup\u002Fmultiple-devices","01.get-started\u002F20.setup\u002F30.multiple-devices",{"title":65,"path":66,"stem":67},"Connect to Platform","\u002Fget-started\u002Fsetup\u002Fconnect-to-platform","01.get-started\u002F20.setup\u002F40.connect-to-platform",{"title":69,"path":70,"stem":71},"Headless install","\u002Fget-started\u002Fsetup\u002Fheadless-install","01.get-started\u002F20.setup\u002F50.headless-install",{"title":73,"path":74,"stem":75},"Raspberry Pi","\u002Fget-started\u002Fsetup\u002Fraspberry-pi","01.get-started\u002F20.setup\u002F55.raspberry-pi",{"title":77,"path":78,"stem":79},"Installation","\u002Fget-started\u002Fsetup\u002Fsdk-installation","01.get-started\u002F20.setup\u002F60.sdk-installation",{"title":81,"path":82,"stem":83,"children":84,"page":42},"Integrate","\u002Fintegrate","02.integrate",[85,89,93,118],{"title":86,"path":87,"stem":88},"What is a connector?","\u002Fintegrate\u002Fwhat-is-a-connector","02.integrate\u002F00.what-is-a-connector",{"title":90,"path":91,"stem":92},"Calling a Connector","\u002Fintegrate\u002Fcontrol-with-code","02.integrate\u002F05.control-with-code",{"title":94,"path":95,"stem":96,"children":97,"page":42},"Concepts","\u002Fintegrate\u002Fconcepts","02.integrate\u002F10.concepts",[98,102,106,110,114],{"title":99,"path":100,"stem":101},"Connector","\u002Fintegrate\u002Fconcepts\u002Fconnector","02.integrate\u002F10.concepts\u002F10.connector",{"title":103,"path":104,"stem":105},"Module","\u002Fintegrate\u002Fconcepts\u002Fmodule","02.integrate\u002F10.concepts\u002F20.module",{"title":107,"path":108,"stem":109},"Action","\u002Fintegrate\u002Fconcepts\u002Faction","02.integrate\u002F10.concepts\u002F30.action",{"title":111,"path":112,"stem":113},"Subscription","\u002Fintegrate\u002Fconcepts\u002Fsubscription","02.integrate\u002F10.concepts\u002F40.subscription",{"title":115,"path":116,"stem":117},"Device","\u002Fintegrate\u002Fconcepts\u002Fdevice","02.integrate\u002F10.concepts\u002F50.device",{"title":119,"path":120,"stem":121,"children":122,"page":42},"Use a connector","\u002Fintegrate\u002Fuse-a-connector","02.integrate\u002F30.use-a-connector",[123,126,130],{"title":53,"path":124,"stem":125},"\u002Fintegrate\u002Fuse-a-connector\u002Fgroundcontrol","02.integrate\u002F30.use-a-connector\u002F10.groundcontrol",{"title":127,"path":128,"stem":129},"Platform","\u002Fintegrate\u002Fuse-a-connector\u002Fplatform","02.integrate\u002F30.use-a-connector\u002F20.platform",{"title":131,"path":132,"stem":133},"UniteLabs SDK & REST API","\u002Fintegrate\u002Fuse-a-connector\u002Fpython","02.integrate\u002F30.use-a-connector\u002F30.python",{"title":135,"path":136,"stem":137,"children":138,"page":42},"Operate","\u002Foperate","03.operate",[139,142,146,186,259],{"title":135,"path":140,"stem":141},"\u002Foperate\u002Foverview","03.operate\u002F00.overview",{"title":143,"path":144,"stem":145},"Your First Protocol","\u002Foperate\u002Fyour-first-protocol","03.operate\u002F05.your-first-protocol",{"title":94,"path":147,"stem":148,"children":149,"page":42},"\u002Foperate\u002Fconcepts","03.operate\u002F10.concepts",[150,154,158,162,166,170,174,178,182],{"title":151,"path":152,"stem":153},"Liquid Handling","\u002Foperate\u002Fconcepts\u002Fliquid-handling","03.operate\u002F10.concepts\u002F10.liquid-handling",{"title":155,"path":156,"stem":157},"Modules","\u002Foperate\u002Fconcepts\u002Fmodules","03.operate\u002F10.concepts\u002F20.modules",{"title":159,"path":160,"stem":161},"Deck","\u002Foperate\u002Fconcepts\u002Fdeck","03.operate\u002F10.concepts\u002F30.deck",{"title":163,"path":164,"stem":165},"Labware","\u002Foperate\u002Fconcepts\u002Flabware","03.operate\u002F10.concepts\u002F40.labware",{"title":167,"path":168,"stem":169},"Liquids","\u002Foperate\u002Fconcepts\u002Fliquids","03.operate\u002F10.concepts\u002F50.liquids",{"title":171,"path":172,"stem":173},"Liquid Classes","\u002Foperate\u002Fconcepts\u002Fliquid-classes","03.operate\u002F10.concepts\u002F60.liquid-classes",{"title":175,"path":176,"stem":177},"Tips and Tip Tracking","\u002Foperate\u002Fconcepts\u002Ftips","03.operate\u002F10.concepts\u002F70.tips",{"title":179,"path":180,"stem":181},"Simulation","\u002Foperate\u002Fconcepts\u002Fsimulation","03.operate\u002F10.concepts\u002F80.simulation",{"title":183,"path":184,"stem":185},"Error Handling","\u002Foperate\u002Fconcepts\u002Ferror-handling","03.operate\u002F10.concepts\u002F90.error-handling",{"title":187,"path":188,"stem":189,"children":190,"page":42},"Guides","\u002Foperate\u002Fguides","03.operate\u002F20.guides",[191,220,232,256],{"title":163,"path":192,"stem":193,"children":194},"\u002Foperate\u002Fguides\u002Flabware","03.operate\u002F20.guides\u002F10.labware\u002Findex",[195,196,200,204,208,212,216],{"title":163,"path":192,"stem":193},{"title":197,"path":198,"stem":199},"Standard Labware","\u002Foperate\u002Fguides\u002Flabware\u002Fstandard-labware","03.operate\u002F20.guides\u002F10.labware\u002F05.standard-labware",{"title":201,"path":202,"stem":203},"Plates","\u002Foperate\u002Fguides\u002Flabware\u002Fplates","03.operate\u002F20.guides\u002F10.labware\u002F10.plates",{"title":205,"path":206,"stem":207},"Tips and Tip Racks","\u002Foperate\u002Fguides\u002Flabware\u002Ftips-and-racks","03.operate\u002F20.guides\u002F10.labware\u002F20.tips-and-racks",{"title":209,"path":210,"stem":211},"Tubes and Tube Racks","\u002Foperate\u002Fguides\u002Flabware\u002Ftubes-and-tube-racks","03.operate\u002F20.guides\u002F10.labware\u002F30.tubes-and-tube-racks",{"title":213,"path":214,"stem":215},"Troughs","\u002Foperate\u002Fguides\u002Flabware\u002Ftroughs","03.operate\u002F20.guides\u002F10.labware\u002F35.troughs",{"title":217,"path":218,"stem":219},"Carriers and Adapters","\u002Foperate\u002Fguides\u002Flabware\u002Fcarriers-and-adapters","03.operate\u002F20.guides\u002F10.labware\u002F40.carriers-and-adapters",{"title":159,"path":221,"stem":222,"children":223,"page":42},"\u002Foperate\u002Fguides\u002Fdeck","03.operate\u002F20.guides\u002F20.deck",[224,228],{"title":225,"path":226,"stem":227},"Building a Deck","\u002Foperate\u002Fguides\u002Fdeck\u002Fbuilding-a-deck","03.operate\u002F20.guides\u002F20.deck\u002F10.building-a-deck",{"title":229,"path":230,"stem":231},"Save\u002FLoad a Deck","\u002Foperate\u002Fguides\u002Fdeck\u002Fsave-load-deck","03.operate\u002F20.guides\u002F20.deck\u002F20.save-load-deck",{"title":233,"path":234,"stem":235,"children":236,"page":42},"Pipetting","\u002Foperate\u002Fguides\u002Fpipetting","03.operate\u002F20.guides\u002F30.pipetting",[237,241,245,249,252],{"title":238,"path":239,"stem":240},"Basic Pipetting","\u002Foperate\u002Fguides\u002Fpipetting\u002Fbasic-pipetting","03.operate\u002F20.guides\u002F30.pipetting\u002F10.basic-pipetting",{"title":242,"path":243,"stem":244},"Advanced Pipetting","\u002Foperate\u002Fguides\u002Fpipetting\u002Fadvanced-pipetting","03.operate\u002F20.guides\u002F30.pipetting\u002F20.advanced-pipetting",{"title":246,"path":247,"stem":248},"Tip Handling","\u002Foperate\u002Fguides\u002Fpipetting\u002Ftip-handling","03.operate\u002F20.guides\u002F30.pipetting\u002F30.tip-handling",{"title":171,"path":250,"stem":251},"\u002Foperate\u002Fguides\u002Fpipetting\u002Fliquid-classes","03.operate\u002F20.guides\u002F30.pipetting\u002F40.liquid-classes",{"title":253,"path":254,"stem":255},"Labware Transport","\u002Foperate\u002Fguides\u002Fpipetting\u002Flabware-transport","03.operate\u002F20.guides\u002F30.pipetting\u002F50.labware-transport",{"title":179,"path":257,"stem":258},"\u002Foperate\u002Fguides\u002Fsimulation","03.operate\u002F20.guides\u002F40.simulation",{"title":260,"path":261,"stem":262,"children":263,"page":42},"Liquid Handler Guides","\u002Foperate\u002Fdevices","03.operate\u002F30.devices",[264,305,330,347],{"title":265,"path":266,"stem":267,"children":268,"page":42},"Hamilton STAR","\u002Foperate\u002Fdevices\u002Fhamilton-star","03.operate\u002F30.devices\u002F10.hamilton-star",[269,273,277,281,285,289,293,297,301],{"title":270,"path":271,"stem":272},"Positioning & Movement","\u002Foperate\u002Fdevices\u002Fhamilton-star\u002Fpositioning","03.operate\u002F30.devices\u002F10.hamilton-star\u002F10.positioning",{"title":274,"path":275,"stem":276},"Gripper Module","\u002Foperate\u002Fdevices\u002Fhamilton-star\u002Fcore-gripper","03.operate\u002F30.devices\u002F10.hamilton-star\u002F20.core-gripper",{"title":278,"path":279,"stem":280},"iSWAP Module","\u002Foperate\u002Fdevices\u002Fhamilton-star\u002Fiswap","03.operate\u002F30.devices\u002F10.hamilton-star\u002F30.iswap",{"title":282,"path":283,"stem":284},"Using TADM","\u002Foperate\u002Fdevices\u002Fhamilton-star\u002Ftadm","03.operate\u002F30.devices\u002F10.hamilton-star\u002F40.tadm",{"title":286,"path":287,"stem":288},"Autoload Module","\u002Foperate\u002Fdevices\u002Fhamilton-star\u002Fautoload","03.operate\u002F30.devices\u002F10.hamilton-star\u002F50.autoload",{"title":290,"path":291,"stem":292},"Waste Block","\u002Foperate\u002Fdevices\u002Fhamilton-star\u002Fwaste-block","03.operate\u002F30.devices\u002F10.hamilton-star\u002F60.waste-block",{"title":294,"path":295,"stem":296},"Complex Mixing","\u002Foperate\u002Fdevices\u002Fhamilton-star\u002Fcomplex-mixing","03.operate\u002F30.devices\u002F10.hamilton-star\u002F66.complex-mixing",{"title":298,"path":299,"stem":300},"Teaching Gripper Paddle Positions","\u002Foperate\u002Fdevices\u002Fhamilton-star\u002Fgripper-positions","03.operate\u002F30.devices\u002F10.hamilton-star\u002F70.gripper-positions",{"title":302,"path":303,"stem":304},"Training a Custom Deck Position With the iSWAP","\u002Foperate\u002Fdevices\u002Fhamilton-star\u002Fcustom-deck-position","03.operate\u002F30.devices\u002F10.hamilton-star\u002F75.custom-deck-position",{"title":306,"path":307,"stem":308,"children":309,"page":42},"Hamilton Vantage","\u002Foperate\u002Fdevices\u002Fhamilton-vantage","03.operate\u002F30.devices\u002F20.hamilton-vantage",[310,314,318,322,326],{"title":311,"path":312,"stem":313},"Waste Configuration","\u002Foperate\u002Fdevices\u002Fhamilton-vantage\u002Fwaste-configuration","03.operate\u002F30.devices\u002F20.hamilton-vantage\u002F05.waste-configuration",{"title":315,"path":316,"stem":317},"Covers and Lights","\u002Foperate\u002Fdevices\u002Fhamilton-vantage\u002Fcovers-and-lights","03.operate\u002F30.devices\u002F20.hamilton-vantage\u002F10.covers-and-lights",{"title":319,"path":320,"stem":321},"IDL Module","\u002Foperate\u002Fdevices\u002Fhamilton-vantage\u002Fidl","03.operate\u002F30.devices\u002F20.hamilton-vantage\u002F20.idl",{"title":323,"path":324,"stem":325},"IPG Module","\u002Foperate\u002Fdevices\u002Fhamilton-vantage\u002Fipg","03.operate\u002F30.devices\u002F20.hamilton-vantage\u002F30.ipg",{"title":327,"path":328,"stem":329},"XL Pipettes","\u002Foperate\u002Fdevices\u002Fhamilton-vantage\u002Fxl-channels","03.operate\u002F30.devices\u002F20.hamilton-vantage\u002F40.xl-channels",{"title":331,"path":332,"stem":333,"children":334,"page":42},"Agilent Bravo","\u002Foperate\u002Fdevices\u002Fagilent-bravo","03.operate\u002F30.devices\u002F30.agilent-bravo",[335,338,341,344],{"title":246,"path":336,"stem":337},"\u002Foperate\u002Fdevices\u002Fagilent-bravo\u002Ftip-handling","03.operate\u002F30.devices\u002F30.agilent-bravo\u002F10.tip-handling",{"title":238,"path":339,"stem":340},"\u002Foperate\u002Fdevices\u002Fagilent-bravo\u002Fbasic-pipetting","03.operate\u002F30.devices\u002F30.agilent-bravo\u002F20.basic-pipetting",{"title":171,"path":342,"stem":343},"\u002Foperate\u002Fdevices\u002Fagilent-bravo\u002Fliquid-classes","03.operate\u002F30.devices\u002F30.agilent-bravo\u002F25.liquid-classes",{"title":274,"path":345,"stem":346},"\u002Foperate\u002Fdevices\u002Fagilent-bravo\u002Fusing-the-gripper","03.operate\u002F30.devices\u002F30.agilent-bravo\u002F30.using-the-gripper",{"title":348,"path":349,"stem":350,"children":351,"page":42},"Tecan FluentControl","\u002Foperate\u002Fdevices\u002Ftecan-fluentcontrol","03.operate\u002F30.devices\u002F40.tecan-fluentcontrol",[352,356,360],{"title":353,"path":354,"stem":355},"Connect & Run a Method","\u002Foperate\u002Fdevices\u002Ftecan-fluentcontrol\u002Fconnect-and-run","03.operate\u002F30.devices\u002F40.tecan-fluentcontrol\u002F10.connect-and-run",{"title":357,"path":358,"stem":359},"Sending XML Commands","\u002Foperate\u002Fdevices\u002Ftecan-fluentcontrol\u002Fsending-xml-commands","03.operate\u002F30.devices\u002F40.tecan-fluentcontrol\u002F20.sending-xml-commands",{"title":361,"path":362,"stem":363},"Full Workflow Example","\u002Foperate\u002Fdevices\u002Ftecan-fluentcontrol\u002Ffull-workflow-example","03.operate\u002F30.devices\u002F40.tecan-fluentcontrol\u002F30.full-workflow-example",{"title":365,"path":366,"stem":367,"children":368,"page":42},"Device Guides","\u002Fdevice-guides","06.device-guides",[369,372,385,402,415],{"title":365,"path":370,"stem":371},"\u002Fdevice-guides\u002Foverview","06.device-guides\u002F00.overview",{"title":373,"path":374,"stem":375,"children":376,"page":42},"Incubation","\u002Fdevice-guides\u002Fincubation","06.device-guides\u002F20.incubation",[377,381],{"title":378,"path":379,"stem":380},"Inheco ODTC","\u002Fdevice-guides\u002Fincubation\u002Finheco-odtc","06.device-guides\u002F20.incubation\u002F10.inheco-odtc",{"title":382,"path":383,"stem":384},"Inheco SCILA","\u002Fdevice-guides\u002Fincubation\u002Finheco-scila","06.device-guides\u002F20.incubation\u002F20.inheco-scila",{"title":386,"path":387,"stem":388,"children":389,"page":42},"Heater-Shakers","\u002Fdevice-guides\u002Fheater-shakers","06.device-guides\u002F30.heater-shakers",[390,394,398],{"title":391,"path":392,"stem":393},"Inheco Thermoshake","\u002Fdevice-guides\u002Fheater-shakers\u002Finheco-thermoshake","06.device-guides\u002F30.heater-shakers\u002F10.inheco-thermoshake",{"title":395,"path":396,"stem":397},"QInstruments Bioshake","\u002Fdevice-guides\u002Fheater-shakers\u002Fqinstruments-bioshake","06.device-guides\u002F30.heater-shakers\u002F20.qinstruments-bioshake",{"title":399,"path":400,"stem":401},"QInstruments ColdPlate","\u002Fdevice-guides\u002Fheater-shakers\u002Fqinstruments-coldplate","06.device-guides\u002F30.heater-shakers\u002F30.qinstruments-coldplate",{"title":403,"path":404,"stem":405,"children":406,"page":42},"Readers","\u002Fdevice-guides\u002Freaders","06.device-guides\u002F40.readers",[407,411],{"title":408,"path":409,"stem":410},"Biotek Gen5","\u002Fdevice-guides\u002Freaders\u002Fbiotek-gen5","06.device-guides\u002F40.readers\u002F10.biotek-gen5",{"title":412,"path":413,"stem":414},"Biotek Synergy H1","\u002Fdevice-guides\u002Freaders\u002Fbiotek-synergy-h1","06.device-guides\u002F40.readers\u002F20.biotek-synergy-H1",{"title":416,"path":417,"stem":418,"children":419,"page":42},"Tilt & Turn","\u002Fdevice-guides\u002Ftilt-and-turn","06.device-guides\u002F50.tilt-and-turn",[420,424],{"title":421,"path":422,"stem":423},"TurnStation","\u002Fdevice-guides\u002Ftilt-and-turn\u002Fqinstruments-turnstation","06.device-guides\u002F50.tilt-and-turn\u002F10.qinstruments-turnstation",{"title":425,"path":426,"stem":427},"TiltStation","\u002Fdevice-guides\u002Ftilt-and-turn\u002Fqinstruments-tiltstation","06.device-guides\u002F50.tilt-and-turn\u002F20.qinstruments-tiltstation",{"title":429,"path":430,"stem":431,"children":432,"page":42},"Automate","\u002Fautomate","07.automate",[433,437,441,445,494],{"title":434,"path":435,"stem":436},"What is a workflow?","\u002Fautomate\u002Fwhat-is-a-workflow","07.automate\u002F00.what-is-a-workflow",{"title":438,"path":439,"stem":440},"Workflow template","\u002Fautomate\u002Fworkflow-template","07.automate\u002F05.workflow-template",{"title":442,"path":443,"stem":444},"Your First Workflow","\u002Fautomate\u002Fyour-first-workflow","07.automate\u002F08.your-first-workflow",{"title":94,"pages":446,"path":456,"stem":457,"children":458,"page":42},[447,448,449,450,451,452,453,454,455],"workflow","phase","step","runs","input","artifacts","logs","human-in-the-loop","error-handling","\u002Fautomate\u002Fconcepts","07.automate\u002F10.concepts",[459,463,467,471,475,479,483,487,491],{"title":460,"path":461,"stem":462},"Workflow","\u002Fautomate\u002Fconcepts\u002Fworkflow","07.automate\u002F10.concepts\u002F10.workflow",{"title":464,"path":465,"stem":466},"Phase","\u002Fautomate\u002Fconcepts\u002Fphase","07.automate\u002F10.concepts\u002F20.phase",{"title":468,"path":469,"stem":470},"Step","\u002Fautomate\u002Fconcepts\u002Fstep","07.automate\u002F10.concepts\u002F30.step",{"title":472,"path":473,"stem":474},"Runs","\u002Fautomate\u002Fconcepts\u002Fruns","07.automate\u002F10.concepts\u002F40.runs",{"title":476,"path":477,"stem":478},"Input","\u002Fautomate\u002Fconcepts\u002Finput","07.automate\u002F10.concepts\u002F50.input",{"title":480,"path":481,"stem":482},"Artifacts","\u002Fautomate\u002Fconcepts\u002Fartifacts","07.automate\u002F10.concepts\u002F60.artifacts",{"title":484,"path":485,"stem":486},"Logs","\u002Fautomate\u002Fconcepts\u002Flogs","07.automate\u002F10.concepts\u002F70.logs",{"title":488,"path":489,"stem":490},"Human in the Loop","\u002Fautomate\u002Fconcepts\u002Fhuman-in-the-loop","07.automate\u002F10.concepts\u002F80.human-in-the-loop",{"title":183,"path":492,"stem":493},"\u002Fautomate\u002Fconcepts\u002Ferror-handling","07.automate\u002F10.concepts\u002F90.error-handling",{"title":187,"path":495,"stem":496,"children":497,"page":42},"\u002Fautomate\u002Fguides","07.automate\u002F25.guides",[498,502,506,510,514,518,522,526],{"title":499,"path":500,"stem":501},"Deploy a workflow","\u002Fautomate\u002Fguides\u002Fdeploy-a-workflow","07.automate\u002F25.guides\u002F30.deploy-a-workflow",{"title":503,"path":504,"stem":505},"Run a workflow","\u002Fautomate\u002Fguides\u002Frun-a-workflow","07.automate\u002F25.guides\u002F35.run-a-workflow",{"title":507,"path":508,"stem":509},"CI\u002FCD for workflows","\u002Fautomate\u002Fguides\u002Fcicd-for-workflows","07.automate\u002F25.guides\u002F40.cicd-for-workflows",{"title":511,"path":512,"stem":513},"HITL basics","\u002Fautomate\u002Fguides\u002Fbasic-hitl","07.automate\u002F25.guides\u002F50.basic-hitl",{"title":515,"path":516,"stem":517},"Typed operator inputs","\u002Fautomate\u002Fguides\u002Ftyped-operator-inputs","07.automate\u002F25.guides\u002F55.typed-operator-inputs",{"title":519,"path":520,"stem":521},"Error recovery","\u002Fautomate\u002Fguides\u002Fbasic-error-handling","07.automate\u002F25.guides\u002F60.basic-error-handling",{"title":523,"path":524,"stem":525},"Advanced error handling","\u002Fautomate\u002Fguides\u002Fadvanced-error-handling","07.automate\u002F25.guides\u002F70.advanced-error-handling",{"title":527,"path":528,"stem":529},"Workflows REST API","\u002Fautomate\u002Fguides\u002Fworkflows-api","07.automate\u002F25.guides\u002F80.workflows-api",{"title":531,"path":532,"stem":533,"children":534,"page":42},"Observe","\u002Fobserve","08.observe",[535,539,555],{"title":536,"path":537,"stem":538},"Overview","\u002Fobserve\u002Foverview","08.observe\u002F10.overview",{"title":94,"path":540,"stem":541,"children":542,"page":42},"\u002Fobserve\u002Fconcepts","08.observe\u002F20.concepts",[543,547,551],{"title":544,"path":545,"stem":546},"Object Storage","\u002Fobserve\u002Fconcepts\u002Fstorage","08.observe\u002F20.concepts\u002F10.storage",{"title":548,"path":549,"stem":550},"Secrets","\u002Fobserve\u002Fconcepts\u002Fsecrets","08.observe\u002F20.concepts\u002F20.secrets",{"title":552,"path":553,"stem":554},"Data sources","\u002Fobserve\u002Fconcepts\u002Fdata-sources","08.observe\u002F20.concepts\u002F30.data-sources",{"title":187,"path":556,"stem":557,"children":558,"page":42},"\u002Fobserve\u002Fguides","08.observe\u002F30.guides",[559,563],{"title":560,"path":561,"stem":562},"File System Connector","\u002Fobserve\u002Fguides\u002Ffilesystem-connector","08.observe\u002F30.guides\u002F10.filesystem-connector",{"title":564,"path":565,"stem":566},"Building an ETL","\u002Fobserve\u002Fguides\u002Fbuilding-an-etl","08.observe\u002F30.guides\u002F20.building-an-etl",{"title":568,"path":569,"stem":570,"children":571,"page":42},"Technical Reference","\u002Ftechnical-reference","10.technical-reference",[572,576,580,592,603,614,624,635],{"title":573,"path":574,"stem":575},"Introduction","\u002Ftechnical-reference\u002Fplatform-blueprint","10.technical-reference\u002F00.platform-blueprint",{"title":577,"path":578,"stem":579},"REST API","\u002Ftechnical-reference\u002Frest-api","10.technical-reference\u002F01.rest-api",{"title":53,"path":581,"stem":582,"children":583,"page":42},"\u002Ftechnical-reference\u002Fgroundcontrol","10.technical-reference\u002F10.groundcontrol",[584,588],{"title":585,"path":586,"stem":587},"Install & Setup","\u002Ftechnical-reference\u002Fgroundcontrol\u002Finstall","10.technical-reference\u002F10.groundcontrol\u002F10.install",{"title":589,"path":590,"stem":591},"Changelog","\u002Ftechnical-reference\u002Fgroundcontrol\u002Fchangelog","10.technical-reference\u002F10.groundcontrol\u002F20.changelog",{"title":593,"path":594,"stem":595,"children":596,"page":42},"UniteLabs SDK","\u002Ftechnical-reference\u002Fpython-sdk","10.technical-reference\u002F20.python-sdk",[597,600],{"title":585,"path":598,"stem":599},"\u002Ftechnical-reference\u002Fpython-sdk\u002Finstall","10.technical-reference\u002F20.python-sdk\u002F10.install",{"title":589,"path":601,"stem":602},"\u002Ftechnical-reference\u002Fpython-sdk\u002Fchangelog","10.technical-reference\u002F20.python-sdk\u002F20.changelog",{"title":604,"path":605,"stem":606,"children":607,"page":42},"Liquid Handling SDK","\u002Ftechnical-reference\u002Fpython-liquid-handling-sdk","10.technical-reference\u002F30.python-liquid-handling-sdk",[608,611],{"title":585,"path":609,"stem":610},"\u002Ftechnical-reference\u002Fpython-liquid-handling-sdk\u002Finstall","10.technical-reference\u002F30.python-liquid-handling-sdk\u002F10.install",{"title":589,"path":612,"stem":613},"\u002Ftechnical-reference\u002Fpython-liquid-handling-sdk\u002Fchangelog","10.technical-reference\u002F30.python-liquid-handling-sdk\u002F20.changelog",{"title":163,"path":615,"stem":616,"children":617,"page":42},"\u002Ftechnical-reference\u002Flabware","10.technical-reference\u002F40.labware",[618,621],{"title":585,"path":619,"stem":620},"\u002Ftechnical-reference\u002Flabware\u002Finstall","10.technical-reference\u002F40.labware\u002F10.install",{"title":589,"path":622,"stem":623},"\u002Ftechnical-reference\u002Flabware\u002Fchangelog","10.technical-reference\u002F40.labware\u002F20.changelog",{"title":625,"path":626,"stem":627,"children":628,"page":42},"Python Omnibus","\u002Ftechnical-reference\u002Fpython-omnibus","10.technical-reference\u002F50.python-omnibus",[629,632],{"title":585,"path":630,"stem":631},"\u002Ftechnical-reference\u002Fpython-omnibus\u002Finstall","10.technical-reference\u002F50.python-omnibus\u002F10.install",{"title":589,"path":633,"stem":634},"\u002Ftechnical-reference\u002Fpython-omnibus\u002Fchangelog","10.technical-reference\u002F50.python-omnibus\u002F20.changelog",{"title":636,"path":637,"stem":638,"children":639,"page":42},"Python CDK","\u002Ftechnical-reference\u002Fpython-cdk","10.technical-reference\u002F60.python-cdk",[640,643],{"title":585,"path":641,"stem":642},"\u002Ftechnical-reference\u002Fpython-cdk\u002Finstall","10.technical-reference\u002F60.python-cdk\u002F10.install",{"title":589,"path":644,"stem":645},"\u002Ftechnical-reference\u002Fpython-cdk\u002Fchangelog","10.technical-reference\u002F60.python-cdk\u002F20.changelog",{"title":647,"path":648,"stem":649,"children":650},"Connector Development (CDK)","\u002Fconnector-development","20.connector-development",[651,653,672,705,713,744],{"title":647,"path":648,"stem":652},"20.connector-development\u002Findex",{"title":654,"path":655,"stem":656,"children":657,"page":42},"Getting Started","\u002Fconnector-development\u002Fgetting-started","20.connector-development\u002F10.getting-started",[658,661,665,668],{"title":536,"path":659,"stem":660},"\u002Fconnector-development\u002Fgetting-started\u002Foverview","20.connector-development\u002F10.getting-started\u002F10.overview",{"title":662,"path":663,"stem":664},"What's new","\u002Fconnector-development\u002Fgetting-started\u002Fwhats-new","20.connector-development\u002F10.getting-started\u002F20.whats-new",{"title":77,"path":666,"stem":667},"\u002Fconnector-development\u002Fgetting-started\u002Finstallation","20.connector-development\u002F10.getting-started\u002F30.installation",{"title":669,"path":670,"stem":671},"Contributing","\u002Fconnector-development\u002Fgetting-started\u002Fcontributing","20.connector-development\u002F10.getting-started\u002F40.contributing",{"title":673,"path":674,"stem":675,"children":676,"page":42},"Tutorial","\u002Fconnector-development\u002Ftutorial","20.connector-development\u002F20.tutorial",[677,681,685,689,693,697,701],{"title":678,"path":679,"stem":680},"Walkthrough","\u002Fconnector-development\u002Ftutorial\u002Fwalkthrough","20.connector-development\u002F20.tutorial\u002F00.walkthrough",{"title":682,"path":683,"stem":684},"SiLA Endpoints","\u002Fconnector-development\u002Ftutorial\u002Fsila-endpoints","20.connector-development\u002F20.tutorial\u002F10.sila-endpoints",{"title":686,"path":687,"stem":688},"Data Endpoints","\u002Fconnector-development\u002Ftutorial\u002Fdata-endpoints","20.connector-development\u002F20.tutorial\u002F20.data-endpoints",{"title":690,"path":691,"stem":692},"Controls","\u002Fconnector-development\u002Ftutorial\u002Fcontrols","20.connector-development\u002F20.tutorial\u002F30.controls",{"title":694,"path":695,"stem":696},"SiLA Data Types","\u002Fconnector-development\u002Ftutorial\u002Fdata-types","20.connector-development\u002F20.tutorial\u002F40.data-types",{"title":698,"path":699,"stem":700},"Feature","\u002Fconnector-development\u002Ftutorial\u002Fconnector-structure","20.connector-development\u002F20.tutorial\u002F70.connector-structure",{"title":702,"path":703,"stem":704},"Hardware Communication","\u002Fconnector-development\u002Ftutorial\u002Fhardware-communication","20.connector-development\u002F20.tutorial\u002F90.hardware-communication",{"title":94,"path":706,"stem":707,"children":708,"page":42},"\u002Fconnector-development\u002Fconcepts","20.connector-development\u002F30.concepts",[709],{"title":710,"path":711,"stem":712},"SiLA","\u002Fconnector-development\u002Fconcepts\u002Fsila","20.connector-development\u002F30.concepts\u002Fsila",{"title":187,"path":714,"stem":715,"children":716,"page":42},"\u002Fconnector-development\u002Fguides","20.connector-development\u002F40.guides",[717,721,725,729,733,736,740],{"title":718,"path":719,"stem":720},"Configuration","\u002Fconnector-development\u002Fguides\u002Fconfiguration","20.connector-development\u002F40.guides\u002F20.configuration",{"title":722,"path":723,"stem":724},"Deployment","\u002Fconnector-development\u002Fguides\u002Fdeployment","20.connector-development\u002F40.guides\u002F30.deployment",{"title":726,"path":727,"stem":728},"Security","\u002Fconnector-development\u002Fguides\u002Fsecurity","20.connector-development\u002F40.guides\u002F40.security",{"title":730,"path":731,"stem":732},"Subscriptions","\u002Fconnector-development\u002Fguides\u002Fsubscriptions","20.connector-development\u002F40.guides\u002F45.subscriptions",{"title":183,"path":734,"stem":735},"\u002Fconnector-development\u002Fguides\u002Ferror-handling","20.connector-development\u002F40.guides\u002F50.error-handling",{"title":737,"path":738,"stem":739},"Serial Troubleshooting","\u002Fconnector-development\u002Fguides\u002Fserial-troubleshooting","20.connector-development\u002F40.guides\u002F70.serial-troubleshooting",{"title":741,"path":742,"stem":743},"Testing","\u002Fconnector-development\u002Fguides\u002Ftesting","20.connector-development\u002F40.guides\u002F80.testing",{"title":745,"path":746,"stem":747,"children":748},"References","\u002Fconnector-development\u002Freference","20.connector-development\u002F50.reference\u002Findex",[749],{"title":745,"path":746,"stem":747},{"id":751,"title":278,"body":752,"description":2361,"extension":2362,"links":2363,"meta":2364,"navigation":923,"path":279,"seo":2365,"stem":280,"__hash__":2366},"docs\u002F03.operate\u002F30.devices\u002F10.hamilton-star\u002F30.iswap.md",{"type":753,"value":754,"toc":2344},"minimark",[755,759,762,768,797,802,805,810,818,826,851,861,901,1035,1107,1181,1186,1192,1277,1354,1363,1367,1370,1377,1445,1448,1487,1498,1502,1505,1509,1512,1643,1647,1650,1775,1779,1783,1797,1907,1914,1974,1988,1991,2042,2046,2055,2171,2178,2182,2192,2256,2259,2304,2308,2311,2333,2337,2340],[756,757,758],"p",{},"In addition to the CO-RE gripper, the iSWAP module provides advanced plate handling capabilities for the Hamilton Microlab STAR. This module enables precise manipulation of labware across the deck, including tasks like plate covering, transportation to readers, and complex positioning scenarios that go beyond standard pipetting operations.",[756,760,761],{},"The iSWAP module offers a rotatable arm that can pick up and place labware at any position on the deck, providing greater flexibility for complex workflows. In addition, it has a better reach beyond the standard deck envelope, allowing for better access to off-deck integrations such as readers, incubators, and other laboratory equipment.",[756,763,764],{},[765,766,767],"strong",{},"Prerequisites",[769,770,771,775,778,781,790],"ul",{},[772,773,774],"li",{},"A switched on Microlab STAR device",[772,776,777],{},"A plate carrier and a plate",[772,779,780],{},"A running Microlab STAR connector",[772,782,783,784,789],{},"Basic understanding of the liquid handler class (See the ",[785,786,788],"a",{"href":787},"\u002Foperate\u002Fdevices\u002Fhamilton-star\u002Fiswap\u002F","liquid handler tutorial",")",[772,791,792,793,789],{},"Basic understanding of how labware is used (See the ",[785,794,796],{"href":795},"\u002Foperate\u002Fguides\u002Flabware\u002Fstandard-labware\u002F","using standard labware tutorial",[798,799,801],"h2",{"id":800},"key-iswap-concepts","Key iSWAP Concepts",[756,803,804],{},"Before getting started, let's review a few key concepts when working with the iSWAP module.",[806,807,809],"h3",{"id":808},"positional-reference-frame","Positional Reference Frame",[756,811,812,813,817],{},"Like the CO-RE gripper, the iSWAP's location is defined as the ",[814,815,816],"em",{},"center point"," between its two gripper fingers. This center point serves as the reference for all its positioning operations, and is crucial to account for when using the module. However, this can easily cause confusion when working with other deck resources, since the default reference point for other labware is typically defined as its origin (front-left corner).",[756,819,820,821,825],{},"The UniteLabs labware library provides utilities to help with coordinate transformations and positioning calculations when working with the iSWAP module, in particular for converting between these two coordinate base frames (iSWAP center point vs. labware front-left origin). The key utility is the resource ",[822,823,824],"code",{},".center"," property.",[756,827,828,829,831,832,835,836,843,844,846,847,850],{},"The ",[822,830,824],{}," property returns a ",[822,833,834],{},"Vector"," instance representing the center point of the resource ",[814,837,838,839,842],{},"relative to ",[765,840,841],{},"that resource's"," own origin"," (the front-left corner). This ",[822,845,834],{}," will have only x- and y-components. It does ",[765,848,849],{},"not"," represent the absolute location of the labware's center on the deck, therefore you must sum the plate's location and center to get the absolute position of the center point, as illustrated below.",[756,852,853,854,857,858,860],{},"Additionally, the ",[822,855,856],{},".location"," property of a resource gives its absolute position on the deck, and when combined with ",[822,859,824],{},", you can calculate the absolute center position of any labware.",[862,863,865,893],"callout",{"icon":864},"i-heroicons-information-circle",[756,866,867,870,871,874,875,878,879,878,882,878,885,888,889,892],{},[765,868,869],{},"Note",": This utility is only necessary when using iSWAP methods that expect absolute coordinates. The only one that does so is ",[822,872,873],{},"move_to",", while the rest (",[822,876,877],{},"pick_up",", ",[822,880,881],{},"pick_up_from",[822,883,884],{},"put_down",[822,886,887],{},"transfer",", and ",[822,890,891],{},"transfer_from",") all perform the center calculation internally, inferring the center point from the labware arguments passed to those methods.",[756,894,895,896,900],{},"This distinction is particularly important to remember when training new deck locations with the iSWAP, as described in the guide on ",[785,897,899],{"href":898},"\u002Foperate\u002Fdevices\u002Fhamilton-star\u002Fcustom-deck-position\u002F","training a custom deck position",".",[902,903,908],"pre",{"className":904,"code":905,"language":906,"meta":907,"style":907},"language-ascii shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","    Deck View - Illustrating the Reference Frames\n\n               ┌──────────────────────────────────────────────────────────┐\n               │                                                          │\n               │         ┌─────────┐                                      │\n               │         └─────────┘                                      │\n               │              ● ← iswap.current_location                  │\n               │         ┌─────────┐                                      │\n               │         └─────────┘                                      │\n               │                                                          │\n               │    ┌─────────────────┐                                   │\n               │    │                 │                                   │\n               │    │        ● ← my_plate.location + my_plate.center      │\n               │    │                 │                                   │\n               │    ●─────────────────┘                                   │\n    y          │    ▲                                                     │\n    ↑          │    └─ my_plate.location                                  │\n    |          │                                                          │\n    └ - → x    └──────────────────────────────────────────────────────────┘\n ↙\nz\n","ascii","",[822,909,910,918,925,931,937,943,949,955,960,965,970,976,982,988,993,999,1005,1011,1017,1023,1029],{"__ignoreMap":907},[911,912,915],"span",{"class":913,"line":914},"line",1,[911,916,917],{},"    Deck View - Illustrating the Reference Frames\n",[911,919,921],{"class":913,"line":920},2,[911,922,924],{"emptyLinePlaceholder":923},true,"\n",[911,926,928],{"class":913,"line":927},3,[911,929,930],{},"               ┌──────────────────────────────────────────────────────────┐\n",[911,932,934],{"class":913,"line":933},4,[911,935,936],{},"               │                                                          │\n",[911,938,940],{"class":913,"line":939},5,[911,941,942],{},"               │         ┌─────────┐                                      │\n",[911,944,946],{"class":913,"line":945},6,[911,947,948],{},"               │         └─────────┘                                      │\n",[911,950,952],{"class":913,"line":951},7,[911,953,954],{},"               │              ● ← iswap.current_location                  │\n",[911,956,958],{"class":913,"line":957},8,[911,959,942],{},[911,961,963],{"class":913,"line":962},9,[911,964,948],{},[911,966,968],{"class":913,"line":967},10,[911,969,936],{},[911,971,973],{"class":913,"line":972},11,[911,974,975],{},"               │    ┌─────────────────┐                                   │\n",[911,977,979],{"class":913,"line":978},12,[911,980,981],{},"               │    │                 │                                   │\n",[911,983,985],{"class":913,"line":984},13,[911,986,987],{},"               │    │        ● ← my_plate.location + my_plate.center      │\n",[911,989,991],{"class":913,"line":990},14,[911,992,981],{},[911,994,996],{"class":913,"line":995},15,[911,997,998],{},"               │    ●─────────────────┘                                   │\n",[911,1000,1002],{"class":913,"line":1001},16,[911,1003,1004],{},"    y          │    ▲                                                     │\n",[911,1006,1008],{"class":913,"line":1007},17,[911,1009,1010],{},"    ↑          │    └─ my_plate.location                                  │\n",[911,1012,1014],{"class":913,"line":1013},18,[911,1015,1016],{},"    |          │                                                          │\n",[911,1018,1020],{"class":913,"line":1019},19,[911,1021,1022],{},"    └ - → x    └──────────────────────────────────────────────────────────┘\n",[911,1024,1026],{"class":913,"line":1025},20,[911,1027,1028],{}," ↙\n",[911,1030,1032],{"class":913,"line":1031},21,[911,1033,1034],{},"z\n",[902,1036,1038],{"className":904,"code":1037,"language":906,"meta":907,"style":907},"    Deck View - iSWAP Correctly Aligned to Plate Center\n\n               ┌──────────────────────────────────────────────────────────┐\n               │                                                          │\n               │        ┌─────────┐                                       │\n               │    ┌───└─────────┘───┐                                   │\n               │    │                 │                                   │\n               │    │        ● ←      │  iswap.current_location ==        │\n               │    │                 │    my_plate.location              |\n    y          │    ●───┌─────────┐───┘      + my_plate.center            │\n    ↑          │        └─────────┘                                       │\n    |          │                                                          │\n    └ - → x    └──────────────────────────────────────────────────────────┘\n ↙\nz\n",[822,1039,1040,1045,1049,1053,1057,1062,1067,1071,1076,1081,1086,1091,1095,1099,1103],{"__ignoreMap":907},[911,1041,1042],{"class":913,"line":914},[911,1043,1044],{},"    Deck View - iSWAP Correctly Aligned to Plate Center\n",[911,1046,1047],{"class":913,"line":920},[911,1048,924],{"emptyLinePlaceholder":923},[911,1050,1051],{"class":913,"line":927},[911,1052,930],{},[911,1054,1055],{"class":913,"line":933},[911,1056,936],{},[911,1058,1059],{"class":913,"line":939},[911,1060,1061],{},"               │        ┌─────────┐                                       │\n",[911,1063,1064],{"class":913,"line":945},[911,1065,1066],{},"               │    ┌───└─────────┘───┐                                   │\n",[911,1068,1069],{"class":913,"line":951},[911,1070,981],{},[911,1072,1073],{"class":913,"line":957},[911,1074,1075],{},"               │    │        ● ←      │  iswap.current_location ==        │\n",[911,1077,1078],{"class":913,"line":962},[911,1079,1080],{},"               │    │                 │    my_plate.location              |\n",[911,1082,1083],{"class":913,"line":967},[911,1084,1085],{},"    y          │    ●───┌─────────┐───┘      + my_plate.center            │\n",[911,1087,1088],{"class":913,"line":972},[911,1089,1090],{},"    ↑          │        └─────────┘                                       │\n",[911,1092,1093],{"class":913,"line":978},[911,1094,1016],{},[911,1096,1097],{"class":913,"line":984},[911,1098,1022],{},[911,1100,1101],{"class":913,"line":990},[911,1102,1028],{},[911,1104,1105],{"class":913,"line":995},[911,1106,1034],{},[902,1108,1110],{"className":904,"code":1109,"language":906,"meta":907,"style":907},"    Deck View - iSWAP Incorrectly Aligned to Plate Origin\n\n               ┌──────────────────────────────────────────────────────────┐\n               │                                                          │\n               │         ┌─────────────────┐                              │\n               │         │                 │                              │\n               │    ┌─────────┐   ●        │                              │\n               │    └─────────┘            │                              │\n               │       → ●─────────────────┘  iswap.current_location ==   |\n    y          │    ┌─────────┐                 my_plate.location         │\n    ↑          |    └─────────┘                                           │\n    |          │                                                          │\n    └ - → x    └──────────────────────────────────────────────────────────┘\n  ↙\nz\n",[822,1111,1112,1117,1121,1125,1129,1134,1139,1144,1149,1154,1159,1164,1168,1172,1177],{"__ignoreMap":907},[911,1113,1114],{"class":913,"line":914},[911,1115,1116],{},"    Deck View - iSWAP Incorrectly Aligned to Plate Origin\n",[911,1118,1119],{"class":913,"line":920},[911,1120,924],{"emptyLinePlaceholder":923},[911,1122,1123],{"class":913,"line":927},[911,1124,930],{},[911,1126,1127],{"class":913,"line":933},[911,1128,936],{},[911,1130,1131],{"class":913,"line":939},[911,1132,1133],{},"               │         ┌─────────────────┐                              │\n",[911,1135,1136],{"class":913,"line":945},[911,1137,1138],{},"               │         │                 │                              │\n",[911,1140,1141],{"class":913,"line":951},[911,1142,1143],{},"               │    ┌─────────┐   ●        │                              │\n",[911,1145,1146],{"class":913,"line":957},[911,1147,1148],{},"               │    └─────────┘            │                              │\n",[911,1150,1151],{"class":913,"line":962},[911,1152,1153],{},"               │       → ●─────────────────┘  iswap.current_location ==   |\n",[911,1155,1156],{"class":913,"line":967},[911,1157,1158],{},"    y          │    ┌─────────┐                 my_plate.location         │\n",[911,1160,1161],{"class":913,"line":972},[911,1162,1163],{},"    ↑          |    └─────────┘                                           │\n",[911,1165,1166],{"class":913,"line":978},[911,1167,1016],{},[911,1169,1170],{"class":913,"line":984},[911,1171,1022],{},[911,1173,1174],{"class":913,"line":990},[911,1175,1176],{},"  ↙\n",[911,1178,1179],{"class":913,"line":995},[911,1180,1034],{},[756,1182,828,1183,1185],{},[822,1184,824],{}," utility helps simplify coordinate transformations when working with the iSWAP module, making it easier to specify absolute coordinates that account for the different reference frames between the iSWAP and other deck resources.",[756,1187,1188,1189,1191],{},"With a plate on the deck, one would use these properties with the ",[822,1190,873],{}," method like so:",[902,1193,1197],{"className":1194,"code":1195,"language":1196,"meta":907,"style":907},"language-python shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# Move to a plate location\n# Calculate absolute center position\nplate_center_absolute = my_plate.location + my_plate.center\n# Use with iSWAP move_to method\nawait hamilton.iswap.move_to(location=plate_center_absolute)\n","python",[822,1198,1199,1205,1210,1239,1244],{"__ignoreMap":907},[911,1200,1201],{"class":913,"line":914},[911,1202,1204],{"class":1203},"sHwdD","# Move to a plate location\n",[911,1206,1207],{"class":913,"line":920},[911,1208,1209],{"class":1203},"# Calculate absolute center position\n",[911,1211,1212,1216,1220,1223,1225,1229,1232,1234,1236],{"class":913,"line":927},[911,1213,1215],{"class":1214},"sTEyZ","plate_center_absolute ",[911,1217,1219],{"class":1218},"sMK4o","=",[911,1221,1222],{"class":1214}," my_plate",[911,1224,900],{"class":1218},[911,1226,1228],{"class":1227},"swJcz","location",[911,1230,1231],{"class":1218}," +",[911,1233,1222],{"class":1214},[911,1235,900],{"class":1218},[911,1237,1238],{"class":1227},"center\n",[911,1240,1241],{"class":913,"line":933},[911,1242,1243],{"class":1203},"# Use with iSWAP move_to method\n",[911,1245,1246,1250,1253,1255,1258,1260,1263,1266,1269,1271,1274],{"class":913,"line":939},[911,1247,1249],{"class":1248},"s7zQu","await",[911,1251,1252],{"class":1214}," hamilton",[911,1254,900],{"class":1218},[911,1256,1257],{"class":1227},"iswap",[911,1259,900],{"class":1218},[911,1261,873],{"class":1262},"s2Zo4",[911,1264,1265],{"class":1218},"(",[911,1267,1228],{"class":1268},"sHdIc",[911,1270,1219],{"class":1218},[911,1272,1273],{"class":1262},"plate_center_absolute",[911,1275,1276],{"class":1218},")\n",[902,1278,1280],{"className":1194,"code":1279,"language":1196,"meta":907,"style":907},"# Move to a carrier site location\n# Calculate absolute center position\ncarrier_center_absolute = my_carrier[0].location + my_carrier[0].center\n# Use with iSWAP move_to method\nawait hamilton.iswap.move_to(location=carrier_center_absolute)\n",[822,1281,1282,1287,1291,1325,1329],{"__ignoreMap":907},[911,1283,1284],{"class":913,"line":914},[911,1285,1286],{"class":1203},"# Move to a carrier site location\n",[911,1288,1289],{"class":913,"line":920},[911,1290,1209],{"class":1203},[911,1292,1293,1296,1298,1301,1304,1308,1311,1313,1315,1317,1319,1321,1323],{"class":913,"line":927},[911,1294,1295],{"class":1214},"carrier_center_absolute ",[911,1297,1219],{"class":1218},[911,1299,1300],{"class":1214}," my_carrier",[911,1302,1303],{"class":1218},"[",[911,1305,1307],{"class":1306},"sbssI","0",[911,1309,1310],{"class":1218},"].",[911,1312,1228],{"class":1227},[911,1314,1231],{"class":1218},[911,1316,1300],{"class":1214},[911,1318,1303],{"class":1218},[911,1320,1307],{"class":1306},[911,1322,1310],{"class":1218},[911,1324,1238],{"class":1227},[911,1326,1327],{"class":913,"line":933},[911,1328,1243],{"class":1203},[911,1330,1331,1333,1335,1337,1339,1341,1343,1345,1347,1349,1352],{"class":913,"line":939},[911,1332,1249],{"class":1248},[911,1334,1252],{"class":1214},[911,1336,900],{"class":1218},[911,1338,1257],{"class":1227},[911,1340,900],{"class":1218},[911,1342,873],{"class":1262},[911,1344,1265],{"class":1218},[911,1346,1228],{"class":1268},[911,1348,1219],{"class":1218},[911,1350,1351],{"class":1262},"carrier_center_absolute",[911,1353,1276],{"class":1218},[862,1355,1357],{"icon":1356},"i-heroicons-shield-exclamation",[756,1358,1359,1362],{},[765,1360,1361],{},"Warning",": To avoid collision, make sure to either open the grippers before moving to a plate location, or add a z offset to the move command.",[806,1364,1366],{"id":1365},"rotation-and-direction","Rotation and Direction",[756,1368,1369],{},"The iSWAP has a unique rotational element which allows it to pick and place labware in multiple orientations.",[756,1371,1372,1373,1376],{},"The UniteLabs liquid handling SDK provides support for specifying rotation direction when handling labware with the iSWAP module in the form of the ",[822,1374,1375],{},"Direction"," enum:",[902,1378,1380],{"className":1194,"code":1379,"language":1196,"meta":907,"style":907},"class Direction(enum.IntEnum):\n    FRONT = 1\n    RIGHT = 2\n    BACK = 3\n    LEFT = 4\n",[822,1381,1382,1405,1415,1425,1435],{"__ignoreMap":907},[911,1383,1384,1388,1392,1394,1397,1399,1402],{"class":913,"line":914},[911,1385,1387],{"class":1386},"spNyl","class",[911,1389,1391],{"class":1390},"sBMFI"," Direction",[911,1393,1265],{"class":1218},[911,1395,1396],{"class":1390},"enum",[911,1398,900],{"class":1218},[911,1400,1401],{"class":1390},"IntEnum",[911,1403,1404],{"class":1218},"):\n",[911,1406,1407,1410,1412],{"class":913,"line":920},[911,1408,1409],{"class":1214},"    FRONT ",[911,1411,1219],{"class":1218},[911,1413,1414],{"class":1306}," 1\n",[911,1416,1417,1420,1422],{"class":913,"line":927},[911,1418,1419],{"class":1214},"    RIGHT ",[911,1421,1219],{"class":1218},[911,1423,1424],{"class":1306}," 2\n",[911,1426,1427,1430,1432],{"class":913,"line":933},[911,1428,1429],{"class":1214},"    BACK ",[911,1431,1219],{"class":1218},[911,1433,1434],{"class":1306}," 3\n",[911,1436,1437,1440,1442],{"class":913,"line":939},[911,1438,1439],{"class":1214},"    LEFT ",[911,1441,1219],{"class":1218},[911,1443,1444],{"class":1306}," 4\n",[756,1446,1447],{},"This enum defines the four cardinal directions from which the iSWAP can approach and handle labware. It can be imported directly from the liquid handling SDK like so:",[902,1449,1451],{"className":1194,"code":1450,"language":1196,"meta":907,"style":907},"from unitelabs.liquid_handling.hamilton.modules.iswap import Direction\n",[822,1452,1453],{"__ignoreMap":907},[911,1454,1455,1458,1461,1463,1466,1468,1471,1473,1476,1478,1481,1484],{"class":913,"line":914},[911,1456,1457],{"class":1248},"from",[911,1459,1460],{"class":1214}," unitelabs",[911,1462,900],{"class":1218},[911,1464,1465],{"class":1214},"liquid_handling",[911,1467,900],{"class":1218},[911,1469,1470],{"class":1214},"hamilton",[911,1472,900],{"class":1218},[911,1474,1475],{"class":1214},"modules",[911,1477,900],{"class":1218},[911,1479,1480],{"class":1214},"iswap ",[911,1482,1483],{"class":1248},"import",[911,1485,1486],{"class":1214}," Direction\n",[756,1488,1489,1490,1493,1494,1497],{},"All of the iSWAP's pick and place methods contain a ",[822,1491,1492],{},"direction"," parameter that accepts values from this enum. This parameter determines from which side the iSWAP ",[814,1495,1496],{},"approaches"," the labware for the operation. It is possible to use the corresponding integer values directly (1-4), but we recommend importing and using the enum values for better code readability.",[798,1499,1501],{"id":1500},"basic-setup","Basic Setup",[756,1503,1504],{},"Here we describe the necessary steps to initialize and configure the iSWAP module for operation.",[806,1506,1508],{"id":1507},"power-on-the-system","Power On the System",[756,1510,1511],{},"Ensure that the Microlab STAR is powered on and ready for operation. Verify that the connector is running and connected to the UniteLabs platform.",[902,1513,1515],{"className":1194,"code":1514,"language":1196,"meta":907,"style":907},"from unitelabs.sdk import AsyncApiClient\nfrom unitelabs.liquid_handling.hamilton import MicrolabSTAR\n\nclient = AsyncApiClient()\n\n# Initialize the Hamilton Microlab STAR\nhamilton = MicrolabSTAR(\n    name=\"Microlab STAR\", # Or your connector's name on the UniteLabs platform\n    client=client,\n)\nawait hamilton.initialize()\n",[822,1516,1517,1533,1553,1557,1570,1574,1579,1591,1613,1626,1630],{"__ignoreMap":907},[911,1518,1519,1521,1523,1525,1528,1530],{"class":913,"line":914},[911,1520,1457],{"class":1248},[911,1522,1460],{"class":1214},[911,1524,900],{"class":1218},[911,1526,1527],{"class":1214},"sdk ",[911,1529,1483],{"class":1248},[911,1531,1532],{"class":1214}," AsyncApiClient\n",[911,1534,1535,1537,1539,1541,1543,1545,1548,1550],{"class":913,"line":920},[911,1536,1457],{"class":1248},[911,1538,1460],{"class":1214},[911,1540,900],{"class":1218},[911,1542,1465],{"class":1214},[911,1544,900],{"class":1218},[911,1546,1547],{"class":1214},"hamilton ",[911,1549,1483],{"class":1248},[911,1551,1552],{"class":1214}," MicrolabSTAR\n",[911,1554,1555],{"class":913,"line":927},[911,1556,924],{"emptyLinePlaceholder":923},[911,1558,1559,1562,1564,1567],{"class":913,"line":933},[911,1560,1561],{"class":1214},"client ",[911,1563,1219],{"class":1218},[911,1565,1566],{"class":1262}," AsyncApiClient",[911,1568,1569],{"class":1218},"()\n",[911,1571,1572],{"class":913,"line":939},[911,1573,924],{"emptyLinePlaceholder":923},[911,1575,1576],{"class":913,"line":945},[911,1577,1578],{"class":1203},"# Initialize the Hamilton Microlab STAR\n",[911,1580,1581,1583,1585,1588],{"class":913,"line":951},[911,1582,1547],{"class":1214},[911,1584,1219],{"class":1218},[911,1586,1587],{"class":1262}," MicrolabSTAR",[911,1589,1590],{"class":1218},"(\n",[911,1592,1593,1596,1598,1601,1605,1607,1610],{"class":913,"line":957},[911,1594,1595],{"class":1268},"    name",[911,1597,1219],{"class":1218},[911,1599,1600],{"class":1218},"\"",[911,1602,1604],{"class":1603},"sfazB","Microlab STAR",[911,1606,1600],{"class":1218},[911,1608,1609],{"class":1218},",",[911,1611,1612],{"class":1203}," # Or your connector's name on the UniteLabs platform\n",[911,1614,1615,1618,1620,1623],{"class":913,"line":962},[911,1616,1617],{"class":1268},"    client",[911,1619,1219],{"class":1218},[911,1621,1622],{"class":1262},"client",[911,1624,1625],{"class":1218},",\n",[911,1627,1628],{"class":913,"line":967},[911,1629,1276],{"class":1218},[911,1631,1632,1634,1636,1638,1641],{"class":913,"line":972},[911,1633,1249],{"class":1248},[911,1635,1252],{"class":1214},[911,1637,900],{"class":1218},[911,1639,1640],{"class":1262},"initialize",[911,1642,1569],{"class":1218},[806,1644,1646],{"id":1645},"arrange-the-deck","Arrange the Deck",[756,1648,1649],{},"Arrange the deck layout using the components from the labware library. This guide uses a plate carrier with one standard 96 well microtiter plate that we move from one carrier site to another.",[902,1651,1653],{"className":1194,"code":1652,"language":1196,"meta":907,"style":907},"from unitelabs.labware import Standard96Plate, Vector\nfrom unitelabs.labware.hamilton import PLT_CAR_L5MD_A00\n\nplate_carrier = PLT_CAR_L5MD_A00()\nplate = Standard96Plate()\n\nplate_carrier[0] = plate\nhamilton.deck.add(plate_carrier, track=1)\n",[822,1654,1655,1676,1696,1700,1712,1723,1727,1745],{"__ignoreMap":907},[911,1656,1657,1659,1661,1663,1666,1668,1671,1673],{"class":913,"line":914},[911,1658,1457],{"class":1248},[911,1660,1460],{"class":1214},[911,1662,900],{"class":1218},[911,1664,1665],{"class":1214},"labware ",[911,1667,1483],{"class":1248},[911,1669,1670],{"class":1214}," Standard96Plate",[911,1672,1609],{"class":1218},[911,1674,1675],{"class":1214}," Vector\n",[911,1677,1678,1680,1682,1684,1687,1689,1691,1693],{"class":913,"line":920},[911,1679,1457],{"class":1248},[911,1681,1460],{"class":1214},[911,1683,900],{"class":1218},[911,1685,1686],{"class":1214},"labware",[911,1688,900],{"class":1218},[911,1690,1547],{"class":1214},[911,1692,1483],{"class":1248},[911,1694,1695],{"class":1214}," PLT_CAR_L5MD_A00\n",[911,1697,1698],{"class":913,"line":927},[911,1699,924],{"emptyLinePlaceholder":923},[911,1701,1702,1705,1707,1710],{"class":913,"line":933},[911,1703,1704],{"class":1214},"plate_carrier ",[911,1706,1219],{"class":1218},[911,1708,1709],{"class":1262}," PLT_CAR_L5MD_A00",[911,1711,1569],{"class":1218},[911,1713,1714,1717,1719,1721],{"class":913,"line":939},[911,1715,1716],{"class":1214},"plate ",[911,1718,1219],{"class":1218},[911,1720,1670],{"class":1262},[911,1722,1569],{"class":1218},[911,1724,1725],{"class":913,"line":945},[911,1726,924],{"emptyLinePlaceholder":923},[911,1728,1729,1732,1734,1736,1739,1742],{"class":913,"line":951},[911,1730,1731],{"class":1214},"plate_carrier",[911,1733,1303],{"class":1218},[911,1735,1307],{"class":1306},[911,1737,1738],{"class":1218},"]",[911,1740,1741],{"class":1218}," =",[911,1743,1744],{"class":1214}," plate\n",[911,1746,1747,1749,1751,1754,1756,1759,1761,1763,1765,1768,1770,1773],{"class":913,"line":957},[911,1748,1470],{"class":1214},[911,1750,900],{"class":1218},[911,1752,1753],{"class":1227},"deck",[911,1755,900],{"class":1218},[911,1757,1758],{"class":1262},"add",[911,1760,1265],{"class":1218},[911,1762,1731],{"class":1262},[911,1764,1609],{"class":1218},[911,1766,1767],{"class":1268}," track",[911,1769,1219],{"class":1218},[911,1771,1772],{"class":1306},"1",[911,1774,1276],{"class":1218},[798,1776,1778],{"id":1777},"using-the-iswap","Using the iSWAP",[806,1780,1782],{"id":1781},"pick-up-labware","Pick up Labware",[756,1784,1785,1786,1788,1789,1792,1793,1796],{},"Training locations should be done with labware in the iSWAP to ensure accuracy. This ensures that the positioning is valid for the specific labware to be transferred. Make sure that the plate is placed on the site and pass it to the iSWAP's ",[822,1787,881],{}," method. The iSWAP moves on a safe traverse height to the site and picks up the plate. The method automatically transfers the plate from the carrier site to the iSWAP module. When the ",[822,1790,1791],{},"pick_up_direction"," argument is omitted, the iSWAP will approach from whichever orientation it is currently in. Here the ",[822,1794,1795],{},"strength"," parameter is set to the default value, which is used if not specified.",[902,1798,1800],{"className":1194,"code":1799,"language":1196,"meta":907,"style":907},"from unitelabs.liquid_handling.hamilton.modules.iswap.interfaces import Direction\n\nawait hamilton.iswap.pick_up_from(\n    plate_carrier[0],\n    # The direction from which the iSWAP arm approaches the labware to pick up.\n    pick_up_direction=Direction.LEFT,\n    # The pressure to apply on the plate ranging from 0 (low) to 99 (high).\n    strength=30,\n)\n",[822,1801,1802,1833,1837,1853,1865,1870,1886,1891,1903],{"__ignoreMap":907},[911,1803,1804,1806,1808,1810,1812,1814,1816,1818,1820,1822,1824,1826,1829,1831],{"class":913,"line":914},[911,1805,1457],{"class":1248},[911,1807,1460],{"class":1214},[911,1809,900],{"class":1218},[911,1811,1465],{"class":1214},[911,1813,900],{"class":1218},[911,1815,1470],{"class":1214},[911,1817,900],{"class":1218},[911,1819,1475],{"class":1214},[911,1821,900],{"class":1218},[911,1823,1257],{"class":1214},[911,1825,900],{"class":1218},[911,1827,1828],{"class":1214},"interfaces ",[911,1830,1483],{"class":1248},[911,1832,1486],{"class":1214},[911,1834,1835],{"class":913,"line":920},[911,1836,924],{"emptyLinePlaceholder":923},[911,1838,1839,1841,1843,1845,1847,1849,1851],{"class":913,"line":927},[911,1840,1249],{"class":1248},[911,1842,1252],{"class":1214},[911,1844,900],{"class":1218},[911,1846,1257],{"class":1227},[911,1848,900],{"class":1218},[911,1850,881],{"class":1262},[911,1852,1590],{"class":1218},[911,1854,1855,1858,1860,1862],{"class":913,"line":933},[911,1856,1857],{"class":1262},"    plate_carrier",[911,1859,1303],{"class":1218},[911,1861,1307],{"class":1306},[911,1863,1864],{"class":1218},"],\n",[911,1866,1867],{"class":913,"line":939},[911,1868,1869],{"class":1203},"    # The direction from which the iSWAP arm approaches the labware to pick up.\n",[911,1871,1872,1875,1877,1879,1881,1884],{"class":913,"line":945},[911,1873,1874],{"class":1268},"    pick_up_direction",[911,1876,1219],{"class":1218},[911,1878,1375],{"class":1262},[911,1880,900],{"class":1218},[911,1882,1883],{"class":1227},"LEFT",[911,1885,1625],{"class":1218},[911,1887,1888],{"class":913,"line":951},[911,1889,1890],{"class":1203},"    # The pressure to apply on the plate ranging from 0 (low) to 99 (high).\n",[911,1892,1893,1896,1898,1901],{"class":913,"line":957},[911,1894,1895],{"class":1268},"    strength",[911,1897,1219],{"class":1218},[911,1899,1900],{"class":1306},"30",[911,1902,1625],{"class":1218},[911,1904,1905],{"class":913,"line":962},[911,1906,1276],{"class":1218},[756,1908,1909,1910,1913],{},"The parameters such as grip width and grip height are determined based on the ",[785,1911,1912],{"href":795},"definition of the labware"," that is being picked up while others have default values. All parameters can be specified explicitly if desired:",[769,1915,1916,1938,1945,1957,1965],{},[772,1917,1918,1920,1921,878,1924,878,1927,1930,1931,1933,1934,1937],{},[822,1919,1791],{},": Approach direction (",[822,1922,1923],{},"Direction.FRONT",[822,1925,1926],{},"RIGHT",[822,1928,1929],{},"BACK",", or ",[822,1932,1883],{},"). Default: ",[822,1935,1936],{},"None"," (uses current orientation).",[772,1939,1940,1942,1943,900],{},[822,1941,1795],{},": Grip pressure ranging from 0 (low) to 99 (high). Default: ",[822,1944,1900],{},[772,1946,1947,1950,1951,1954,1955,900],{},[822,1948,1949],{},"pick_up_offset",": A ",[822,1952,1953],{},"Vector(dx, dy)"," offset in mm to adjust the pick up location. Default: ",[822,1956,1936],{},[772,1958,1959,1962,1963,900],{},[822,1960,1961],{},"width_offset",": Offset in mm to adjust the labware size for grip width calculation. Default: ",[822,1964,1307],{},[772,1966,1967,1970,1971,900],{},[822,1968,1969],{},"grip_gap",": Initial gap in mm between the gripper and the labware. Default: ",[822,1972,1973],{},"6",[862,1975,1976],{"icon":864},[756,1977,1978,1981,1982,1984,1985,1987],{},[822,1979,1980],{},"grab_height"," is read from the labware definition and is not exposed as a pick-up parameter. To adjust the grip height, either edit the ",[822,1983,1980],{}," field on your labware definition or use ",[822,1986,1949],{}," for fine-tuning.",[756,1989,1990],{},"The plate is now accessible on the iSWAP and the carrier site should be empty.",[902,1992,1994],{"className":1194,"code":1993,"language":1196,"meta":907,"style":907},"assert plate_carrier[0].get() == None\nassert hamilton.iswap.get() == plate\n",[822,1995,1996,2022],{"__ignoreMap":907},[911,1997,1998,2001,2004,2006,2008,2010,2013,2016,2019],{"class":913,"line":914},[911,1999,2000],{"class":1248},"assert",[911,2002,2003],{"class":1214}," plate_carrier",[911,2005,1303],{"class":1218},[911,2007,1307],{"class":1306},[911,2009,1310],{"class":1218},[911,2011,2012],{"class":1262},"get",[911,2014,2015],{"class":1218},"()",[911,2017,2018],{"class":1218}," ==",[911,2020,2021],{"class":1218}," None\n",[911,2023,2024,2026,2028,2030,2032,2034,2036,2038,2040],{"class":913,"line":920},[911,2025,2000],{"class":1248},[911,2027,1252],{"class":1214},[911,2029,900],{"class":1218},[911,2031,1257],{"class":1227},[911,2033,900],{"class":1218},[911,2035,2012],{"class":1262},[911,2037,2015],{"class":1218},[911,2039,2018],{"class":1218},[911,2041,1744],{"class":1214},[806,2043,2045],{"id":2044},"move-labware","Move Labware",[756,2047,2048,2049,2051,2052,2054],{},"Now that the plate is picked up, it can be moved to another position. The plate's center will be placed at the provided location. In ",[822,2050,873],{},", the ",[822,2053,1492],{}," parameter specifies the approach direction for the iSWAP arm.",[902,2056,2058],{"className":1194,"code":2057,"language":1196,"meta":907,"style":907},"# Location 20 mm above the 5th carrier site's center\ntarget_location = plate_carrier[4].absolute_location \\\n    + plate_carrier[4].center.update(z=20)\n\nawait hamilton.iswap.move_to(\n    location=target_location,\n    direction=Direction.RIGHT,\n)\n",[822,2059,2060,2065,2087,2120,2124,2140,2152,2167],{"__ignoreMap":907},[911,2061,2062],{"class":913,"line":914},[911,2063,2064],{"class":1203},"# Location 20 mm above the 5th carrier site's center\n",[911,2066,2067,2070,2072,2074,2076,2079,2081,2084],{"class":913,"line":920},[911,2068,2069],{"class":1214},"target_location ",[911,2071,1219],{"class":1218},[911,2073,2003],{"class":1214},[911,2075,1303],{"class":1218},[911,2077,2078],{"class":1306},"4",[911,2080,1310],{"class":1218},[911,2082,2083],{"class":1227},"absolute_location",[911,2085,2086],{"class":1218}," \\\n",[911,2088,2089,2092,2094,2096,2098,2100,2103,2105,2108,2110,2113,2115,2118],{"class":913,"line":927},[911,2090,2091],{"class":1218},"    +",[911,2093,2003],{"class":1214},[911,2095,1303],{"class":1218},[911,2097,2078],{"class":1306},[911,2099,1310],{"class":1218},[911,2101,2102],{"class":1227},"center",[911,2104,900],{"class":1218},[911,2106,2107],{"class":1262},"update",[911,2109,1265],{"class":1218},[911,2111,2112],{"class":1268},"z",[911,2114,1219],{"class":1218},[911,2116,2117],{"class":1306},"20",[911,2119,1276],{"class":1218},[911,2121,2122],{"class":913,"line":933},[911,2123,924],{"emptyLinePlaceholder":923},[911,2125,2126,2128,2130,2132,2134,2136,2138],{"class":913,"line":939},[911,2127,1249],{"class":1248},[911,2129,1252],{"class":1214},[911,2131,900],{"class":1218},[911,2133,1257],{"class":1227},[911,2135,900],{"class":1218},[911,2137,873],{"class":1262},[911,2139,1590],{"class":1218},[911,2141,2142,2145,2147,2150],{"class":913,"line":945},[911,2143,2144],{"class":1268},"    location",[911,2146,1219],{"class":1218},[911,2148,2149],{"class":1262},"target_location",[911,2151,1625],{"class":1218},[911,2153,2154,2157,2159,2161,2163,2165],{"class":913,"line":951},[911,2155,2156],{"class":1268},"    direction",[911,2158,1219],{"class":1218},[911,2160,1375],{"class":1262},[911,2162,900],{"class":1218},[911,2164,1926],{"class":1227},[911,2166,1625],{"class":1218},[911,2168,2169],{"class":913,"line":957},[911,2170,1276],{"class":1218},[862,2172,2173],{"icon":864},[756,2174,2175,2177],{},[765,2176,869],{},": The iSWAP can be moved to any location even without carrying labware.",[806,2179,2181],{"id":2180},"release-labware","Release Labware",[756,2183,2184,2185,2187,2188,2191],{},"Labware can only be placed on carrier sites. Make sure that the site is empty and pass it to the iSWAP's ",[822,2186,884],{}," method. The method automatically transfers the plate from the iSWAP module to the site. The ",[822,2189,2190],{},"drop_direction"," parameter specifies the approach direction for the iSWAP arm when putting down the labware.",[902,2193,2195],{"className":1194,"code":2194,"language":1196,"meta":907,"style":907},"await hamilton.iswap.put_down(\n    # The carrier's 5th site\n    carrier_site=plate_carrier[4],\n    # The direction from which the iSWAP arm approaches the labware to put it down.\n    drop_direction=Direction.LEFT\n)\n",[822,2196,2197,2213,2218,2233,2238,2252],{"__ignoreMap":907},[911,2198,2199,2201,2203,2205,2207,2209,2211],{"class":913,"line":914},[911,2200,1249],{"class":1248},[911,2202,1252],{"class":1214},[911,2204,900],{"class":1218},[911,2206,1257],{"class":1227},[911,2208,900],{"class":1218},[911,2210,884],{"class":1262},[911,2212,1590],{"class":1218},[911,2214,2215],{"class":913,"line":920},[911,2216,2217],{"class":1203},"    # The carrier's 5th site\n",[911,2219,2220,2223,2225,2227,2229,2231],{"class":913,"line":927},[911,2221,2222],{"class":1268},"    carrier_site",[911,2224,1219],{"class":1218},[911,2226,1731],{"class":1262},[911,2228,1303],{"class":1218},[911,2230,2078],{"class":1306},[911,2232,1864],{"class":1218},[911,2234,2235],{"class":913,"line":933},[911,2236,2237],{"class":1203},"    # The direction from which the iSWAP arm approaches the labware to put it down.\n",[911,2239,2240,2243,2245,2247,2249],{"class":913,"line":939},[911,2241,2242],{"class":1268},"    drop_direction",[911,2244,1219],{"class":1218},[911,2246,1375],{"class":1262},[911,2248,900],{"class":1218},[911,2250,2251],{"class":1227},"LEFT\n",[911,2253,2254],{"class":913,"line":945},[911,2255,1276],{"class":1218},[756,2257,2258],{},"The plate is now accessible on the carrier site and the iSWAP should be empty again.",[902,2260,2262],{"className":1194,"code":2261,"language":1196,"meta":907,"style":907},"assert hamilton.iswap.get() == None\nassert plate_carrier[4].get() == plate\n",[822,2263,2264,2284],{"__ignoreMap":907},[911,2265,2266,2268,2270,2272,2274,2276,2278,2280,2282],{"class":913,"line":914},[911,2267,2000],{"class":1248},[911,2269,1252],{"class":1214},[911,2271,900],{"class":1218},[911,2273,1257],{"class":1227},[911,2275,900],{"class":1218},[911,2277,2012],{"class":1262},[911,2279,2015],{"class":1218},[911,2281,2018],{"class":1218},[911,2283,2021],{"class":1218},[911,2285,2286,2288,2290,2292,2294,2296,2298,2300,2302],{"class":913,"line":920},[911,2287,2000],{"class":1248},[911,2289,2003],{"class":1214},[911,2291,1303],{"class":1218},[911,2293,2078],{"class":1306},[911,2295,1310],{"class":1218},[911,2297,2012],{"class":1262},[911,2299,2015],{"class":1218},[911,2301,2018],{"class":1218},[911,2303,1744],{"class":1214},[806,2305,2307],{"id":2306},"home-iswap","Home iSWAP",[756,2309,2310],{},"Repeat the above steps as necessary to manipulate additional labware. When you are done, using any other tool (e.g. the CoRe96 pipetting head) will return the iSWAP back to its home position. You can also home iSWAP explicitly:",[902,2312,2314],{"className":1194,"code":2313,"language":1196,"meta":907,"style":907},"await hamilton.iswap.home()\n",[822,2315,2316],{"__ignoreMap":907},[911,2317,2318,2320,2322,2324,2326,2328,2331],{"class":913,"line":914},[911,2319,1249],{"class":1248},[911,2321,1252],{"class":1214},[911,2323,900],{"class":1218},[911,2325,1257],{"class":1227},[911,2327,900],{"class":1218},[911,2329,2330],{"class":1262},"home",[911,2332,1569],{"class":1218},[798,2334,2336],{"id":2335},"conclusion","Conclusion",[756,2338,2339],{},"You should now be able to utilize the iSWAP gripper as an efficient solution for transporting labware during liquid handling workflows.",[2341,2342,2343],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}",{"title":907,"searchDepth":914,"depth":920,"links":2345},[2346,2350,2354,2360],{"id":800,"depth":920,"text":801,"children":2347},[2348,2349],{"id":808,"depth":927,"text":809},{"id":1365,"depth":927,"text":1366},{"id":1500,"depth":920,"text":1501,"children":2351},[2352,2353],{"id":1507,"depth":927,"text":1508},{"id":1645,"depth":927,"text":1646},{"id":1777,"depth":920,"text":1778,"children":2355},[2356,2357,2358,2359],{"id":1781,"depth":927,"text":1782},{"id":2044,"depth":927,"text":2045},{"id":2180,"depth":927,"text":2181},{"id":2306,"depth":927,"text":2307},{"id":2335,"depth":920,"text":2336},"Use the iSWAP module for plate handling.","md",null,{},{"title":278,"description":2361},"He5d-pOnfxlMcqrqGDz7kPs_XSdmyoWsiFmRCd3GjUY",[2368,2370],{"title":274,"path":275,"stem":276,"description":2369},"Moving labware with the integrated CO-RE gripper.",{"title":282,"path":283,"stem":284,"description":2371},"How to measure TADM curves and control liquid handling steps with them.",1783607774573]