[{"data":1,"prerenderedAt":975},["ShallowReactive",2],{"navigation":3,"mdc--5zqier-key":822,"mdc--4j9n7n-key":844,"mdc-wr8ttd-key":861,"mdc-bcux5g-key":878,"mdc--4rhklz-key":901,"mdc-x4dx21-key":926,"mdc-j4dmk7-key":957,"mdc--dboep6-key":966},[4,88,171,427,491,597,634,713],{"title":5,"path":6,"stem":7,"children":8,"page":42},"Get Started","\u002Fget-started\u002F","01.get-started",[9,13,17,43,47,51],{"title":10,"path":11,"stem":12},"Welcome to UniteLabs","\u002Fget-started\u002Fwelcome\u002F","01.get-started\u002F00.welcome",{"title":14,"path":15,"stem":16},"How it works","\u002Fget-started\u002Fhow-it-works\u002F","01.get-started\u002F01.how-it-works",{"title":18,"path":19,"stem":20,"children":21,"page":42},"Use Cases","\u002Fget-started\u002Fuse-cases\u002F","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\u002F","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\u002F","01.get-started\u002F02.use-cases\u002F20.multi-device-control",{"title":31,"path":32,"stem":33},"Workflow Orchestration","\u002Fget-started\u002Fuse-cases\u002Fworkflow-orchestration\u002F","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\u002F","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\u002F","01.get-started\u002F02.use-cases\u002F50.scale-and-fleet",false,{"title":44,"path":45,"stem":46},"Lab as Code","\u002Fget-started\u002Fwhy-code\u002F","01.get-started\u002F03.why-code",{"title":48,"path":49,"stem":50},"Self-Paced Setup Guide","\u002Fget-started\u002Fself-onboarding\u002F","01.get-started\u002F05.self-onboarding",{"title":52,"path":53,"stem":54,"children":55,"page":42},"Setup","\u002Fget-started\u002Fsetup\u002F","01.get-started\u002F20.setup",[56,60,64,68,72,76,80,84],{"title":57,"path":58,"stem":59},"Get access","\u002Fget-started\u002Fsetup\u002Fget-access\u002F","01.get-started\u002F20.setup\u002F00.get-access",{"title":61,"path":62,"stem":63},"GroundControl","\u002Fget-started\u002Fsetup\u002Fgroundcontrol\u002F","01.get-started\u002F20.setup\u002F10.groundcontrol",{"title":65,"path":66,"stem":67},"Set up your development machine","\u002Fget-started\u002Fsetup\u002Fdeveloper-machine\u002F","01.get-started\u002F20.setup\u002F20.developer-machine",{"title":69,"path":70,"stem":71},"SDK installation","\u002Fget-started\u002Fsetup\u002Fsdk-installation\u002F","01.get-started\u002F20.setup\u002F30.sdk-installation",{"title":73,"path":74,"stem":75},"Connect to Platform","\u002Fget-started\u002Fsetup\u002Fconnect-to-platform\u002F","01.get-started\u002F20.setup\u002F40.connect-to-platform",{"title":77,"path":78,"stem":79},"Multi-device Networking","\u002Fget-started\u002Fsetup\u002Fmultiple-devices\u002F","01.get-started\u002F20.setup\u002F45.multiple-devices",{"title":81,"path":82,"stem":83},"UniteLabs Desktop","\u002Fget-started\u002Fsetup\u002Funitelabs-desktop\u002F","01.get-started\u002F20.setup\u002F70.unitelabs-desktop",{"title":85,"path":86,"stem":87},"Network requirements","\u002Fget-started\u002Fsetup\u002Fnetwork-requirements\u002F","01.get-started\u002F20.setup\u002F90.network-requirements",{"title":89,"path":90,"stem":91,"children":92,"page":42},"Integrate","\u002Fintegrate\u002F","02.integrate",[93,97,101,126,155],{"title":94,"path":95,"stem":96},"What is a connector?","\u002Fintegrate\u002Fwhat-is-a-connector\u002F","02.integrate\u002F00.what-is-a-connector",{"title":98,"path":99,"stem":100},"Calling a Connector","\u002Fintegrate\u002Fcontrol-with-code\u002F","02.integrate\u002F05.control-with-code",{"title":102,"path":103,"stem":104,"children":105,"page":42},"Concepts","\u002Fintegrate\u002Fconcepts\u002F","02.integrate\u002F10.concepts",[106,110,114,118,122],{"title":107,"path":108,"stem":109},"Connector","\u002Fintegrate\u002Fconcepts\u002Fconnector\u002F","02.integrate\u002F10.concepts\u002F10.connector",{"title":111,"path":112,"stem":113},"Module","\u002Fintegrate\u002Fconcepts\u002Fmodule\u002F","02.integrate\u002F10.concepts\u002F20.module",{"title":115,"path":116,"stem":117},"Action","\u002Fintegrate\u002Fconcepts\u002Faction\u002F","02.integrate\u002F10.concepts\u002F30.action",{"title":119,"path":120,"stem":121},"Subscription","\u002Fintegrate\u002Fconcepts\u002Fsubscription\u002F","02.integrate\u002F10.concepts\u002F40.subscription",{"title":123,"path":124,"stem":125},"Device","\u002Fintegrate\u002Fconcepts\u002Fdevice\u002F","02.integrate\u002F10.concepts\u002F50.device",{"title":127,"path":128,"stem":129,"children":130,"page":42},"Connect a device","\u002Fintegrate\u002Fconnect-a-device\u002F","02.integrate\u002F20.connect-a-device",[131,135,139,143,147,151],{"title":132,"path":133,"stem":134},"Connector Configuration","\u002Fintegrate\u002Fconnect-a-device\u002Fconnector-configuration\u002F","02.integrate\u002F20.connect-a-device\u002F10.connector-configuration",{"title":136,"path":137,"stem":138},"With an executable","\u002Fintegrate\u002Fconnect-a-device\u002Fwith-an-executable\u002F","02.integrate\u002F20.connect-a-device\u002F20.with-an-executable",{"title":140,"path":141,"stem":142},"From source","\u002Fintegrate\u002Fconnect-a-device\u002Ffrom-source\u002F","02.integrate\u002F20.connect-a-device\u002F30.from-source",{"title":144,"path":145,"stem":146},"Build your own","\u002Fintegrate\u002Fconnect-a-device\u002Fbuild-yourself\u002F","02.integrate\u002F20.connect-a-device\u002F40.build-yourself",{"title":148,"path":149,"stem":150},"Headless install","\u002Fintegrate\u002Fconnect-a-device\u002Fheadless-install\u002F","02.integrate\u002F20.connect-a-device\u002F50.headless-install",{"title":152,"path":153,"stem":154},"Raspberry Pi","\u002Fintegrate\u002Fconnect-a-device\u002Fraspberry-pi\u002F","02.integrate\u002F20.connect-a-device\u002F55.raspberry-pi",{"title":156,"path":157,"stem":158,"children":159,"page":42},"Use a connector","\u002Fintegrate\u002Fuse-a-connector\u002F","02.integrate\u002F30.use-a-connector",[160,163,167],{"title":61,"path":161,"stem":162},"\u002Fintegrate\u002Fuse-a-connector\u002Fgroundcontrol\u002F","02.integrate\u002F30.use-a-connector\u002F10.groundcontrol",{"title":164,"path":165,"stem":166},"Platform","\u002Fintegrate\u002Fuse-a-connector\u002Fplatform\u002F","02.integrate\u002F30.use-a-connector\u002F20.platform",{"title":168,"path":169,"stem":170},"UniteLabs SDK & REST API","\u002Fintegrate\u002Fuse-a-connector\u002Fpython\u002F","02.integrate\u002F30.use-a-connector\u002F30.python",{"title":172,"path":173,"stem":174,"children":175,"page":42},"Operate","\u002Foperate\u002F","03.operate",[176,179,183,227,300],{"title":172,"path":177,"stem":178},"\u002Foperate\u002Foverview\u002F","03.operate\u002F00.overview",{"title":180,"path":181,"stem":182},"Your First Protocol","\u002Foperate\u002Fyour-first-protocol\u002F","03.operate\u002F05.your-first-protocol",{"title":102,"path":184,"stem":185,"children":186,"page":42},"\u002Foperate\u002Fconcepts\u002F","03.operate\u002F10.concepts",[187,191,195,199,203,207,211,215,219,223],{"title":188,"path":189,"stem":190},"Liquid Handling","\u002Foperate\u002Fconcepts\u002Fliquid-handling\u002F","03.operate\u002F10.concepts\u002F10.liquid-handling",{"title":192,"path":193,"stem":194},"Modules","\u002Foperate\u002Fconcepts\u002Fmodules\u002F","03.operate\u002F10.concepts\u002F20.modules",{"title":196,"path":197,"stem":198},"Deck","\u002Foperate\u002Fconcepts\u002Fdeck\u002F","03.operate\u002F10.concepts\u002F30.deck",{"title":200,"path":201,"stem":202},"Labware","\u002Foperate\u002Fconcepts\u002Flabware\u002F","03.operate\u002F10.concepts\u002F40.labware",{"title":204,"path":205,"stem":206},"Liquids","\u002Foperate\u002Fconcepts\u002Fliquids\u002F","03.operate\u002F10.concepts\u002F50.liquids",{"title":208,"path":209,"stem":210},"Liquid Classes","\u002Foperate\u002Fconcepts\u002Fliquid-classes\u002F","03.operate\u002F10.concepts\u002F60.liquid-classes",{"title":212,"path":213,"stem":214},"Parameter Sets","\u002Foperate\u002Fconcepts\u002Fparameter-sets\u002F","03.operate\u002F10.concepts\u002F65.parameter-sets",{"title":216,"path":217,"stem":218},"Tips and Tip Tracking","\u002Foperate\u002Fconcepts\u002Ftips\u002F","03.operate\u002F10.concepts\u002F70.tips",{"title":220,"path":221,"stem":222},"Simulation","\u002Foperate\u002Fconcepts\u002Fsimulation\u002F","03.operate\u002F10.concepts\u002F80.simulation",{"title":224,"path":225,"stem":226},"Error Handling","\u002Foperate\u002Fconcepts\u002Ferror-handling\u002F","03.operate\u002F10.concepts\u002F90.error-handling",{"title":228,"path":229,"stem":230,"children":231,"page":42},"Guides","\u002Foperate\u002Fguides\u002F","03.operate\u002F20.guides",[232,261,273,297],{"title":200,"path":233,"stem":234,"children":235},"\u002Foperate\u002Fguides\u002Flabware\u002F","03.operate\u002F20.guides\u002F10.labware\u002Findex",[236,237,241,245,249,253,257],{"title":200,"path":233,"stem":234},{"title":238,"path":239,"stem":240},"Standard Labware","\u002Foperate\u002Fguides\u002Flabware\u002Fstandard-labware\u002F","03.operate\u002F20.guides\u002F10.labware\u002F05.standard-labware",{"title":242,"path":243,"stem":244},"Plates","\u002Foperate\u002Fguides\u002Flabware\u002Fplates\u002F","03.operate\u002F20.guides\u002F10.labware\u002F10.plates",{"title":246,"path":247,"stem":248},"Tips and Tip Racks","\u002Foperate\u002Fguides\u002Flabware\u002Ftips-and-racks\u002F","03.operate\u002F20.guides\u002F10.labware\u002F20.tips-and-racks",{"title":250,"path":251,"stem":252},"Tubes and Tube Racks","\u002Foperate\u002Fguides\u002Flabware\u002Ftubes-and-tube-racks\u002F","03.operate\u002F20.guides\u002F10.labware\u002F30.tubes-and-tube-racks",{"title":254,"path":255,"stem":256},"Troughs","\u002Foperate\u002Fguides\u002Flabware\u002Ftroughs\u002F","03.operate\u002F20.guides\u002F10.labware\u002F35.troughs",{"title":258,"path":259,"stem":260},"Carriers and Adapters","\u002Foperate\u002Fguides\u002Flabware\u002Fcarriers-and-adapters\u002F","03.operate\u002F20.guides\u002F10.labware\u002F40.carriers-and-adapters",{"title":196,"path":262,"stem":263,"children":264,"page":42},"\u002Foperate\u002Fguides\u002Fdeck\u002F","03.operate\u002F20.guides\u002F20.deck",[265,269],{"title":266,"path":267,"stem":268},"Building a Deck","\u002Foperate\u002Fguides\u002Fdeck\u002Fbuilding-a-deck\u002F","03.operate\u002F20.guides\u002F20.deck\u002F10.building-a-deck",{"title":270,"path":271,"stem":272},"Save\u002FLoad a Deck","\u002Foperate\u002Fguides\u002Fdeck\u002Fsave-load-deck\u002F","03.operate\u002F20.guides\u002F20.deck\u002F20.save-load-deck",{"title":274,"path":275,"stem":276,"children":277,"page":42},"Pipetting","\u002Foperate\u002Fguides\u002Fpipetting\u002F","03.operate\u002F20.guides\u002F30.pipetting",[278,282,286,290,293],{"title":279,"path":280,"stem":281},"Basic Pipetting","\u002Foperate\u002Fguides\u002Fpipetting\u002Fbasic-pipetting\u002F","03.operate\u002F20.guides\u002F30.pipetting\u002F10.basic-pipetting",{"title":283,"path":284,"stem":285},"Advanced Pipetting","\u002Foperate\u002Fguides\u002Fpipetting\u002Fadvanced-pipetting\u002F","03.operate\u002F20.guides\u002F30.pipetting\u002F20.advanced-pipetting",{"title":287,"path":288,"stem":289},"Tip Handling","\u002Foperate\u002Fguides\u002Fpipetting\u002Ftip-handling\u002F","03.operate\u002F20.guides\u002F30.pipetting\u002F30.tip-handling",{"title":208,"path":291,"stem":292},"\u002Foperate\u002Fguides\u002Fpipetting\u002Fliquid-classes\u002F","03.operate\u002F20.guides\u002F30.pipetting\u002F40.liquid-classes",{"title":294,"path":295,"stem":296},"Labware Transport","\u002Foperate\u002Fguides\u002Fpipetting\u002Flabware-transport\u002F","03.operate\u002F20.guides\u002F30.pipetting\u002F50.labware-transport",{"title":220,"path":298,"stem":299},"\u002Foperate\u002Fguides\u002Fsimulation\u002F","03.operate\u002F20.guides\u002F40.simulation",{"title":301,"path":302,"stem":303,"children":304,"page":42},"Liquid Handler Guides","\u002Foperate\u002Fdevices\u002F","03.operate\u002F30.devices",[305,346,371,388,405],{"title":306,"path":307,"stem":308,"children":309,"page":42},"Hamilton STAR","\u002Foperate\u002Fdevices\u002Fhamilton-star\u002F","03.operate\u002F30.devices\u002F10.hamilton-star",[310,314,318,322,326,330,334,338,342],{"title":311,"path":312,"stem":313},"Positioning & Movement","\u002Foperate\u002Fdevices\u002Fhamilton-star\u002Fpositioning\u002F","03.operate\u002F30.devices\u002F10.hamilton-star\u002F10.positioning",{"title":315,"path":316,"stem":317},"Gripper Module","\u002Foperate\u002Fdevices\u002Fhamilton-star\u002Fcore-gripper\u002F","03.operate\u002F30.devices\u002F10.hamilton-star\u002F20.core-gripper",{"title":319,"path":320,"stem":321},"iSWAP Module","\u002Foperate\u002Fdevices\u002Fhamilton-star\u002Fiswap\u002F","03.operate\u002F30.devices\u002F10.hamilton-star\u002F30.iswap",{"title":323,"path":324,"stem":325},"Using TADM","\u002Foperate\u002Fdevices\u002Fhamilton-star\u002Ftadm\u002F","03.operate\u002F30.devices\u002F10.hamilton-star\u002F40.tadm",{"title":327,"path":328,"stem":329},"Autoload Module","\u002Foperate\u002Fdevices\u002Fhamilton-star\u002Fautoload\u002F","03.operate\u002F30.devices\u002F10.hamilton-star\u002F50.autoload",{"title":331,"path":332,"stem":333},"Waste Block","\u002Foperate\u002Fdevices\u002Fhamilton-star\u002Fwaste-block\u002F","03.operate\u002F30.devices\u002F10.hamilton-star\u002F60.waste-block",{"title":335,"path":336,"stem":337},"Complex Mixing","\u002Foperate\u002Fdevices\u002Fhamilton-star\u002Fcomplex-mixing\u002F","03.operate\u002F30.devices\u002F10.hamilton-star\u002F66.complex-mixing",{"title":339,"path":340,"stem":341},"Teaching Gripper Paddle Positions","\u002Foperate\u002Fdevices\u002Fhamilton-star\u002Fgripper-positions\u002F","03.operate\u002F30.devices\u002F10.hamilton-star\u002F70.gripper-positions",{"title":343,"path":344,"stem":345},"Training a Custom Deck Position With the iSWAP","\u002Foperate\u002Fdevices\u002Fhamilton-star\u002Fcustom-deck-position\u002F","03.operate\u002F30.devices\u002F10.hamilton-star\u002F75.custom-deck-position",{"title":347,"path":348,"stem":349,"children":350,"page":42},"Hamilton Vantage","\u002Foperate\u002Fdevices\u002Fhamilton-vantage\u002F","03.operate\u002F30.devices\u002F20.hamilton-vantage",[351,355,359,363,367],{"title":352,"path":353,"stem":354},"Waste Configuration","\u002Foperate\u002Fdevices\u002Fhamilton-vantage\u002Fwaste-configuration\u002F","03.operate\u002F30.devices\u002F20.hamilton-vantage\u002F05.waste-configuration",{"title":356,"path":357,"stem":358},"Covers and Lights","\u002Foperate\u002Fdevices\u002Fhamilton-vantage\u002Fcovers-and-lights\u002F","03.operate\u002F30.devices\u002F20.hamilton-vantage\u002F10.covers-and-lights",{"title":360,"path":361,"stem":362},"IDL Module","\u002Foperate\u002Fdevices\u002Fhamilton-vantage\u002Fidl\u002F","03.operate\u002F30.devices\u002F20.hamilton-vantage\u002F20.idl",{"title":364,"path":365,"stem":366},"IPG Module","\u002Foperate\u002Fdevices\u002Fhamilton-vantage\u002Fipg\u002F","03.operate\u002F30.devices\u002F20.hamilton-vantage\u002F30.ipg",{"title":368,"path":369,"stem":370},"XL Pipettes","\u002Foperate\u002Fdevices\u002Fhamilton-vantage\u002Fxl-channels\u002F","03.operate\u002F30.devices\u002F20.hamilton-vantage\u002F40.xl-channels",{"title":372,"path":373,"stem":374,"children":375,"page":42},"Agilent Bravo","\u002Foperate\u002Fdevices\u002Fagilent-bravo\u002F","03.operate\u002F30.devices\u002F30.agilent-bravo",[376,379,382,385],{"title":287,"path":377,"stem":378},"\u002Foperate\u002Fdevices\u002Fagilent-bravo\u002Ftip-handling\u002F","03.operate\u002F30.devices\u002F30.agilent-bravo\u002F10.tip-handling",{"title":279,"path":380,"stem":381},"\u002Foperate\u002Fdevices\u002Fagilent-bravo\u002Fbasic-pipetting\u002F","03.operate\u002F30.devices\u002F30.agilent-bravo\u002F20.basic-pipetting",{"title":208,"path":383,"stem":384},"\u002Foperate\u002Fdevices\u002Fagilent-bravo\u002Fliquid-classes\u002F","03.operate\u002F30.devices\u002F30.agilent-bravo\u002F25.liquid-classes",{"title":315,"path":386,"stem":387},"\u002Foperate\u002Fdevices\u002Fagilent-bravo\u002Fusing-the-gripper\u002F","03.operate\u002F30.devices\u002F30.agilent-bravo\u002F30.using-the-gripper",{"title":389,"path":390,"stem":391,"children":392,"page":42},"Tecan FluentControl","\u002Foperate\u002Fdevices\u002Ftecan-fluentcontrol\u002F","03.operate\u002F30.devices\u002F40.tecan-fluentcontrol",[393,397,401],{"title":394,"path":395,"stem":396},"Connect & Run a Method","\u002Foperate\u002Fdevices\u002Ftecan-fluentcontrol\u002Fconnect-and-run\u002F","03.operate\u002F30.devices\u002F40.tecan-fluentcontrol\u002F10.connect-and-run",{"title":398,"path":399,"stem":400},"Sending XML Commands","\u002Foperate\u002Fdevices\u002Ftecan-fluentcontrol\u002Fsending-xml-commands\u002F","03.operate\u002F30.devices\u002F40.tecan-fluentcontrol\u002F20.sending-xml-commands",{"title":402,"path":403,"stem":404},"Full Workflow Example","\u002Foperate\u002Fdevices\u002Ftecan-fluentcontrol\u002Ffull-workflow-example\u002F","03.operate\u002F30.devices\u002F40.tecan-fluentcontrol\u002F30.full-workflow-example",{"title":406,"path":407,"stem":408,"children":409,"page":42},"Tecan Freedom EVO","\u002Foperate\u002Fdevices\u002Ftecan-freedom-evo\u002F","03.operate\u002F30.devices\u002F50.tecan-freedom-evo",[410,414,417,420,424],{"title":411,"path":412,"stem":413},"Deck & Carriers","\u002Foperate\u002Fdevices\u002Ftecan-freedom-evo\u002Fdeck-and-carriers\u002F","03.operate\u002F30.devices\u002F50.tecan-freedom-evo\u002F10.deck-and-carriers",{"title":287,"path":415,"stem":416},"\u002Foperate\u002Fdevices\u002Ftecan-freedom-evo\u002Ftip-handling\u002F","03.operate\u002F30.devices\u002F50.tecan-freedom-evo\u002F20.tip-handling",{"title":279,"path":418,"stem":419},"\u002Foperate\u002Fdevices\u002Ftecan-freedom-evo\u002Fbasic-pipetting\u002F","03.operate\u002F30.devices\u002F50.tecan-freedom-evo\u002F30.basic-pipetting",{"title":421,"path":422,"stem":423},"Using the Gripper (RoMa)","\u002Foperate\u002Fdevices\u002Ftecan-freedom-evo\u002Fusing-the-gripper\u002F","03.operate\u002F30.devices\u002F50.tecan-freedom-evo\u002F40.using-the-gripper",{"title":208,"path":425,"stem":426},"\u002Foperate\u002Fdevices\u002Ftecan-freedom-evo\u002Fliquid-classes\u002F","03.operate\u002F30.devices\u002F50.tecan-freedom-evo\u002F50.liquid-classes",{"title":428,"path":429,"stem":430,"children":431,"page":42},"Device Guides","\u002Fdevice-guides\u002F","06.device-guides",[432,435,448,465,478],{"title":428,"path":433,"stem":434},"\u002Fdevice-guides\u002Foverview\u002F","06.device-guides\u002F00.overview",{"title":436,"path":437,"stem":438,"children":439,"page":42},"Incubation","\u002Fdevice-guides\u002Fincubation\u002F","06.device-guides\u002F20.incubation",[440,444],{"title":441,"path":442,"stem":443},"Inheco ODTC","\u002Fdevice-guides\u002Fincubation\u002Finheco-odtc\u002F","06.device-guides\u002F20.incubation\u002F10.inheco-odtc",{"title":445,"path":446,"stem":447},"Inheco SCILA","\u002Fdevice-guides\u002Fincubation\u002Finheco-scila\u002F","06.device-guides\u002F20.incubation\u002F20.inheco-scila",{"title":449,"path":450,"stem":451,"children":452,"page":42},"Heater-Shakers","\u002Fdevice-guides\u002Fheater-shakers\u002F","06.device-guides\u002F30.heater-shakers",[453,457,461],{"title":454,"path":455,"stem":456},"Inheco Thermoshake","\u002Fdevice-guides\u002Fheater-shakers\u002Finheco-thermoshake\u002F","06.device-guides\u002F30.heater-shakers\u002F10.inheco-thermoshake",{"title":458,"path":459,"stem":460},"QInstruments Bioshake","\u002Fdevice-guides\u002Fheater-shakers\u002Fqinstruments-bioshake\u002F","06.device-guides\u002F30.heater-shakers\u002F20.qinstruments-bioshake",{"title":462,"path":463,"stem":464},"QInstruments ColdPlate","\u002Fdevice-guides\u002Fheater-shakers\u002Fqinstruments-coldplate\u002F","06.device-guides\u002F30.heater-shakers\u002F30.qinstruments-coldplate",{"title":466,"path":467,"stem":468,"children":469,"page":42},"Readers","\u002Fdevice-guides\u002Freaders\u002F","06.device-guides\u002F40.readers",[470,474],{"title":471,"path":472,"stem":473},"Agilent Biotek Gen5","\u002Fdevice-guides\u002Freaders\u002Fbiotek-gen5\u002F","06.device-guides\u002F40.readers\u002F10.biotek-gen5",{"title":475,"path":476,"stem":477},"Biotek Synergy H1","\u002Fdevice-guides\u002Freaders\u002Fbiotek-synergy-h1\u002F","06.device-guides\u002F40.readers\u002F20.biotek-synergy-H1",{"title":479,"path":480,"stem":481,"children":482,"page":42},"Tilt & Turn","\u002Fdevice-guides\u002Ftilt-and-turn\u002F","06.device-guides\u002F50.tilt-and-turn",[483,487],{"title":484,"path":485,"stem":486},"TurnStation","\u002Fdevice-guides\u002Ftilt-and-turn\u002Fqinstruments-turnstation\u002F","06.device-guides\u002F50.tilt-and-turn\u002F10.qinstruments-turnstation",{"title":488,"path":489,"stem":490},"TiltStation","\u002Fdevice-guides\u002Ftilt-and-turn\u002Fqinstruments-tiltstation\u002F","06.device-guides\u002F50.tilt-and-turn\u002F20.qinstruments-tiltstation",{"title":492,"path":493,"stem":494,"children":495,"page":42},"Automate","\u002Fautomate\u002F","07.automate",[496,500,504,508,557],{"title":497,"path":498,"stem":499},"What is a workflow?","\u002Fautomate\u002Fwhat-is-a-workflow\u002F","07.automate\u002F00.what-is-a-workflow",{"title":501,"path":502,"stem":503},"Workflow template","\u002Fautomate\u002Fworkflow-template\u002F","07.automate\u002F05.workflow-template",{"title":505,"path":506,"stem":507},"Your First Workflow","\u002Fautomate\u002Fyour-first-workflow\u002F","07.automate\u002F08.your-first-workflow",{"title":102,"pages":509,"path":519,"stem":520,"children":521,"page":42},[510,511,512,513,514,515,516,517,518],"workflow","phase","step","runs","input","artifacts","logs","human-in-the-loop","error-handling","\u002Fautomate\u002Fconcepts\u002F","07.automate\u002F10.concepts",[522,526,530,534,538,542,546,550,554],{"title":523,"path":524,"stem":525},"Workflow","\u002Fautomate\u002Fconcepts\u002Fworkflow\u002F","07.automate\u002F10.concepts\u002F10.workflow",{"title":527,"path":528,"stem":529},"Phase","\u002Fautomate\u002Fconcepts\u002Fphase\u002F","07.automate\u002F10.concepts\u002F20.phase",{"title":531,"path":532,"stem":533},"Step","\u002Fautomate\u002Fconcepts\u002Fstep\u002F","07.automate\u002F10.concepts\u002F30.step",{"title":535,"path":536,"stem":537},"Runs","\u002Fautomate\u002Fconcepts\u002Fruns\u002F","07.automate\u002F10.concepts\u002F40.runs",{"title":539,"path":540,"stem":541},"Input","\u002Fautomate\u002Fconcepts\u002Finput\u002F","07.automate\u002F10.concepts\u002F50.input",{"title":543,"path":544,"stem":545},"Artifacts","\u002Fautomate\u002Fconcepts\u002Fartifacts\u002F","07.automate\u002F10.concepts\u002F60.artifacts",{"title":547,"path":548,"stem":549},"Logs","\u002Fautomate\u002Fconcepts\u002Flogs\u002F","07.automate\u002F10.concepts\u002F70.logs",{"title":551,"path":552,"stem":553},"Human in the Loop","\u002Fautomate\u002Fconcepts\u002Fhuman-in-the-loop\u002F","07.automate\u002F10.concepts\u002F80.human-in-the-loop",{"title":224,"path":555,"stem":556},"\u002Fautomate\u002Fconcepts\u002Ferror-handling\u002F","07.automate\u002F10.concepts\u002F90.error-handling",{"title":228,"path":558,"stem":559,"children":560,"page":42},"\u002Fautomate\u002Fguides\u002F","07.automate\u002F25.guides",[561,565,569,573,577,581,585,589,593],{"title":562,"path":563,"stem":564},"Deploy a workflow","\u002Fautomate\u002Fguides\u002Fdeploy-a-workflow\u002F","07.automate\u002F25.guides\u002F30.deploy-a-workflow",{"title":566,"path":567,"stem":568},"Run a workflow","\u002Fautomate\u002Fguides\u002Frun-a-workflow\u002F","07.automate\u002F25.guides\u002F35.run-a-workflow",{"title":570,"path":571,"stem":572},"CI\u002FCD for workflows","\u002Fautomate\u002Fguides\u002Fcicd-for-workflows\u002F","07.automate\u002F25.guides\u002F40.cicd-for-workflows",{"title":574,"path":575,"stem":576},"HITL basics","\u002Fautomate\u002Fguides\u002Fbasic-hitl\u002F","07.automate\u002F25.guides\u002F50.basic-hitl",{"title":578,"path":579,"stem":580},"Slack notifications and operator confirmation","\u002Fautomate\u002Fguides\u002Fslack-notifications\u002F","07.automate\u002F25.guides\u002F52.slack-notifications",{"title":582,"path":583,"stem":584},"Typed operator inputs","\u002Fautomate\u002Fguides\u002Ftyped-operator-inputs\u002F","07.automate\u002F25.guides\u002F55.typed-operator-inputs",{"title":586,"path":587,"stem":588},"Error recovery","\u002Fautomate\u002Fguides\u002Fbasic-error-handling\u002F","07.automate\u002F25.guides\u002F60.basic-error-handling",{"title":590,"path":591,"stem":592},"Advanced error handling","\u002Fautomate\u002Fguides\u002Fadvanced-error-handling\u002F","07.automate\u002F25.guides\u002F70.advanced-error-handling",{"title":594,"path":595,"stem":596},"Workflows REST API","\u002Fautomate\u002Fguides\u002Fworkflows-api\u002F","07.automate\u002F25.guides\u002F80.workflows-api",{"title":598,"path":599,"stem":600,"children":601,"page":42},"Observe","\u002Fobserve\u002F","08.observe",[602,606,622],{"title":603,"path":604,"stem":605},"Overview","\u002Fobserve\u002Foverview\u002F","08.observe\u002F10.overview",{"title":102,"path":607,"stem":608,"children":609,"page":42},"\u002Fobserve\u002Fconcepts\u002F","08.observe\u002F20.concepts",[610,614,618],{"title":611,"path":612,"stem":613},"Object Storage","\u002Fobserve\u002Fconcepts\u002Fstorage\u002F","08.observe\u002F20.concepts\u002F10.storage",{"title":615,"path":616,"stem":617},"Secrets","\u002Fobserve\u002Fconcepts\u002Fsecrets\u002F","08.observe\u002F20.concepts\u002F20.secrets",{"title":619,"path":620,"stem":621},"Data sources","\u002Fobserve\u002Fconcepts\u002Fdata-sources\u002F","08.observe\u002F20.concepts\u002F30.data-sources",{"title":228,"path":623,"stem":624,"children":625,"page":42},"\u002Fobserve\u002Fguides\u002F","08.observe\u002F30.guides",[626,630],{"title":627,"path":628,"stem":629},"File System Connector","\u002Fobserve\u002Fguides\u002Ffilesystem-connector\u002F","08.observe\u002F30.guides\u002F10.filesystem-connector",{"title":631,"path":632,"stem":633},"Building an ETL","\u002Fobserve\u002Fguides\u002Fbuilding-an-etl\u002F","08.observe\u002F30.guides\u002F20.building-an-etl",{"title":635,"path":636,"stem":637,"children":638,"page":42},"Technical Reference","\u002Ftechnical-reference\u002F","10.technical-reference",[639,643,647,659,670,681,691,702],{"title":640,"path":641,"stem":642},"Introduction","\u002Ftechnical-reference\u002Fplatform-blueprint\u002F","10.technical-reference\u002F00.platform-blueprint",{"title":644,"path":645,"stem":646},"REST API","\u002Ftechnical-reference\u002Frest-api\u002F","10.technical-reference\u002F01.rest-api",{"title":61,"path":648,"stem":649,"children":650,"page":42},"\u002Ftechnical-reference\u002Fgroundcontrol\u002F","10.technical-reference\u002F10.groundcontrol",[651,655],{"title":652,"path":653,"stem":654},"Install & Setup","\u002Ftechnical-reference\u002Fgroundcontrol\u002Finstall\u002F","10.technical-reference\u002F10.groundcontrol\u002F10.install",{"title":656,"path":657,"stem":658},"Changelog","\u002Ftechnical-reference\u002Fgroundcontrol\u002Fchangelog\u002F","10.technical-reference\u002F10.groundcontrol\u002F20.changelog",{"title":660,"path":661,"stem":662,"children":663,"page":42},"UniteLabs SDK","\u002Ftechnical-reference\u002Fpython-sdk\u002F","10.technical-reference\u002F20.python-sdk",[664,667],{"title":652,"path":665,"stem":666},"\u002Ftechnical-reference\u002Fpython-sdk\u002Finstall\u002F","10.technical-reference\u002F20.python-sdk\u002F10.install",{"title":656,"path":668,"stem":669},"\u002Ftechnical-reference\u002Fpython-sdk\u002Fchangelog\u002F","10.technical-reference\u002F20.python-sdk\u002F20.changelog",{"title":671,"path":672,"stem":673,"children":674,"page":42},"Liquid Handling SDK","\u002Ftechnical-reference\u002Fpython-liquid-handling-sdk\u002F","10.technical-reference\u002F30.python-liquid-handling-sdk",[675,678],{"title":652,"path":676,"stem":677},"\u002Ftechnical-reference\u002Fpython-liquid-handling-sdk\u002Finstall\u002F","10.technical-reference\u002F30.python-liquid-handling-sdk\u002F10.install",{"title":656,"path":679,"stem":680},"\u002Ftechnical-reference\u002Fpython-liquid-handling-sdk\u002Fchangelog\u002F","10.technical-reference\u002F30.python-liquid-handling-sdk\u002F20.changelog",{"title":200,"path":682,"stem":683,"children":684,"page":42},"\u002Ftechnical-reference\u002Flabware\u002F","10.technical-reference\u002F40.labware",[685,688],{"title":652,"path":686,"stem":687},"\u002Ftechnical-reference\u002Flabware\u002Finstall\u002F","10.technical-reference\u002F40.labware\u002F10.install",{"title":656,"path":689,"stem":690},"\u002Ftechnical-reference\u002Flabware\u002Fchangelog\u002F","10.technical-reference\u002F40.labware\u002F20.changelog",{"title":692,"path":693,"stem":694,"children":695,"page":42},"Python Omnibus","\u002Ftechnical-reference\u002Fpython-omnibus\u002F","10.technical-reference\u002F50.python-omnibus",[696,699],{"title":652,"path":697,"stem":698},"\u002Ftechnical-reference\u002Fpython-omnibus\u002Finstall\u002F","10.technical-reference\u002F50.python-omnibus\u002F10.install",{"title":656,"path":700,"stem":701},"\u002Ftechnical-reference\u002Fpython-omnibus\u002Fchangelog\u002F","10.technical-reference\u002F50.python-omnibus\u002F20.changelog",{"title":703,"path":704,"stem":705,"children":706,"page":42},"Python CDK","\u002Ftechnical-reference\u002Fpython-cdk\u002F","10.technical-reference\u002F60.python-cdk",[707,710],{"title":652,"path":708,"stem":709},"\u002Ftechnical-reference\u002Fpython-cdk\u002Finstall\u002F","10.technical-reference\u002F60.python-cdk\u002F10.install",{"title":656,"path":711,"stem":712},"\u002Ftechnical-reference\u002Fpython-cdk\u002Fchangelog\u002F","10.technical-reference\u002F60.python-cdk\u002F20.changelog",{"title":714,"path":715,"stem":716,"children":717},"Connector Development (CDK)","\u002Fconnector-development\u002F","20.connector-development",[718,720,740,773,781,816],{"title":714,"path":715,"stem":719},"20.connector-development\u002Findex",{"title":721,"path":722,"stem":723,"children":724,"page":42},"Getting Started","\u002Fconnector-development\u002Fgetting-started\u002F","20.connector-development\u002F10.getting-started",[725,728,732,736],{"title":603,"path":726,"stem":727},"\u002Fconnector-development\u002Fgetting-started\u002Foverview\u002F","20.connector-development\u002F10.getting-started\u002F10.overview",{"title":729,"path":730,"stem":731},"What's new","\u002Fconnector-development\u002Fgetting-started\u002Fwhats-new\u002F","20.connector-development\u002F10.getting-started\u002F20.whats-new",{"title":733,"path":734,"stem":735},"Installation","\u002Fconnector-development\u002Fgetting-started\u002Finstallation\u002F","20.connector-development\u002F10.getting-started\u002F30.installation",{"title":737,"path":738,"stem":739},"Contributing","\u002Fconnector-development\u002Fgetting-started\u002Fcontributing\u002F","20.connector-development\u002F10.getting-started\u002F40.contributing",{"title":741,"path":742,"stem":743,"children":744,"page":42},"Tutorial","\u002Fconnector-development\u002Ftutorial\u002F","20.connector-development\u002F20.tutorial",[745,749,753,757,761,765,769],{"title":746,"path":747,"stem":748},"Walkthrough","\u002Fconnector-development\u002Ftutorial\u002Fwalkthrough\u002F","20.connector-development\u002F20.tutorial\u002F00.walkthrough",{"title":750,"path":751,"stem":752},"SiLA Endpoints","\u002Fconnector-development\u002Ftutorial\u002Fsila-endpoints\u002F","20.connector-development\u002F20.tutorial\u002F10.sila-endpoints",{"title":754,"path":755,"stem":756},"Data Endpoints","\u002Fconnector-development\u002Ftutorial\u002Fdata-endpoints\u002F","20.connector-development\u002F20.tutorial\u002F20.data-endpoints",{"title":758,"path":759,"stem":760},"Controls","\u002Fconnector-development\u002Ftutorial\u002Fcontrols\u002F","20.connector-development\u002F20.tutorial\u002F30.controls",{"title":762,"path":763,"stem":764},"SiLA Data Types","\u002Fconnector-development\u002Ftutorial\u002Fdata-types\u002F","20.connector-development\u002F20.tutorial\u002F40.data-types",{"title":766,"path":767,"stem":768},"Feature","\u002Fconnector-development\u002Ftutorial\u002Fconnector-structure\u002F","20.connector-development\u002F20.tutorial\u002F70.connector-structure",{"title":770,"path":771,"stem":772},"Hardware Communication","\u002Fconnector-development\u002Ftutorial\u002Fhardware-communication\u002F","20.connector-development\u002F20.tutorial\u002F90.hardware-communication",{"title":102,"path":774,"stem":775,"children":776,"page":42},"\u002Fconnector-development\u002Fconcepts\u002F","20.connector-development\u002F30.concepts",[777],{"title":778,"path":779,"stem":780},"SiLA","\u002Fconnector-development\u002Fconcepts\u002Fsila\u002F","20.connector-development\u002F30.concepts\u002Fsila",{"title":228,"path":782,"stem":783,"children":784,"page":42},"\u002Fconnector-development\u002Fguides\u002F","20.connector-development\u002F40.guides",[785,789,793,797,801,805,808,812],{"title":786,"path":787,"stem":788},"Configuration","\u002Fconnector-development\u002Fguides\u002Fconfiguration\u002F","20.connector-development\u002F40.guides\u002F20.configuration",{"title":790,"path":791,"stem":792},"Logging","\u002Fconnector-development\u002Fguides\u002Flogging\u002F","20.connector-development\u002F40.guides\u002F21.logging",{"title":794,"path":795,"stem":796},"Deployment","\u002Fconnector-development\u002Fguides\u002Fdeployment\u002F","20.connector-development\u002F40.guides\u002F30.deployment",{"title":798,"path":799,"stem":800},"Security","\u002Fconnector-development\u002Fguides\u002Fsecurity\u002F","20.connector-development\u002F40.guides\u002F40.security",{"title":802,"path":803,"stem":804},"Subscriptions","\u002Fconnector-development\u002Fguides\u002Fsubscriptions\u002F","20.connector-development\u002F40.guides\u002F45.subscriptions",{"title":224,"path":806,"stem":807},"\u002Fconnector-development\u002Fguides\u002Ferror-handling\u002F","20.connector-development\u002F40.guides\u002F50.error-handling",{"title":809,"path":810,"stem":811},"Serial Troubleshooting","\u002Fconnector-development\u002Fguides\u002Fserial-troubleshooting\u002F","20.connector-development\u002F40.guides\u002F70.serial-troubleshooting",{"title":813,"path":814,"stem":815},"Testing","\u002Fconnector-development\u002Fguides\u002Ftesting\u002F","20.connector-development\u002F40.guides\u002F80.testing",{"title":817,"path":818,"stem":819,"children":820},"References","\u002Fconnector-development\u002Freference\u002F","20.connector-development\u002F50.reference\u002Findex",[821],{"title":817,"path":818,"stem":819},{"data":823,"body":824},{},{"type":825,"children":826},"root",[827],{"type":828,"tag":829,"props":830,"children":831},"element","p",{},[832,835,842],{"type":833,"value":834},"text","The top-level process, written as an ",{"type":828,"tag":836,"props":837,"children":839},"code",{"className":838},[],[840],{"type":833,"value":841},"@workflow",{"type":833,"value":843}," function. It coordinates phases and passes data between them, but does not control hardware directly.",{"data":845,"body":846},{},{"type":825,"children":847},[848],{"type":828,"tag":829,"props":849,"children":850},{},[851,853,859],{"type":833,"value":852},"A group of steps that ends at a state the run can resume from, written as a ",{"type":828,"tag":836,"props":854,"children":856},{"className":855},[],[857],{"type":833,"value":858},"@phase",{"type":833,"value":860},"-decorated function. A phase can also pause workflow execution and wait for operator confirmation or input.",{"data":862,"body":863},{},{"type":825,"children":864},[865],{"type":828,"tag":829,"props":866,"children":867},{},[868,870,876],{"type":833,"value":869},"One action on one device, written as a ",{"type":828,"tag":836,"props":871,"children":873},{"className":872},[],[874],{"type":833,"value":875},"@step",{"type":833,"value":877}," function - this is meant to be a reusable, granular function.",{"data":879,"body":880},{},{"type":825,"children":881},[882],{"type":828,"tag":829,"props":883,"children":884},{},[885,891,893,899],{"type":828,"tag":836,"props":886,"children":888},{"className":887},[],[889],{"type":833,"value":890},"MicrolabSTARMock()",{"type":833,"value":892}," stands in for the real Hamilton STAR whenever ",{"type":828,"tag":836,"props":894,"children":896},{"className":895},[],[897],{"type":833,"value":898},"simulate=True",{"type":833,"value":900},", so the workflow runs with no hardware attached.",{"data":902,"body":903},{},{"type":825,"children":904},[905],{"type":828,"tag":829,"props":906,"children":907},{},[908,910,916,918,924],{"type":833,"value":909},"Every step and helper reaches the platform through calls like ",{"type":828,"tag":836,"props":911,"children":913},{"className":912},[],[914],{"type":833,"value":915},"AsyncApiClient()",{"type":833,"value":917}," and ",{"type":828,"tag":836,"props":919,"children":921},{"className":920},[],[922],{"type":833,"value":923},"client.get_service_by_name(...)",{"type":833,"value":925},".",{"data":927,"body":928},{},{"type":825,"children":929},[930],{"type":828,"tag":829,"props":931,"children":932},{},[933,939,941,947,949,955],{"type":828,"tag":836,"props":934,"children":936},{"className":935},[],[937],{"type":833,"value":938},"liquid_handling()",{"type":833,"value":940}," calls ",{"type":828,"tag":836,"props":942,"children":944},{"className":943},[],[945],{"type":833,"value":946},"setup()",{"type":833,"value":948},", then ",{"type":828,"tag":836,"props":950,"children":952},{"className":951},[],[953],{"type":833,"value":954},"transfer()",{"type":833,"value":956},", in order, and the engine tracks each as its own checkpointed run.",{"data":958,"body":959},{},{"type":825,"children":960},[961],{"type":828,"tag":829,"props":962,"children":963},{},[964],{"type":833,"value":965},"Writing the finished run's results into the Data Warehouse for later querying.",{"data":967,"body":968},{},{"type":825,"children":969},[970],{"type":828,"tag":829,"props":971,"children":972},{},[973],{"type":833,"value":974},"The handler must be available before the workflow can set up the deck or transfer liquid.",1789663094478]