[{"data":1,"prerenderedAt":1670},["ShallowReactive",2],{"navigation":3,"\u002Fconcepts\u002Fobserve\u002Flineage-from-liquid-handling":1025,"\u002Fconcepts\u002Fobserve\u002Flineage-from-liquid-handling-surround":1665},[4,64,222,409,615,812,859],{"title":5,"device":6,"path":7,"stem":8,"children":9,"page":47},"Get Started",null,"\u002Fget-started\u002F","01.get-started",[10,14,48,52,56,60],{"title":11,"path":12,"stem":13,"device":6},"Welcome to UniteLabs","\u002Fget-started\u002Fwelcome\u002F","01.get-started\u002F00.welcome",{"title":15,"device":6,"path":16,"stem":17,"children":18,"page":47},"Setup","\u002Fget-started\u002Fsetup\u002F","01.get-started\u002F01.setup",[19,23,27,31,35,39,43],{"title":20,"path":21,"stem":22,"device":6},"Get access","\u002Fget-started\u002Fsetup\u002Fget-access\u002F","01.get-started\u002F01.setup\u002F00.get-access",{"title":24,"path":25,"stem":26,"device":6},"GroundControl","\u002Fget-started\u002Fsetup\u002Fgroundcontrol\u002F","01.get-started\u002F01.setup\u002F10.groundcontrol",{"title":28,"path":29,"stem":30,"device":6},"Network requirements","\u002Fget-started\u002Fsetup\u002Fnetwork-requirements\u002F","01.get-started\u002F01.setup\u002F15.network-requirements",{"title":32,"path":33,"stem":34,"device":6},"Connect to Platform","\u002Fget-started\u002Fsetup\u002Fconnect-to-platform\u002F","01.get-started\u002F01.setup\u002F20.connect-to-platform",{"title":36,"path":37,"stem":38,"device":6},"Set up your development machine","\u002Fget-started\u002Fsetup\u002Fdeveloper-machine\u002F","01.get-started\u002F01.setup\u002F30.developer-machine",{"title":40,"path":41,"stem":42,"device":6},"SDK installation","\u002Fget-started\u002Fsetup\u002Fsdk-installation\u002F","01.get-started\u002F01.setup\u002F40.sdk-installation",{"title":44,"path":45,"stem":46,"device":6},"Connect an AI assistant to the docs","\u002Fget-started\u002Fsetup\u002Fai-assistant\u002F","01.get-started\u002F01.setup\u002F50.ai-assistant",false,{"title":49,"path":50,"stem":51,"device":6},"Control a device","\u002Fget-started\u002Fcontrol-a-device\u002F","01.get-started\u002F02.control-a-device",{"title":53,"path":54,"stem":55,"device":6},"Liquid handling as code","\u002Fget-started\u002Fliquid-handling-as-code\u002F","01.get-started\u002F03.liquid-handling-as-code",{"title":57,"path":58,"stem":59,"device":6},"Automate your workflows","\u002Fget-started\u002Fautomate-your-workflows\u002F","01.get-started\u002F04.automate-your-workflows",{"title":61,"path":62,"stem":63,"device":6},"Self-Paced Setup Guide","\u002Fget-started\u002Fself-onboarding\u002F","01.get-started\u002F90.self-onboarding",{"title":65,"device":6,"path":66,"stem":67,"children":68,"page":47},"How-to","\u002Fhow-to\u002F","02.how-to",[69,123,184,201,209],{"title":70,"device":6,"path":71,"stem":72,"children":73,"page":47},"Connectors and devices","\u002Fhow-to\u002Fintegrate\u002F","02.how-to\u002F02.integrate",[74,107],{"title":75,"device":6,"path":76,"stem":77,"children":78,"page":47},"Connect a device","\u002Fhow-to\u002Fintegrate\u002Fconnect-a-device\u002F","02.how-to\u002F02.integrate\u002F20.connect-a-device",[79,83,87,91,95,99,103],{"title":80,"path":81,"stem":82,"device":6},"Connector Configuration","\u002Fhow-to\u002Fintegrate\u002Fconnect-a-device\u002Fconnector-configuration\u002F","02.how-to\u002F02.integrate\u002F20.connect-a-device\u002F10.connector-configuration",{"title":84,"path":85,"stem":86,"device":6},"With an executable","\u002Fhow-to\u002Fintegrate\u002Fconnect-a-device\u002Fwith-an-executable\u002F","02.how-to\u002F02.integrate\u002F20.connect-a-device\u002F20.with-an-executable",{"title":88,"path":89,"stem":90,"device":6},"From source","\u002Fhow-to\u002Fintegrate\u002Fconnect-a-device\u002Ffrom-source\u002F","02.how-to\u002F02.integrate\u002F20.connect-a-device\u002F30.from-source",{"title":92,"path":93,"stem":94,"device":6},"Build your own","\u002Fhow-to\u002Fintegrate\u002Fconnect-a-device\u002Fbuild-yourself\u002F","02.how-to\u002F02.integrate\u002F20.connect-a-device\u002F40.build-yourself",{"title":96,"path":97,"stem":98,"device":6},"Headless install","\u002Fhow-to\u002Fintegrate\u002Fconnect-a-device\u002Fheadless-install\u002F","02.how-to\u002F02.integrate\u002F20.connect-a-device\u002F50.headless-install",{"title":100,"path":101,"stem":102,"device":6},"Raspberry Pi","\u002Fhow-to\u002Fintegrate\u002Fconnect-a-device\u002Fraspberry-pi\u002F","02.how-to\u002F02.integrate\u002F20.connect-a-device\u002F55.raspberry-pi",{"title":104,"path":105,"stem":106,"device":6},"Multi-device Networking","\u002Fhow-to\u002Fintegrate\u002Fconnect-a-device\u002Fmultiple-devices\u002F","02.how-to\u002F02.integrate\u002F20.connect-a-device\u002F60.multiple-devices",{"title":108,"device":6,"path":109,"stem":110,"children":111,"page":47},"Use a device","\u002Fhow-to\u002Fintegrate\u002Fuse-a-device\u002F","02.how-to\u002F02.integrate\u002F30.use-a-device",[112,115,119],{"title":24,"path":113,"stem":114,"device":6},"\u002Fhow-to\u002Fintegrate\u002Fuse-a-device\u002Fgroundcontrol\u002F","02.how-to\u002F02.integrate\u002F30.use-a-device\u002F10.groundcontrol",{"title":116,"path":117,"stem":118,"device":6},"Platform","\u002Fhow-to\u002Fintegrate\u002Fuse-a-device\u002Fplatform\u002F","02.how-to\u002F02.integrate\u002F30.use-a-device\u002F20.platform",{"title":120,"path":121,"stem":122,"device":6},"UniteLabs SDK & REST API","\u002Fhow-to\u002Fintegrate\u002Fuse-a-device\u002Fpython\u002F","02.how-to\u002F02.integrate\u002F30.use-a-device\u002F30.python",{"title":124,"device":6,"path":125,"stem":126,"children":127,"page":47},"Workflows","\u002Fhow-to\u002Fautomate\u002F","02.how-to\u002F07.automate",[128,132,136,140,144,148,152,156,160,164,168,172,176,180],{"title":129,"path":130,"stem":131,"device":6},"Workflow template","\u002Fhow-to\u002Fautomate\u002Fworkflow-template\u002F","02.how-to\u002F07.automate\u002F10.workflow-template",{"title":133,"path":134,"stem":135,"device":6},"Deploy a workflow","\u002Fhow-to\u002Fautomate\u002Fdeploy-a-workflow\u002F","02.how-to\u002F07.automate\u002F30.deploy-a-workflow",{"title":137,"path":138,"stem":139,"device":6},"Run a workflow","\u002Fhow-to\u002Fautomate\u002Frun-a-workflow\u002F","02.how-to\u002F07.automate\u002F35.run-a-workflow",{"title":141,"path":142,"stem":143,"device":6},"Download run diagnostics","\u002Fhow-to\u002Fautomate\u002Fdownload-run-diagnostics\u002F","02.how-to\u002F07.automate\u002F37.download-run-diagnostics",{"title":145,"path":146,"stem":147,"device":6},"Workflows REST API","\u002Fhow-to\u002Fautomate\u002Fworkflows-api\u002F","02.how-to\u002F07.automate\u002F38.workflows-api",{"title":149,"path":150,"stem":151,"device":6},"CI\u002FCD for workflows","\u002Fhow-to\u002Fautomate\u002Fcicd-for-workflows\u002F","02.how-to\u002F07.automate\u002F40.cicd-for-workflows",{"title":153,"path":154,"stem":155,"device":6},"HITL basics","\u002Fhow-to\u002Fautomate\u002Fbasic-hitl\u002F","02.how-to\u002F07.automate\u002F50.basic-hitl",{"title":157,"path":158,"stem":159,"device":6},"Slack notifications and operator confirmation","\u002Fhow-to\u002Fautomate\u002Fslack-notifications\u002F","02.how-to\u002F07.automate\u002F52.slack-notifications",{"title":161,"path":162,"stem":163,"device":6},"Typed operator inputs","\u002Fhow-to\u002Fautomate\u002Ftyped-operator-inputs\u002F","02.how-to\u002F07.automate\u002F55.typed-operator-inputs",{"title":165,"path":166,"stem":167,"device":6},"Pause and resume a run","\u002Fhow-to\u002Fautomate\u002Fpause-and-resume\u002F","02.how-to\u002F07.automate\u002F57.pause-and-resume",{"title":169,"path":170,"stem":171,"device":6},"Error recovery","\u002Fhow-to\u002Fautomate\u002Fbasic-error-handling\u002F","02.how-to\u002F07.automate\u002F60.basic-error-handling",{"title":173,"path":174,"stem":175,"device":6},"Advanced error handling","\u002Fhow-to\u002Fautomate\u002Fadvanced-error-handling\u002F","02.how-to\u002F07.automate\u002F70.advanced-error-handling",{"title":177,"path":178,"stem":179,"device":6},"Set up lineage for liquid handling","\u002Fhow-to\u002Fautomate\u002Fliquid-handling-lineage\u002F","02.how-to\u002F07.automate\u002F85.liquid-handling-lineage",{"title":181,"path":182,"stem":183,"device":6},"Emit lineage events","\u002Fhow-to\u002Fautomate\u002Femitting-lineage-events\u002F","02.how-to\u002F07.automate\u002F90.emitting-lineage-events",{"title":185,"device":6,"path":186,"stem":187,"children":188,"page":47},"Data","\u002Fhow-to\u002Fobserve\u002F","02.how-to\u002F08.observe",[189,193,197],{"title":190,"path":191,"stem":192,"device":6},"File System Connector","\u002Fhow-to\u002Fobserve\u002Ffilesystem-connector\u002F","02.how-to\u002F08.observe\u002F10.filesystem-connector",{"title":194,"path":195,"stem":196,"device":6},"Building an ETL","\u002Fhow-to\u002Fobserve\u002Fbuilding-an-etl\u002F","02.how-to\u002F08.observe\u002F20.building-an-etl",{"title":198,"path":199,"stem":200,"device":6},"Read lineage events","\u002Fhow-to\u002Fobserve\u002Freading-lineage-events\u002F","02.how-to\u002F08.observe\u002F30.reading-lineage-events",{"title":116,"device":6,"path":202,"stem":203,"children":204,"page":47},"\u002Fhow-to\u002Fplatform\u002F","02.how-to\u002F09.platform",[205],{"title":206,"path":207,"stem":208,"device":6},"UniteLabs Desktop","\u002Fhow-to\u002Fplatform\u002Funitelabs-desktop\u002F","02.how-to\u002F09.platform\u002F10.unitelabs-desktop",{"title":210,"device":6,"path":211,"stem":212,"children":213,"page":47},"Migrate","\u002Fhow-to\u002Fmigrate\u002F","02.how-to\u002F10.migrate",[214,218],{"title":215,"path":216,"stem":217,"device":6},"Migrate the SDK","\u002Fhow-to\u002Fmigrate\u002Fsdk\u002F","02.how-to\u002F10.migrate\u002F10.sdk",{"title":219,"path":220,"stem":221,"device":6},"Migrate the Liquid Handling SDK","\u002Fhow-to\u002Fmigrate\u002Fliquid-handling-sdk\u002F","02.how-to\u002F10.migrate\u002F20.liquid-handling-sdk",{"title":223,"device":6,"path":224,"stem":225,"children":226,"page":47},"Concepts","\u002Fconcepts\u002F","04.concepts",[227,265,289,338,377],{"title":228,"device":6,"path":229,"stem":230,"children":231,"page":47},"Labs as code","\u002Fconcepts\u002Flabs-as-code\u002F","04.concepts\u002F01.labs-as-code",[232,236,240],{"title":233,"path":234,"stem":235,"device":6},"Lab as Code","\u002Fconcepts\u002Flabs-as-code\u002Fwhy-code\u002F","04.concepts\u002F01.labs-as-code\u002F00.why-code",{"title":237,"path":238,"stem":239,"device":6},"How it works","\u002Fconcepts\u002Flabs-as-code\u002Fhow-it-works\u002F","04.concepts\u002F01.labs-as-code\u002F01.how-it-works",{"title":241,"device":6,"path":242,"stem":243,"children":244,"page":47},"Use Cases","\u002Fconcepts\u002Flabs-as-code\u002Fuse-cases\u002F","04.concepts\u002F01.labs-as-code\u002F02.use-cases",[245,249,253,257,261],{"title":246,"path":247,"stem":248,"device":6},"Instrument Control","\u002Fconcepts\u002Flabs-as-code\u002Fuse-cases\u002Flow-level-instrument-control\u002F","04.concepts\u002F01.labs-as-code\u002F02.use-cases\u002F10.low-level-instrument-control",{"title":250,"path":251,"stem":252,"device":6},"Multi-device Control","\u002Fconcepts\u002Flabs-as-code\u002Fuse-cases\u002Fmulti-device-control\u002F","04.concepts\u002F01.labs-as-code\u002F02.use-cases\u002F20.multi-device-control",{"title":254,"path":255,"stem":256,"device":6},"Workflow Orchestration","\u002Fconcepts\u002Flabs-as-code\u002Fuse-cases\u002Fworkflow-orchestration\u002F","04.concepts\u002F01.labs-as-code\u002F02.use-cases\u002F30.workflow-orchestration",{"title":258,"path":259,"stem":260,"device":6},"Custom Apps and LIMS Integration","\u002Fconcepts\u002Flabs-as-code\u002Fuse-cases\u002Fcustom-apps-lims\u002F","04.concepts\u002F01.labs-as-code\u002F02.use-cases\u002F40.custom-apps-lims",{"title":262,"path":263,"stem":264,"device":6},"Scale and Fleet Management","\u002Fconcepts\u002Flabs-as-code\u002Fuse-cases\u002Fscale-and-fleet\u002F","04.concepts\u002F01.labs-as-code\u002F02.use-cases\u002F50.scale-and-fleet",{"title":70,"device":6,"path":266,"stem":267,"children":268,"page":47},"\u002Fconcepts\u002Fintegrate\u002F","04.concepts\u002F02.integrate",[269,273,277,281,285],{"title":270,"path":271,"stem":272,"device":6},"Device","\u002Fconcepts\u002Fintegrate\u002Fdevice\u002F","04.concepts\u002F02.integrate\u002F05.device",{"title":274,"path":275,"stem":276,"device":6},"Connector","\u002Fconcepts\u002Fintegrate\u002Fconnector\u002F","04.concepts\u002F02.integrate\u002F10.connector",{"title":278,"path":279,"stem":280,"device":6},"Module","\u002Fconcepts\u002Fintegrate\u002Fmodule\u002F","04.concepts\u002F02.integrate\u002F20.module",{"title":282,"path":283,"stem":284,"device":6},"Action","\u002Fconcepts\u002Fintegrate\u002Faction\u002F","04.concepts\u002F02.integrate\u002F30.action",{"title":286,"path":287,"stem":288,"device":6},"Subscription","\u002Fconcepts\u002Fintegrate\u002Fsubscription\u002F","04.concepts\u002F02.integrate\u002F40.subscription",{"title":290,"device":6,"path":291,"stem":292,"children":293,"page":47},"Liquid handling and robots","\u002Fconcepts\u002Foperate\u002F","04.concepts\u002F03.operate",[294,298,302,306,310,314,318,322,326,330,334],{"title":295,"path":296,"stem":297,"device":6},"Liquid Handling","\u002Fconcepts\u002Foperate\u002Fliquid-handling\u002F","04.concepts\u002F03.operate\u002F10.liquid-handling",{"title":299,"path":300,"stem":301,"device":6},"Modules","\u002Fconcepts\u002Foperate\u002Fmodules\u002F","04.concepts\u002F03.operate\u002F20.modules",{"title":303,"path":304,"stem":305,"device":6},"Deck","\u002Fconcepts\u002Foperate\u002Fdeck\u002F","04.concepts\u002F03.operate\u002F30.deck",{"title":307,"path":308,"stem":309,"device":6},"Labware","\u002Fconcepts\u002Foperate\u002Flabware\u002F","04.concepts\u002F03.operate\u002F40.labware",{"title":311,"path":312,"stem":313,"device":6},"Liquids","\u002Fconcepts\u002Foperate\u002Fliquids\u002F","04.concepts\u002F03.operate\u002F50.liquids",{"title":315,"path":316,"stem":317,"device":6},"Liquid Classes","\u002Fconcepts\u002Foperate\u002Fliquid-classes\u002F","04.concepts\u002F03.operate\u002F60.liquid-classes",{"title":319,"path":320,"stem":321,"device":6},"Parameter Sets","\u002Fconcepts\u002Foperate\u002Fparameter-sets\u002F","04.concepts\u002F03.operate\u002F65.parameter-sets",{"title":323,"path":324,"stem":325,"device":6},"Tips and Tip Tracking","\u002Fconcepts\u002Foperate\u002Ftips\u002F","04.concepts\u002F03.operate\u002F70.tips",{"title":327,"path":328,"stem":329,"device":6},"Simulation","\u002Fconcepts\u002Foperate\u002Fsimulation\u002F","04.concepts\u002F03.operate\u002F80.simulation",{"title":331,"path":332,"stem":333,"device":6},"Error Handling","\u002Fconcepts\u002Foperate\u002Ferror-handling\u002F","04.concepts\u002F03.operate\u002F90.error-handling",{"title":335,"path":336,"stem":337,"device":6},"Robot Arms","\u002Fconcepts\u002Foperate\u002Frobot-arms\u002F","04.concepts\u002F03.operate\u002F95.robot-arms",{"title":124,"device":6,"path":339,"stem":340,"children":341,"page":47},"\u002Fconcepts\u002Fautomate\u002F","04.concepts\u002F07.automate",[342,346,350,354,358,362,366,370,374],{"title":343,"path":344,"stem":345,"device":6},"Workflow","\u002Fconcepts\u002Fautomate\u002Fworkflow\u002F","04.concepts\u002F07.automate\u002F10.workflow",{"title":347,"path":348,"stem":349,"device":6},"Phase","\u002Fconcepts\u002Fautomate\u002Fphase\u002F","04.concepts\u002F07.automate\u002F20.phase",{"title":351,"path":352,"stem":353,"device":6},"Step","\u002Fconcepts\u002Fautomate\u002Fstep\u002F","04.concepts\u002F07.automate\u002F30.step",{"title":355,"path":356,"stem":357,"device":6},"Runs","\u002Fconcepts\u002Fautomate\u002Fruns\u002F","04.concepts\u002F07.automate\u002F40.runs",{"title":359,"path":360,"stem":361,"device":6},"Input","\u002Fconcepts\u002Fautomate\u002Finput\u002F","04.concepts\u002F07.automate\u002F50.input",{"title":363,"path":364,"stem":365,"device":6},"Artifacts","\u002Fconcepts\u002Fautomate\u002Fartifacts\u002F","04.concepts\u002F07.automate\u002F60.artifacts",{"title":367,"path":368,"stem":369,"device":6},"Logs","\u002Fconcepts\u002Fautomate\u002Flogs\u002F","04.concepts\u002F07.automate\u002F70.logs",{"title":371,"path":372,"stem":373,"device":6},"Human in the Loop","\u002Fconcepts\u002Fautomate\u002Fhuman-in-the-loop\u002F","04.concepts\u002F07.automate\u002F80.human-in-the-loop",{"title":331,"path":375,"stem":376,"device":6},"\u002Fconcepts\u002Fautomate\u002Ferror-handling\u002F","04.concepts\u002F07.automate\u002F90.error-handling",{"title":185,"device":6,"path":378,"stem":379,"children":380,"page":47},"\u002Fconcepts\u002Fobserve\u002F","04.concepts\u002F08.observe",[381,385,389,393,397,401,405],{"title":382,"path":383,"stem":384,"device":6},"Overview","\u002Fconcepts\u002Fobserve\u002Foverview\u002F","04.concepts\u002F08.observe\u002F10.overview",{"title":386,"path":387,"stem":388,"device":6},"Object Storage","\u002Fconcepts\u002Fobserve\u002Fstorage\u002F","04.concepts\u002F08.observe\u002F10.storage",{"title":390,"path":391,"stem":392,"device":6},"Secrets","\u002Fconcepts\u002Fobserve\u002Fsecrets\u002F","04.concepts\u002F08.observe\u002F20.secrets",{"title":394,"path":395,"stem":396,"device":6},"Data sources","\u002Fconcepts\u002Fobserve\u002Fdata-sources\u002F","04.concepts\u002F08.observe\u002F30.data-sources",{"title":398,"path":399,"stem":400,"device":6},"Data lineage","\u002Fconcepts\u002Fobserve\u002Fdata-lineage\u002F","04.concepts\u002F08.observe\u002F40.data-lineage",{"title":402,"path":403,"stem":404,"device":6},"Lineage from liquid handling","\u002Fconcepts\u002Fobserve\u002Flineage-from-liquid-handling\u002F","04.concepts\u002F08.observe\u002F45.lineage-from-liquid-handling",{"title":406,"path":407,"stem":408,"device":6},"Lineage delivery","\u002Fconcepts\u002Fobserve\u002Flineage-delivery\u002F","04.concepts\u002F08.observe\u002F47.lineage-delivery",{"title":410,"device":6,"path":411,"stem":412,"children":413,"page":47},"Devices","\u002Fdevices\u002F","05.devices",[414,417,467,483,501,541,565,598],{"title":382,"path":415,"stem":416,"device":6},"\u002Fdevices\u002Foverview\u002F","05.devices\u002F00.overview",{"title":418,"path":419,"page":47,"children":420},"Heater-shakers","\u002Fdevices\u002Fheater-shakers\u002F",[421,442,452],{"title":422,"path":423,"stem":424,"device":425},"QInstruments BioShake","\u002Fdevices\u002Fqinstruments-bioshake\u002F","05.devices\u002F10.qinstruments-bioshake",{"slug":426,"vendor":427,"category":428,"connector":426,"package":429,"models":430,"communication":437,"vendor_software":6,"os":438},"qinstruments-bioshake","QInstruments","Plate Shakers & Temperature Control","unitelabs-qinstruments-bioshake",[431,432,433,434,435,436],"BioShake 3000 \u002F 3000 elm \u002F 3000 elm DWP","BioShake 3000-T \u002F 3000-T elm","BioShake 5000 elm","BioShake D30 \u002F D30 elm \u002F D30-T \u002F D30-T elm","BioShake Q1 \u002F Q1 (1.2 mm) \u002F Q1 (3.0 mm) \u002F Q2","HeatPlate","serial (RS-232 over USB)",[439,440,441],"windows","linux","macos",{"title":443,"path":444,"stem":445,"device":446},"QInstruments ColdPlate","\u002Fdevices\u002Fqinstruments-coldplate\u002F","05.devices\u002F20.qinstruments-coldplate",{"slug":447,"vendor":427,"category":428,"connector":426,"package":429,"models":448,"communication":437,"vendor_software":6,"os":451},"qinstruments-coldplate",[449,450],"ColdPlate","ColdPlate slim",[439,440,441],{"title":453,"path":454,"stem":455,"device":456},"Inheco Thermoshake","\u002Fdevices\u002Finheco-thermoshake\u002F","05.devices\u002F30.inheco-thermoshake",{"slug":457,"vendor":458,"category":428,"connector":459,"package":460,"models":461,"communication":465,"vendor_software":6,"os":466},"inheco-thermoshake","Inheco","inheco-tec-controller","unitelabs-inheco-tec-controller",[462,463,464],"Thermoshake AC","Thermoshake 95 AC","Thermoshake Classic","USB, through an Inheco Single TEC (STC) or Multi TEC (MTC) controller",[439,440,441],{"title":468,"path":469,"page":47,"children":470},"Incubation","\u002Fdevices\u002Fincubation\u002F",[471],{"title":472,"path":473,"stem":474,"device":475},"Inheco SCILA","\u002Fdevices\u002Finheco-scila\u002F","05.devices\u002F40.inheco-scila",{"slug":476,"vendor":458,"category":468,"connector":476,"package":477,"models":478,"communication":481,"vendor_software":6,"os":482},"inheco-scila","unitelabs-inheco-scila",[479,480],"SCILA","SCILA MIX 2-gas mixing device","Ethernet (SiLA 1 over SOAP, with UDP discovery)",[439,440,441],{"title":484,"path":485,"page":47,"children":486},"Thermal cyclers","\u002Fdevices\u002Fthermal-cyclers\u002F",[487],{"title":488,"path":489,"stem":490,"device":491},"Inheco ODTC","\u002Fdevices\u002Finheco-odtc\u002F","05.devices\u002F50.inheco-odtc",{"slug":492,"vendor":458,"category":493,"connector":492,"package":494,"models":495,"communication":481,"vendor_software":6,"os":500},"inheco-odtc","Thermal Cycler","unitelabs-inheco-odtc",[496,497,498,499],"ODTC 96","ODTC 96XL","ODTC 384","ODTC 384XL",[439,440,441],{"title":502,"path":503,"page":47,"children":504},"Readers","\u002Fdevices\u002Freaders\u002F",[505,514,526],{"title":506,"path":507,"stem":508,"device":509},"Agilent Biotek Gen5","\u002Fdevices\u002Fbiotek-gen5\u002F","05.devices\u002F60.biotek-gen5",{"slug":510,"vendor":511,"category":512,"connector":513},"biotek-gen5","Agilent","Readers & Imagers","gen5",{"title":515,"path":516,"stem":517,"device":518},"Agilent BioTek Synergy H1","\u002Fdevices\u002Fbiotek-synergy-h1\u002F","05.devices\u002F70.biotek-synergy-h1",{"slug":519,"vendor":511,"category":512,"connector":520,"package":521,"models":522,"communication":524,"vendor_software":6,"os":525},"biotek-synergy-h1","agilent-synergy-h1","unitelabs-agilent-synergy-h1",[523],"BioTek Synergy H1","serial",[439,440,441],{"title":527,"path":528,"stem":529,"device":530},"Tecan Infinite 200","\u002Fdevices\u002Ftecan-infinite-200\u002F","05.devices\u002F75.tecan-infinite-200",{"slug":531,"vendor":532,"category":512,"connector":531,"package":533,"models":534,"communication":538,"vendor_software":539,"os":540},"tecan-infinite-200","Tecan","unitelabs-tecan-infinite-200",[535,536,537],"Infinite F200","Infinite M200","Infinite M200 Pro","USB","i-control on Windows only, for its USB driver",[439,440,441],{"title":542,"path":543,"page":47,"children":544},"Tilt & turn","\u002Fdevices\u002Ftilt-and-turn\u002F",[545,555],{"title":546,"path":547,"stem":548,"device":549},"QInstruments TiltStation","\u002Fdevices\u002Fqinstruments-tiltstation\u002F","05.devices\u002F80.qinstruments-tiltstation",{"slug":550,"vendor":427,"category":551,"connector":426,"package":429,"models":552,"communication":437,"vendor_software":6,"os":554},"qinstruments-tiltstation","Plate Tilting",[553],"TiltStation",[439,440,441],{"title":556,"path":557,"stem":558,"device":559},"QInstruments TurnStation","\u002Fdevices\u002Fqinstruments-turnstation\u002F","05.devices\u002F90.qinstruments-turnstation",{"slug":560,"vendor":427,"category":561,"connector":426,"package":429,"models":562,"communication":437,"vendor_software":6,"os":564},"qinstruments-turnstation","Plate Rotating",[563],"TurnStation",[439,440,441],{"title":566,"path":567,"page":47,"children":568},"Liquid Handlers","\u002Fdevices\u002Fliquid-handlers\u002F",[569,583],{"title":570,"path":571,"stem":572,"device":573},"Hamilton Microlab STAR","\u002Fdevices\u002Fhamilton-microlab-star\u002F","05.devices\u002F100.hamilton-microlab-star",{"slug":574,"vendor":575,"category":566,"connector":576,"package":577,"models":578,"communication":538,"vendor_software":6,"os":582},"hamilton-microlab-star","Hamilton","microlab-star","unitelabs-microlab-star",[579,580,581],"Microlab STAR","Microlab STARlet","Microlab STARplus",[439,440],{"title":584,"path":585,"stem":586,"device":587},"Hamilton Microlab VANTAGE","\u002Fdevices\u002Fhamilton-microlab-vantage\u002F","05.devices\u002F110.hamilton-microlab-vantage",{"slug":588,"vendor":575,"category":566,"connector":589,"package":590,"models":591,"communication":596,"vendor_software":6,"os":597},"hamilton-microlab-vantage","microlab-vantage","unitelabs-microlab-vantage",[592,593,594,595],"Microlab VANTAGE 1.3","Microlab VANTAGE 2.0","Microlab STAR V 1.3","Microlab STAR V 2.0","Ethernet (TCP)",[439,440,441],{"title":599,"path":600,"page":47,"children":601},"Robots","\u002Fdevices\u002Frobots\u002F",[602],{"title":603,"path":604,"stem":605,"device":606},"Brooks PreciseFlex 400","\u002Fdevices\u002Fbrooks-preciseflex-400\u002F","05.devices\u002F95.brooks-preciseflex-400",{"slug":607,"vendor":608,"category":599,"connector":607,"package":609,"models":610,"communication":596,"vendor_software":6,"os":614},"brooks-preciseflex-400","Brooks Automation","unitelabs-brooks-preciseflex-400",[611,612,613],"PreciseFlex 400, standard reach, 400 \u002F 750 \u002F 1160 mm Z","PreciseFlex 400, extended reach (XR), 400 \u002F 750 \u002F 1160 mm Z","Either on a PreciseFlex linear rail (1.0, 1.5 or 2.0 m)",[439,440,441],{"title":616,"device":6,"path":617,"stem":618,"children":619,"page":47},"Liquid Handling and Robots","\u002Fliquid-handling-and-robots\u002F","06.liquid-handling-and-robots",[620,623,635,659,662,707,736,753,774,796],{"title":382,"path":621,"stem":622,"device":6},"\u002Fliquid-handling-and-robots\u002Foverview\u002F","06.liquid-handling-and-robots\u002F00.overview",{"title":303,"device":6,"path":624,"stem":625,"children":626,"page":47},"\u002Fliquid-handling-and-robots\u002Fdeck\u002F","06.liquid-handling-and-robots\u002F10.deck",[627,631],{"title":628,"path":629,"stem":630,"device":6},"Building a Deck","\u002Fliquid-handling-and-robots\u002Fdeck\u002Fbuilding-a-deck\u002F","06.liquid-handling-and-robots\u002F10.deck\u002F10.building-a-deck",{"title":632,"path":633,"stem":634,"device":6},"Save\u002FLoad a Deck","\u002Fliquid-handling-and-robots\u002Fdeck\u002Fsave-load-deck\u002F","06.liquid-handling-and-robots\u002F10.deck\u002F20.save-load-deck",{"title":636,"device":6,"path":637,"stem":638,"children":639,"page":47},"Pipetting","\u002Fliquid-handling-and-robots\u002Fpipetting\u002F","06.liquid-handling-and-robots\u002F20.pipetting",[640,644,648,652,655],{"title":641,"path":642,"stem":643,"device":6},"Basic Pipetting","\u002Fliquid-handling-and-robots\u002Fpipetting\u002Fbasic-pipetting\u002F","06.liquid-handling-and-robots\u002F20.pipetting\u002F10.basic-pipetting",{"title":645,"path":646,"stem":647,"device":6},"Advanced Pipetting","\u002Fliquid-handling-and-robots\u002Fpipetting\u002Fadvanced-pipetting\u002F","06.liquid-handling-and-robots\u002F20.pipetting\u002F20.advanced-pipetting",{"title":649,"path":650,"stem":651,"device":6},"Tip Handling","\u002Fliquid-handling-and-robots\u002Fpipetting\u002Ftip-handling\u002F","06.liquid-handling-and-robots\u002F20.pipetting\u002F30.tip-handling",{"title":315,"path":653,"stem":654,"device":6},"\u002Fliquid-handling-and-robots\u002Fpipetting\u002Fliquid-classes\u002F","06.liquid-handling-and-robots\u002F20.pipetting\u002F40.liquid-classes",{"title":656,"path":657,"stem":658,"device":6},"Labware Transport","\u002Fliquid-handling-and-robots\u002Fpipetting\u002Flabware-transport\u002F","06.liquid-handling-and-robots\u002F20.pipetting\u002F50.labware-transport",{"title":327,"path":660,"stem":661,"device":6},"\u002Fliquid-handling-and-robots\u002Fsimulation\u002F","06.liquid-handling-and-robots\u002F30.simulation",{"title":663,"device":6,"path":664,"stem":665,"children":666,"page":47},"Hamilton STAR","\u002Fliquid-handling-and-robots\u002Fhamilton-star\u002F","06.liquid-handling-and-robots\u002F41.hamilton-star",[667,671,675,679,683,687,691,695,699,703],{"title":668,"path":669,"stem":670,"device":6},"Positioning & Movement","\u002Fliquid-handling-and-robots\u002Fhamilton-star\u002Fpositioning\u002F","06.liquid-handling-and-robots\u002F41.hamilton-star\u002F10.positioning",{"title":672,"path":673,"stem":674,"device":6},"Gripper Module","\u002Fliquid-handling-and-robots\u002Fhamilton-star\u002Fcore-gripper\u002F","06.liquid-handling-and-robots\u002F41.hamilton-star\u002F20.core-gripper",{"title":676,"path":677,"stem":678,"device":6},"iSWAP Module","\u002Fliquid-handling-and-robots\u002Fhamilton-star\u002Fiswap\u002F","06.liquid-handling-and-robots\u002F41.hamilton-star\u002F30.iswap",{"title":680,"path":681,"stem":682,"device":6},"Using TADM","\u002Fliquid-handling-and-robots\u002Fhamilton-star\u002Ftadm\u002F","06.liquid-handling-and-robots\u002F41.hamilton-star\u002F40.tadm",{"title":684,"path":685,"stem":686,"device":6},"Autoload Module","\u002Fliquid-handling-and-robots\u002Fhamilton-star\u002Fautoload\u002F","06.liquid-handling-and-robots\u002F41.hamilton-star\u002F50.autoload",{"title":688,"path":689,"stem":690,"device":6},"Waste Block","\u002Fliquid-handling-and-robots\u002Fhamilton-star\u002Fwaste-block\u002F","06.liquid-handling-and-robots\u002F41.hamilton-star\u002F60.waste-block",{"title":692,"path":693,"stem":694,"device":6},"Complex Mixing","\u002Fliquid-handling-and-robots\u002Fhamilton-star\u002Fcomplex-mixing\u002F","06.liquid-handling-and-robots\u002F41.hamilton-star\u002F66.complex-mixing",{"title":696,"path":697,"stem":698,"device":6},"Teaching Gripper Paddle Positions","\u002Fliquid-handling-and-robots\u002Fhamilton-star\u002Fgripper-positions\u002F","06.liquid-handling-and-robots\u002F41.hamilton-star\u002F70.gripper-positions",{"title":700,"path":701,"stem":702,"device":6},"Training a Custom Deck Position With the iSWAP","\u002Fliquid-handling-and-robots\u002Fhamilton-star\u002Fcustom-deck-position\u002F","06.liquid-handling-and-robots\u002F41.hamilton-star\u002F75.custom-deck-position",{"title":704,"path":705,"stem":706,"device":6},"Observable Commands","\u002Fliquid-handling-and-robots\u002Fhamilton-star\u002Fobservable-commands\u002F","06.liquid-handling-and-robots\u002F41.hamilton-star\u002F80.observable-commands",{"title":708,"device":6,"path":709,"stem":710,"children":711,"page":47},"Hamilton Vantage","\u002Fliquid-handling-and-robots\u002Fhamilton-vantage\u002F","06.liquid-handling-and-robots\u002F42.hamilton-vantage",[712,716,720,724,728,732],{"title":713,"path":714,"stem":715,"device":6},"Waste Configuration","\u002Fliquid-handling-and-robots\u002Fhamilton-vantage\u002Fwaste-configuration\u002F","06.liquid-handling-and-robots\u002F42.hamilton-vantage\u002F05.waste-configuration",{"title":717,"path":718,"stem":719,"device":6},"Covers and Lights","\u002Fliquid-handling-and-robots\u002Fhamilton-vantage\u002Fcovers-and-lights\u002F","06.liquid-handling-and-robots\u002F42.hamilton-vantage\u002F10.covers-and-lights",{"title":721,"path":722,"stem":723,"device":6},"IDL Module","\u002Fliquid-handling-and-robots\u002Fhamilton-vantage\u002Fidl\u002F","06.liquid-handling-and-robots\u002F42.hamilton-vantage\u002F20.idl",{"title":725,"path":726,"stem":727,"device":6},"IPG Module","\u002Fliquid-handling-and-robots\u002Fhamilton-vantage\u002Fipg\u002F","06.liquid-handling-and-robots\u002F42.hamilton-vantage\u002F30.ipg",{"title":729,"path":730,"stem":731,"device":6},"XL Pipettes","\u002Fliquid-handling-and-robots\u002Fhamilton-vantage\u002Fxl-channels\u002F","06.liquid-handling-and-robots\u002F42.hamilton-vantage\u002F40.xl-channels",{"title":733,"path":734,"stem":735,"device":6},"CO-RE 96 Head","\u002Fliquid-handling-and-robots\u002Fhamilton-vantage\u002Fcore96-head\u002F","06.liquid-handling-and-robots\u002F42.hamilton-vantage\u002F50.core96-head",{"title":737,"device":6,"path":738,"stem":739,"children":740,"page":47},"Agilent Bravo","\u002Fliquid-handling-and-robots\u002Fagilent-bravo\u002F","06.liquid-handling-and-robots\u002F43.agilent-bravo",[741,744,747,750],{"title":649,"path":742,"stem":743,"device":6},"\u002Fliquid-handling-and-robots\u002Fagilent-bravo\u002Ftip-handling\u002F","06.liquid-handling-and-robots\u002F43.agilent-bravo\u002F10.tip-handling",{"title":641,"path":745,"stem":746,"device":6},"\u002Fliquid-handling-and-robots\u002Fagilent-bravo\u002Fbasic-pipetting\u002F","06.liquid-handling-and-robots\u002F43.agilent-bravo\u002F20.basic-pipetting",{"title":315,"path":748,"stem":749,"device":6},"\u002Fliquid-handling-and-robots\u002Fagilent-bravo\u002Fliquid-classes\u002F","06.liquid-handling-and-robots\u002F43.agilent-bravo\u002F25.liquid-classes",{"title":672,"path":751,"stem":752,"device":6},"\u002Fliquid-handling-and-robots\u002Fagilent-bravo\u002Fusing-the-gripper\u002F","06.liquid-handling-and-robots\u002F43.agilent-bravo\u002F30.using-the-gripper",{"title":754,"device":6,"path":755,"stem":756,"children":757,"page":47},"Tecan FluentControl","\u002Fliquid-handling-and-robots\u002Ftecan-fluentcontrol\u002F","06.liquid-handling-and-robots\u002F44.tecan-fluentcontrol",[758,762,766,770],{"title":759,"path":760,"stem":761,"device":6},"Connect & Run a Method","\u002Fliquid-handling-and-robots\u002Ftecan-fluentcontrol\u002Fconnect-and-run\u002F","06.liquid-handling-and-robots\u002F44.tecan-fluentcontrol\u002F10.connect-and-run",{"title":763,"path":764,"stem":765,"device":6},"Low-level Control","\u002Fliquid-handling-and-robots\u002Ftecan-fluentcontrol\u002Flow-level-control\u002F","06.liquid-handling-and-robots\u002F44.tecan-fluentcontrol\u002F20.low-level-control",{"title":767,"path":768,"stem":769,"device":6},"Handling Dialogs","\u002Fliquid-handling-and-robots\u002Ftecan-fluentcontrol\u002Fhandling-dialogs\u002F","06.liquid-handling-and-robots\u002F44.tecan-fluentcontrol\u002F25.handling-dialogs",{"title":771,"path":772,"stem":773,"device":6},"Full Workflow Example","\u002Fliquid-handling-and-robots\u002Ftecan-fluentcontrol\u002Ffull-workflow-example\u002F","06.liquid-handling-and-robots\u002F44.tecan-fluentcontrol\u002F30.full-workflow-example",{"title":775,"device":6,"path":776,"stem":777,"children":778,"page":47},"Tecan Freedom EVO","\u002Fliquid-handling-and-robots\u002Ftecan-freedom-evo\u002F","06.liquid-handling-and-robots\u002F45.tecan-freedom-evo",[779,783,786,789,793],{"title":780,"path":781,"stem":782,"device":6},"Deck & Carriers","\u002Fliquid-handling-and-robots\u002Ftecan-freedom-evo\u002Fdeck-and-carriers\u002F","06.liquid-handling-and-robots\u002F45.tecan-freedom-evo\u002F10.deck-and-carriers",{"title":649,"path":784,"stem":785,"device":6},"\u002Fliquid-handling-and-robots\u002Ftecan-freedom-evo\u002Ftip-handling\u002F","06.liquid-handling-and-robots\u002F45.tecan-freedom-evo\u002F20.tip-handling",{"title":641,"path":787,"stem":788,"device":6},"\u002Fliquid-handling-and-robots\u002Ftecan-freedom-evo\u002Fbasic-pipetting\u002F","06.liquid-handling-and-robots\u002F45.tecan-freedom-evo\u002F30.basic-pipetting",{"title":790,"path":791,"stem":792,"device":6},"Using the Gripper (RoMa)","\u002Fliquid-handling-and-robots\u002Ftecan-freedom-evo\u002Fusing-the-gripper\u002F","06.liquid-handling-and-robots\u002F45.tecan-freedom-evo\u002F40.using-the-gripper",{"title":315,"path":794,"stem":795,"device":6},"\u002Fliquid-handling-and-robots\u002Ftecan-freedom-evo\u002Fliquid-classes\u002F","06.liquid-handling-and-robots\u002F45.tecan-freedom-evo\u002F50.liquid-classes",{"title":603,"device":6,"path":797,"stem":798,"children":799,"page":47},"\u002Fliquid-handling-and-robots\u002Fbrooks-preciseflex-400\u002F","06.liquid-handling-and-robots\u002F46.brooks-preciseflex-400",[800,804,808],{"title":801,"path":802,"stem":803,"device":6},"Teach Positions","\u002Fliquid-handling-and-robots\u002Fbrooks-preciseflex-400\u002Fteach-positions\u002F","06.liquid-handling-and-robots\u002F46.brooks-preciseflex-400\u002F10.teach-positions",{"title":805,"path":806,"stem":807,"device":6},"Move a Plate","\u002Fliquid-handling-and-robots\u002Fbrooks-preciseflex-400\u002Fmove-a-plate\u002F","06.liquid-handling-and-robots\u002F46.brooks-preciseflex-400\u002F20.move-a-plate",{"title":809,"path":810,"stem":811,"device":6},"Recover from a Stop","\u002Fliquid-handling-and-robots\u002Fbrooks-preciseflex-400\u002Frecover-from-a-stop\u002F","06.liquid-handling-and-robots\u002F46.brooks-preciseflex-400\u002F30.recover-from-a-stop",{"title":307,"device":6,"path":813,"stem":814,"children":815,"page":47},"\u002Flabware\u002F","07.labware",[816,819,823,827,831,835,839,843,847,855],{"title":382,"path":817,"stem":818,"device":6},"\u002Flabware\u002Foverview\u002F","07.labware\u002F00.overview",{"title":820,"path":821,"stem":822,"device":6},"Supported Labware","\u002Flabware\u002Fsupported-labware\u002F","07.labware\u002F05.supported-labware",{"title":824,"path":825,"stem":826,"device":6},"Standard Labware","\u002Flabware\u002Fstandard-labware\u002F","07.labware\u002F10.standard-labware",{"title":828,"path":829,"stem":830,"device":6},"Plates","\u002Flabware\u002Fplates\u002F","07.labware\u002F20.plates",{"title":832,"path":833,"stem":834,"device":6},"Tips and Tip Racks","\u002Flabware\u002Ftips-and-racks\u002F","07.labware\u002F30.tips-and-racks",{"title":836,"path":837,"stem":838,"device":6},"Tubes and Tube Racks","\u002Flabware\u002Ftubes-and-tube-racks\u002F","07.labware\u002F40.tubes-and-tube-racks",{"title":840,"path":841,"stem":842,"device":6},"Troughs","\u002Flabware\u002Ftroughs\u002F","07.labware\u002F50.troughs",{"title":844,"path":845,"stem":846,"device":6},"Carriers and Adapters","\u002Flabware\u002Fcarriers-and-adapters\u002F","07.labware\u002F60.carriers-and-adapters",{"title":575,"device":6,"path":848,"stem":849,"children":850,"page":47},"\u002Flabware\u002Fhamilton\u002F","07.labware\u002F70.hamilton",[851],{"title":852,"path":853,"stem":854,"device":6},"Hamilton MFX Carriers","\u002Flabware\u002Fhamilton\u002Fmfx-carriers\u002F","07.labware\u002F70.hamilton\u002F10.mfx-carriers",{"title":856,"path":857,"stem":858,"device":6},"Shapes","\u002Flabware\u002Fshapes\u002F","07.labware\u002F80.shapes",{"title":860,"device":6,"path":861,"stem":862,"children":863},"Connector Development (CDK)","\u002Fconnector-development\u002F","20.connector-development",[864,866,886,919,943,999],{"title":382,"path":861,"stem":865,"device":6},"20.connector-development\u002Findex",{"title":867,"path":868,"stem":869,"children":870,"page":47},"Getting Started","\u002Fconnector-development\u002Fgetting-started\u002F","20.connector-development\u002F10.getting-started",[871,874,878,882],{"title":382,"path":872,"stem":873,"device":6},"\u002Fconnector-development\u002Fgetting-started\u002Foverview\u002F","20.connector-development\u002F10.getting-started\u002F10.overview",{"title":875,"path":876,"stem":877,"device":6},"What's new","\u002Fconnector-development\u002Fgetting-started\u002Fwhats-new\u002F","20.connector-development\u002F10.getting-started\u002F20.whats-new",{"title":879,"path":880,"stem":881,"device":6},"Installation","\u002Fconnector-development\u002Fgetting-started\u002Finstallation\u002F","20.connector-development\u002F10.getting-started\u002F30.installation",{"title":883,"path":884,"stem":885,"device":6},"Contributing","\u002Fconnector-development\u002Fgetting-started\u002Fcontributing\u002F","20.connector-development\u002F10.getting-started\u002F40.contributing",{"title":887,"path":888,"stem":889,"children":890,"page":47},"Tutorial","\u002Fconnector-development\u002Ftutorial\u002F","20.connector-development\u002F20.tutorial",[891,895,899,903,907,911,915],{"title":892,"path":893,"stem":894,"device":6},"Walkthrough","\u002Fconnector-development\u002Ftutorial\u002Fwalkthrough\u002F","20.connector-development\u002F20.tutorial\u002F00.walkthrough",{"title":896,"path":897,"stem":898,"device":6},"SiLA Endpoints","\u002Fconnector-development\u002Ftutorial\u002Fsila-endpoints\u002F","20.connector-development\u002F20.tutorial\u002F15.sila-endpoints",{"title":900,"path":901,"stem":902,"device":6},"Data Endpoints","\u002Fconnector-development\u002Ftutorial\u002Fdata-endpoints\u002F","20.connector-development\u002F20.tutorial\u002F20.data-endpoints",{"title":904,"path":905,"stem":906,"device":6},"Controls","\u002Fconnector-development\u002Ftutorial\u002Fcontrols\u002F","20.connector-development\u002F20.tutorial\u002F30.controls",{"title":908,"path":909,"stem":910,"device":6},"SiLA Data Types","\u002Fconnector-development\u002Ftutorial\u002Fdata-types\u002F","20.connector-development\u002F20.tutorial\u002F40.data-types",{"title":912,"path":913,"stem":914,"device":6},"Hardware Communication","\u002Fconnector-development\u002Ftutorial\u002Fhardware-communication\u002F","20.connector-development\u002F20.tutorial\u002F90.hardware-communication",{"title":916,"path":917,"stem":918,"device":6},"Build a SiLA client","\u002Fconnector-development\u002Ftutorial\u002Fbuild-a-sila-client\u002F","20.connector-development\u002F20.tutorial\u002F95.build-a-sila-client",{"title":223,"device":6,"path":920,"stem":921,"children":922,"page":47},"\u002Fconnector-development\u002Fconcepts\u002F","20.connector-development\u002F30.concepts",[923,927,931,935,939],{"title":924,"path":925,"stem":926,"device":6},"SiLA","\u002Fconnector-development\u002Fconcepts\u002Fsila\u002F","20.connector-development\u002F30.concepts\u002F00.sila",{"title":928,"path":929,"stem":930,"device":6},"Designing Features","\u002Fconnector-development\u002Fconcepts\u002Ffeatures\u002F","20.connector-development\u002F30.concepts\u002F10.features",{"title":932,"path":933,"stem":934,"device":6},"Designing Endpoints","\u002Fconnector-development\u002Fconcepts\u002Fsila-endpoints\u002F","20.connector-development\u002F30.concepts\u002F15.sila-endpoints",{"title":936,"path":937,"stem":938,"device":6},"Designing Data Types","\u002Fconnector-development\u002Fconcepts\u002Fdata-types\u002F","20.connector-development\u002F30.concepts\u002F20.data-types",{"title":940,"path":941,"stem":942,"device":6},"Connector Architecture","\u002Fconnector-development\u002Fconcepts\u002Farchitecture\u002F","20.connector-development\u002F30.concepts\u002F30.architecture",{"title":944,"path":945,"stem":946,"children":947,"page":47},"Guides","\u002Fconnector-development\u002Fguides\u002F","20.connector-development\u002F40.guides",[948,952,956,960,964,968,972,976,980,984,988,991,995],{"title":949,"path":950,"stem":951,"device":6},"Project Structure","\u002Fconnector-development\u002Fguides\u002Fproject-structure\u002F","20.connector-development\u002F40.guides\u002F10.project-structure",{"title":953,"path":954,"stem":955,"device":6},"Configuration","\u002Fconnector-development\u002Fguides\u002Fconfiguration\u002F","20.connector-development\u002F40.guides\u002F20.configuration",{"title":957,"path":958,"stem":959,"device":6},"Logging","\u002Fconnector-development\u002Fguides\u002Flogging\u002F","20.connector-development\u002F40.guides\u002F21.logging",{"title":961,"path":962,"stem":963,"device":6},"Deployment","\u002Fconnector-development\u002Fguides\u002Fdeployment\u002F","20.connector-development\u002F40.guides\u002F30.deployment",{"title":965,"path":966,"stem":967,"device":6},"Security","\u002Fconnector-development\u002Fguides\u002Fsecurity\u002F","20.connector-development\u002F40.guides\u002F40.security",{"title":969,"path":970,"stem":971,"device":6},"Subscriptions","\u002Fconnector-development\u002Fguides\u002Fsubscriptions\u002F","20.connector-development\u002F40.guides\u002F45.subscriptions",{"title":973,"path":974,"stem":975,"device":6},"Execution Modes","\u002Fconnector-development\u002Fguides\u002Fexecution-modes\u002F","20.connector-development\u002F40.guides\u002F46.execution-modes",{"title":977,"path":978,"stem":979,"device":6},"Constraints and Units","\u002Fconnector-development\u002Fguides\u002Fconstraints-and-units\u002F","20.connector-development\u002F40.guides\u002F47.constraints-and-units",{"title":981,"path":982,"stem":983,"device":6},"Device Variants","\u002Fconnector-development\u002Fguides\u002Fdevice-variants\u002F","20.connector-development\u002F40.guides\u002F48.device-variants",{"title":985,"path":986,"stem":987,"device":6},"Repeated Modules","\u002Fconnector-development\u002Fguides\u002Frepeated-modules\u002F","20.connector-development\u002F40.guides\u002F49.repeated-modules",{"title":331,"path":989,"stem":990,"device":6},"\u002Fconnector-development\u002Fguides\u002Ferror-handling\u002F","20.connector-development\u002F40.guides\u002F50.error-handling",{"title":992,"path":993,"stem":994,"device":6},"Serial Troubleshooting","\u002Fconnector-development\u002Fguides\u002Fserial-troubleshooting\u002F","20.connector-development\u002F40.guides\u002F70.serial-troubleshooting",{"title":996,"path":997,"stem":998,"device":6},"Testing","\u002Fconnector-development\u002Fguides\u002Ftesting\u002F","20.connector-development\u002F40.guides\u002F80.testing",{"title":1000,"device":6,"path":1001,"stem":1002,"children":1003},"References","\u002Fconnector-development\u002Freference\u002F","20.connector-development\u002F50.reference\u002Findex",[1004,1005,1009,1013,1017,1021],{"title":1000,"path":1001,"stem":1002,"device":6},{"title":1006,"path":1007,"stem":1008,"device":6},"Naming Conventions","\u002Fconnector-development\u002Freference\u002Fnaming-conventions\u002F","20.connector-development\u002F50.reference\u002F10.naming-conventions",{"title":1010,"path":1011,"stem":1012,"device":6},"Docstring Format","\u002Fconnector-development\u002Freference\u002Fdocstrings\u002F","20.connector-development\u002F50.reference\u002F20.docstrings",{"title":1014,"path":1015,"stem":1016,"device":6},"Feature Metadata","\u002Fconnector-development\u002Freference\u002Ffeature-metadata\u002F","20.connector-development\u002F50.reference\u002F30.feature-metadata",{"title":1018,"path":1019,"stem":1020,"device":6},"Review Checklist","\u002Fconnector-development\u002Freference\u002Freview-checklist\u002F","20.connector-development\u002F50.reference\u002F90.review-checklist",{"title":1022,"path":1023,"stem":1024,"device":6},"Python Environment and Project Management","\u002Fconnector-development\u002Freference\u002Fpython-environment-management\u002F","20.connector-development\u002F50.reference\u002F99.python-environment-management",{"id":1026,"title":402,"body":1027,"description":1657,"device":6,"extension":1658,"links":6,"meta":1659,"navigation":1660,"path":1661,"seo":1662,"stem":404,"type":1663,"__hash__":1664},"docs\u002F04.concepts\u002F08.observe\u002F45.lineage-from-liquid-handling.md",{"type":1028,"value":1029,"toc":1644},"minimark",[1030,1034,1040,1060,1065,1348,1360,1369,1372,1377,1380,1489,1498,1501,1525,1529,1538,1555,1559,1571,1578,1582,1600,1608,1612],[1031,1032,1033],"p",{},"The Liquid Handling SDK records lineage events automatically. Tip, liquid, gripper, and labware operations on a liquid handler add events to the run, and the deck's labware is described.",[1031,1035,1036],{},[1037,1038,1039],"strong",{},"Prerequisites",[1041,1042,1043,1051,1054,1057],"ul",{},[1044,1045,1046,1050],"li",{},[1047,1048,1049],"code",{},"unitelabs-liquid-handling"," ≥ 0.42.0",[1044,1052,1053],{},"UniteLabs SDK ≥ 0.20.0",[1044,1055,1056],{},"UniteLabs Platform ≥ 0.34.0",[1044,1058,1059],{},"UniteLabs API ≥ 0.17.0",[1061,1062,1064],"h2",{"id":1063},"what-the-library-records","What the library records",[1066,1067,1068,1087],"table",{},[1069,1070,1071],"thead",{},[1072,1073,1074,1078,1081,1084],"tr",{},[1075,1076,1077],"th",{},"Operation",[1075,1079,1080],{},"Recorded when",[1075,1082,1083],{},"From → to",[1075,1085,1086],{},"Main extras",[1088,1089,1090,1116,1137,1159,1185,1208,1230,1251,1272,1291,1310,1329],"tbody",{},[1072,1091,1092,1098,1101,1104],{},[1093,1094,1095],"td",{},[1047,1096,1097],{},"pick_up_tip",[1093,1099,1100],{},"A channel picks up a tip",[1093,1102,1103],{},"tip slot → channel",[1093,1105,1106,1109,1110,1109,1113],{},[1047,1107,1108],{},"channel",", ",[1047,1111,1112],{},"tip",[1047,1114,1115],{},"tip_type",[1072,1117,1118,1123,1126,1129],{},[1093,1119,1120],{},[1047,1121,1122],{},"put_down_tip",[1093,1124,1125],{},"A channel returns a tip to a rack",[1093,1127,1128],{},"channel → tip slot",[1093,1130,1131,1109,1133,1109,1135],{},[1047,1132,1108],{},[1047,1134,1112],{},[1047,1136,1115],{},[1072,1138,1139,1144,1147,1150],{},[1093,1140,1141],{},[1047,1142,1143],{},"discard_tip",[1093,1145,1146],{},"A channel drops a tip into a waste",[1093,1148,1149],{},"channel → waste",[1093,1151,1152,1109,1154,1109,1156],{},[1047,1153,1108],{},[1047,1155,1112],{},[1047,1157,1158],{},"origin_slot",[1072,1160,1161,1166,1169,1172],{},[1093,1162,1163],{},[1047,1164,1165],{},"aspirate",[1093,1167,1168],{},"A channel draws liquid",[1093,1170,1171],{},"well or tube → channel",[1093,1173,1174,1109,1176,1109,1179,1109,1182],{},[1047,1175,1108],{},[1047,1177,1178],{},"volume_ul",[1047,1180,1181],{},"mixture",[1047,1183,1184],{},"liquid_class",[1072,1186,1187,1192,1195,1198],{},[1093,1188,1189],{},[1047,1190,1191],{},"dispense",[1093,1193,1194],{},"A channel expels liquid",[1093,1196,1197],{},"channel → well or tube",[1093,1199,1200,1109,1202,1109,1204,1109,1206],{},[1047,1201,1108],{},[1047,1203,1178],{},[1047,1205,1181],{},[1047,1207,1184],{},[1072,1209,1210,1215,1218,1221],{},[1093,1211,1212],{},[1047,1213,1214],{},"mix_in_place",[1093,1216,1217],{},"An aspirate or dispense mixes the well",[1093,1219,1220],{},"well → same well",[1093,1222,1223,1109,1225,1109,1227],{},[1047,1224,1108],{},[1047,1226,1178],{},[1047,1228,1229],{},"cycles",[1072,1231,1232,1237,1240,1243],{},[1093,1233,1234],{},[1047,1235,1236],{},"move_labware",[1093,1238,1239],{},"A gripper or the autoload moves labware",[1093,1241,1242],{},"site → site",[1093,1244,1245,1109,1248],{},[1047,1246,1247],{},"labware",[1047,1249,1250],{},"barcode",[1072,1252,1253,1258,1261,1264],{},[1093,1254,1255],{},[1047,1256,1257],{},"pick_up_tool",[1093,1259,1260],{},"Channels mount a tool, such as the CO-RE gripper",[1093,1262,1263],{},"tool park site → channel",[1093,1265,1266,1109,1269],{},[1047,1267,1268],{},"tool",[1047,1270,1271],{},"tool_type",[1072,1273,1274,1279,1282,1285],{},[1093,1275,1276],{},[1047,1277,1278],{},"put_down_tool",[1093,1280,1281],{},"Channels return the tool",[1093,1283,1284],{},"channel → tool park site",[1093,1286,1287,1109,1289],{},[1047,1288,1268],{},[1047,1290,1271],{},[1072,1292,1293,1298,1301,1304],{},[1093,1294,1295],{},[1047,1296,1297],{},"load_labware",[1093,1299,1300],{},"Labware is added to the instrument, or is on it at the start",[1093,1302,1303],{},"→ site",[1093,1305,1306,1109,1308],{},[1047,1307,1247],{},[1047,1309,1250],{},[1072,1311,1312,1317,1320,1323],{},[1093,1313,1314],{},[1047,1315,1316],{},"unload_labware",[1093,1318,1319],{},"Labware is removed from the instrument",[1093,1321,1322],{},"site →",[1093,1324,1325,1109,1327],{},[1047,1326,1247],{},[1047,1328,1250],{},[1072,1330,1331,1336,1339,1342],{},[1093,1332,1333],{},[1047,1334,1335],{},"seed_container",[1093,1337,1338],{},"Liquid is in a well with no recorded source",[1093,1340,1341],{},"→ well or tube",[1093,1343,1344,1109,1346],{},[1047,1345,1178],{},[1047,1347,1181],{},[1031,1349,1350,1352,1353,1356,1357,1359],{},[1047,1351,1178],{}," is the volume of liquid transferred. If it differs from the volume specified in your workflow code, ",[1047,1354,1355],{},"volume_requested_ul"," holds the requested volume. ",[1047,1358,1181],{}," lists the liquids that make up the transferred liquid, with the volume of each in microlitres.",[1031,1361,1362,1363,1368],{},"Each side of an event names the entity it interacts with (see ",[1364,1365,1367],"a",{"href":1366},"\u002Fconcepts\u002Fobserve\u002Fdata-lineage\u002F#entities","Entities"," for the kinds and their IDs).",[1031,1370,1371],{},"A tube is labware of its own, so a transfer names the tube. When a tube is loaded, the event names its slot in the tube rack or the carrier site it sits in.",[1373,1374,1376],"h3",{"id":1375},"how-entity-ids-are-constructed","How entity IDs are constructed",[1031,1378,1379],{},"A liquid handler's own parts carry its actor in their ID, like its channels do:",[1066,1381,1382,1395],{},[1069,1383,1384],{},[1072,1385,1386,1389,1392],{},[1075,1387,1388],{},"Part",[1075,1390,1391],{},"ID",[1075,1393,1394],{},"Example",[1088,1396,1397,1411,1429,1444,1459,1474],{},[1072,1398,1399,1401,1406],{},[1093,1400,303],{},[1093,1402,1403],{},[1047,1404,1405],{},"deck:\u003Cactor>",[1093,1407,1408],{},[1047,1409,1410],{},"deck:star",[1072,1412,1413,1416,1421],{},[1093,1414,1415],{},"Deck position",[1093,1417,1418],{},[1047,1419,1420],{},"deck:\u003Cactor>:\u003Cposition>",[1093,1422,1423,1109,1426],{},[1047,1424,1425],{},"deck:star:7",[1047,1427,1428],{},"deck:bravo:5",[1072,1430,1431,1434,1439],{},[1093,1432,1433],{},"Loading tray",[1093,1435,1436],{},[1047,1437,1438],{},"loading_tray:\u003Cactor>",[1093,1440,1441],{},[1047,1442,1443],{},"loading_tray:star",[1072,1445,1446,1449,1454],{},[1093,1447,1448],{},"Tray track",[1093,1450,1451],{},[1047,1452,1453],{},"loading_tray:\u003Cactor>:\u003Ctrack>",[1093,1455,1456],{},[1047,1457,1458],{},"loading_tray:star:7",[1072,1460,1461,1464,1469],{},[1093,1462,1463],{},"Tool park site",[1093,1465,1466],{},[1047,1467,1468],{},"park:\u003Cactor>:\u003Ctool>",[1093,1470,1471],{},[1047,1472,1473],{},"park:star:CO-RE gripper",[1072,1475,1476,1479,1484],{},[1093,1477,1478],{},"Waste",[1093,1480,1481],{},[1047,1482,1483],{},"waste:\u003Cactor>:\u003Cname>",[1093,1485,1486],{},[1047,1487,1488],{},"waste:star:WasteBlock",[1031,1490,1491,1492,1494,1495,1497],{},"What a deck position is depends on the liquid handler. A Hamilton carrier loads onto a deck track, ",[1047,1493,1425],{},", and a Bravo plate onto a deck location, ",[1047,1496,1428],{},".",[1031,1499,1500],{},"The wastes depend on the liquid handler too. A STAR has a waste for the channels and one for the 96 head. A Bravo discard names the deck position it drops the tips into.",[1502,1503,1506],"callout",{"color":1504,"icon":1505},"warning","i-heroicons-exclamation-triangle",[1031,1507,1508,1509,1109,1511,1109,1514,1109,1517,1520,1521,1524],{},"Don't use ",[1047,1510,1108],{},[1047,1512,1513],{},"deck",[1047,1515,1516],{},"loading_tray",[1047,1518,1519],{},"park"," or ",[1047,1522,1523],{},"waste"," as a labware identifier: the library refuses them.",[1373,1526,1528],{"id":1527},"labware-and-liquid-changes-without-robot-action","Labware and liquid changes without robot action",[1031,1530,1531,1532,1534,1535,1537],{},"At the first operation of a run, the library records a ",[1047,1533,1297],{}," event for each item on the deck, and a ",[1047,1536,1335],{}," event for each well that holds liquid in your deck setup. This is the starting state of the run. Labware you add later records its own load, and its liquid is seeded at that time.",[1031,1539,1540,1541,1544,1545,1547,1548,1551,1552,1554],{},"If your code adds liquid to a well on the deck with ",[1047,1542,1543],{},"add_liquid"," during the run, that is a ",[1047,1546,1335],{}," event too. If your code removes liquid outside a robot action, the library records an ",[1047,1549,1550],{},"audit"," event with the new volume. When liquid level detection finds a different volume than the model held, an ",[1047,1553,1550],{}," event corrects it the same way.",[1373,1556,1558],{"id":1557},"carriers-on-the-loading-tray","Carriers on the loading tray",[1031,1560,1561,1562,1564,1565,1567,1568,1570],{},"On a Hamilton STAR or Vantage, the loading tray is part of the instrument. When the autoload moves a carrier from the tray to the deck, the library records one ",[1047,1563,1236],{}," event, from ",[1047,1566,1458],{}," to ",[1047,1569,1425],{},". Unloading reverses it. The plates on the carrier keep their history.",[1031,1572,1573,1574,1577],{},"Labware you take off the deck, for example with ",[1047,1575,1576],{},"lh.deck.remove(plate)"," or by moving it onto a device with a gripper, is unloaded. Its wells' history ends there. If you load it again, the wells that hold liquid are seeded again from the model.",[1373,1579,1581],{"id":1580},"failures","Failures",[1031,1583,1584,1585,1588,1589,1592,1593,1595,1596,1599],{},"When an operation fails, the library records an ",[1047,1586,1587],{},"error"," event for each channel or item the operation didn't complete. The event has the same ",[1047,1590,1591],{},"operation",", source, and target as the successful one would have, plus ",[1047,1594,1587],{}," (the exception class) and ",[1047,1597,1598],{},"message"," in its extras. A cancelled operation is recorded the same way.",[1031,1601,1602,1603,1605,1606,1497],{},"On a partial failure, such as 8 channels aspirating where 2 fail on a clot, the 6 channels that moved liquid record ",[1047,1604,1165],{}," and the other 2 record ",[1047,1607,1587],{},[1061,1609,1611],{"id":1610},"next-steps","Next steps",[1041,1613,1614,1619,1624,1629,1634,1639],{},[1044,1615,1616,1618],{},[1364,1617,398],{"href":399},": what lineage is and how the Platform shows it.",[1044,1620,1621,1623],{},[1364,1622,177],{"href":178},": set up a workflow and check its events locally.",[1044,1625,1626,1628],{},[1364,1627,198],{"href":199}," from another system.",[1044,1630,1631,1633],{},[1364,1632,406],{"href":407},": when and how the SDK sends the events to the Platform.",[1044,1635,1636,1638],{},[1364,1637,181],{"href":182}," for devices the library doesn't drive.",[1044,1640,1641,1643],{},[1364,1642,219],{"href":220}," if your workflow records its own liquid-handling events.",{"title":1645,"searchDepth":1646,"depth":1647,"links":1648},"",1,2,[1649,1656],{"id":1063,"depth":1647,"text":1064,"children":1650},[1651,1653,1654,1655],{"id":1375,"depth":1652,"text":1376},3,{"id":1527,"depth":1652,"text":1528},{"id":1557,"depth":1652,"text":1558},{"id":1580,"depth":1652,"text":1581},{"id":1610,"depth":1647,"text":1611},"What the Liquid Handling SDK records during a run, and how the SDK sends the events.","md",{},true,"\u002Fconcepts\u002Fobserve\u002Flineage-from-liquid-handling",{"title":402,"description":1657},"explanation","JbYhRv2QLnqJj5aCzQl-9pLmXg4cQDG-tSMyQaSQKSw",[1666,1668],{"title":398,"description":1667,"path":399},"Follow material, samples, and labware through a workflow run.",{"title":406,"description":1669,"path":407},"When the SDK sends lineage events to the Platform, and what stays in memory.",1794221821319]