[{"data":1,"prerenderedAt":1647},["ShallowReactive",2],{"navigation":3,"\u002Fliquid-handling-and-robots\u002Fagilent-bravo\u002Fcalibrate-teach-points":1042,"\u002Fliquid-handling-and-robots\u002Fagilent-bravo\u002Fcalibrate-teach-points-surround":1641},[4,64,222,409,625,829,876],{"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},"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},"AI assistant","\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","\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},"Liquid handling lineage","\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},"UniteLabs SDK","\u002Fhow-to\u002Fmigrate\u002Fsdk\u002F","02.how-to\u002F10.migrate\u002F10.sdk",{"title":219,"path":220,"stem":221,"device":6},"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","\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","\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,608],{"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,598],{"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,"stem":601,"device":602},"Agilent Bravo","\u002Fdevices\u002Fagilent-bravo\u002F","05.devices\u002F120.agilent-bravo",{"slug":603,"vendor":511,"category":566,"connector":603,"package":604,"models":605,"communication":596,"vendor_software":6,"os":607},"agilent-bravo","unitelabs-agilent-bravo",[606],"Bravo with a 96LT, 96ST, or 384ST head",[439,440,441],{"title":609,"path":610,"page":47,"children":611},"Robots","\u002Fdevices\u002Frobots\u002F",[612],{"title":613,"path":614,"stem":615,"device":616},"Brooks PreciseFlex 400","\u002Fdevices\u002Fbrooks-preciseflex-400\u002F","05.devices\u002F95.brooks-preciseflex-400",{"slug":617,"vendor":618,"category":609,"connector":617,"package":619,"models":620,"communication":596,"vendor_software":6,"os":624},"brooks-preciseflex-400","Brooks Automation","unitelabs-brooks-preciseflex-400",[621,622,623],"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":626,"device":6,"path":627,"stem":628,"children":629,"page":47},"Liquid Handling and Robots","\u002Fliquid-handling-and-robots\u002F","06.liquid-handling-and-robots",[630,633,645,669,672,717,746,771,792,814],{"title":382,"path":631,"stem":632,"device":6},"\u002Fliquid-handling-and-robots\u002Foverview\u002F","06.liquid-handling-and-robots\u002F00.overview",{"title":303,"device":6,"path":634,"stem":635,"children":636,"page":47},"\u002Fliquid-handling-and-robots\u002Fdeck\u002F","06.liquid-handling-and-robots\u002F10.deck",[637,641],{"title":638,"path":639,"stem":640,"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":642,"path":643,"stem":644,"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":646,"device":6,"path":647,"stem":648,"children":649,"page":47},"Pipetting","\u002Fliquid-handling-and-robots\u002Fpipetting\u002F","06.liquid-handling-and-robots\u002F20.pipetting",[650,654,658,662,665],{"title":651,"path":652,"stem":653,"device":6},"Basic pipetting","\u002Fliquid-handling-and-robots\u002Fpipetting\u002Fbasic-pipetting\u002F","06.liquid-handling-and-robots\u002F20.pipetting\u002F10.basic-pipetting",{"title":655,"path":656,"stem":657,"device":6},"Advanced pipetting","\u002Fliquid-handling-and-robots\u002Fpipetting\u002Fadvanced-pipetting\u002F","06.liquid-handling-and-robots\u002F20.pipetting\u002F20.advanced-pipetting",{"title":659,"path":660,"stem":661,"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":663,"stem":664,"device":6},"\u002Fliquid-handling-and-robots\u002Fpipetting\u002Fliquid-classes\u002F","06.liquid-handling-and-robots\u002F20.pipetting\u002F40.liquid-classes",{"title":666,"path":667,"stem":668,"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":670,"stem":671,"device":6},"\u002Fliquid-handling-and-robots\u002Fsimulation\u002F","06.liquid-handling-and-robots\u002F30.simulation",{"title":673,"device":6,"path":674,"stem":675,"children":676,"page":47},"Hamilton STAR","\u002Fliquid-handling-and-robots\u002Fhamilton-star\u002F","06.liquid-handling-and-robots\u002F41.hamilton-star",[677,681,685,689,693,697,701,705,709,713],{"title":678,"path":679,"stem":680,"device":6},"Positioning & movement","\u002Fliquid-handling-and-robots\u002Fhamilton-star\u002Fpositioning\u002F","06.liquid-handling-and-robots\u002F41.hamilton-star\u002F10.positioning",{"title":682,"path":683,"stem":684,"device":6},"Gripper (CO-RE)","\u002Fliquid-handling-and-robots\u002Fhamilton-star\u002Fcore-gripper\u002F","06.liquid-handling-and-robots\u002F41.hamilton-star\u002F20.core-gripper",{"title":686,"path":687,"stem":688,"device":6},"Gripper (iSWAP)","\u002Fliquid-handling-and-robots\u002Fhamilton-star\u002Fiswap\u002F","06.liquid-handling-and-robots\u002F41.hamilton-star\u002F30.iswap",{"title":690,"path":691,"stem":692,"device":6},"Using TADM","\u002Fliquid-handling-and-robots\u002Fhamilton-star\u002Ftadm\u002F","06.liquid-handling-and-robots\u002F41.hamilton-star\u002F40.tadm",{"title":694,"path":695,"stem":696,"device":6},"Autoload module","\u002Fliquid-handling-and-robots\u002Fhamilton-star\u002Fautoload\u002F","06.liquid-handling-and-robots\u002F41.hamilton-star\u002F50.autoload",{"title":698,"path":699,"stem":700,"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":702,"path":703,"stem":704,"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":706,"path":707,"stem":708,"device":6},"Gripper positions (CO-RE)","\u002Fliquid-handling-and-robots\u002Fhamilton-star\u002Fgripper-positions\u002F","06.liquid-handling-and-robots\u002F41.hamilton-star\u002F70.gripper-positions",{"title":710,"path":711,"stem":712,"device":6},"Custom deck position","\u002Fliquid-handling-and-robots\u002Fhamilton-star\u002Fcustom-deck-position\u002F","06.liquid-handling-and-robots\u002F41.hamilton-star\u002F75.custom-deck-position",{"title":714,"path":715,"stem":716,"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":718,"device":6,"path":719,"stem":720,"children":721,"page":47},"Hamilton Vantage","\u002Fliquid-handling-and-robots\u002Fhamilton-vantage\u002F","06.liquid-handling-and-robots\u002F42.hamilton-vantage",[722,726,730,734,738,742],{"title":723,"path":724,"stem":725,"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":727,"path":728,"stem":729,"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":731,"path":732,"stem":733,"device":6},"IDL module","\u002Fliquid-handling-and-robots\u002Fhamilton-vantage\u002Fidl\u002F","06.liquid-handling-and-robots\u002F42.hamilton-vantage\u002F20.idl",{"title":735,"path":736,"stem":737,"device":6},"Gripper (IPG)","\u002Fliquid-handling-and-robots\u002Fhamilton-vantage\u002Fipg\u002F","06.liquid-handling-and-robots\u002F42.hamilton-vantage\u002F30.ipg",{"title":739,"path":740,"stem":741,"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":743,"path":744,"stem":745,"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":599,"device":6,"path":747,"stem":748,"children":749,"page":47},"\u002Fliquid-handling-and-robots\u002Fagilent-bravo\u002F","06.liquid-handling-and-robots\u002F43.agilent-bravo",[750,754,758,761,764,767],{"title":751,"path":752,"stem":753,"device":6},"Calibrate teachpoints","\u002Fliquid-handling-and-robots\u002Fagilent-bravo\u002Fcalibrate-teach-points\u002F","06.liquid-handling-and-robots\u002F43.agilent-bravo\u002F05.calibrate-teach-points",{"title":755,"path":756,"stem":757,"device":6},"Recover from a stop","\u002Fliquid-handling-and-robots\u002Fagilent-bravo\u002Frecover-from-a-stop\u002F","06.liquid-handling-and-robots\u002F43.agilent-bravo\u002F07.recover-from-a-stop",{"title":659,"path":759,"stem":760,"device":6},"\u002Fliquid-handling-and-robots\u002Fagilent-bravo\u002Ftip-handling\u002F","06.liquid-handling-and-robots\u002F43.agilent-bravo\u002F10.tip-handling",{"title":651,"path":762,"stem":763,"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":765,"stem":766,"device":6},"\u002Fliquid-handling-and-robots\u002Fagilent-bravo\u002Fliquid-classes\u002F","06.liquid-handling-and-robots\u002F43.agilent-bravo\u002F25.liquid-classes",{"title":768,"path":769,"stem":770,"device":6},"Gripper","\u002Fliquid-handling-and-robots\u002Fagilent-bravo\u002Fusing-the-gripper\u002F","06.liquid-handling-and-robots\u002F43.agilent-bravo\u002F30.using-the-gripper",{"title":772,"device":6,"path":773,"stem":774,"children":775,"page":47},"Tecan FluentControl","\u002Fliquid-handling-and-robots\u002Ftecan-fluentcontrol\u002F","06.liquid-handling-and-robots\u002F44.tecan-fluentcontrol",[776,780,784,788],{"title":777,"path":778,"stem":779,"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":781,"path":782,"stem":783,"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":785,"path":786,"stem":787,"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":789,"path":790,"stem":791,"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":793,"device":6,"path":794,"stem":795,"children":796,"page":47},"Tecan Freedom EVO","\u002Fliquid-handling-and-robots\u002Ftecan-freedom-evo\u002F","06.liquid-handling-and-robots\u002F45.tecan-freedom-evo",[797,801,804,807,811],{"title":798,"path":799,"stem":800,"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":659,"path":802,"stem":803,"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":651,"path":805,"stem":806,"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":808,"path":809,"stem":810,"device":6},"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":812,"stem":813,"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":613,"device":6,"path":815,"stem":816,"children":817,"page":47},"\u002Fliquid-handling-and-robots\u002Fbrooks-preciseflex-400\u002F","06.liquid-handling-and-robots\u002F46.brooks-preciseflex-400",[818,822,826],{"title":819,"path":820,"stem":821,"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":823,"path":824,"stem":825,"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":755,"path":827,"stem":828,"device":6},"\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":830,"stem":831,"children":832,"page":47},"\u002Flabware\u002F","07.labware",[833,836,840,844,848,852,856,860,864,872],{"title":382,"path":834,"stem":835,"device":6},"\u002Flabware\u002Foverview\u002F","07.labware\u002F00.overview",{"title":837,"path":838,"stem":839,"device":6},"Supported labware","\u002Flabware\u002Fsupported-labware\u002F","07.labware\u002F05.supported-labware",{"title":841,"path":842,"stem":843,"device":6},"Standard labware","\u002Flabware\u002Fstandard-labware\u002F","07.labware\u002F10.standard-labware",{"title":845,"path":846,"stem":847,"device":6},"Plates","\u002Flabware\u002Fplates\u002F","07.labware\u002F20.plates",{"title":849,"path":850,"stem":851,"device":6},"Tips and tip racks","\u002Flabware\u002Ftips-and-racks\u002F","07.labware\u002F30.tips-and-racks",{"title":853,"path":854,"stem":855,"device":6},"Tubes and tube racks","\u002Flabware\u002Ftubes-and-tube-racks\u002F","07.labware\u002F40.tubes-and-tube-racks",{"title":857,"path":858,"stem":859,"device":6},"Troughs","\u002Flabware\u002Ftroughs\u002F","07.labware\u002F50.troughs",{"title":861,"path":862,"stem":863,"device":6},"Carriers and adapters","\u002Flabware\u002Fcarriers-and-adapters\u002F","07.labware\u002F60.carriers-and-adapters",{"title":575,"device":6,"path":865,"stem":866,"children":867,"page":47},"\u002Flabware\u002Fhamilton\u002F","07.labware\u002F70.hamilton",[868],{"title":869,"path":870,"stem":871,"device":6},"Hamilton MFX carriers","\u002Flabware\u002Fhamilton\u002Fmfx-carriers\u002F","07.labware\u002F70.hamilton\u002F10.mfx-carriers",{"title":873,"path":874,"stem":875,"device":6},"Shapes","\u002Flabware\u002Fshapes\u002F","07.labware\u002F80.shapes",{"title":877,"device":6,"path":878,"stem":879,"children":880},"Connector Development (CDK)","\u002Fconnector-development\u002F","20.connector-development",[881,883,903,936,960,1016],{"title":382,"path":878,"stem":882,"device":6},"20.connector-development\u002Findex",{"title":884,"device":6,"path":885,"stem":886,"children":887,"page":47},"Getting started","\u002Fconnector-development\u002Fgetting-started\u002F","20.connector-development\u002F10.getting-started",[888,891,895,899],{"title":382,"path":889,"stem":890,"device":6},"\u002Fconnector-development\u002Fgetting-started\u002Foverview\u002F","20.connector-development\u002F10.getting-started\u002F10.overview",{"title":892,"path":893,"stem":894,"device":6},"What's new","\u002Fconnector-development\u002Fgetting-started\u002Fwhats-new\u002F","20.connector-development\u002F10.getting-started\u002F20.whats-new",{"title":896,"path":897,"stem":898,"device":6},"Installation","\u002Fconnector-development\u002Fgetting-started\u002Finstallation\u002F","20.connector-development\u002F10.getting-started\u002F30.installation",{"title":900,"path":901,"stem":902,"device":6},"Contributing","\u002Fconnector-development\u002Fgetting-started\u002Fcontributing\u002F","20.connector-development\u002F10.getting-started\u002F40.contributing",{"title":904,"device":6,"path":905,"stem":906,"children":907,"page":47},"Build a connector","\u002Fconnector-development\u002Ftutorial\u002F","20.connector-development\u002F20.tutorial",[908,912,916,920,924,928,932],{"title":909,"path":910,"stem":911,"device":6},"Walkthrough","\u002Fconnector-development\u002Ftutorial\u002Fwalkthrough\u002F","20.connector-development\u002F20.tutorial\u002F00.walkthrough",{"title":913,"path":914,"stem":915,"device":6},"SiLA endpoints","\u002Fconnector-development\u002Ftutorial\u002Fsila-endpoints\u002F","20.connector-development\u002F20.tutorial\u002F15.sila-endpoints",{"title":917,"path":918,"stem":919,"device":6},"Data endpoints","\u002Fconnector-development\u002Ftutorial\u002Fdata-endpoints\u002F","20.connector-development\u002F20.tutorial\u002F20.data-endpoints",{"title":921,"path":922,"stem":923,"device":6},"Controls","\u002Fconnector-development\u002Ftutorial\u002Fcontrols\u002F","20.connector-development\u002F20.tutorial\u002F30.controls",{"title":925,"path":926,"stem":927,"device":6},"SiLA data types","\u002Fconnector-development\u002Ftutorial\u002Fdata-types\u002F","20.connector-development\u002F20.tutorial\u002F40.data-types",{"title":929,"path":930,"stem":931,"device":6},"Hardware communication","\u002Fconnector-development\u002Ftutorial\u002Fhardware-communication\u002F","20.connector-development\u002F20.tutorial\u002F90.hardware-communication",{"title":933,"path":934,"stem":935,"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":937,"stem":938,"children":939,"page":47},"\u002Fconnector-development\u002Fconcepts\u002F","20.connector-development\u002F30.concepts",[940,944,948,952,956],{"title":941,"path":942,"stem":943,"device":6},"SiLA","\u002Fconnector-development\u002Fconcepts\u002Fsila\u002F","20.connector-development\u002F30.concepts\u002F00.sila",{"title":945,"path":946,"stem":947,"device":6},"Designing features","\u002Fconnector-development\u002Fconcepts\u002Ffeatures\u002F","20.connector-development\u002F30.concepts\u002F10.features",{"title":949,"path":950,"stem":951,"device":6},"Designing endpoints","\u002Fconnector-development\u002Fconcepts\u002Fsila-endpoints\u002F","20.connector-development\u002F30.concepts\u002F15.sila-endpoints",{"title":953,"path":954,"stem":955,"device":6},"Designing data types","\u002Fconnector-development\u002Fconcepts\u002Fdata-types\u002F","20.connector-development\u002F30.concepts\u002F20.data-types",{"title":957,"path":958,"stem":959,"device":6},"Connector architecture","\u002Fconnector-development\u002Fconcepts\u002Farchitecture\u002F","20.connector-development\u002F30.concepts\u002F30.architecture",{"title":961,"device":6,"path":962,"stem":963,"children":964,"page":47},"Guides","\u002Fconnector-development\u002Fguides\u002F","20.connector-development\u002F40.guides",[965,969,973,977,981,985,989,993,997,1001,1005,1008,1012],{"title":966,"path":967,"stem":968,"device":6},"Project structure","\u002Fconnector-development\u002Fguides\u002Fproject-structure\u002F","20.connector-development\u002F40.guides\u002F10.project-structure",{"title":970,"path":971,"stem":972,"device":6},"Configuration","\u002Fconnector-development\u002Fguides\u002Fconfiguration\u002F","20.connector-development\u002F40.guides\u002F20.configuration",{"title":974,"path":975,"stem":976,"device":6},"Logging","\u002Fconnector-development\u002Fguides\u002Flogging\u002F","20.connector-development\u002F40.guides\u002F21.logging",{"title":978,"path":979,"stem":980,"device":6},"Deployment","\u002Fconnector-development\u002Fguides\u002Fdeployment\u002F","20.connector-development\u002F40.guides\u002F30.deployment",{"title":982,"path":983,"stem":984,"device":6},"Security","\u002Fconnector-development\u002Fguides\u002Fsecurity\u002F","20.connector-development\u002F40.guides\u002F40.security",{"title":986,"path":987,"stem":988,"device":6},"Subscriptions","\u002Fconnector-development\u002Fguides\u002Fsubscriptions\u002F","20.connector-development\u002F40.guides\u002F45.subscriptions",{"title":990,"path":991,"stem":992,"device":6},"Execution modes","\u002Fconnector-development\u002Fguides\u002Fexecution-modes\u002F","20.connector-development\u002F40.guides\u002F46.execution-modes",{"title":994,"path":995,"stem":996,"device":6},"Constraints and units","\u002Fconnector-development\u002Fguides\u002Fconstraints-and-units\u002F","20.connector-development\u002F40.guides\u002F47.constraints-and-units",{"title":998,"path":999,"stem":1000,"device":6},"Device variants","\u002Fconnector-development\u002Fguides\u002Fdevice-variants\u002F","20.connector-development\u002F40.guides\u002F48.device-variants",{"title":1002,"path":1003,"stem":1004,"device":6},"Repeated modules","\u002Fconnector-development\u002Fguides\u002Frepeated-modules\u002F","20.connector-development\u002F40.guides\u002F49.repeated-modules",{"title":331,"path":1006,"stem":1007,"device":6},"\u002Fconnector-development\u002Fguides\u002Ferror-handling\u002F","20.connector-development\u002F40.guides\u002F50.error-handling",{"title":1009,"path":1010,"stem":1011,"device":6},"Serial troubleshooting","\u002Fconnector-development\u002Fguides\u002Fserial-troubleshooting\u002F","20.connector-development\u002F40.guides\u002F70.serial-troubleshooting",{"title":1013,"path":1014,"stem":1015,"device":6},"Testing","\u002Fconnector-development\u002Fguides\u002Ftesting\u002F","20.connector-development\u002F40.guides\u002F80.testing",{"title":1017,"device":6,"path":1018,"stem":1019,"children":1020},"References","\u002Fconnector-development\u002Freference\u002F","20.connector-development\u002F50.reference\u002Findex",[1021,1022,1026,1030,1034,1038],{"title":1017,"path":1018,"stem":1019,"device":6},{"title":1023,"path":1024,"stem":1025,"device":6},"Naming conventions","\u002Fconnector-development\u002Freference\u002Fnaming-conventions\u002F","20.connector-development\u002F50.reference\u002F10.naming-conventions",{"title":1027,"path":1028,"stem":1029,"device":6},"Docstring format","\u002Fconnector-development\u002Freference\u002Fdocstrings\u002F","20.connector-development\u002F50.reference\u002F20.docstrings",{"title":1031,"path":1032,"stem":1033,"device":6},"Feature metadata","\u002Fconnector-development\u002Freference\u002Ffeature-metadata\u002F","20.connector-development\u002F50.reference\u002F30.feature-metadata",{"title":1035,"path":1036,"stem":1037,"device":6},"Review checklist","\u002Fconnector-development\u002Freference\u002Freview-checklist\u002F","20.connector-development\u002F50.reference\u002F90.review-checklist",{"title":1039,"path":1040,"stem":1041,"device":6},"Python environment","\u002Fconnector-development\u002Freference\u002Fpython-environment-management\u002F","20.connector-development\u002F50.reference\u002F99.python-environment-management",{"id":1043,"title":1044,"body":1045,"description":1633,"device":6,"extension":1634,"links":6,"meta":1635,"navigation":1636,"path":1637,"seo":1638,"stem":753,"type":1639,"__hash__":1640},"docs\u002F06.liquid-handling-and-robots\u002F43.agilent-bravo\u002F05.calibrate-teach-points.md","Calibrate teachpoints on the Agilent Bravo",{"type":1046,"value":1047,"toc":1624},"minimark",[1048,1052,1058,1085,1090,1195,1208,1215,1219,1241,1245,1248,1300,1305,1309,1312,1384,1390,1393,1400,1406,1410,1425,1428,1436,1439,1588,1591,1595,1604,1608,1620],[1049,1050,1051],"p",{},"A fresh Bravo doesn't know where its 9 deck locations are. Each location has a teachpoint, an X,\nY, and Z position in millimeters that the head moves to. The Liquid Handling SDK loads the\nteachpoints from the connector when it configures the Bravo, so calibrate them once before the\nfirst pipetting run, and again after the Bravo or a deck accessory moves.",[1049,1053,1054],{},[1055,1056,1057],"strong",{},"Prerequisites",[1059,1060,1061,1069,1072,1075],"ul",{},[1062,1063,1064,1065],"li",{},"An Agilent Bravo, powered on, with its ",[1066,1067,1068],"a",{"href":600},"connector installed and initialized",[1062,1070,1071],{},"One tip of the type you'll pipette with, for example an Agilent 250 µL tip (LT250) on a 96LT head",[1062,1073,1074],{},"A clear deck, apart from accessories that stay on it, such as a shaker",[1062,1076,1077,1078,1080,1081,1084],{},"Access to the Bravo in the Platform's ",[1055,1079,410],{}," page or in GroundControl's ",[1055,1082,1083],{},"Operations"," tab",[1086,1087,1089],"h2",{"id":1088},"how-the-axes-move","How the axes move",[1091,1092,1093,1109],"table",{},[1094,1095,1096],"thead",{},[1097,1098,1099,1103,1106],"tr",{},[1100,1101,1102],"th",{},"Axis",[1100,1104,1105],{},"What it moves",[1100,1107,1108],{},"Direction",[1110,1111,1112,1126,1138,1157,1170,1183],"tbody",{},[1097,1113,1114,1121,1124],{},[1115,1116,1117],"td",{},[1118,1119,1120],"code",{},"BravoX",[1115,1122,1123],{},"The head, left and right",[1115,1125],{},[1097,1127,1128,1133,1136],{},[1115,1129,1130],{},[1118,1131,1132],{},"BravoY",[1115,1134,1135],{},"The head, front and back",[1115,1137],{},[1097,1139,1140,1145,1148],{},[1115,1141,1142],{},[1118,1143,1144],{},"BravoZ",[1115,1146,1147],{},"The head, up and down",[1115,1149,1150,1153,1154],{},[1118,1151,1152],{},"0"," is the top. A positive move goes ",[1055,1155,1156],{},"down",[1097,1158,1159,1164,1167],{},[1115,1160,1161],{},[1118,1162,1163],{},"BravoW",[1115,1165,1166],{},"The pipettor plunger, in mm of travel",[1115,1168,1169],{},"Calibration doesn't move it",[1097,1171,1172,1177,1180],{},[1115,1173,1174],{},[1118,1175,1176],{},"BravoG",[1115,1178,1179],{},"The gripper jaws",[1115,1181,1182],{},"Keep the gripper retracted while you calibrate",[1097,1184,1185,1190,1193],{},[1115,1186,1187],{},[1118,1188,1189],{},"BravoZg",[1115,1191,1192],{},"The gripper, up and down",[1115,1194,1182],{},[1196,1197,1200],"callout",{"color":1198,"icon":1199},"error","i-heroicons-shield-exclamation",[1049,1201,1202,1203,1207],{},"Move the head clear of the gripper before you close the gripper jaws. Jaws that close on the head clamp it, and freeing it takes a power-off. See ",[1066,1204,1206],{"href":1205},"\u002Fliquid-handling-and-robots\u002Fagilent-bravo\u002Frecover-from-a-stop\u002F#gripper-jaws-closed-on-the-head","Gripper jaws closed on the head",".",[1049,1209,1210,1211,1214],{},"Every position is in millimeters. After homing, the head sits at the top of Z, and positions read\nclose to zero, for example ",[1118,1212,1213],{},"0.0001",". That's expected, and it's the safest position to start from.",[1086,1216,1218],{"id":1217},"put-a-tip-on-the-a1-nozzle","Put a tip on the A1 nozzle",[1220,1221,1222,1229,1232],"ol",{},[1062,1223,1224,1225,1228],{},"In the gripper's Movement Controller, run ",[1055,1226,1227],{},"Retract",". The head only moves with the gripper\nretracted.",[1062,1230,1231],{},"Put one tip on the A1 nozzle by hand. When you set the teachpoints, you name the tip type, and\nthe connector adds that tip's length to the measured Z. The teachpoint then doesn't depend on\nthe tip you calibrated with.",[1062,1233,1234,1235,1238,1239,1207],{},"Your hand breaks the light curtain, and the Bravo switches its motors off. Run ",[1055,1236,1237],{},"Enable All\nAxes"," in the Device Controller before the next move. See\n",[1066,1240,755],{"href":756},[1086,1242,1244],{"id":1243},"bring-the-tip-to-the-cross","Bring the tip to the cross",[1049,1246,1247],{},"Each deck location has a cross that marks its teachpoint. Pick a location with nothing on it, for\nexample location 1, and note its number. You'll enter it when you set the teachpoints.",[1220,1249,1250,1277,1280,1294,1297],{},[1062,1251,1252,1253,1256,1257,1260,1261,1264,1265,1267,1268,1271,1272,1274,1275,1207],{},"Keep Z at the top while you move in X and Y. For larger steps, run ",[1055,1254,1255],{},"Move By"," in the head's\nMovement Controller with ",[1118,1258,1259],{},"Z"," and ",[1118,1262,1263],{},"W"," at ",[1118,1266,1152],{},", which leaves those axes where they are. For small\nsteps, run ",[1055,1269,1270],{},"Jog"," in the deck's Calibration Service on ",[1118,1273,1120],{}," or ",[1118,1276,1132],{},[1062,1278,1279],{},"Stop when the tip is right above the center of the cross. Check from the front and from the side.",[1062,1281,1282,1283,1285,1286,1289,1290,1293],{},"Jog ",[1118,1284,1144],{}," down with a distance of ",[1118,1287,1288],{},"1"," and the default velocity of ",[1118,1291,1292],{},"10"," mm\u002Fs. A positive\ndistance moves the head down.",[1062,1295,1296],{},"Repeat, and wait for each jog to finish before you send the next one. The connector runs one jog\nat a time and rejects another while one is running.",[1062,1298,1299],{},"When the tip is a few millimeters above the cross, use smaller distances until the tip just\ntouches its center.",[1196,1301,1302],{"color":1198,"icon":1199},[1049,1303,1304],{},"Jog moves an axis without the safety checks the other move commands run. A Z jog that's too large drives the tip into the deck. Start at 1 mm, go smaller near the cross, and keep the head at the top while you move in X and Y.",[1086,1306,1308],{"id":1307},"set-the-teachpoints","Set the teachpoints",[1049,1310,1311],{},"Both commands read the head's current position and take the same three inputs:",[1091,1313,1314,1323],{},[1094,1315,1316],{},[1097,1317,1318,1320],{},[1100,1319,359],{},[1100,1321,1322],{},"Value",[1110,1324,1325,1339,1369],{},[1097,1326,1327,1330],{},[1115,1328,1329],{},"Location",[1115,1331,1332,1333,1335,1336],{},"The deck location the tip is at, ",[1118,1334,1288],{}," to ",[1118,1337,1338],{},"9",[1097,1340,1341,1344],{},[1115,1342,1343],{},"Tip Extension",[1115,1345,1346,1347,1274,1350,1353,1354,1357,1358,1357,1361,1364,1365,1368],{},"The tip on the nozzle: ",[1118,1348,1349],{},"LT200",[1118,1351,1352],{},"LT250"," for a 96LT head, ",[1118,1355,1356],{},"ST10",", ",[1118,1359,1360],{},"ST30",[1118,1362,1363],{},"ST50",", or ",[1118,1366,1367],{},"ST70"," for ST heads",[1097,1370,1371,1374],{},[1115,1372,1373],{},"Save To Config",[1115,1375,1376,1379,1380,1383],{},[1118,1377,1378],{},"true",", so the teachpoints are written to ",[1118,1381,1382],{},"config.json"," and survive a connector restart",[1049,1385,1386,1389],{},[1055,1387,1388],{},"Calibrate Teachpoints"," sets all 9 locations from the one you're at. Use it on a fresh Bravo, or\nafter the whole Bravo moved.",[1049,1391,1392],{},"The Bravo deck is a 3 by 3 grid with fixed spacing, 186.69 mm between columns and 109.093 mm between\nrows. So the connector works out the other 8 positions from yours, and every location gets the same Z.",[1196,1394,1397],{"color":1395,"icon":1396},"warning","i-heroicons-exclamation-triangle",[1049,1398,1399],{},"Calibrate Teachpoints overwrites the teachpoints of all 9 locations. To adjust one location, use Calibrate Single Teachpoint.",[1049,1401,1402,1405],{},[1055,1403,1404],{},"Calibrate Single Teachpoint"," sets only the location you're at. Use it for a location that sits\nhigher or lower than the rest of the deck, for example one that holds a shaker or another device:\nbring the tip to that location's cross, then run it for that location.",[1086,1407,1409],{"id":1408},"check-the-teachpoints","Check the teachpoints",[1220,1411,1412,1419],{},[1062,1413,1414,1415,1418],{},"In the deck's Calibration Service, read ",[1055,1416,1417],{},"Teachpoints"," and check the X, Y, and Z of each\nlocation.",[1062,1420,1421,1422,1424],{},"Restart the connector and read ",[1055,1423,1417],{}," again. The values should be the same, which\nconfirms the connector saved them.",[1049,1426,1427],{},"A Z value that's too low makes tip pickup fail, because the head reaches teachpoint Z plus 1.8 mm.\nIf a tip touches the well bottom at a low dispense height, recalibrate that location's Z with\nCalibrate Single Teachpoint.",[1196,1429,1430],{"color":1395,"icon":1396},[1049,1431,1432,1433,1435],{},"Set teachpoints only with the Calibration Service commands on this page. The Teachpoint Calibrations field in GroundControl's configuration form and the connector's ",[1118,1434,1382],{}," hold the result, so leave them as the commands wrote them.",[1049,1437,1438],{},"Then confirm from Python that the SDK loads the teachpoints:",[1440,1441,1446],"pre",{"className":1442,"code":1443,"language":1444,"meta":1445,"style":1445},"language-python shiki shiki-themes github-light-high-contrast github-light-high-contrast github-dark-default","from unitelabs.sdk import AsyncApiClient\nfrom unitelabs.liquid_handling.agilent import Bravo\n\nclient = AsyncApiClient()\nbravo = Bravo(name=\"Bravo\", client=client)\n\n# configure() loads the teachpoints from the connector\nawait bravo.configure()\nfor location in range(1, 10):\n    print(location, bravo.deck.get_teachpoint(location))\n","python","",[1118,1447,1448,1467,1480,1487,1499,1530,1535,1542,1551,1579],{"__ignoreMap":1445},[1449,1450,1453,1457,1461,1464],"span",{"class":1451,"line":1452},"line",1,[1449,1454,1456],{"class":1455},"sxkbv","from",[1449,1458,1460],{"class":1459},"sc-9e"," unitelabs.sdk ",[1449,1462,1463],{"class":1455},"import",[1449,1465,1466],{"class":1459}," AsyncApiClient\n",[1449,1468,1470,1472,1475,1477],{"class":1451,"line":1469},2,[1449,1471,1456],{"class":1455},[1449,1473,1474],{"class":1459}," unitelabs.liquid_handling.agilent ",[1449,1476,1463],{"class":1455},[1449,1478,1479],{"class":1459}," Bravo\n",[1449,1481,1483],{"class":1451,"line":1482},3,[1449,1484,1486],{"emptyLinePlaceholder":1485},true,"\n",[1449,1488,1490,1493,1496],{"class":1451,"line":1489},4,[1449,1491,1492],{"class":1459},"client ",[1449,1494,1495],{"class":1455},"=",[1449,1497,1498],{"class":1459}," AsyncApiClient()\n",[1449,1500,1502,1505,1507,1510,1514,1516,1520,1522,1525,1527],{"class":1451,"line":1501},5,[1449,1503,1504],{"class":1459},"bravo ",[1449,1506,1495],{"class":1455},[1449,1508,1509],{"class":1459}," Bravo(",[1449,1511,1513],{"class":1512},"sNqAu","name",[1449,1515,1495],{"class":1455},[1449,1517,1519],{"class":1518},"sCx38","\"Bravo\"",[1449,1521,1357],{"class":1459},[1449,1523,1524],{"class":1512},"client",[1449,1526,1495],{"class":1455},[1449,1528,1529],{"class":1459},"client)\n",[1449,1531,1533],{"class":1451,"line":1532},6,[1449,1534,1486],{"emptyLinePlaceholder":1485},[1449,1536,1538],{"class":1451,"line":1537},7,[1449,1539,1541],{"class":1540},"sIsDC","# configure() loads the teachpoints from the connector\n",[1449,1543,1545,1548],{"class":1451,"line":1544},8,[1449,1546,1547],{"class":1455},"await",[1449,1549,1550],{"class":1459}," bravo.configure()\n",[1449,1552,1554,1557,1560,1563,1567,1570,1572,1574,1576],{"class":1451,"line":1553},9,[1449,1555,1556],{"class":1455},"for",[1449,1558,1559],{"class":1459}," location ",[1449,1561,1562],{"class":1455},"in",[1449,1564,1566],{"class":1565},"sOiAX"," range",[1449,1568,1569],{"class":1459},"(",[1449,1571,1288],{"class":1565},[1449,1573,1357],{"class":1459},[1449,1575,1292],{"class":1565},[1449,1577,1578],{"class":1459},"):\n",[1449,1580,1582,1585],{"class":1451,"line":1581},10,[1449,1583,1584],{"class":1565},"    print",[1449,1586,1587],{"class":1459},"(location, bravo.deck.get_teachpoint(location))\n",[1049,1589,1590],{},"Expected: 9 locations, each with the X, Y, and Z you saw in Teachpoints.",[1086,1592,1594],{"id":1593},"set-the-gripper-offset","Set the gripper offset",[1049,1596,1597,1598,1601,1602,1207],{},"If the gripper picks up plates off-center front to back, run ",[1055,1599,1600],{},"Set Gripper Y Offset"," in the\ngripper's Calibration Service. The offset is in millimeters, and a positive value moves the gripper\nforward. The connector saves it to ",[1118,1603,1382],{},[1086,1605,1607],{"id":1606},"next-steps","Next steps",[1059,1609,1610,1615],{},[1062,1611,1612,1614],{},[1066,1613,755],{"href":756},": what to do\nafter a light-curtain break or an emergency stop.",[1062,1616,1617,1619],{},[1066,1618,659],{"href":759},": pick up and drop tips\nwith the calibrated deck.",[1621,1622,1623],"style",{},"html pre.shiki code .sxkbv, html code.shiki .sxkbv{--shiki-light:#A0111F;--shiki-default:#A0111F;--shiki-dark:#FF7B72}html pre.shiki code .sc-9e, html code.shiki .sc-9e{--shiki-light:#0E1116;--shiki-default:#0E1116;--shiki-dark:#E6EDF3}html pre.shiki code .sNqAu, html code.shiki .sNqAu{--shiki-light:#702C00;--shiki-default:#702C00;--shiki-dark:#FFA657}html pre.shiki code .sCx38, html code.shiki .sCx38{--shiki-light:#032563;--shiki-default:#032563;--shiki-dark:#A5D6FF}html pre.shiki code .sIsDC, html code.shiki .sIsDC{--shiki-light:#66707B;--shiki-default:#66707B;--shiki-dark:#8B949E}html pre.shiki code .sOiAX, html code.shiki .sOiAX{--shiki-light:#023B95;--shiki-default:#023B95;--shiki-dark:#79C0FF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":1445,"searchDepth":1452,"depth":1469,"links":1625},[1626,1627,1628,1629,1630,1631,1632],{"id":1088,"depth":1469,"text":1089},{"id":1217,"depth":1469,"text":1218},{"id":1243,"depth":1469,"text":1244},{"id":1307,"depth":1469,"text":1308},{"id":1408,"depth":1469,"text":1409},{"id":1593,"depth":1469,"text":1594},{"id":1606,"depth":1469,"text":1607},"Set the Bravo's deck positions from the cross on one location, adjust single locations, and check the result.","md",{},{"title":751},"\u002Fliquid-handling-and-robots\u002Fagilent-bravo\u002Fcalibrate-teach-points",{"title":1044,"description":1633},"howto","fxOezL9WeK5wIv6ngCVGywTN-RLZR3jDheLMTh8nM0Y",[1642,1644],{"title":743,"description":1643,"path":744},"Use the CO-RE 96 head on the Hamilton Vantage.",{"title":1645,"description":1646,"path":756},"Recover from a stop on the Agilent Bravo","Bring the Bravo back after a light-curtain break or an emergency stop, and clear the gripper safe-plane error.",1794397514073]