[{"data":1,"prerenderedAt":1282},["ShallowReactive",2],{"navigation":3,"\u002Fintegrate\u002Fconnect-a-device\u002Fwith-an-executable":775,"\u002Fintegrate\u002Fconnect-a-device\u002Fwith-an-executable-surround":1277},[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":128,"body":777,"description":1271,"extension":1272,"links":1273,"meta":1274,"navigation":1015,"path":129,"seo":1275,"stem":130,"__hash__":1276},"docs\u002F02.integrate\u002F20.connect-a-device\u002F20.with-an-executable.md",{"type":778,"value":779,"toc":1265},"minimark",[780,784,802,807,814,898,923,927,934,1038,1044,1048,1058,1178,1193,1224,1228,1231,1261],[781,782,783],"p",{},"Connectors are distributed as self-contained executables that bundle their own Python runtime, so you can run one on any machine without installing GroundControl or Python.\nThis page covers how to start the executable and the commands you can run through it.",[785,786,788],"callout",{"icon":787},"i-heroicons-information-circle",[781,789,790,791,795,796,801],{},"For a complete production setup, placing the binary, generating a config, and registering it as a ",[792,793,794],"code",{},"systemd"," service, follow the ",[797,798,800],"a",{"href":799},"\u002Fget-started\u002Fsetup\u002Fheadless-install\u002F","Headless install guide",".",[803,804,806],"h2",{"id":805},"pick-the-right-executable","Pick the right executable",[781,808,809,810,813],{},"Executables are built per device and per platform, following the naming scheme ",[792,811,812],{},"unitelabs-\u003Cdevice-name>-\u003Cplatform>-\u003Cversion>",":",[815,816,817,834],"table",{},[818,819,820],"thead",{},[821,822,823,826,831],"tr",{},[824,825,148],"th",{},[824,827,828],{},[792,829,830],{},"\u003Cplatform>",[824,832,833],{},"Example",[835,836,837,853,868,883],"tbody",{},[821,838,839,843,848],{},[840,841,842],"td",{},"Windows (x86_64)",[840,844,845],{},[792,846,847],{},"x86_64-pc-windows-msvc",[840,849,850],{},[792,851,852],{},"unitelabs-microlab-star-x86_64-pc-windows-msvc-0.5.0.exe",[821,854,855,858,863],{},[840,856,857],{},"Linux (x86_64)",[840,859,860],{},[792,861,862],{},"x86_64-unknown-linux-gnu",[840,864,865],{},[792,866,867],{},"unitelabs-microlab-star-x86_64-unknown-linux-gnu-0.5.0",[821,869,870,873,878],{},[840,871,872],{},"Linux (ARM64, e.g. Raspberry Pi)",[840,874,875],{},[792,876,877],{},"aarch64-unknown-linux-gnu",[840,879,880],{},[792,881,882],{},"unitelabs-microlab-star-aarch64-unknown-linux-gnu-0.5.0",[821,884,885,888,893],{},[840,886,887],{},"macOS (Apple Silicon)",[840,889,890],{},[792,891,892],{},"aarch64-apple-darwin",[840,894,895],{},[792,896,897],{},"unitelabs-microlab-star-aarch64-apple-darwin-0.5.0",[785,899,900],{"icon":787},[781,901,902,903,906,907,910,911,914,915,918,919,922],{},"On Windows, every command run through ",[792,904,905],{},"--start-cmd"," additionally requires the ",[792,908,909],{},"--app"," option pointing at the connector's app factory, e.g. ",[792,912,913],{},"--start-cmd \"config create --app unitelabs.\u003Cdevice_name>:create_app\"",". Note that ",[792,916,917],{},"\u003Cdevice_name>"," uses underscores here, e.g. ",[792,920,921],{},"unitelabs.microlab_star:create_app"," for the Microlab STAR.",[803,924,926],{"id":925},"start-the-connector","Start the connector",[781,928,929,930,933],{},"Run the executable directly to start the connector with its default configuration (",[792,931,932],{},"config.json"," in the current directory):",[935,936,937,1026],"code-group",{},[938,939,945],"pre",{"className":940,"code":941,"filename":942,"language":943,"meta":944,"style":944},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# Make the file executable once after downloading\nchmod +x unitelabs-\u003Cdevice-name>-\u003Cplatform>-\u003Cversion>\n\n.\u002Funitelabs-\u003Cdevice-name>-\u003Cplatform>-\u003Cversion>\n","Linux \u002F macOS","bash","",[792,946,947,956,1010,1017],{"__ignoreMap":944},[948,949,952],"span",{"class":950,"line":951},"line",1,[948,953,955],{"class":954},"sHwdD","# Make the file executable once after downloading\n",[948,957,959,963,967,970,974,977,981,984,987,989,992,995,997,999,1001,1004,1007],{"class":950,"line":958},2,[948,960,962],{"class":961},"sBMFI","chmod",[948,964,966],{"class":965},"sfazB"," +x",[948,968,969],{"class":965}," unitelabs-",[948,971,973],{"class":972},"sMK4o","\u003C",[948,975,976],{"class":965},"device-nam",[948,978,980],{"class":979},"sTEyZ","e",[948,982,983],{"class":972},">",[948,985,986],{"class":965},"-",[948,988,973],{"class":972},[948,990,991],{"class":965},"platfor",[948,993,994],{"class":979},"m",[948,996,983],{"class":972},[948,998,986],{"class":965},[948,1000,973],{"class":972},[948,1002,1003],{"class":965},"versio",[948,1005,1006],{"class":979},"n",[948,1008,1009],{"class":972},">\n",[948,1011,1013],{"class":950,"line":1012},3,[948,1014,1016],{"emptyLinePlaceholder":1015},true,"\n",[948,1018,1020,1023],{"class":950,"line":1019},4,[948,1021,1022],{"class":961},".\u002Funitelabs-",[948,1024,1025],{"class":979},"\u003Cdevice-name>-\u003Cplatform>-\u003Cversion>\n",[938,1027,1032],{"className":1028,"code":1029,"filename":1030,"language":1031,"meta":944,"style":944},"language-powershell shiki shiki-themes material-theme-lighter material-theme material-theme-palenight",".\\unitelabs-\u003Cdevice-name>-x86_64-pc-windows-msvc-\u003Cversion>.exe --start-cmd \"connector start --app unitelabs.\u003Cdevice_name>:create_app\"\n","Windows","powershell",[792,1033,1034],{"__ignoreMap":944},[948,1035,1036],{"class":950,"line":951},[948,1037,1029],{},[781,1039,1040,1041,1043],{},"The connector reads ",[792,1042,932],{}," from the working directory. To generate one first, or to point at a different file, use the start commands below.",[803,1045,1047],{"id":1046},"choose-a-start-command","Choose a start command",[781,1049,1050,1051,1054,1055,1057],{},"By default the executable runs ",[792,1052,1053],{},"connector start",". The ",[792,1056,905],{}," flag lets you run any of the connector's CLI commands through the same binary.\nFor example automatically generating a config.json, inspecting the config documentation or starting the connector.",[935,1059,1060,1139],{},[938,1061,1063],{"className":940,"code":1062,"filename":942,"language":943,"meta":944,"style":944},"# Generate a default config.json in the current folder\n.\u002Funitelabs-\u003Cdevice-name>-\u003Cplatform>-\u003Cversion> --start-cmd \"config create\"\n\n# Show the resolved configuration\n.\u002Funitelabs-\u003Cdevice-name>-\u003Cplatform>-\u003Cversion> --start-cmd \"config show\"\n\n# Start the connector explicitly (the default)\n.\u002Funitelabs-\u003Cdevice-name>-\u003Cplatform>-\u003Cversion> --start-cmd \"connector start\"\n",[792,1064,1065,1070,1088,1092,1097,1113,1118,1124],{"__ignoreMap":944},[948,1066,1067],{"class":950,"line":951},[948,1068,1069],{"class":954},"# Generate a default config.json in the current folder\n",[948,1071,1072,1074,1077,1079,1082,1085],{"class":950,"line":958},[948,1073,1022],{"class":961},[948,1075,1076],{"class":979},"\u003Cdevice-name>-\u003Cplatform>-\u003Cversion> ",[948,1078,905],{"class":965},[948,1080,1081],{"class":972}," \"",[948,1083,1084],{"class":965},"config create",[948,1086,1087],{"class":972},"\"\n",[948,1089,1090],{"class":950,"line":1012},[948,1091,1016],{"emptyLinePlaceholder":1015},[948,1093,1094],{"class":950,"line":1019},[948,1095,1096],{"class":954},"# Show the resolved configuration\n",[948,1098,1100,1102,1104,1106,1108,1111],{"class":950,"line":1099},5,[948,1101,1022],{"class":961},[948,1103,1076],{"class":979},[948,1105,905],{"class":965},[948,1107,1081],{"class":972},[948,1109,1110],{"class":965},"config show",[948,1112,1087],{"class":972},[948,1114,1116],{"class":950,"line":1115},6,[948,1117,1016],{"emptyLinePlaceholder":1015},[948,1119,1121],{"class":950,"line":1120},7,[948,1122,1123],{"class":954},"# Start the connector explicitly (the default)\n",[948,1125,1127,1129,1131,1133,1135,1137],{"class":950,"line":1126},8,[948,1128,1022],{"class":961},[948,1130,1076],{"class":979},[948,1132,905],{"class":965},[948,1134,1081],{"class":972},[948,1136,1053],{"class":965},[948,1138,1087],{"class":972},[938,1140,1142],{"className":1028,"code":1141,"filename":1030,"language":1031,"meta":944,"style":944},"# Generate a default config.json in the current folder\n.\\unitelabs-\u003Cdevice-name>-x86_64-pc-windows-msvc-\u003Cversion>.exe --start-cmd \"config create --app unitelabs.\u003Cdevice_name>:create_app\"\n\n# Show the resolved configuration\n.\\unitelabs-\u003Cdevice-name>-x86_64-pc-windows-msvc-\u003Cversion>.exe --start-cmd \"config show --app unitelabs.\u003Cdevice_name>:create_app\"\n\n# Start the connector explicitly (the default)\n.\\unitelabs-\u003Cdevice-name>-x86_64-pc-windows-msvc-\u003Cversion>.exe --start-cmd \"connector start --app unitelabs.\u003Cdevice_name>:create_app\"\n",[792,1143,1144,1148,1153,1157,1161,1166,1170,1174],{"__ignoreMap":944},[948,1145,1146],{"class":950,"line":951},[948,1147,1069],{},[948,1149,1150],{"class":950,"line":958},[948,1151,1152],{},".\\unitelabs-\u003Cdevice-name>-x86_64-pc-windows-msvc-\u003Cversion>.exe --start-cmd \"config create --app unitelabs.\u003Cdevice_name>:create_app\"\n",[948,1154,1155],{"class":950,"line":1012},[948,1156,1016],{"emptyLinePlaceholder":1015},[948,1158,1159],{"class":950,"line":1019},[948,1160,1096],{},[948,1162,1163],{"class":950,"line":1099},[948,1164,1165],{},".\\unitelabs-\u003Cdevice-name>-x86_64-pc-windows-msvc-\u003Cversion>.exe --start-cmd \"config show --app unitelabs.\u003Cdevice_name>:create_app\"\n",[948,1167,1168],{"class":950,"line":1115},[948,1169,1016],{"emptyLinePlaceholder":1015},[948,1171,1172],{"class":950,"line":1120},[948,1173,1123],{},[948,1175,1176],{"class":950,"line":1126},[948,1177,1029],{},[781,1179,1180,1181,1184,1185,1188,1189,1192],{},"These are the same ",[792,1182,1183],{},"connector"," and ",[792,1186,1187],{},"config"," commands you would run from source (see ",[797,1190,132],{"href":1191},"\u002Fintegrate\u002Fconnect-a-device\u002Ffrom-source\u002F",") for what each command does and how to configure logging, the SiLA server, and the cloud connection.",[785,1194,1196],{"icon":1195},"i-lucide-triangle-alert",[781,1197,1198,1199,1202,1203,1206,1207,1210,1211,1215,1216,1219,1220,1223],{},"You may also see ",[792,1200,1201],{},"--start-cmd \"connector start -vvv\""," in older guides. The ",[792,1204,1205],{},"-v","\u002F",[792,1208,1209],{},"--verbose"," flag is ",[1212,1213,1214],"strong",{},"deprecated"," and will be removed in a future version. Configure the log level through the ",[792,1217,1218],{},"logging"," section of your config instead (see ",[797,1221,743],{"href":1222},"\u002Fintegrate\u002Fconnect-a-device\u002Ffrom-source#logging",").",[803,1225,1227],{"id":1226},"use-the-connector","Use the connector",[781,1229,1230],{},"With your connector running, you can interact with your instrument in three ways:",[1232,1233,1234,1243,1252],"ul",{},[1235,1236,1237,1242],"li",{},[1212,1238,1239],{},[797,1240,53],{"href":1241},"\u002Fintegrate\u002Fuse-a-connector\u002Fgroundcontrol\u002F"," — read values, trigger actions, and monitor activity directly from the edge app.",[1235,1244,1245,1251],{},[1212,1246,1247],{},[797,1248,1250],{"href":1249},"\u002Fintegrate\u002Fuse-a-connector\u002Fplatform\u002F","UniteLabs Platform"," — view, inspect, and operate the connector from the Platform UI, and add it to workflows.",[1235,1253,1254,1260],{},[1212,1255,1256],{},[797,1257,1259],{"href":1258},"\u002Fintegrate\u002Fuse-a-connector\u002Fpython\u002F","SDK & REST API"," — control the connector programmatically: discover services, explore modules and actions, and subscribe to live data.",[1262,1263,1264],"style",{},"html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}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":944,"searchDepth":951,"depth":958,"links":1266},[1267,1268,1269,1270],{"id":805,"depth":958,"text":806},{"id":925,"depth":958,"text":926},{"id":1046,"depth":958,"text":1047},{"id":1226,"depth":958,"text":1227},"Run a connector as a standalone executable and choose which command it starts with.","md",null,{},{"title":128,"description":1271},"PZ--mwWh_R6fCfbKgmj4WKvPIA6V_BqRZhVrugHuTyU",[1278,1280],{"title":124,"path":125,"stem":126,"description":1279},"Add a device and install a connector through the GroundControl edge application.",{"title":132,"path":133,"stem":134,"description":1281},"Generate a configuration, run a connector from its source project, and configure logging.",1784060407547]