[{"data":1,"prerenderedAt":1993},["ShallowReactive",2],{"navigation":3,"\u002Fdevices\u002Fagilent-bravo":1042,"\u002Fdevices\u002Fagilent-bravo-surround":1988},[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":599,"body":1044,"description":1978,"device":1979,"extension":1982,"links":6,"meta":1983,"navigation":1452,"path":1984,"seo":1985,"stem":601,"type":1986,"__hash__":1987},"docs\u002F05.devices\u002F120.agilent-bravo.md",{"type":1045,"value":1046,"toc":1968},"minimark",[1047,1056,1064,1069,1158,1161,1164,1224,1228,1403,1406,1410,1416,1424,1673,1680,1720,1724,1727,1760,1764,1941,1945,1957,1961,1964],[1048,1049,1050,1051,1055],"p",{},"You'll go from a powered-on Bravo to an installed, initialized connector, and confirm it with one\nscript. The Agilent manuals cover instrument installation,\nmaintenance, and safety. To operate the instrument, see the\n",[1052,1053,1054],"a",{"href":752},"Agilent Bravo guides",".",[1048,1057,1058,1059,1063],{},"This page applies to connector version ",[1060,1061,1062],"code",{},"0.9.0"," and later.",[1065,1066,1068],"h2",{"id":1067},"what-you-need","What you need",[1070,1071,1072,1085],"table",{},[1073,1074,1075],"thead",{},[1076,1077,1078,1082],"tr",{},[1079,1080,1081],"th",{},"Item",[1079,1083,1084],{},"Detail",[1086,1087,1088,1097,1105,1117,1130,1138,1148],"tbody",{},[1076,1089,1090,1094],{},[1091,1092,1093],"td",{},"Instrument",[1091,1095,1096],{},"An Agilent Bravo with a 96LT, 96ST, or 384ST head, powered on. The gripper is retracted and the deck holds no loose labware. For a 96AM head, contact UniteLabs support before you start",[1076,1098,1099,1102],{},[1091,1100,1101],{},"Cable",[1091,1103,1104],{},"An Ethernet cable from the Bravo to the computer, or to a network both are on",[1076,1106,1107,1110],{},[1091,1108,1109],{},"Network",[1091,1111,1112,1113],{},"The Bravo's IP address, and a computer on the same subnet. See ",[1052,1114,1116],{"href":1115},"#connect-the-bravo-to-the-computer","Connect the Bravo to the computer",[1076,1118,1119,1121],{},[1091,1120,274],{},[1091,1122,1123,1126,1127,1129],{},[1124,1125,599],"strong",{}," from the UniteLabs registry, version ",[1060,1128,1062],{}," or later",[1076,1131,1132,1135],{},[1091,1133,1134],{},"Vendor software",[1091,1136,1137],{},"None. Close VWorks and any other program connected to the Bravo. If VWorks drove the Bravo since it was last powered on, power-cycle the Bravo first",[1076,1139,1140,1143],{},[1091,1141,1142],{},"Machine",[1091,1144,1145,1146],{},"Windows, Linux, or macOS running ",[1052,1147,24],{"href":25},[1076,1149,1150,1153],{},[1091,1151,1152],{},"Access",[1091,1154,1155,1156],{},"A tenant, the SDK, and the Liquid Handling SDK installed. See ",[1052,1157,15],{"href":21},[1065,1159,1116],{"id":1160},"connect-the-bravo-to-the-computer",[1048,1162,1163],{},"The Bravo talks to the connector over Ethernet, at a fixed IP address set on the Bravo's controller.\nThe computer needs an address on the same subnet to reach it.",[1165,1166,1167,1183,1186,1221],"ol",{},[1168,1169,1170,1171,1174,1175,1055],"li",{},"Find the Bravo's IP address and subnet mask. Start with ",[1060,1172,1173],{},"192.168.0.8",", the connector's default.\nIf the Bravo doesn't answer there, find its address with Bravo Diagnostics, as described in\nCreating and managing profiles in Agilent's\n",[1052,1176,1182],{"href":1177,"rel":1178,"target":1181},"https:\u002F\u002Fagilent.com\u002Fcs\u002Flibrary\u002Fusermanuals\u002Fpublic\u002FBravo_UserGuide_D0004797_RevC.pdf",[1179,1180],"nofollow","noopener","_blank","Bravo Platform User Guide",[1168,1184,1185],{},"Connect the Bravo's Ethernet cable to the computer, or to a network switch the computer is also\non.",[1168,1187,1188,1189,1191,1192,1195,1196,1199,1200],{},"On a direct cable, give the computer's Ethernet connection a static address in the Bravo's\nsubnet, with the same subnet mask and no gateway. For example, for a Bravo at ",[1060,1190,1173],{}," with\nthe mask ",[1060,1193,1194],{},"255.255.255.0",", use ",[1060,1197,1198],{},"192.168.0.10",":\n",[1201,1202,1203,1209,1215],"ul",{},[1168,1204,1205,1208],{},[1124,1206,1207],{},"Windows:"," Settings, Network & internet, Ethernet, IP assignment, Edit. Choose Manual and\nturn on IPv4.",[1168,1210,1211,1214],{},[1124,1212,1213],{},"macOS:"," System Settings, Network, Ethernet, Details, TCP\u002FIP. Set Configure IPv4 to\nManually.",[1168,1216,1217,1220],{},[1124,1218,1219],{},"Linux (GNOME):"," Settings, Network, the wired connection, IPv4. Choose Manual.",[1168,1222,1223],{},"With no gateway on the Ethernet connection, internet traffic keeps using your other connection.\nOn macOS, also keep Wi-Fi above Ethernet in the service order.",[1065,1225,1227],{"id":1226},"install-and-configure-the-connector","Install and configure the connector",[1165,1229,1230,1240,1357,1372,1375],{},[1168,1231,1232,1233,1235,1236,1239],{},"In GroundControl, add a device. Search the registry\nfor ",[1060,1234,599],{}," and download the newest release (",[1052,1237,1238],{"href":81},"how to add a connector",").",[1168,1241,1242,1243],{},"Fill in the general configuration:",[1070,1244,1245,1255],{},[1073,1246,1247],{},[1076,1248,1249,1252],{},[1079,1250,1251],{},"Field",[1079,1253,1254],{},"Value",[1086,1256,1257,1265,1275,1294,1302,1316,1326,1338,1346],{},[1076,1258,1259,1262],{},[1091,1260,1261],{},"Simulation Mode",[1091,1263,1264],{},"Off for the real instrument, which is the default",[1076,1266,1267,1270],{},[1091,1268,1269],{},"Bravo IP",[1091,1271,1272,1273],{},"The Bravo's IP address. The default is ",[1060,1274,1173],{},[1076,1276,1277,1280],{},[1091,1278,1279],{},"Head Type",[1091,1281,1282,1283,1286,1287,1290,1291],{},"The installed head: ",[1060,1284,1285],{},"96LT"," (the default), ",[1060,1288,1289],{},"96ST",", or ",[1060,1292,1293],{},"384ST",[1076,1295,1296,1299],{},[1091,1297,1298],{},"Head AD Counts",[1091,1300,1301],{},"Leave empty. The connector checks the head type when it connects and logs what it reads",[1076,1303,1304,1307],{},[1091,1305,1306],{},"Safe Z Height",[1091,1308,1309,1312,1313,1315],{},[1060,1310,1311],{},"0",", the default. Z ",[1060,1314,1311],{}," is the top of the head's travel, and the head moves in X and Y only above this height",[1076,1317,1318,1321],{},[1091,1319,1320],{},"Gripper Y Offset",[1091,1322,1323,1325],{},[1060,1324,1311],{},", the default. The gripper offset is set during calibration",[1076,1327,1328,1331],{},[1091,1329,1330],{},"Teachpoint Calibrations",[1091,1332,1333,1334,1337],{},"Leave empty. ",[1052,1335,1336],{"href":752},"Calibration"," sets the teachpoints. Edit them only through calibration",[1076,1339,1340,1343],{},[1091,1341,1342],{},"XML Config Path",[1091,1344,1345],{},"Leave empty. The connector uses the Agilent system configuration bundled for your head type. Set it only to a system configuration file from Agilent Service Utility for your instrument",[1076,1347,1348,1351],{},[1091,1349,1350],{},"Position Poll Interval",[1091,1352,1353,1356],{},[1060,1354,1355],{},"0.1",", the default",[1168,1358,1359,1360,1363,1364,1367,1368,1371],{},"Under ",[1124,1361,1362],{},"Local Network",", note the ",[1124,1365,1366],{},"Name",". Scripts find the connector by this name. It's\n",[1060,1369,1370],{},"Bravo"," by default, and this page uses that.",[1168,1373,1374],{},"Start the connector.",[1168,1376,1377,1378,1381,1382,1399,1402],{},"Check the logs. Expand the connector row in GroundControl, or open\n",[1060,1379,1380],{},"~\u002F.unitelabs\u002Fconnectors\u002F\u003Cconnector-id>\u002Fconnector.log",". Look for three things:",[1201,1383,1384,1390,1396],{},[1168,1385,1386,1389],{},[1060,1387,1388],{},"Connected to Bravo successfully",",",[1168,1391,1392,1393,1389],{},"A line confirming the head type, for example ",[1060,1394,1395],{},"Head type 96LT verified",[1168,1397,1398],{},"No errors logged during startup.",[1400,1401],"br",{},"If a move error was logged during startup, restart the connector before you continue.",[1048,1404,1405],{},"To change the configuration later, edit it in the existing connector row, save it, then restart the\nconnector. That keeps the connector's UUID, so the platform still recognizes it.",[1065,1407,1409],{"id":1408},"first-successful-test","First successful test",[1048,1411,1412,1413,1415],{},"The script initializes the Bravo with the Liquid Handling SDK and reads back where each axis is.\nRun it with the SDK authenticated (",[1052,1414,32],{"href":33},"),\nusing the connector's name from step 3.",[1417,1418,1421],"callout",{"color":1419,"icon":1420},"error","i-heroicons-shield-exclamation",[1048,1422,1423],{},"Initializing homes every axis that needs it, so the head and the gripper can move. Clear the deck of loose labware, and keep your hands outside the light curtain before you run the script.",[1425,1426,1432],"pre",{"className":1427,"code":1428,"filename":1429,"language":1430,"meta":1431,"style":1431},"language-python shiki shiki-themes github-light-high-contrast github-light-high-contrast github-dark-default","import asyncio\n\nfrom unitelabs.liquid_handling.agilent import Bravo\nfrom unitelabs.sdk import AsyncApiClient\n\n\nasync def main():\n    client = AsyncApiClient()\n    bravo = Bravo(name=\"Bravo\", client=client)\n\n    # Homes the axes that need it and switches the motors on\n    await bravo.initialize()\n\n    print(\"Connected:\", await bravo.is_connected())\n    for axis, position in (await bravo.get_all_positions()).items():\n        print(f\"{axis}: {position} mm\")\n\n\nasyncio.run(main())\n","first_connection.py","python","",[1060,1433,1434,1447,1454,1468,1481,1486,1491,1507,1519,1551,1556,1563,1572,1577,1598,1618,1657,1662,1667],{"__ignoreMap":1431},[1435,1436,1439,1443],"span",{"class":1437,"line":1438},"line",1,[1435,1440,1442],{"class":1441},"sxkbv","import",[1435,1444,1446],{"class":1445},"sc-9e"," asyncio\n",[1435,1448,1450],{"class":1437,"line":1449},2,[1435,1451,1453],{"emptyLinePlaceholder":1452},true,"\n",[1435,1455,1457,1460,1463,1465],{"class":1437,"line":1456},3,[1435,1458,1459],{"class":1441},"from",[1435,1461,1462],{"class":1445}," unitelabs.liquid_handling.agilent ",[1435,1464,1442],{"class":1441},[1435,1466,1467],{"class":1445}," Bravo\n",[1435,1469,1471,1473,1476,1478],{"class":1437,"line":1470},4,[1435,1472,1459],{"class":1441},[1435,1474,1475],{"class":1445}," unitelabs.sdk ",[1435,1477,1442],{"class":1441},[1435,1479,1480],{"class":1445}," AsyncApiClient\n",[1435,1482,1484],{"class":1437,"line":1483},5,[1435,1485,1453],{"emptyLinePlaceholder":1452},[1435,1487,1489],{"class":1437,"line":1488},6,[1435,1490,1453],{"emptyLinePlaceholder":1452},[1435,1492,1494,1497,1500,1504],{"class":1437,"line":1493},7,[1435,1495,1496],{"class":1441},"async",[1435,1498,1499],{"class":1441}," def",[1435,1501,1503],{"class":1502},"s4qFZ"," main",[1435,1505,1506],{"class":1445},"():\n",[1435,1508,1510,1513,1516],{"class":1437,"line":1509},8,[1435,1511,1512],{"class":1445},"    client ",[1435,1514,1515],{"class":1441},"=",[1435,1517,1518],{"class":1445}," AsyncApiClient()\n",[1435,1520,1522,1525,1527,1530,1534,1536,1540,1543,1546,1548],{"class":1437,"line":1521},9,[1435,1523,1524],{"class":1445},"    bravo ",[1435,1526,1515],{"class":1441},[1435,1528,1529],{"class":1445}," Bravo(",[1435,1531,1533],{"class":1532},"sNqAu","name",[1435,1535,1515],{"class":1441},[1435,1537,1539],{"class":1538},"sCx38","\"Bravo\"",[1435,1541,1542],{"class":1445},", ",[1435,1544,1545],{"class":1532},"client",[1435,1547,1515],{"class":1441},[1435,1549,1550],{"class":1445},"client)\n",[1435,1552,1554],{"class":1437,"line":1553},10,[1435,1555,1453],{"emptyLinePlaceholder":1452},[1435,1557,1559],{"class":1437,"line":1558},11,[1435,1560,1562],{"class":1561},"sIsDC","    # Homes the axes that need it and switches the motors on\n",[1435,1564,1566,1569],{"class":1437,"line":1565},12,[1435,1567,1568],{"class":1441},"    await",[1435,1570,1571],{"class":1445}," bravo.initialize()\n",[1435,1573,1575],{"class":1437,"line":1574},13,[1435,1576,1453],{"emptyLinePlaceholder":1452},[1435,1578,1580,1584,1587,1590,1592,1595],{"class":1437,"line":1579},14,[1435,1581,1583],{"class":1582},"sOiAX","    print",[1435,1585,1586],{"class":1445},"(",[1435,1588,1589],{"class":1538},"\"Connected:\"",[1435,1591,1542],{"class":1445},[1435,1593,1594],{"class":1441},"await",[1435,1596,1597],{"class":1445}," bravo.is_connected())\n",[1435,1599,1601,1604,1607,1610,1613,1615],{"class":1437,"line":1600},15,[1435,1602,1603],{"class":1441},"    for",[1435,1605,1606],{"class":1445}," axis, position ",[1435,1608,1609],{"class":1441},"in",[1435,1611,1612],{"class":1445}," (",[1435,1614,1594],{"class":1441},[1435,1616,1617],{"class":1445}," bravo.get_all_positions()).items():\n",[1435,1619,1621,1624,1626,1629,1632,1635,1638,1641,1644,1646,1649,1651,1654],{"class":1437,"line":1620},16,[1435,1622,1623],{"class":1582},"        print",[1435,1625,1586],{"class":1445},[1435,1627,1628],{"class":1441},"f",[1435,1630,1631],{"class":1538},"\"",[1435,1633,1634],{"class":1441},"{",[1435,1636,1637],{"class":1445},"axis",[1435,1639,1640],{"class":1441},"}",[1435,1642,1643],{"class":1538},": ",[1435,1645,1634],{"class":1441},[1435,1647,1648],{"class":1445},"position",[1435,1650,1640],{"class":1441},[1435,1652,1653],{"class":1538}," mm\"",[1435,1655,1656],{"class":1445},")\n",[1435,1658,1660],{"class":1437,"line":1659},17,[1435,1661,1453],{"emptyLinePlaceholder":1452},[1435,1663,1665],{"class":1437,"line":1664},18,[1435,1666,1453],{"emptyLinePlaceholder":1452},[1435,1668,1670],{"class":1437,"line":1669},19,[1435,1671,1672],{"class":1445},"asyncio.run(main())\n",[1048,1674,1675,1676,1679],{},"Run it with ",[1060,1677,1678],{},"uv run first_connection.py",". Expected:",[1201,1681,1682,1687,1710],{},[1168,1683,1684,1055],{},[1060,1685,1686],{},"Connected: True",[1168,1688,1689,1542,1692,1542,1695,1698,1699,1702,1703,1705,1706,1709],{},[1060,1690,1691],{},"x",[1060,1693,1694],{},"y",[1060,1696,1697],{},"z",", and ",[1060,1700,1701],{},"w"," close to ",[1060,1704,1311],{},", for example ",[1060,1707,1708],{},"0.0001",". That's the home position and the safest\nplace to start from.",[1168,1711,1712,1715,1716,1719],{},[1060,1713,1714],{},"gripper"," is the gap between the gripper jaws, and ",[1060,1717,1718],{},"gripper_z"," is the gripper's height.",[1065,1721,1723],{"id":1722},"next-steps","Next steps",[1048,1725,1726],{},"A fresh Bravo has no teachpoints, the known positions of its 9 deck locations. The Liquid\nHandling SDK loads them from the connector when it configures the Bravo, so pipetting starts after\ncalibration.",[1201,1728,1729,1735,1743,1750,1755],{},[1168,1730,1731,1734],{},[1052,1732,1733],{"href":752},"Calibrate the teachpoints",":\nbring a tip to the cross on one deck location and set the whole deck from it.",[1168,1736,1737,1739,1740,1742],{},[1052,1738,659],{"href":759}," and\n",[1052,1741,651],{"href":762},": the first liquid\nhandling scripts, once the teachpoints are set.",[1168,1744,1745,1739,1747,1749],{},[1052,1746,315],{"href":765},[1052,1748,768],{"href":769},": tune pipetting and move\nplates around the deck.",[1168,1751,1752,1754],{},[1052,1753,755],{"href":756},": bring the\nBravo back after a light-curtain break or an emergency stop.",[1168,1756,1757,1759],{},[1052,1758,295],{"href":296},": how the SDK models a liquid handler.",[1065,1761,1763],{"id":1762},"known-quirks-and-errors","Known quirks and errors",[1070,1765,1766,1779],{},[1073,1767,1768],{},[1076,1769,1770,1773,1776],{},[1079,1771,1772],{},"You see",[1079,1774,1775],{},"It means",[1079,1777,1778],{},"Do this",[1086,1780,1781,1796,1815,1826,1837,1852,1871,1885,1896,1911,1925],{},[1076,1782,1783,1786,1789],{},[1091,1784,1785],{},"A move fails right after the Bravo is powered on",[1091,1787,1788],{},"The axes haven't been homed since power-on. This is expected",[1091,1790,1791,1792,1795],{},"Run ",[1060,1793,1794],{},"await bravo.initialize()",". It homes them",[1076,1797,1798,1804,1807],{},[1091,1799,1800,1803],{},[1060,1801,1802],{},"Refusing to move BravoX: it is ..."," on a move command",[1091,1805,1806],{},"The axis isn't homed or is switched off, and the connector only moves axes that are ready",[1091,1808,1791,1809,1811,1812],{},[1060,1810,1794],{},", then ",[1060,1813,1814],{},"await bravo.activate()",[1076,1816,1817,1820,1823],{},[1091,1818,1819],{},"Initialization doesn't finish after VWorks ran",[1091,1821,1822],{},"The Bravo still holds state from the VWorks session",[1091,1824,1825],{},"Close VWorks, power-cycle the Bravo, restart the connector, then run the script again",[1076,1827,1828,1831,1834],{},[1091,1829,1830],{},"A move error in the connector log at startup",[1091,1832,1833],{},"A command from before the restart left an error on the controller",[1091,1835,1836],{},"Restart the connector, then run the script again",[1076,1838,1839,1844,1847],{},[1091,1840,1841],{},[1060,1842,1843],{},"Gripper Zg is extended past the safe plane",[1091,1845,1846],{},"The head only moves with the gripper retracted",[1091,1848,1791,1849,1851],{},[1060,1850,1814],{},". It parks the gripper, then try again",[1076,1853,1854,1857,1860],{},[1091,1855,1856],{},"The Bravo stops mid-run and the status light blinks red",[1091,1858,1859],{},"The light curtain was broken or the emergency stop was pressed",[1091,1861,1862,1863,1865,1866,1868,1869],{},"Clear the deck area, then run ",[1060,1864,1794],{}," and ",[1060,1867,1814],{},". See ",[1052,1870,755],{"href":756},[1076,1872,1873,1879,1882],{},[1091,1874,1875,1878],{},[1060,1876,1877],{},"Head type reported by firmware and configuration do not match"," in the log",[1091,1880,1881],{},"The Head Type in the configuration differs from the head the Bravo reports",[1091,1883,1884],{},"Set Head Type to the installed head and restart the connector",[1076,1886,1887,1890,1893],{},[1091,1888,1889],{},"The connector stops right after it starts",[1091,1891,1892],{},"The Teachpoint Calibrations field holds a value the connector can't read",[1091,1894,1895],{},"Clear the field, save, and start the connector again",[1076,1897,1898,1903,1906],{},[1091,1899,1900,1901],{},"The SDK finds no connector named ",[1060,1902,1370],{},[1091,1904,1905],{},"The name in the script differs from the connector's Local Network name",[1091,1907,1908,1909],{},"Use the name from GroundControl, under ",[1124,1910,1362],{},[1076,1912,1913,1916,1919],{},[1091,1914,1915],{},"The connector stays offline, or the log shows no connection to the Bravo",[1091,1917,1918],{},"The computer doesn't reach the Bravo's IP address",[1091,1920,1791,1921,1924],{},[1060,1922,1923],{},"ping \u003CBravo IP>",", then check the cable, the computer's network settings, and the Bravo IP in the configuration",[1076,1926,1927,1933,1938],{},[1091,1928,1929,1932],{},[1060,1930,1931],{},"IncompatibleConnectorError"," from the Liquid Handling SDK",[1091,1934,1935,1936],{},"The connector is older than ",[1060,1937,1062],{},[1091,1939,1940],{},"Update the connector in GroundControl and restart it",[1065,1942,1944],{"id":1943},"connector-reference","Connector reference",[1048,1946,1947,1948,1953,1954,1055],{},"Drive the Bravo from Python through the Liquid Handling SDK's\n",[1052,1949,1951],{"href":1950},"\u002Freference\u002Fpython-liquid-handling-sdk\u002Flatest\u002Fagilent\u002Fbravo\u002FBravo\u002F",[1060,1952,1370],{}," class. It runs the\nconnector's commands in the order the Bravo needs. Use the connector's own modules in GroundControl\nonly for ",[1052,1955,1956],{"href":752},"calibration",[1065,1958,1960],{"id":1959},"vendor-documentation","Vendor documentation",[1048,1962,1963],{},"Operating limits, deck accessories, maintenance, and safety are covered by Agilent's Bravo user\nguide. This page only covers getting the Bravo connected and tested.",[1965,1966,1967],"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 .s4qFZ, html code.shiki .s4qFZ{--shiki-light:#622CBC;--shiki-default:#622CBC;--shiki-dark:#D2A8FF}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":1431,"searchDepth":1438,"depth":1449,"links":1969},[1970,1971,1972,1973,1974,1975,1976,1977],{"id":1067,"depth":1449,"text":1068},{"id":1160,"depth":1449,"text":1116},{"id":1226,"depth":1449,"text":1227},{"id":1408,"depth":1449,"text":1409},{"id":1722,"depth":1449,"text":1723},{"id":1762,"depth":1449,"text":1763},{"id":1943,"depth":1449,"text":1944},{"id":1959,"depth":1449,"text":1960},"Get an Agilent Bravo connected through GroundControl, initialized, and confirmed from Python, ready for calibration.",{"slug":603,"vendor":511,"category":566,"connector":603,"package":604,"models":1980,"communication":596,"vendor_software":6,"os":1981},[606],[439,440,441],"md",{},"\u002Fdevices\u002Fagilent-bravo",{"title":599,"description":1978},"reference","S2l0ylpPMoi8aWO5J2DkuhXsY3AcW4hBP5yMtAlt3wc",[1989,1991],{"title":584,"description":1990,"path":585},"Get a Hamilton Microlab VANTAGE connected through GroundControl and confirm the connection from Python without moving the instrument.",{"title":613,"description":1992,"path":614},"Get a Brooks PreciseFlex 400 robot arm connected through GroundControl, with the connector installing its own controller software, and confirm the connection from Python.",1794397508474]