[{"data":1,"prerenderedAt":1189},["ShallowReactive",2],{"navigation":3,"\u002Fintegrate\u002Fconnect-a-device\u002Fvia-groundcontrol":775,"\u002Fintegrate\u002Fconnect-a-device\u002Fvia-groundcontrol-surround":1184},[4,80,155,385,449,551,588,667],{"title":5,"path":6,"stem":7,"children":8,"page":42},"Get Started","\u002Fget-started","01.get-started",[9,13,17,43,47],{"title":10,"path":11,"stem":12},"Welcome to UniteLabs","\u002Fget-started\u002Fwelcome","01.get-started\u002F00.welcome",{"title":14,"path":15,"stem":16},"How it works","\u002Fget-started\u002Fhow-it-works","01.get-started\u002F01.how-it-works",{"title":18,"path":19,"stem":20,"children":21,"page":42},"Use Cases","\u002Fget-started\u002Fuse-cases","01.get-started\u002F02.use-cases",[22,26,30,34,38],{"title":23,"path":24,"stem":25},"Instrument Control","\u002Fget-started\u002Fuse-cases\u002Flow-level-instrument-control","01.get-started\u002F02.use-cases\u002F10.low-level-instrument-control",{"title":27,"path":28,"stem":29},"Multi-device Control","\u002Fget-started\u002Fuse-cases\u002Fmulti-device-control","01.get-started\u002F02.use-cases\u002F20.multi-device-control",{"title":31,"path":32,"stem":33},"Workflow Orchestration","\u002Fget-started\u002Fuse-cases\u002Fworkflow-orchestration","01.get-started\u002F02.use-cases\u002F30.workflow-orchestration",{"title":35,"path":36,"stem":37},"Custom Apps and LIMS Integration","\u002Fget-started\u002Fuse-cases\u002Fcustom-apps-lims","01.get-started\u002F02.use-cases\u002F40.custom-apps-lims",{"title":39,"path":40,"stem":41},"Scale and Fleet Management","\u002Fget-started\u002Fuse-cases\u002Fscale-and-fleet","01.get-started\u002F02.use-cases\u002F50.scale-and-fleet",false,{"title":44,"path":45,"stem":46},"Lab as Code","\u002Fget-started\u002Fwhy-code","01.get-started\u002F03.why-code",{"title":48,"path":49,"stem":50,"children":51,"page":42},"Setup","\u002Fget-started\u002Fsetup","01.get-started\u002F20.setup",[52,56,60,64,68,72,76],{"title":53,"path":54,"stem":55},"GroundControl","\u002Fget-started\u002Fsetup\u002Fgroundcontrol","01.get-started\u002F20.setup\u002F10.groundcontrol",{"title":57,"path":58,"stem":59},"Network requirements","\u002Fget-started\u002Fsetup\u002Fnetwork-requirements","01.get-started\u002F20.setup\u002F20.network-requirements",{"title":61,"path":62,"stem":63},"Multi-device Networking","\u002Fget-started\u002Fsetup\u002Fmultiple-devices","01.get-started\u002F20.setup\u002F30.multiple-devices",{"title":65,"path":66,"stem":67},"Connect to Platform","\u002Fget-started\u002Fsetup\u002Fconnect-to-platform","01.get-started\u002F20.setup\u002F40.connect-to-platform",{"title":69,"path":70,"stem":71},"Headless install","\u002Fget-started\u002Fsetup\u002Fheadless-install","01.get-started\u002F20.setup\u002F50.headless-install",{"title":73,"path":74,"stem":75},"Raspberry Pi","\u002Fget-started\u002Fsetup\u002Fraspberry-pi","01.get-started\u002F20.setup\u002F55.raspberry-pi",{"title":77,"path":78,"stem":79},"Installation","\u002Fget-started\u002Fsetup\u002Fsdk-installation","01.get-started\u002F20.setup\u002F60.sdk-installation",{"title":81,"path":82,"stem":83,"children":84,"page":42},"Integrate","\u002Fintegrate","02.integrate",[85,89,93,118,139],{"title":86,"path":87,"stem":88},"What is a connector?","\u002Fintegrate\u002Fwhat-is-a-connector","02.integrate\u002F00.what-is-a-connector",{"title":90,"path":91,"stem":92},"Calling a Connector","\u002Fintegrate\u002Fcontrol-with-code","02.integrate\u002F05.control-with-code",{"title":94,"path":95,"stem":96,"children":97,"page":42},"Concepts","\u002Fintegrate\u002Fconcepts","02.integrate\u002F10.concepts",[98,102,106,110,114],{"title":99,"path":100,"stem":101},"Connector","\u002Fintegrate\u002Fconcepts\u002Fconnector","02.integrate\u002F10.concepts\u002F10.connector",{"title":103,"path":104,"stem":105},"Module","\u002Fintegrate\u002Fconcepts\u002Fmodule","02.integrate\u002F10.concepts\u002F20.module",{"title":107,"path":108,"stem":109},"Action","\u002Fintegrate\u002Fconcepts\u002Faction","02.integrate\u002F10.concepts\u002F30.action",{"title":111,"path":112,"stem":113},"Subscription","\u002Fintegrate\u002Fconcepts\u002Fsubscription","02.integrate\u002F10.concepts\u002F40.subscription",{"title":115,"path":116,"stem":117},"Device","\u002Fintegrate\u002Fconcepts\u002Fdevice","02.integrate\u002F10.concepts\u002F50.device",{"title":119,"path":120,"stem":121,"children":122,"page":42},"Connect a device","\u002Fintegrate\u002Fconnect-a-device","02.integrate\u002F20.connect-a-device",[123,127,131,135],{"title":124,"path":125,"stem":126},"Via GroundControl","\u002Fintegrate\u002Fconnect-a-device\u002Fvia-groundcontrol","02.integrate\u002F20.connect-a-device\u002F10.via-groundcontrol",{"title":128,"path":129,"stem":130},"With an executable","\u002Fintegrate\u002Fconnect-a-device\u002Fwith-an-executable","02.integrate\u002F20.connect-a-device\u002F20.with-an-executable",{"title":132,"path":133,"stem":134},"From source","\u002Fintegrate\u002Fconnect-a-device\u002Ffrom-source","02.integrate\u002F20.connect-a-device\u002F30.from-source",{"title":136,"path":137,"stem":138},"Build your own","\u002Fintegrate\u002Fconnect-a-device\u002Fbuild-yourself","02.integrate\u002F20.connect-a-device\u002F40.build-yourself",{"title":140,"path":141,"stem":142,"children":143,"page":42},"Use a connector","\u002Fintegrate\u002Fuse-a-connector","02.integrate\u002F30.use-a-connector",[144,147,151],{"title":53,"path":145,"stem":146},"\u002Fintegrate\u002Fuse-a-connector\u002Fgroundcontrol","02.integrate\u002F30.use-a-connector\u002F10.groundcontrol",{"title":148,"path":149,"stem":150},"Platform","\u002Fintegrate\u002Fuse-a-connector\u002Fplatform","02.integrate\u002F30.use-a-connector\u002F20.platform",{"title":152,"path":153,"stem":154},"UniteLabs SDK & REST API","\u002Fintegrate\u002Fuse-a-connector\u002Fpython","02.integrate\u002F30.use-a-connector\u002F30.python",{"title":156,"path":157,"stem":158,"children":159,"page":42},"Operate","\u002Foperate","03.operate",[160,163,167,207,280],{"title":156,"path":161,"stem":162},"\u002Foperate\u002Foverview","03.operate\u002F00.overview",{"title":164,"path":165,"stem":166},"Your First Protocol","\u002Foperate\u002Fyour-first-protocol","03.operate\u002F05.your-first-protocol",{"title":94,"path":168,"stem":169,"children":170,"page":42},"\u002Foperate\u002Fconcepts","03.operate\u002F10.concepts",[171,175,179,183,187,191,195,199,203],{"title":172,"path":173,"stem":174},"Liquid Handling","\u002Foperate\u002Fconcepts\u002Fliquid-handling","03.operate\u002F10.concepts\u002F10.liquid-handling",{"title":176,"path":177,"stem":178},"Modules","\u002Foperate\u002Fconcepts\u002Fmodules","03.operate\u002F10.concepts\u002F20.modules",{"title":180,"path":181,"stem":182},"Deck","\u002Foperate\u002Fconcepts\u002Fdeck","03.operate\u002F10.concepts\u002F30.deck",{"title":184,"path":185,"stem":186},"Labware","\u002Foperate\u002Fconcepts\u002Flabware","03.operate\u002F10.concepts\u002F40.labware",{"title":188,"path":189,"stem":190},"Liquids","\u002Foperate\u002Fconcepts\u002Fliquids","03.operate\u002F10.concepts\u002F50.liquids",{"title":192,"path":193,"stem":194},"Liquid Classes","\u002Foperate\u002Fconcepts\u002Fliquid-classes","03.operate\u002F10.concepts\u002F60.liquid-classes",{"title":196,"path":197,"stem":198},"Tips and Tip Tracking","\u002Foperate\u002Fconcepts\u002Ftips","03.operate\u002F10.concepts\u002F70.tips",{"title":200,"path":201,"stem":202},"Simulation","\u002Foperate\u002Fconcepts\u002Fsimulation","03.operate\u002F10.concepts\u002F80.simulation",{"title":204,"path":205,"stem":206},"Error Handling","\u002Foperate\u002Fconcepts\u002Ferror-handling","03.operate\u002F10.concepts\u002F90.error-handling",{"title":208,"path":209,"stem":210,"children":211,"page":42},"Guides","\u002Foperate\u002Fguides","03.operate\u002F20.guides",[212,241,253,277],{"title":184,"path":213,"stem":214,"children":215},"\u002Foperate\u002Fguides\u002Flabware","03.operate\u002F20.guides\u002F10.labware\u002Findex",[216,217,221,225,229,233,237],{"title":184,"path":213,"stem":214},{"title":218,"path":219,"stem":220},"Standard Labware","\u002Foperate\u002Fguides\u002Flabware\u002Fstandard-labware","03.operate\u002F20.guides\u002F10.labware\u002F05.standard-labware",{"title":222,"path":223,"stem":224},"Plates","\u002Foperate\u002Fguides\u002Flabware\u002Fplates","03.operate\u002F20.guides\u002F10.labware\u002F10.plates",{"title":226,"path":227,"stem":228},"Tips and Tip Racks","\u002Foperate\u002Fguides\u002Flabware\u002Ftips-and-racks","03.operate\u002F20.guides\u002F10.labware\u002F20.tips-and-racks",{"title":230,"path":231,"stem":232},"Tubes and Tube Racks","\u002Foperate\u002Fguides\u002Flabware\u002Ftubes-and-tube-racks","03.operate\u002F20.guides\u002F10.labware\u002F30.tubes-and-tube-racks",{"title":234,"path":235,"stem":236},"Troughs","\u002Foperate\u002Fguides\u002Flabware\u002Ftroughs","03.operate\u002F20.guides\u002F10.labware\u002F35.troughs",{"title":238,"path":239,"stem":240},"Carriers and Adapters","\u002Foperate\u002Fguides\u002Flabware\u002Fcarriers-and-adapters","03.operate\u002F20.guides\u002F10.labware\u002F40.carriers-and-adapters",{"title":180,"path":242,"stem":243,"children":244,"page":42},"\u002Foperate\u002Fguides\u002Fdeck","03.operate\u002F20.guides\u002F20.deck",[245,249],{"title":246,"path":247,"stem":248},"Building a Deck","\u002Foperate\u002Fguides\u002Fdeck\u002Fbuilding-a-deck","03.operate\u002F20.guides\u002F20.deck\u002F10.building-a-deck",{"title":250,"path":251,"stem":252},"Save\u002FLoad a Deck","\u002Foperate\u002Fguides\u002Fdeck\u002Fsave-load-deck","03.operate\u002F20.guides\u002F20.deck\u002F20.save-load-deck",{"title":254,"path":255,"stem":256,"children":257,"page":42},"Pipetting","\u002Foperate\u002Fguides\u002Fpipetting","03.operate\u002F20.guides\u002F30.pipetting",[258,262,266,270,273],{"title":259,"path":260,"stem":261},"Basic Pipetting","\u002Foperate\u002Fguides\u002Fpipetting\u002Fbasic-pipetting","03.operate\u002F20.guides\u002F30.pipetting\u002F10.basic-pipetting",{"title":263,"path":264,"stem":265},"Advanced Pipetting","\u002Foperate\u002Fguides\u002Fpipetting\u002Fadvanced-pipetting","03.operate\u002F20.guides\u002F30.pipetting\u002F20.advanced-pipetting",{"title":267,"path":268,"stem":269},"Tip Handling","\u002Foperate\u002Fguides\u002Fpipetting\u002Ftip-handling","03.operate\u002F20.guides\u002F30.pipetting\u002F30.tip-handling",{"title":192,"path":271,"stem":272},"\u002Foperate\u002Fguides\u002Fpipetting\u002Fliquid-classes","03.operate\u002F20.guides\u002F30.pipetting\u002F40.liquid-classes",{"title":274,"path":275,"stem":276},"Labware Transport","\u002Foperate\u002Fguides\u002Fpipetting\u002Flabware-transport","03.operate\u002F20.guides\u002F30.pipetting\u002F50.labware-transport",{"title":200,"path":278,"stem":279},"\u002Foperate\u002Fguides\u002Fsimulation","03.operate\u002F20.guides\u002F40.simulation",{"title":281,"path":282,"stem":283,"children":284,"page":42},"Liquid Handler Guides","\u002Foperate\u002Fdevices","03.operate\u002F30.devices",[285,326,351,368],{"title":286,"path":287,"stem":288,"children":289,"page":42},"Hamilton STAR","\u002Foperate\u002Fdevices\u002Fhamilton-star","03.operate\u002F30.devices\u002F10.hamilton-star",[290,294,298,302,306,310,314,318,322],{"title":291,"path":292,"stem":293},"Positioning & Movement","\u002Foperate\u002Fdevices\u002Fhamilton-star\u002Fpositioning","03.operate\u002F30.devices\u002F10.hamilton-star\u002F10.positioning",{"title":295,"path":296,"stem":297},"Gripper Module","\u002Foperate\u002Fdevices\u002Fhamilton-star\u002Fcore-gripper","03.operate\u002F30.devices\u002F10.hamilton-star\u002F20.core-gripper",{"title":299,"path":300,"stem":301},"iSWAP Module","\u002Foperate\u002Fdevices\u002Fhamilton-star\u002Fiswap","03.operate\u002F30.devices\u002F10.hamilton-star\u002F30.iswap",{"title":303,"path":304,"stem":305},"Using TADM","\u002Foperate\u002Fdevices\u002Fhamilton-star\u002Ftadm","03.operate\u002F30.devices\u002F10.hamilton-star\u002F40.tadm",{"title":307,"path":308,"stem":309},"Autoload Module","\u002Foperate\u002Fdevices\u002Fhamilton-star\u002Fautoload","03.operate\u002F30.devices\u002F10.hamilton-star\u002F50.autoload",{"title":311,"path":312,"stem":313},"Waste Block","\u002Foperate\u002Fdevices\u002Fhamilton-star\u002Fwaste-block","03.operate\u002F30.devices\u002F10.hamilton-star\u002F60.waste-block",{"title":315,"path":316,"stem":317},"Complex Mixing","\u002Foperate\u002Fdevices\u002Fhamilton-star\u002Fcomplex-mixing","03.operate\u002F30.devices\u002F10.hamilton-star\u002F66.complex-mixing",{"title":319,"path":320,"stem":321},"Teaching Gripper Paddle Positions","\u002Foperate\u002Fdevices\u002Fhamilton-star\u002Fgripper-positions","03.operate\u002F30.devices\u002F10.hamilton-star\u002F70.gripper-positions",{"title":323,"path":324,"stem":325},"Training a Custom Deck Position With the iSWAP","\u002Foperate\u002Fdevices\u002Fhamilton-star\u002Fcustom-deck-position","03.operate\u002F30.devices\u002F10.hamilton-star\u002F75.custom-deck-position",{"title":327,"path":328,"stem":329,"children":330,"page":42},"Hamilton Vantage","\u002Foperate\u002Fdevices\u002Fhamilton-vantage","03.operate\u002F30.devices\u002F20.hamilton-vantage",[331,335,339,343,347],{"title":332,"path":333,"stem":334},"Waste Configuration","\u002Foperate\u002Fdevices\u002Fhamilton-vantage\u002Fwaste-configuration","03.operate\u002F30.devices\u002F20.hamilton-vantage\u002F05.waste-configuration",{"title":336,"path":337,"stem":338},"Covers and Lights","\u002Foperate\u002Fdevices\u002Fhamilton-vantage\u002Fcovers-and-lights","03.operate\u002F30.devices\u002F20.hamilton-vantage\u002F10.covers-and-lights",{"title":340,"path":341,"stem":342},"IDL Module","\u002Foperate\u002Fdevices\u002Fhamilton-vantage\u002Fidl","03.operate\u002F30.devices\u002F20.hamilton-vantage\u002F20.idl",{"title":344,"path":345,"stem":346},"IPG Module","\u002Foperate\u002Fdevices\u002Fhamilton-vantage\u002Fipg","03.operate\u002F30.devices\u002F20.hamilton-vantage\u002F30.ipg",{"title":348,"path":349,"stem":350},"XL Pipettes","\u002Foperate\u002Fdevices\u002Fhamilton-vantage\u002Fxl-channels","03.operate\u002F30.devices\u002F20.hamilton-vantage\u002F40.xl-channels",{"title":352,"path":353,"stem":354,"children":355,"page":42},"Agilent Bravo","\u002Foperate\u002Fdevices\u002Fagilent-bravo","03.operate\u002F30.devices\u002F30.agilent-bravo",[356,359,362,365],{"title":267,"path":357,"stem":358},"\u002Foperate\u002Fdevices\u002Fagilent-bravo\u002Ftip-handling","03.operate\u002F30.devices\u002F30.agilent-bravo\u002F10.tip-handling",{"title":259,"path":360,"stem":361},"\u002Foperate\u002Fdevices\u002Fagilent-bravo\u002Fbasic-pipetting","03.operate\u002F30.devices\u002F30.agilent-bravo\u002F20.basic-pipetting",{"title":192,"path":363,"stem":364},"\u002Foperate\u002Fdevices\u002Fagilent-bravo\u002Fliquid-classes","03.operate\u002F30.devices\u002F30.agilent-bravo\u002F25.liquid-classes",{"title":295,"path":366,"stem":367},"\u002Foperate\u002Fdevices\u002Fagilent-bravo\u002Fusing-the-gripper","03.operate\u002F30.devices\u002F30.agilent-bravo\u002F30.using-the-gripper",{"title":369,"path":370,"stem":371,"children":372,"page":42},"Tecan FluentControl","\u002Foperate\u002Fdevices\u002Ftecan-fluentcontrol","03.operate\u002F30.devices\u002F40.tecan-fluentcontrol",[373,377,381],{"title":374,"path":375,"stem":376},"Connect & Run a Method","\u002Foperate\u002Fdevices\u002Ftecan-fluentcontrol\u002Fconnect-and-run","03.operate\u002F30.devices\u002F40.tecan-fluentcontrol\u002F10.connect-and-run",{"title":378,"path":379,"stem":380},"Sending XML Commands","\u002Foperate\u002Fdevices\u002Ftecan-fluentcontrol\u002Fsending-xml-commands","03.operate\u002F30.devices\u002F40.tecan-fluentcontrol\u002F20.sending-xml-commands",{"title":382,"path":383,"stem":384},"Full Workflow Example","\u002Foperate\u002Fdevices\u002Ftecan-fluentcontrol\u002Ffull-workflow-example","03.operate\u002F30.devices\u002F40.tecan-fluentcontrol\u002F30.full-workflow-example",{"title":386,"path":387,"stem":388,"children":389,"page":42},"Device Guides","\u002Fdevice-guides","06.device-guides",[390,393,406,423,436],{"title":386,"path":391,"stem":392},"\u002Fdevice-guides\u002Foverview","06.device-guides\u002F00.overview",{"title":394,"path":395,"stem":396,"children":397,"page":42},"Incubation","\u002Fdevice-guides\u002Fincubation","06.device-guides\u002F20.incubation",[398,402],{"title":399,"path":400,"stem":401},"Inheco ODTC","\u002Fdevice-guides\u002Fincubation\u002Finheco-odtc","06.device-guides\u002F20.incubation\u002F10.inheco-odtc",{"title":403,"path":404,"stem":405},"Inheco SCILA","\u002Fdevice-guides\u002Fincubation\u002Finheco-scila","06.device-guides\u002F20.incubation\u002F20.inheco-scila",{"title":407,"path":408,"stem":409,"children":410,"page":42},"Heater-Shakers","\u002Fdevice-guides\u002Fheater-shakers","06.device-guides\u002F30.heater-shakers",[411,415,419],{"title":412,"path":413,"stem":414},"Inheco Thermoshake","\u002Fdevice-guides\u002Fheater-shakers\u002Finheco-thermoshake","06.device-guides\u002F30.heater-shakers\u002F10.inheco-thermoshake",{"title":416,"path":417,"stem":418},"QInstruments Bioshake","\u002Fdevice-guides\u002Fheater-shakers\u002Fqinstruments-bioshake","06.device-guides\u002F30.heater-shakers\u002F20.qinstruments-bioshake",{"title":420,"path":421,"stem":422},"QInstruments ColdPlate","\u002Fdevice-guides\u002Fheater-shakers\u002Fqinstruments-coldplate","06.device-guides\u002F30.heater-shakers\u002F30.qinstruments-coldplate",{"title":424,"path":425,"stem":426,"children":427,"page":42},"Readers","\u002Fdevice-guides\u002Freaders","06.device-guides\u002F40.readers",[428,432],{"title":429,"path":430,"stem":431},"Biotek Gen5","\u002Fdevice-guides\u002Freaders\u002Fbiotek-gen5","06.device-guides\u002F40.readers\u002F10.biotek-gen5",{"title":433,"path":434,"stem":435},"Biotek Synergy H1","\u002Fdevice-guides\u002Freaders\u002Fbiotek-synergy-h1","06.device-guides\u002F40.readers\u002F20.biotek-synergy-H1",{"title":437,"path":438,"stem":439,"children":440,"page":42},"Tilt & Turn","\u002Fdevice-guides\u002Ftilt-and-turn","06.device-guides\u002F50.tilt-and-turn",[441,445],{"title":442,"path":443,"stem":444},"TurnStation","\u002Fdevice-guides\u002Ftilt-and-turn\u002Fqinstruments-turnstation","06.device-guides\u002F50.tilt-and-turn\u002F10.qinstruments-turnstation",{"title":446,"path":447,"stem":448},"TiltStation","\u002Fdevice-guides\u002Ftilt-and-turn\u002Fqinstruments-tiltstation","06.device-guides\u002F50.tilt-and-turn\u002F20.qinstruments-tiltstation",{"title":450,"path":451,"stem":452,"children":453,"page":42},"Automate","\u002Fautomate","07.automate",[454,458,462,466,515],{"title":455,"path":456,"stem":457},"What is a workflow?","\u002Fautomate\u002Fwhat-is-a-workflow","07.automate\u002F00.what-is-a-workflow",{"title":459,"path":460,"stem":461},"Workflow template","\u002Fautomate\u002Fworkflow-template","07.automate\u002F05.workflow-template",{"title":463,"path":464,"stem":465},"Your First Workflow","\u002Fautomate\u002Fyour-first-workflow","07.automate\u002F08.your-first-workflow",{"title":94,"pages":467,"path":477,"stem":478,"children":479,"page":42},[468,469,470,471,472,473,474,475,476],"workflow","phase","step","runs","input","artifacts","logs","human-in-the-loop","error-handling","\u002Fautomate\u002Fconcepts","07.automate\u002F10.concepts",[480,484,488,492,496,500,504,508,512],{"title":481,"path":482,"stem":483},"Workflow","\u002Fautomate\u002Fconcepts\u002Fworkflow","07.automate\u002F10.concepts\u002F10.workflow",{"title":485,"path":486,"stem":487},"Phase","\u002Fautomate\u002Fconcepts\u002Fphase","07.automate\u002F10.concepts\u002F20.phase",{"title":489,"path":490,"stem":491},"Step","\u002Fautomate\u002Fconcepts\u002Fstep","07.automate\u002F10.concepts\u002F30.step",{"title":493,"path":494,"stem":495},"Runs","\u002Fautomate\u002Fconcepts\u002Fruns","07.automate\u002F10.concepts\u002F40.runs",{"title":497,"path":498,"stem":499},"Input","\u002Fautomate\u002Fconcepts\u002Finput","07.automate\u002F10.concepts\u002F50.input",{"title":501,"path":502,"stem":503},"Artifacts","\u002Fautomate\u002Fconcepts\u002Fartifacts","07.automate\u002F10.concepts\u002F60.artifacts",{"title":505,"path":506,"stem":507},"Logs","\u002Fautomate\u002Fconcepts\u002Flogs","07.automate\u002F10.concepts\u002F70.logs",{"title":509,"path":510,"stem":511},"Human in the Loop","\u002Fautomate\u002Fconcepts\u002Fhuman-in-the-loop","07.automate\u002F10.concepts\u002F80.human-in-the-loop",{"title":204,"path":513,"stem":514},"\u002Fautomate\u002Fconcepts\u002Ferror-handling","07.automate\u002F10.concepts\u002F90.error-handling",{"title":208,"path":516,"stem":517,"children":518,"page":42},"\u002Fautomate\u002Fguides","07.automate\u002F25.guides",[519,523,527,531,535,539,543,547],{"title":520,"path":521,"stem":522},"Deploy a workflow","\u002Fautomate\u002Fguides\u002Fdeploy-a-workflow","07.automate\u002F25.guides\u002F30.deploy-a-workflow",{"title":524,"path":525,"stem":526},"Run a workflow","\u002Fautomate\u002Fguides\u002Frun-a-workflow","07.automate\u002F25.guides\u002F35.run-a-workflow",{"title":528,"path":529,"stem":530},"CI\u002FCD for workflows","\u002Fautomate\u002Fguides\u002Fcicd-for-workflows","07.automate\u002F25.guides\u002F40.cicd-for-workflows",{"title":532,"path":533,"stem":534},"HITL basics","\u002Fautomate\u002Fguides\u002Fbasic-hitl","07.automate\u002F25.guides\u002F50.basic-hitl",{"title":536,"path":537,"stem":538},"Typed operator inputs","\u002Fautomate\u002Fguides\u002Ftyped-operator-inputs","07.automate\u002F25.guides\u002F55.typed-operator-inputs",{"title":540,"path":541,"stem":542},"Error recovery","\u002Fautomate\u002Fguides\u002Fbasic-error-handling","07.automate\u002F25.guides\u002F60.basic-error-handling",{"title":544,"path":545,"stem":546},"Advanced error handling","\u002Fautomate\u002Fguides\u002Fadvanced-error-handling","07.automate\u002F25.guides\u002F70.advanced-error-handling",{"title":548,"path":549,"stem":550},"Workflows REST API","\u002Fautomate\u002Fguides\u002Fworkflows-api","07.automate\u002F25.guides\u002F80.workflows-api",{"title":552,"path":553,"stem":554,"children":555,"page":42},"Observe","\u002Fobserve","08.observe",[556,560,576],{"title":557,"path":558,"stem":559},"Overview","\u002Fobserve\u002Foverview","08.observe\u002F10.overview",{"title":94,"path":561,"stem":562,"children":563,"page":42},"\u002Fobserve\u002Fconcepts","08.observe\u002F20.concepts",[564,568,572],{"title":565,"path":566,"stem":567},"Object Storage","\u002Fobserve\u002Fconcepts\u002Fstorage","08.observe\u002F20.concepts\u002F10.storage",{"title":569,"path":570,"stem":571},"Secrets","\u002Fobserve\u002Fconcepts\u002Fsecrets","08.observe\u002F20.concepts\u002F20.secrets",{"title":573,"path":574,"stem":575},"Data sources","\u002Fobserve\u002Fconcepts\u002Fdata-sources","08.observe\u002F20.concepts\u002F30.data-sources",{"title":208,"path":577,"stem":578,"children":579,"page":42},"\u002Fobserve\u002Fguides","08.observe\u002F30.guides",[580,584],{"title":581,"path":582,"stem":583},"File System Connector","\u002Fobserve\u002Fguides\u002Ffilesystem-connector","08.observe\u002F30.guides\u002F10.filesystem-connector",{"title":585,"path":586,"stem":587},"Building an ETL","\u002Fobserve\u002Fguides\u002Fbuilding-an-etl","08.observe\u002F30.guides\u002F20.building-an-etl",{"title":589,"path":590,"stem":591,"children":592,"page":42},"Technical Reference","\u002Ftechnical-reference","10.technical-reference",[593,597,601,613,624,635,645,656],{"title":594,"path":595,"stem":596},"Introduction","\u002Ftechnical-reference\u002Fplatform-blueprint","10.technical-reference\u002F00.platform-blueprint",{"title":598,"path":599,"stem":600},"REST API","\u002Ftechnical-reference\u002Frest-api","10.technical-reference\u002F01.rest-api",{"title":53,"path":602,"stem":603,"children":604,"page":42},"\u002Ftechnical-reference\u002Fgroundcontrol","10.technical-reference\u002F10.groundcontrol",[605,609],{"title":606,"path":607,"stem":608},"Install & Setup","\u002Ftechnical-reference\u002Fgroundcontrol\u002Finstall","10.technical-reference\u002F10.groundcontrol\u002F10.install",{"title":610,"path":611,"stem":612},"Changelog","\u002Ftechnical-reference\u002Fgroundcontrol\u002Fchangelog","10.technical-reference\u002F10.groundcontrol\u002F20.changelog",{"title":614,"path":615,"stem":616,"children":617,"page":42},"UniteLabs SDK","\u002Ftechnical-reference\u002Fpython-sdk","10.technical-reference\u002F20.python-sdk",[618,621],{"title":606,"path":619,"stem":620},"\u002Ftechnical-reference\u002Fpython-sdk\u002Finstall","10.technical-reference\u002F20.python-sdk\u002F10.install",{"title":610,"path":622,"stem":623},"\u002Ftechnical-reference\u002Fpython-sdk\u002Fchangelog","10.technical-reference\u002F20.python-sdk\u002F20.changelog",{"title":625,"path":626,"stem":627,"children":628,"page":42},"Liquid Handling SDK","\u002Ftechnical-reference\u002Fpython-liquid-handling-sdk","10.technical-reference\u002F30.python-liquid-handling-sdk",[629,632],{"title":606,"path":630,"stem":631},"\u002Ftechnical-reference\u002Fpython-liquid-handling-sdk\u002Finstall","10.technical-reference\u002F30.python-liquid-handling-sdk\u002F10.install",{"title":610,"path":633,"stem":634},"\u002Ftechnical-reference\u002Fpython-liquid-handling-sdk\u002Fchangelog","10.technical-reference\u002F30.python-liquid-handling-sdk\u002F20.changelog",{"title":184,"path":636,"stem":637,"children":638,"page":42},"\u002Ftechnical-reference\u002Flabware","10.technical-reference\u002F40.labware",[639,642],{"title":606,"path":640,"stem":641},"\u002Ftechnical-reference\u002Flabware\u002Finstall","10.technical-reference\u002F40.labware\u002F10.install",{"title":610,"path":643,"stem":644},"\u002Ftechnical-reference\u002Flabware\u002Fchangelog","10.technical-reference\u002F40.labware\u002F20.changelog",{"title":646,"path":647,"stem":648,"children":649,"page":42},"Python Omnibus","\u002Ftechnical-reference\u002Fpython-omnibus","10.technical-reference\u002F50.python-omnibus",[650,653],{"title":606,"path":651,"stem":652},"\u002Ftechnical-reference\u002Fpython-omnibus\u002Finstall","10.technical-reference\u002F50.python-omnibus\u002F10.install",{"title":610,"path":654,"stem":655},"\u002Ftechnical-reference\u002Fpython-omnibus\u002Fchangelog","10.technical-reference\u002F50.python-omnibus\u002F20.changelog",{"title":657,"path":658,"stem":659,"children":660,"page":42},"Python CDK","\u002Ftechnical-reference\u002Fpython-cdk","10.technical-reference\u002F60.python-cdk",[661,664],{"title":606,"path":662,"stem":663},"\u002Ftechnical-reference\u002Fpython-cdk\u002Finstall","10.technical-reference\u002F60.python-cdk\u002F10.install",{"title":610,"path":665,"stem":666},"\u002Ftechnical-reference\u002Fpython-cdk\u002Fchangelog","10.technical-reference\u002F60.python-cdk\u002F20.changelog",{"title":668,"path":669,"stem":670,"children":671},"Connector Development (CDK)","\u002Fconnector-development","20.connector-development",[672,674,693,726,734,769],{"title":668,"path":669,"stem":673},"20.connector-development\u002Findex",{"title":675,"path":676,"stem":677,"children":678,"page":42},"Getting Started","\u002Fconnector-development\u002Fgetting-started","20.connector-development\u002F10.getting-started",[679,682,686,689],{"title":557,"path":680,"stem":681},"\u002Fconnector-development\u002Fgetting-started\u002Foverview","20.connector-development\u002F10.getting-started\u002F10.overview",{"title":683,"path":684,"stem":685},"What's new","\u002Fconnector-development\u002Fgetting-started\u002Fwhats-new","20.connector-development\u002F10.getting-started\u002F20.whats-new",{"title":77,"path":687,"stem":688},"\u002Fconnector-development\u002Fgetting-started\u002Finstallation","20.connector-development\u002F10.getting-started\u002F30.installation",{"title":690,"path":691,"stem":692},"Contributing","\u002Fconnector-development\u002Fgetting-started\u002Fcontributing","20.connector-development\u002F10.getting-started\u002F40.contributing",{"title":694,"path":695,"stem":696,"children":697,"page":42},"Tutorial","\u002Fconnector-development\u002Ftutorial","20.connector-development\u002F20.tutorial",[698,702,706,710,714,718,722],{"title":699,"path":700,"stem":701},"Walkthrough","\u002Fconnector-development\u002Ftutorial\u002Fwalkthrough","20.connector-development\u002F20.tutorial\u002F00.walkthrough",{"title":703,"path":704,"stem":705},"SiLA Endpoints","\u002Fconnector-development\u002Ftutorial\u002Fsila-endpoints","20.connector-development\u002F20.tutorial\u002F10.sila-endpoints",{"title":707,"path":708,"stem":709},"Data Endpoints","\u002Fconnector-development\u002Ftutorial\u002Fdata-endpoints","20.connector-development\u002F20.tutorial\u002F20.data-endpoints",{"title":711,"path":712,"stem":713},"Controls","\u002Fconnector-development\u002Ftutorial\u002Fcontrols","20.connector-development\u002F20.tutorial\u002F30.controls",{"title":715,"path":716,"stem":717},"SiLA Data Types","\u002Fconnector-development\u002Ftutorial\u002Fdata-types","20.connector-development\u002F20.tutorial\u002F40.data-types",{"title":719,"path":720,"stem":721},"Feature","\u002Fconnector-development\u002Ftutorial\u002Fconnector-structure","20.connector-development\u002F20.tutorial\u002F70.connector-structure",{"title":723,"path":724,"stem":725},"Hardware Communication","\u002Fconnector-development\u002Ftutorial\u002Fhardware-communication","20.connector-development\u002F20.tutorial\u002F90.hardware-communication",{"title":94,"path":727,"stem":728,"children":729,"page":42},"\u002Fconnector-development\u002Fconcepts","20.connector-development\u002F30.concepts",[730],{"title":731,"path":732,"stem":733},"SiLA","\u002Fconnector-development\u002Fconcepts\u002Fsila","20.connector-development\u002F30.concepts\u002Fsila",{"title":208,"path":735,"stem":736,"children":737,"page":42},"\u002Fconnector-development\u002Fguides","20.connector-development\u002F40.guides",[738,742,746,750,754,758,761,765],{"title":739,"path":740,"stem":741},"Configuration","\u002Fconnector-development\u002Fguides\u002Fconfiguration","20.connector-development\u002F40.guides\u002F20.configuration",{"title":743,"path":744,"stem":745},"Logging","\u002Fconnector-development\u002Fguides\u002Flogging","20.connector-development\u002F40.guides\u002F21.logging",{"title":747,"path":748,"stem":749},"Deployment","\u002Fconnector-development\u002Fguides\u002Fdeployment","20.connector-development\u002F40.guides\u002F30.deployment",{"title":751,"path":752,"stem":753},"Security","\u002Fconnector-development\u002Fguides\u002Fsecurity","20.connector-development\u002F40.guides\u002F40.security",{"title":755,"path":756,"stem":757},"Subscriptions","\u002Fconnector-development\u002Fguides\u002Fsubscriptions","20.connector-development\u002F40.guides\u002F45.subscriptions",{"title":204,"path":759,"stem":760},"\u002Fconnector-development\u002Fguides\u002Ferror-handling","20.connector-development\u002F40.guides\u002F50.error-handling",{"title":762,"path":763,"stem":764},"Serial Troubleshooting","\u002Fconnector-development\u002Fguides\u002Fserial-troubleshooting","20.connector-development\u002F40.guides\u002F70.serial-troubleshooting",{"title":766,"path":767,"stem":768},"Testing","\u002Fconnector-development\u002Fguides\u002Ftesting","20.connector-development\u002F40.guides\u002F80.testing",{"title":770,"path":771,"stem":772,"children":773},"References","\u002Fconnector-development\u002Freference","20.connector-development\u002F50.reference\u002Findex",[774],{"title":770,"path":771,"stem":772},{"id":776,"title":124,"body":777,"description":1177,"extension":1178,"links":1179,"meta":1180,"navigation":1181,"path":125,"seo":1182,"stem":126,"__hash__":1183},"docs\u002F02.integrate\u002F20.connect-a-device\u002F10.via-groundcontrol.md",{"type":778,"value":779,"toc":1161},"minimark",[780,797,805,817,822,833,885,889,895,900,919,923,926,941,945,948,962,966,969,981,985,988,1028,1039,1044,1048,1063,1066,1106,1124,1127,1131,1134],[781,782,783,784,788,789,792,793,796],"p",{},"GroundControl is our edge application that enables connector application management on your machine, from providing you access to the UniteLabs registry and with that our connector library, installing and configuring connectors, to direct communication with the connectors and the UniteLabs platform. It has three main areas: the ",[785,786,787],"strong",{},"Home"," dashboard (auto-detected Connectors or 3rd party SiLA servers on your local network), the ",[785,790,791],{},"Devices"," list (your configured instruments), and ",[785,794,795],{},"Settings",".",[781,798,799,800,804],{},"This guide walks through adding a device and installing a connector. Once your connector is running, see ",[801,802,140],"a",{"href":803},"\u002Fintegrate\u002Fuse-a-connector\u002Fgroundcontrol\u002F"," for interacting with your instrument and verifying the platform connection.",[806,807,809],"callout",{"icon":808},"i-heroicons-information-circle",[781,810,811,812,816],{},"Make sure GroundControl is installed and you are signed in before continuing. See the ",[801,813,815],{"href":814},"\u002Fget-started\u002Fsetup\u002Fgroundcontrol\u002F","Setup guide"," if you haven't done that yet.",[818,819,821],"h2",{"id":820},"add-a-device","Add a Device",[781,823,824,825,829,830,832],{},"A ",[826,827,828],"em",{},"device"," in GroundControl represents a physical instrument. Connectors are then attached to devices to provide the communication layer. Multiple connectors can be associated to a ",[826,831,828],{},". Examples for multiple connectors within one device are a device connector and a file system connector for instruments that create large files, such as sequencers or microscopes, or an additional power connector to switch the device on and off remotely.",[834,835,836,844,879],"ol",{},[837,838,839,840,843],"li",{},"Click ",[785,841,842],{},"Add Device"," in the Devices page.",[837,845,846,847],{},"Fill in the device metadata:\n",[848,849,850,860,873],"ul",{},[837,851,852,855,856,859],{},[785,853,854],{},"Name",": a human-readable label (e.g., ",[857,858,286],"code",{},")",[837,861,862,865,866,865,869,872],{},[785,863,864],{},"Manufacturer",", ",[785,867,868],{},"Model",[785,870,871],{},"Serial Number",": optional but useful for auditing",[837,874,875,878],{},[785,876,877],{},"Description",": any notes about this instrument or its location",[837,880,839,881,884],{},[785,882,883],{},"Next"," to proceed to connector selection.",[818,886,888],{"id":887},"add-a-connector","Add a Connector",[781,890,824,891,894],{},[826,892,893],{},"connector"," is an executable that enables communication with your instrument. Connectors use SiLA 2 for communication with GroundControl and the UniteLabs Platform. You can add a connector in four ways:",[896,897,899],"h3",{"id":898},"download-from-registry","Download from Registry",[781,901,902,903,906,907,910,911,914,915,918],{},"This option gives you the full catalogue of UniteLabs-maintained connectors.\nBrowse the connector catalogue, select your instrument, pick a version, and click ",[785,904,905],{},"Download",". GroundControl automatically fetches the correct executable for your operating system and architecture, and saves it to ",[857,908,909],{},".unitelabs\u002Funitelabs-app\u002F"," (",[857,912,913],{},"~\u002F.unitelabs\u002Funitelabs-app\u002F"," on macOS and Linux, ",[857,916,917],{},"C:\\Users\\\u003Cuser-name>\\.unitelabs\\unitelabs-app\\"," on Windows).",[896,920,922],{"id":921},"upload-local-file","Upload Local File",[781,924,925],{},"If you are deploying in an air-gapped environment or do not have access to our registry, reach out to you UniteLabs contact or the responsible IT contact in your organization to get the respective connector executable for manual upload:",[834,927,928,935,938],{},[837,929,930,931,934],{},"Choose ",[785,932,933],{},"Upload"," mode in the wizard.",[837,936,937],{},"Browse to your connector executable (or drag-and-drop it).",[837,939,940],{},"GroundControl reads the connector's type and version automatically from the binary metadata.",[896,942,944],{"id":943},"discovered-mdns","Discovered (mDNS)",[781,946,947],{},"If a connector is already running on your machine or a machine elsewhere in your network and broadcasting via mDNS, GroundControl will list it on the Discovery dashboard and in the wizard.",[834,949,950,956,959],{},[837,951,930,952,955],{},[785,953,954],{},"Discovered"," mode.",[837,957,958],{},"Select the connector from the list of auto-detected SiLA servers.",[837,960,961],{},"No local installation is needed: GroundControl links the remote process directly.",[896,963,965],{"id":964},"manual-remote","Manual Remote",[781,967,968],{},"If the connector is running on a known host but not broadcasting via mDNS:",[834,970,971,975,978],{},[837,972,930,973,955],{},[785,974,965],{},[837,976,977],{},"Enter the hostname or IP address and port.",[837,979,980],{},"GroundControl queries that address and lists the available SiLA services to connect to.",[818,982,984],{"id":983},"configure-a-connector","Configure a Connector",[781,986,987],{},"After selecting a connector (Download or Upload), the wizard shows a configuration form generated from the connector's own schema. Five categories of configuration parameters are displayed:",[848,989,990,996,1006,1012,1018],{},[837,991,992,995],{},[785,993,994],{},"General Configuration",": Device specific parameters, such as serial port or module configuration. May be empty.",[837,997,998,1001,1002,1005],{},[785,999,1000],{},"SiLAServerConfig",": All SiLA 2 specific parameters required for local connectivity, including the connection back to GroundControl. Make sure to set a defined, unoccupied port. The default port ",[785,1003,1004],{},"0"," will result in random free port selection.",[837,1007,1008,1011],{},[785,1009,1010],{},"CloudServerConfig",": Defines the direct connection to the UniteLabs Platform. Relevant parameters are the hostname and port (use 443 as default).",[837,1013,1014,1017],{},[785,1015,1016],{},"DiscoveryConfig",": Only relevant if auto-discovery is required and not working with default settings.",[837,1019,1020,1022,1023,1027],{},[785,1021,743],{},": Can be left empty for recommended defaults (json based log files and console output). Learn how to configure it in the ",[801,1024,1026],{"href":1025},"\u002Fintegrate\u002Fconnect-a-device\u002Ffrom-source#logging","logging section"," of the \"from source\" guide.",[781,1029,1030,1031,1034,1035,1038],{},"Fill in the fields and click ",[785,1032,1033],{},"Save",". GroundControl writes a ",[857,1036,1037],{},"config.json"," file alongside the connector executable.",[806,1040,1041],{"icon":808},[781,1042,1043],{},"Remote connectors (Discovered, Manual) skip this step — they are already configured and running. Capabilities such as live connector log display, start\u002Fstop, and registering connectors as a service are not available for any connectors added in this way; their lifecycle is not managed by GroundControl.",[818,1045,1047],{"id":1046},"start-and-stop-connectors","Start and Stop Connectors",[781,1049,1050,1051,1053,1054,1053,1060,796],{},"Open ",[785,1052,791],{}," → ",[785,1055,1056],{},[1057,1058,1059],"span",{},"your device",[785,1061,1062],{},"Configuration tab",[781,1064,1065],{},"Each connector shows a status badge:",[1067,1068,1069,1082],"table",{},[1070,1071,1072],"thead",{},[1073,1074,1075,1079],"tr",{},[1076,1077,1078],"th",{},"Status",[1076,1080,1081],{},"Meaning",[1083,1084,1085,1096],"tbody",{},[1073,1086,1087,1093],{},[1088,1089,1090],"td",{},[857,1091,1092],{},"online",[1088,1094,1095],{},"Connector process is active and connected",[1073,1097,1098,1103],{},[1088,1099,1100],{},[857,1101,1102],{},"offline",[1088,1104,1105],{},"Connector was stopped or is in error. — check the Activity tab for logs and start the connector",[781,1107,1108,1109,865,1112,1115,1116,1119,1120,1123],{},"Use the ",[785,1110,1111],{},"Start",[785,1113,1114],{},"Stop",", and ",[785,1117,1118],{},"Restart"," buttons to control the connector process. The connector must be ",[857,1121,1122],{},"running"," for workflows to reach your instrument via the UniteLabs platform.",[781,1125,1126],{},"By clicking on the connector, the configuration is shown and can be edited. Make sure to save the changes and restart the connector for changes to take effect.",[818,1128,1130],{"id":1129},"use-the-connector","Use the connector",[781,1132,1133],{},"With your connector running, you can interact with your instrument in three ways:",[848,1135,1136,1143,1152],{},[837,1137,1138,1142],{},[785,1139,1140],{},[801,1141,53],{"href":803}," — read values, trigger actions, and monitor activity directly from the edge app.",[837,1144,1145,1151],{},[785,1146,1147],{},[801,1148,1150],{"href":1149},"\u002Fintegrate\u002Fuse-a-connector\u002Fplatform\u002F","UniteLabs Platform"," — view, inspect, and operate the connector from the Platform UI, and add it to workflows.",[837,1153,1154,1160],{},[785,1155,1156],{},[801,1157,1159],{"href":1158},"\u002Fintegrate\u002Fuse-a-connector\u002Fpython\u002F","SDK & REST API"," — control the connector programmatically: discover services, explore modules and actions, and subscribe to live data.",{"title":1162,"searchDepth":1163,"depth":1164,"links":1165},"",1,2,[1166,1167,1174,1175,1176],{"id":820,"depth":1164,"text":821},{"id":887,"depth":1164,"text":888,"children":1168},[1169,1171,1172,1173],{"id":898,"depth":1170,"text":899},3,{"id":921,"depth":1170,"text":922},{"id":943,"depth":1170,"text":944},{"id":964,"depth":1170,"text":965},{"id":983,"depth":1164,"text":984},{"id":1046,"depth":1164,"text":1047},{"id":1129,"depth":1164,"text":1130},"Add a device and install a connector through the GroundControl edge application.","md",null,{},true,{"title":124,"description":1177},"7m9LoCBWPL8DHfwznRgU0Ef_bGd4cgJVs_El7fea5eg",[1185,1187],{"title":115,"path":116,"stem":117,"description":1186},"The physical instrument your connector controls — and its entry in the platform device registry.",{"title":128,"path":129,"stem":130,"description":1188},"Run a connector as a standalone executable and choose which command it starts with.",1784060403619]