[{"data":1,"prerenderedAt":2218},["ShallowReactive",2],{"navigation":3,"\u002Fliquid-handling-and-robots\u002Fhamilton-star\u002Fautoload":909,"\u002Fliquid-handling-and-robots\u002Fhamilton-star\u002Fautoload-surround":2213},[4,59,188,271,445,591,760,791],{"title":5,"type":6,"device":6,"path":7,"stem":8,"children":9,"page":41},"Get Started",null,"\u002Fget-started\u002F","01.get-started",[10,15,42,47,51,55],{"title":11,"path":12,"stem":13,"type":14,"device":6},"Welcome to UniteLabs","\u002Fget-started\u002Fwelcome\u002F","01.get-started\u002F00.welcome","landing",{"title":16,"type":6,"device":6,"path":17,"stem":18,"children":19,"page":41},"Setup","\u002Fget-started\u002Fsetup\u002F","01.get-started\u002F01.setup",[20,25,29,33,37],{"title":21,"path":22,"stem":23,"type":24,"device":6},"Get access","\u002Fget-started\u002Fsetup\u002Fget-access\u002F","01.get-started\u002F01.setup\u002F00.get-access","howto",{"title":26,"path":27,"stem":28,"type":24,"device":6},"GroundControl","\u002Fget-started\u002Fsetup\u002Fgroundcontrol\u002F","01.get-started\u002F01.setup\u002F10.groundcontrol",{"title":30,"path":31,"stem":32,"type":24,"device":6},"Connect to Platform","\u002Fget-started\u002Fsetup\u002Fconnect-to-platform\u002F","01.get-started\u002F01.setup\u002F20.connect-to-platform",{"title":34,"path":35,"stem":36,"type":24,"device":6},"Set up your development machine","\u002Fget-started\u002Fsetup\u002Fdeveloper-machine\u002F","01.get-started\u002F01.setup\u002F30.developer-machine",{"title":38,"path":39,"stem":40,"type":24,"device":6},"SDK installation","\u002Fget-started\u002Fsetup\u002Fsdk-installation\u002F","01.get-started\u002F01.setup\u002F40.sdk-installation",false,{"title":43,"path":44,"stem":45,"type":46,"device":6},"Control a device","\u002Fget-started\u002Fcontrol-a-device\u002F","01.get-started\u002F02.control-a-device","tutorial",{"title":48,"path":49,"stem":50,"type":46,"device":6},"Liquid handling as code","\u002Fget-started\u002Fliquid-handling-as-code\u002F","01.get-started\u002F03.liquid-handling-as-code",{"title":52,"path":53,"stem":54,"type":46,"device":6},"Automate your workflows","\u002Fget-started\u002Fautomate-your-workflows\u002F","01.get-started\u002F04.automate-your-workflows",{"title":56,"path":57,"stem":58,"type":6,"device":6},"Self-Paced Setup Guide","\u002Fget-started\u002Fself-onboarding\u002F","01.get-started\u002F90.self-onboarding",{"title":60,"type":6,"device":6,"path":61,"stem":62,"children":63,"page":41},"How-to","\u002Fhow-to\u002F","02.how-to",[64,118,163,180],{"title":65,"type":6,"device":6,"path":66,"stem":67,"children":68,"page":41},"Connectors and devices","\u002Fhow-to\u002Fintegrate\u002F","02.how-to\u002F02.integrate",[69,102],{"title":70,"type":6,"device":6,"path":71,"stem":72,"children":73,"page":41},"Connect a device","\u002Fhow-to\u002Fintegrate\u002Fconnect-a-device\u002F","02.how-to\u002F02.integrate\u002F20.connect-a-device",[74,78,82,86,90,94,98],{"title":75,"path":76,"stem":77,"type":24,"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":79,"path":80,"stem":81,"type":24,"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":83,"path":84,"stem":85,"type":24,"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":87,"path":88,"stem":89,"type":24,"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":91,"path":92,"stem":93,"type":24,"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":95,"path":96,"stem":97,"type":24,"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":99,"path":100,"stem":101,"type":24,"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":103,"type":6,"device":6,"path":104,"stem":105,"children":106,"page":41},"Use a device","\u002Fhow-to\u002Fintegrate\u002Fuse-a-device\u002F","02.how-to\u002F02.integrate\u002F30.use-a-device",[107,110,114],{"title":26,"path":108,"stem":109,"type":24,"device":6},"\u002Fhow-to\u002Fintegrate\u002Fuse-a-device\u002Fgroundcontrol\u002F","02.how-to\u002F02.integrate\u002F30.use-a-device\u002F10.groundcontrol",{"title":111,"path":112,"stem":113,"type":24,"device":6},"Platform","\u002Fhow-to\u002Fintegrate\u002Fuse-a-device\u002Fplatform\u002F","02.how-to\u002F02.integrate\u002F30.use-a-device\u002F20.platform",{"title":115,"path":116,"stem":117,"type":24,"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":119,"type":6,"device":6,"path":120,"stem":121,"children":122,"page":41},"Workflows","\u002Fhow-to\u002Fautomate\u002F","02.how-to\u002F07.automate",[123,127,131,135,139,143,147,151,155,159],{"title":124,"path":125,"stem":126,"type":24,"device":6},"Deploy a workflow","\u002Fhow-to\u002Fautomate\u002Fdeploy-a-workflow\u002F","02.how-to\u002F07.automate\u002F30.deploy-a-workflow",{"title":128,"path":129,"stem":130,"type":24,"device":6},"Run a workflow","\u002Fhow-to\u002Fautomate\u002Frun-a-workflow\u002F","02.how-to\u002F07.automate\u002F35.run-a-workflow",{"title":132,"path":133,"stem":134,"type":24,"device":6},"CI\u002FCD for workflows","\u002Fhow-to\u002Fautomate\u002Fcicd-for-workflows\u002F","02.how-to\u002F07.automate\u002F40.cicd-for-workflows",{"title":136,"path":137,"stem":138,"type":24,"device":6},"HITL basics","\u002Fhow-to\u002Fautomate\u002Fbasic-hitl\u002F","02.how-to\u002F07.automate\u002F50.basic-hitl",{"title":140,"path":141,"stem":142,"type":24,"device":6},"Slack notifications and operator confirmation","\u002Fhow-to\u002Fautomate\u002Fslack-notifications\u002F","02.how-to\u002F07.automate\u002F52.slack-notifications",{"title":144,"path":145,"stem":146,"type":24,"device":6},"Typed operator inputs","\u002Fhow-to\u002Fautomate\u002Ftyped-operator-inputs\u002F","02.how-to\u002F07.automate\u002F55.typed-operator-inputs",{"title":148,"path":149,"stem":150,"type":24,"device":6},"Pause and resume a run","\u002Fhow-to\u002Fautomate\u002Fpause-and-resume\u002F","02.how-to\u002F07.automate\u002F57.pause-and-resume",{"title":152,"path":153,"stem":154,"type":24,"device":6},"Error recovery","\u002Fhow-to\u002Fautomate\u002Fbasic-error-handling\u002F","02.how-to\u002F07.automate\u002F60.basic-error-handling",{"title":156,"path":157,"stem":158,"type":24,"device":6},"Advanced error handling","\u002Fhow-to\u002Fautomate\u002Fadvanced-error-handling\u002F","02.how-to\u002F07.automate\u002F70.advanced-error-handling",{"title":160,"path":161,"stem":162,"type":24,"device":6},"Emit lineage events","\u002Fhow-to\u002Fautomate\u002Femitting-lineage-events\u002F","02.how-to\u002F07.automate\u002F90.emitting-lineage-events",{"title":164,"type":6,"device":6,"path":165,"stem":166,"children":167,"page":41},"Data","\u002Fhow-to\u002Fobserve\u002F","02.how-to\u002F08.observe",[168,172,176],{"title":169,"path":170,"stem":171,"type":24,"device":6},"File System Connector","\u002Fhow-to\u002Fobserve\u002Ffilesystem-connector\u002F","02.how-to\u002F08.observe\u002F10.filesystem-connector",{"title":173,"path":174,"stem":175,"type":24,"device":6},"Building an ETL","\u002Fhow-to\u002Fobserve\u002Fbuilding-an-etl\u002F","02.how-to\u002F08.observe\u002F20.building-an-etl",{"title":177,"path":178,"stem":179,"type":24,"device":6},"Read lineage events","\u002Fhow-to\u002Fobserve\u002Freading-lineage-events\u002F","02.how-to\u002F08.observe\u002F30.reading-lineage-events",{"title":111,"type":6,"device":6,"path":181,"stem":182,"children":183,"page":41},"\u002Fhow-to\u002Fplatform\u002F","02.how-to\u002F09.platform",[184],{"title":185,"path":186,"stem":187,"type":24,"device":6},"UniteLabs Desktop","\u002Fhow-to\u002Fplatform\u002Funitelabs-desktop\u002F","02.how-to\u002F09.platform\u002F10.unitelabs-desktop",{"title":189,"type":6,"device":6,"path":190,"stem":191,"children":192},"Technical Reference","\u002Ftechnical-reference\u002F","03.technical-reference",[193,196,201,213,226,235,244,253,262],{"title":194,"path":190,"stem":195,"type":14,"device":6},"Overview","03.technical-reference\u002Findex",{"title":197,"path":198,"stem":199,"type":200,"device":6},"REST API","\u002Ftechnical-reference\u002Frest-api\u002F","03.technical-reference\u002F01.rest-api","reference",{"title":119,"type":6,"device":6,"path":202,"stem":203,"children":204,"page":41},"\u002Ftechnical-reference\u002Fautomate\u002F","03.technical-reference\u002F07.automate",[205,209],{"title":206,"path":207,"stem":208,"type":200,"device":6},"Workflow template","\u002Ftechnical-reference\u002Fautomate\u002Fworkflow-template\u002F","03.technical-reference\u002F07.automate\u002F05.workflow-template",{"title":210,"path":211,"stem":212,"type":200,"device":6},"Workflows REST API","\u002Ftechnical-reference\u002Fautomate\u002Fworkflows-api\u002F","03.technical-reference\u002F07.automate\u002F80.workflows-api",{"title":26,"type":6,"device":6,"path":214,"stem":215,"children":216},"\u002Ftechnical-reference\u002Fgroundcontrol\u002F","03.technical-reference\u002F10.groundcontrol\u002Findex",[217,218,222],{"title":194,"path":214,"stem":215,"type":14,"device":6},{"title":219,"path":220,"stem":221,"type":200,"device":6},"Network requirements","\u002Ftechnical-reference\u002Fgroundcontrol\u002Fnetwork-requirements\u002F","03.technical-reference\u002F10.groundcontrol\u002F10.network-requirements",{"title":223,"path":224,"stem":225,"type":200,"device":6},"Changelog","\u002Ftechnical-reference\u002Fgroundcontrol\u002Fchangelog\u002F","03.technical-reference\u002F10.groundcontrol\u002F20.changelog",{"title":227,"type":6,"device":6,"path":228,"stem":229,"children":230},"UniteLabs SDK","\u002Ftechnical-reference\u002Fpython-sdk\u002F","03.technical-reference\u002F20.python-sdk\u002Findex",[231,232],{"title":194,"path":228,"stem":229,"type":14,"device":6},{"title":223,"path":233,"stem":234,"type":200,"device":6},"\u002Ftechnical-reference\u002Fpython-sdk\u002Fchangelog\u002F","03.technical-reference\u002F20.python-sdk\u002F20.changelog",{"title":236,"type":6,"device":6,"path":237,"stem":238,"children":239},"Liquid Handling SDK","\u002Ftechnical-reference\u002Fpython-liquid-handling-sdk\u002F","03.technical-reference\u002F30.python-liquid-handling-sdk\u002Findex",[240,241],{"title":194,"path":237,"stem":238,"type":14,"device":6},{"title":223,"path":242,"stem":243,"type":200,"device":6},"\u002Ftechnical-reference\u002Fpython-liquid-handling-sdk\u002Fchangelog\u002F","03.technical-reference\u002F30.python-liquid-handling-sdk\u002F20.changelog",{"title":245,"type":6,"device":6,"path":246,"stem":247,"children":248},"Labware","\u002Ftechnical-reference\u002Flabware\u002F","03.technical-reference\u002F40.labware\u002Findex",[249,250],{"title":194,"path":246,"stem":247,"type":14,"device":6},{"title":223,"path":251,"stem":252,"type":200,"device":6},"\u002Ftechnical-reference\u002Flabware\u002Fchangelog\u002F","03.technical-reference\u002F40.labware\u002F20.changelog",{"title":254,"type":6,"device":6,"path":255,"stem":256,"children":257},"Python Omnibus","\u002Ftechnical-reference\u002Fpython-omnibus\u002F","03.technical-reference\u002F50.python-omnibus\u002Findex",[258,259],{"title":194,"path":255,"stem":256,"type":14,"device":6},{"title":223,"path":260,"stem":261,"type":200,"device":6},"\u002Ftechnical-reference\u002Fpython-omnibus\u002Fchangelog\u002F","03.technical-reference\u002F50.python-omnibus\u002F20.changelog",{"title":263,"type":6,"device":6,"path":264,"stem":265,"children":266},"Python CDK","\u002Ftechnical-reference\u002Fpython-cdk\u002F","03.technical-reference\u002F60.python-cdk\u002Findex",[267,268],{"title":194,"path":264,"stem":265,"type":14,"device":6},{"title":223,"path":269,"stem":270,"type":200,"device":6},"\u002Ftechnical-reference\u002Fpython-cdk\u002Fchangelog\u002F","03.technical-reference\u002F60.python-cdk\u002F20.changelog",{"title":272,"type":6,"device":6,"path":273,"stem":274,"children":275,"page":41},"Concepts","\u002Fconcepts\u002F","04.concepts",[276,315,339,383,422],{"title":277,"type":6,"device":6,"path":278,"stem":279,"children":280,"page":41},"Labs as code","\u002Fconcepts\u002Flabs-as-code\u002F","04.concepts\u002F01.labs-as-code",[281,286,290],{"title":282,"path":283,"stem":284,"type":285,"device":6},"Lab as Code","\u002Fconcepts\u002Flabs-as-code\u002Fwhy-code\u002F","04.concepts\u002F01.labs-as-code\u002F00.why-code","explanation",{"title":287,"path":288,"stem":289,"type":285,"device":6},"How it works","\u002Fconcepts\u002Flabs-as-code\u002Fhow-it-works\u002F","04.concepts\u002F01.labs-as-code\u002F01.how-it-works",{"title":291,"type":6,"device":6,"path":292,"stem":293,"children":294,"page":41},"Use Cases","\u002Fconcepts\u002Flabs-as-code\u002Fuse-cases\u002F","04.concepts\u002F01.labs-as-code\u002F02.use-cases",[295,299,303,307,311],{"title":296,"path":297,"stem":298,"type":285,"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":300,"path":301,"stem":302,"type":285,"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":304,"path":305,"stem":306,"type":285,"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":308,"path":309,"stem":310,"type":285,"device":6},"Custom Apps and LIMS Integration","\u002Fconcepts\u002Flabs-as-code\u002Fuse-cases\u002Fcustom-apps-lims\u002F","04.concepts\u002F01.labs-as-code\u002F02.use-cases\u002F40.custom-apps-lims",{"title":312,"path":313,"stem":314,"type":285,"device":6},"Scale and Fleet Management","\u002Fconcepts\u002Flabs-as-code\u002Fuse-cases\u002Fscale-and-fleet\u002F","04.concepts\u002F01.labs-as-code\u002F02.use-cases\u002F50.scale-and-fleet",{"title":65,"type":6,"device":6,"path":316,"stem":317,"children":318,"page":41},"\u002Fconcepts\u002Fintegrate\u002F","04.concepts\u002F02.integrate",[319,323,327,331,335],{"title":320,"path":321,"stem":322,"type":285,"device":6},"Device","\u002Fconcepts\u002Fintegrate\u002Fdevice\u002F","04.concepts\u002F02.integrate\u002F05.device",{"title":324,"path":325,"stem":326,"type":285,"device":6},"Connector","\u002Fconcepts\u002Fintegrate\u002Fconnector\u002F","04.concepts\u002F02.integrate\u002F10.connector",{"title":328,"path":329,"stem":330,"type":285,"device":6},"Module","\u002Fconcepts\u002Fintegrate\u002Fmodule\u002F","04.concepts\u002F02.integrate\u002F20.module",{"title":332,"path":333,"stem":334,"type":285,"device":6},"Action","\u002Fconcepts\u002Fintegrate\u002Faction\u002F","04.concepts\u002F02.integrate\u002F30.action",{"title":336,"path":337,"stem":338,"type":285,"device":6},"Subscription","\u002Fconcepts\u002Fintegrate\u002Fsubscription\u002F","04.concepts\u002F02.integrate\u002F40.subscription",{"title":340,"type":6,"device":6,"path":341,"stem":342,"children":343,"page":41},"Liquid handling and robots","\u002Fconcepts\u002Foperate\u002F","04.concepts\u002F03.operate",[344,348,352,356,359,363,367,371,375,379],{"title":345,"path":346,"stem":347,"type":285,"device":6},"Liquid Handling","\u002Fconcepts\u002Foperate\u002Fliquid-handling\u002F","04.concepts\u002F03.operate\u002F10.liquid-handling",{"title":349,"path":350,"stem":351,"type":285,"device":6},"Modules","\u002Fconcepts\u002Foperate\u002Fmodules\u002F","04.concepts\u002F03.operate\u002F20.modules",{"title":353,"path":354,"stem":355,"type":285,"device":6},"Deck","\u002Fconcepts\u002Foperate\u002Fdeck\u002F","04.concepts\u002F03.operate\u002F30.deck",{"title":245,"path":357,"stem":358,"type":285,"device":6},"\u002Fconcepts\u002Foperate\u002Flabware\u002F","04.concepts\u002F03.operate\u002F40.labware",{"title":360,"path":361,"stem":362,"type":285,"device":6},"Liquids","\u002Fconcepts\u002Foperate\u002Fliquids\u002F","04.concepts\u002F03.operate\u002F50.liquids",{"title":364,"path":365,"stem":366,"type":285,"device":6},"Liquid Classes","\u002Fconcepts\u002Foperate\u002Fliquid-classes\u002F","04.concepts\u002F03.operate\u002F60.liquid-classes",{"title":368,"path":369,"stem":370,"type":285,"device":6},"Parameter Sets","\u002Fconcepts\u002Foperate\u002Fparameter-sets\u002F","04.concepts\u002F03.operate\u002F65.parameter-sets",{"title":372,"path":373,"stem":374,"type":285,"device":6},"Tips and Tip Tracking","\u002Fconcepts\u002Foperate\u002Ftips\u002F","04.concepts\u002F03.operate\u002F70.tips",{"title":376,"path":377,"stem":378,"type":285,"device":6},"Simulation","\u002Fconcepts\u002Foperate\u002Fsimulation\u002F","04.concepts\u002F03.operate\u002F80.simulation",{"title":380,"path":381,"stem":382,"type":285,"device":6},"Error Handling","\u002Fconcepts\u002Foperate\u002Ferror-handling\u002F","04.concepts\u002F03.operate\u002F90.error-handling",{"title":119,"type":6,"device":6,"path":384,"stem":385,"children":386,"page":41},"\u002Fconcepts\u002Fautomate\u002F","04.concepts\u002F07.automate",[387,391,395,399,403,407,411,415,419],{"title":388,"path":389,"stem":390,"type":285,"device":6},"Workflow","\u002Fconcepts\u002Fautomate\u002Fworkflow\u002F","04.concepts\u002F07.automate\u002F10.workflow",{"title":392,"path":393,"stem":394,"type":285,"device":6},"Phase","\u002Fconcepts\u002Fautomate\u002Fphase\u002F","04.concepts\u002F07.automate\u002F20.phase",{"title":396,"path":397,"stem":398,"type":285,"device":6},"Step","\u002Fconcepts\u002Fautomate\u002Fstep\u002F","04.concepts\u002F07.automate\u002F30.step",{"title":400,"path":401,"stem":402,"type":285,"device":6},"Runs","\u002Fconcepts\u002Fautomate\u002Fruns\u002F","04.concepts\u002F07.automate\u002F40.runs",{"title":404,"path":405,"stem":406,"type":285,"device":6},"Input","\u002Fconcepts\u002Fautomate\u002Finput\u002F","04.concepts\u002F07.automate\u002F50.input",{"title":408,"path":409,"stem":410,"type":285,"device":6},"Artifacts","\u002Fconcepts\u002Fautomate\u002Fartifacts\u002F","04.concepts\u002F07.automate\u002F60.artifacts",{"title":412,"path":413,"stem":414,"type":285,"device":6},"Logs","\u002Fconcepts\u002Fautomate\u002Flogs\u002F","04.concepts\u002F07.automate\u002F70.logs",{"title":416,"path":417,"stem":418,"type":285,"device":6},"Human in the Loop","\u002Fconcepts\u002Fautomate\u002Fhuman-in-the-loop\u002F","04.concepts\u002F07.automate\u002F80.human-in-the-loop",{"title":380,"path":420,"stem":421,"type":285,"device":6},"\u002Fconcepts\u002Fautomate\u002Ferror-handling\u002F","04.concepts\u002F07.automate\u002F90.error-handling",{"title":164,"type":6,"device":6,"path":423,"stem":424,"children":425,"page":41},"\u002Fconcepts\u002Fobserve\u002F","04.concepts\u002F08.observe",[426,429,433,437,441],{"title":194,"path":427,"stem":428,"type":14,"device":6},"\u002Fconcepts\u002Fobserve\u002Foverview\u002F","04.concepts\u002F08.observe\u002F10.overview",{"title":430,"path":431,"stem":432,"type":285,"device":6},"Object Storage","\u002Fconcepts\u002Fobserve\u002Fstorage\u002F","04.concepts\u002F08.observe\u002F10.storage",{"title":434,"path":435,"stem":436,"type":285,"device":6},"Secrets","\u002Fconcepts\u002Fobserve\u002Fsecrets\u002F","04.concepts\u002F08.observe\u002F20.secrets",{"title":438,"path":439,"stem":440,"type":285,"device":6},"Data sources","\u002Fconcepts\u002Fobserve\u002Fdata-sources\u002F","04.concepts\u002F08.observe\u002F30.data-sources",{"title":442,"path":443,"stem":444,"type":285,"device":6},"Data lineage","\u002Fconcepts\u002Fobserve\u002Fdata-lineage\u002F","04.concepts\u002F08.observe\u002F40.data-lineage",{"title":446,"type":6,"device":6,"path":447,"stem":448,"children":449,"page":41},"Devices","\u002Fdevices\u002F","05.devices",[450,453,501,514,530,567],{"title":194,"path":451,"stem":452,"type":14,"device":6},"\u002Fdevices\u002Foverview\u002F","05.devices\u002F00.overview",{"title":454,"path":455,"page":41,"children":456},"Heater-shakers","\u002Fdevices\u002Fheater-shakers\u002F",[457,478,488],{"title":458,"path":459,"stem":460,"type":200,"device":461},"QInstruments BioShake","\u002Fdevices\u002Fqinstruments-bioshake\u002F","05.devices\u002F10.qinstruments-bioshake",{"slug":462,"vendor":463,"category":464,"connector":462,"package":465,"models":466,"communication":473,"vendor_software":6,"os":474},"qinstruments-bioshake","QInstruments","Plate Shakers & Temperature Control","unitelabs-qinstruments-bioshake",[467,468,469,470,471,472],"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)",[475,476,477],"windows","linux","macos",{"title":479,"path":480,"stem":481,"type":200,"device":482},"QInstruments ColdPlate","\u002Fdevices\u002Fqinstruments-coldplate\u002F","05.devices\u002F20.qinstruments-coldplate",{"slug":483,"vendor":463,"category":464,"connector":462,"package":465,"models":484,"communication":473,"vendor_software":6,"os":487},"qinstruments-coldplate",[485,486],"ColdPlate","ColdPlate slim",[475,476,477],{"title":489,"path":490,"stem":491,"type":200,"device":492},"Inheco Thermoshake","\u002Fdevices\u002Finheco-thermoshake\u002F","05.devices\u002F30.inheco-thermoshake",{"slug":493,"vendor":494,"category":464,"connector":495,"models":496},"inheco-thermoshake","Inheco","inheco-tec-controller",[497,498,499,500],"Thermoshake AC","Thermoshake AC LC","Thermoshake Classic","Thermoshake RM",{"title":502,"path":503,"page":41,"children":504},"Incubation","\u002Fdevices\u002Fincubation\u002F",[505],{"title":506,"path":507,"stem":508,"type":200,"device":509},"Inheco SCILA","\u002Fdevices\u002Finheco-scila\u002F","05.devices\u002F40.inheco-scila",{"slug":510,"vendor":494,"category":502,"connector":510,"models":511},"inheco-scila",[512,513],"SCILA","SCILA MIX 2-gas mixing device",{"title":515,"path":516,"page":41,"children":517},"Thermal cyclers","\u002Fdevices\u002Fthermal-cyclers\u002F",[518],{"title":519,"path":520,"stem":521,"type":200,"device":522},"Inheco ODTC","\u002Fdevices\u002Finheco-odtc\u002F","05.devices\u002F50.inheco-odtc",{"slug":523,"vendor":494,"category":524,"connector":523,"models":525},"inheco-odtc","Thermal Cycler",[526,527,528,529],"ODTC 96","ODTC 96XL","ODTC 384","ODTC 384XL",{"title":531,"path":532,"page":41,"children":533},"Readers","\u002Fdevices\u002Freaders\u002F",[534,543,552],{"title":535,"path":536,"stem":537,"type":200,"device":538},"Agilent Biotek Gen5","\u002Fdevices\u002Fbiotek-gen5\u002F","05.devices\u002F60.biotek-gen5",{"slug":539,"vendor":540,"category":541,"connector":542},"biotek-gen5","Agilent","Readers & Imagers","gen5",{"title":544,"path":545,"stem":546,"type":200,"device":547},"Biotek Synergy H1","\u002Fdevices\u002Fbiotek-synergy-h1\u002F","05.devices\u002F70.biotek-synergy-h1",{"slug":548,"vendor":540,"category":541,"connector":549,"models":550},"biotek-synergy-h1","agilent-synergy-h1",[551],"BioTek Synergy H1",{"title":553,"path":554,"stem":555,"type":200,"device":556},"Tecan Infinite 200","\u002Fdevices\u002Ftecan-infinite-200\u002F","05.devices\u002F75.tecan-infinite-200",{"slug":557,"vendor":558,"category":541,"connector":557,"package":559,"models":560,"communication":564,"vendor_software":565,"os":566},"tecan-infinite-200","Tecan","unitelabs-tecan-infinite-200",[561,562,563],"Infinite F200","Infinite M200","Infinite M200 Pro","USB","i-control on Windows only, for its USB driver",[475,476,477],{"title":568,"path":569,"page":41,"children":570},"Tilt & turn","\u002Fdevices\u002Ftilt-and-turn\u002F",[571,581],{"title":572,"path":573,"stem":574,"type":200,"device":575},"QInstruments TiltStation","\u002Fdevices\u002Fqinstruments-tiltstation\u002F","05.devices\u002F80.qinstruments-tiltstation",{"slug":576,"vendor":463,"category":577,"connector":462,"package":465,"models":578,"communication":473,"vendor_software":6,"os":580},"qinstruments-tiltstation","Plate Tilting",[579],"TiltStation",[475,476,477],{"title":582,"path":583,"stem":584,"type":200,"device":585},"QInstruments TurnStation","\u002Fdevices\u002Fqinstruments-turnstation\u002F","05.devices\u002F90.qinstruments-turnstation",{"slug":586,"vendor":463,"category":587,"connector":462,"package":465,"models":588,"communication":473,"vendor_software":6,"os":590},"qinstruments-turnstation","Plate Rotating",[589],"TurnStation",[475,476,477],{"title":592,"type":6,"device":6,"path":593,"stem":594,"children":595,"page":41},"Liquid Handling and Robots","\u002Fliquid-handling-and-robots\u002F","06.liquid-handling-and-robots",[596,599,611,635,638,679,704,721,738],{"title":194,"path":597,"stem":598,"type":14,"device":6},"\u002Fliquid-handling-and-robots\u002Foverview\u002F","06.liquid-handling-and-robots\u002F00.overview",{"title":353,"type":6,"device":6,"path":600,"stem":601,"children":602,"page":41},"\u002Fliquid-handling-and-robots\u002Fdeck\u002F","06.liquid-handling-and-robots\u002F10.deck",[603,607],{"title":604,"path":605,"stem":606,"type":24,"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":608,"path":609,"stem":610,"type":24,"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":612,"type":6,"device":6,"path":613,"stem":614,"children":615,"page":41},"Pipetting","\u002Fliquid-handling-and-robots\u002Fpipetting\u002F","06.liquid-handling-and-robots\u002F20.pipetting",[616,620,624,628,631],{"title":617,"path":618,"stem":619,"type":24,"device":6},"Basic Pipetting","\u002Fliquid-handling-and-robots\u002Fpipetting\u002Fbasic-pipetting\u002F","06.liquid-handling-and-robots\u002F20.pipetting\u002F10.basic-pipetting",{"title":621,"path":622,"stem":623,"type":24,"device":6},"Advanced Pipetting","\u002Fliquid-handling-and-robots\u002Fpipetting\u002Fadvanced-pipetting\u002F","06.liquid-handling-and-robots\u002F20.pipetting\u002F20.advanced-pipetting",{"title":625,"path":626,"stem":627,"type":24,"device":6},"Tip Handling","\u002Fliquid-handling-and-robots\u002Fpipetting\u002Ftip-handling\u002F","06.liquid-handling-and-robots\u002F20.pipetting\u002F30.tip-handling",{"title":364,"path":629,"stem":630,"type":24,"device":6},"\u002Fliquid-handling-and-robots\u002Fpipetting\u002Fliquid-classes\u002F","06.liquid-handling-and-robots\u002F20.pipetting\u002F40.liquid-classes",{"title":632,"path":633,"stem":634,"type":24,"device":6},"Labware Transport","\u002Fliquid-handling-and-robots\u002Fpipetting\u002Flabware-transport\u002F","06.liquid-handling-and-robots\u002F20.pipetting\u002F50.labware-transport",{"title":376,"path":636,"stem":637,"type":24,"device":6},"\u002Fliquid-handling-and-robots\u002Fsimulation\u002F","06.liquid-handling-and-robots\u002F30.simulation",{"title":639,"type":6,"device":6,"path":640,"stem":641,"children":642,"page":41},"Hamilton STAR","\u002Fliquid-handling-and-robots\u002Fhamilton-star\u002F","06.liquid-handling-and-robots\u002F41.hamilton-star",[643,647,651,655,659,663,667,671,675],{"title":644,"path":645,"stem":646,"type":24,"device":6},"Positioning & Movement","\u002Fliquid-handling-and-robots\u002Fhamilton-star\u002Fpositioning\u002F","06.liquid-handling-and-robots\u002F41.hamilton-star\u002F10.positioning",{"title":648,"path":649,"stem":650,"type":24,"device":6},"Gripper Module","\u002Fliquid-handling-and-robots\u002Fhamilton-star\u002Fcore-gripper\u002F","06.liquid-handling-and-robots\u002F41.hamilton-star\u002F20.core-gripper",{"title":652,"path":653,"stem":654,"type":24,"device":6},"iSWAP Module","\u002Fliquid-handling-and-robots\u002Fhamilton-star\u002Fiswap\u002F","06.liquid-handling-and-robots\u002F41.hamilton-star\u002F30.iswap",{"title":656,"path":657,"stem":658,"type":24,"device":6},"Using TADM","\u002Fliquid-handling-and-robots\u002Fhamilton-star\u002Ftadm\u002F","06.liquid-handling-and-robots\u002F41.hamilton-star\u002F40.tadm",{"title":660,"path":661,"stem":662,"type":24,"device":6},"Autoload Module","\u002Fliquid-handling-and-robots\u002Fhamilton-star\u002Fautoload\u002F","06.liquid-handling-and-robots\u002F41.hamilton-star\u002F50.autoload",{"title":664,"path":665,"stem":666,"type":24,"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":668,"path":669,"stem":670,"type":24,"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":672,"path":673,"stem":674,"type":24,"device":6},"Teaching Gripper Paddle Positions","\u002Fliquid-handling-and-robots\u002Fhamilton-star\u002Fgripper-positions\u002F","06.liquid-handling-and-robots\u002F41.hamilton-star\u002F70.gripper-positions",{"title":676,"path":677,"stem":678,"type":24,"device":6},"Training a Custom Deck Position With the iSWAP","\u002Fliquid-handling-and-robots\u002Fhamilton-star\u002Fcustom-deck-position\u002F","06.liquid-handling-and-robots\u002F41.hamilton-star\u002F75.custom-deck-position",{"title":680,"type":6,"device":6,"path":681,"stem":682,"children":683,"page":41},"Hamilton Vantage","\u002Fliquid-handling-and-robots\u002Fhamilton-vantage\u002F","06.liquid-handling-and-robots\u002F42.hamilton-vantage",[684,688,692,696,700],{"title":685,"path":686,"stem":687,"type":24,"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":689,"path":690,"stem":691,"type":24,"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":693,"path":694,"stem":695,"type":24,"device":6},"IDL Module","\u002Fliquid-handling-and-robots\u002Fhamilton-vantage\u002Fidl\u002F","06.liquid-handling-and-robots\u002F42.hamilton-vantage\u002F20.idl",{"title":697,"path":698,"stem":699,"type":24,"device":6},"IPG Module","\u002Fliquid-handling-and-robots\u002Fhamilton-vantage\u002Fipg\u002F","06.liquid-handling-and-robots\u002F42.hamilton-vantage\u002F30.ipg",{"title":701,"path":702,"stem":703,"type":24,"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":705,"type":6,"device":6,"path":706,"stem":707,"children":708,"page":41},"Agilent Bravo","\u002Fliquid-handling-and-robots\u002Fagilent-bravo\u002F","06.liquid-handling-and-robots\u002F43.agilent-bravo",[709,712,715,718],{"title":625,"path":710,"stem":711,"type":24,"device":6},"\u002Fliquid-handling-and-robots\u002Fagilent-bravo\u002Ftip-handling\u002F","06.liquid-handling-and-robots\u002F43.agilent-bravo\u002F10.tip-handling",{"title":617,"path":713,"stem":714,"type":24,"device":6},"\u002Fliquid-handling-and-robots\u002Fagilent-bravo\u002Fbasic-pipetting\u002F","06.liquid-handling-and-robots\u002F43.agilent-bravo\u002F20.basic-pipetting",{"title":364,"path":716,"stem":717,"type":24,"device":6},"\u002Fliquid-handling-and-robots\u002Fagilent-bravo\u002Fliquid-classes\u002F","06.liquid-handling-and-robots\u002F43.agilent-bravo\u002F25.liquid-classes",{"title":648,"path":719,"stem":720,"type":24,"device":6},"\u002Fliquid-handling-and-robots\u002Fagilent-bravo\u002Fusing-the-gripper\u002F","06.liquid-handling-and-robots\u002F43.agilent-bravo\u002F30.using-the-gripper",{"title":722,"type":6,"device":6,"path":723,"stem":724,"children":725,"page":41},"Tecan FluentControl","\u002Fliquid-handling-and-robots\u002Ftecan-fluentcontrol\u002F","06.liquid-handling-and-robots\u002F44.tecan-fluentcontrol",[726,730,734],{"title":727,"path":728,"stem":729,"type":24,"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":731,"path":732,"stem":733,"type":24,"device":6},"Sending XML Commands","\u002Fliquid-handling-and-robots\u002Ftecan-fluentcontrol\u002Fsending-xml-commands\u002F","06.liquid-handling-and-robots\u002F44.tecan-fluentcontrol\u002F20.sending-xml-commands",{"title":735,"path":736,"stem":737,"type":24,"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":739,"type":6,"device":6,"path":740,"stem":741,"children":742,"page":41},"Tecan Freedom EVO","\u002Fliquid-handling-and-robots\u002Ftecan-freedom-evo\u002F","06.liquid-handling-and-robots\u002F45.tecan-freedom-evo",[743,747,750,753,757],{"title":744,"path":745,"stem":746,"type":24,"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":625,"path":748,"stem":749,"type":24,"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":617,"path":751,"stem":752,"type":24,"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":754,"path":755,"stem":756,"type":24,"device":6},"Using the Gripper (RoMa)","\u002Fliquid-handling-and-robots\u002Ftecan-freedom-evo\u002Fusing-the-gripper\u002F","06.liquid-handling-and-robots\u002F45.tecan-freedom-evo\u002F40.using-the-gripper",{"title":364,"path":758,"stem":759,"type":24,"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":245,"type":6,"device":6,"path":761,"stem":762,"children":763,"page":41},"\u002Flabware\u002F","07.labware",[764,767,771,775,779,783,787],{"title":194,"path":765,"stem":766,"type":14,"device":6},"\u002Flabware\u002Foverview\u002F","07.labware\u002F00.overview",{"title":768,"path":769,"stem":770,"type":200,"device":6},"Standard Labware","\u002Flabware\u002Fstandard-labware\u002F","07.labware\u002F10.standard-labware",{"title":772,"path":773,"stem":774,"type":200,"device":6},"Plates","\u002Flabware\u002Fplates\u002F","07.labware\u002F20.plates",{"title":776,"path":777,"stem":778,"type":200,"device":6},"Tips and Tip Racks","\u002Flabware\u002Ftips-and-racks\u002F","07.labware\u002F30.tips-and-racks",{"title":780,"path":781,"stem":782,"type":200,"device":6},"Tubes and Tube Racks","\u002Flabware\u002Ftubes-and-tube-racks\u002F","07.labware\u002F40.tubes-and-tube-racks",{"title":784,"path":785,"stem":786,"type":200,"device":6},"Troughs","\u002Flabware\u002Ftroughs\u002F","07.labware\u002F50.troughs",{"title":788,"path":789,"stem":790,"type":200,"device":6},"Carriers and Adapters","\u002Flabware\u002Fcarriers-and-adapters\u002F","07.labware\u002F60.carriers-and-adapters",{"title":792,"type":6,"device":6,"path":793,"stem":794,"children":795},"Connector Development (CDK)","\u002Fconnector-development\u002F","20.connector-development",[796,798,822,855,863,903],{"title":194,"path":793,"stem":797,"type":14,"device":6},"20.connector-development\u002Findex",{"title":799,"path":800,"stem":801,"children":802,"page":41},"Getting Started","\u002Fconnector-development\u002Fgetting-started\u002F","20.connector-development\u002F10.getting-started",[803,806,810,814,818],{"title":194,"path":804,"stem":805,"type":285,"device":6},"\u002Fconnector-development\u002Fgetting-started\u002Foverview\u002F","20.connector-development\u002F10.getting-started\u002F10.overview",{"title":807,"path":808,"stem":809,"type":24,"device":6},"What's new","\u002Fconnector-development\u002Fgetting-started\u002Fwhats-new\u002F","20.connector-development\u002F10.getting-started\u002F20.whats-new",{"title":811,"path":812,"stem":813,"type":24,"device":6},"Installation","\u002Fconnector-development\u002Fgetting-started\u002Finstallation\u002F","20.connector-development\u002F10.getting-started\u002F30.installation",{"title":815,"path":816,"stem":817,"type":24,"device":6},"Python Environment and Project Management","\u002Fconnector-development\u002Fgetting-started\u002Fpython-environments\u002F","20.connector-development\u002F10.getting-started\u002F35.python-environments",{"title":819,"path":820,"stem":821,"type":24,"device":6},"Contributing","\u002Fconnector-development\u002Fgetting-started\u002Fcontributing\u002F","20.connector-development\u002F10.getting-started\u002F40.contributing",{"title":823,"path":824,"stem":825,"children":826,"page":41},"Tutorial","\u002Fconnector-development\u002Ftutorial\u002F","20.connector-development\u002F20.tutorial",[827,831,835,839,843,847,851],{"title":828,"path":829,"stem":830,"type":46,"device":6},"Walkthrough","\u002Fconnector-development\u002Ftutorial\u002Fwalkthrough\u002F","20.connector-development\u002F20.tutorial\u002F00.walkthrough",{"title":832,"path":833,"stem":834,"type":46,"device":6},"SiLA Endpoints","\u002Fconnector-development\u002Ftutorial\u002Fsila-endpoints\u002F","20.connector-development\u002F20.tutorial\u002F10.sila-endpoints",{"title":836,"path":837,"stem":838,"type":46,"device":6},"Data Endpoints","\u002Fconnector-development\u002Ftutorial\u002Fdata-endpoints\u002F","20.connector-development\u002F20.tutorial\u002F20.data-endpoints",{"title":840,"path":841,"stem":842,"type":46,"device":6},"Controls","\u002Fconnector-development\u002Ftutorial\u002Fcontrols\u002F","20.connector-development\u002F20.tutorial\u002F30.controls",{"title":844,"path":845,"stem":846,"type":46,"device":6},"SiLA Data Types","\u002Fconnector-development\u002Ftutorial\u002Fdata-types\u002F","20.connector-development\u002F20.tutorial\u002F40.data-types",{"title":848,"path":849,"stem":850,"type":46,"device":6},"Feature","\u002Fconnector-development\u002Ftutorial\u002Fconnector-structure\u002F","20.connector-development\u002F20.tutorial\u002F70.connector-structure",{"title":852,"path":853,"stem":854,"type":46,"device":6},"Hardware Communication","\u002Fconnector-development\u002Ftutorial\u002Fhardware-communication\u002F","20.connector-development\u002F20.tutorial\u002F90.hardware-communication",{"title":272,"type":6,"device":6,"path":856,"stem":857,"children":858,"page":41},"\u002Fconnector-development\u002Fconcepts\u002F","20.connector-development\u002F30.concepts",[859],{"title":860,"path":861,"stem":862,"type":285,"device":6},"SiLA","\u002Fconnector-development\u002Fconcepts\u002Fsila\u002F","20.connector-development\u002F30.concepts\u002Fsila",{"title":864,"path":865,"stem":866,"children":867,"page":41},"Guides","\u002Fconnector-development\u002Fguides\u002F","20.connector-development\u002F40.guides",[868,872,876,880,884,888,892,895,899],{"title":869,"path":870,"stem":871,"type":24,"device":6},"Configuration","\u002Fconnector-development\u002Fguides\u002Fconfiguration\u002F","20.connector-development\u002F40.guides\u002F20.configuration",{"title":873,"path":874,"stem":875,"type":24,"device":6},"Logging","\u002Fconnector-development\u002Fguides\u002Flogging\u002F","20.connector-development\u002F40.guides\u002F21.logging",{"title":877,"path":878,"stem":879,"type":24,"device":6},"Deployment","\u002Fconnector-development\u002Fguides\u002Fdeployment\u002F","20.connector-development\u002F40.guides\u002F30.deployment",{"title":881,"path":882,"stem":883,"type":24,"device":6},"Security","\u002Fconnector-development\u002Fguides\u002Fsecurity\u002F","20.connector-development\u002F40.guides\u002F40.security",{"title":885,"path":886,"stem":887,"type":24,"device":6},"Subscriptions","\u002Fconnector-development\u002Fguides\u002Fsubscriptions\u002F","20.connector-development\u002F40.guides\u002F45.subscriptions",{"title":889,"path":890,"stem":891,"type":24,"device":6},"Execution Modes","\u002Fconnector-development\u002Fguides\u002Fexecution-modes\u002F","20.connector-development\u002F40.guides\u002F46.execution-modes",{"title":380,"path":893,"stem":894,"type":24,"device":6},"\u002Fconnector-development\u002Fguides\u002Ferror-handling\u002F","20.connector-development\u002F40.guides\u002F50.error-handling",{"title":896,"path":897,"stem":898,"type":24,"device":6},"Serial Troubleshooting","\u002Fconnector-development\u002Fguides\u002Fserial-troubleshooting\u002F","20.connector-development\u002F40.guides\u002F70.serial-troubleshooting",{"title":900,"path":901,"stem":902,"type":24,"device":6},"Testing","\u002Fconnector-development\u002Fguides\u002Ftesting\u002F","20.connector-development\u002F40.guides\u002F80.testing",{"title":904,"path":905,"stem":906,"children":907,"type":6,"device":6},"References","\u002Fconnector-development\u002Freference\u002F","20.connector-development\u002F50.reference\u002Findex",[908],{"title":904,"path":905,"stem":906,"type":200,"device":6},{"id":910,"title":660,"body":911,"description":2207,"device":6,"extension":2208,"links":6,"meta":2209,"navigation":1006,"path":2210,"seo":2211,"stem":662,"type":24,"__hash__":2212},"docs\u002F06.liquid-handling-and-robots\u002F41.hamilton-star\u002F50.autoload.md",{"type":912,"value":913,"toc":2192},"minimark",[914,918,924,951,956,959,1085,1089,1092,1100,1103,1252,1255,1258,1270,1281,1309,1313,1324,1370,1377,1380,1385,1407,1412,1433,1502,1507,1529,1541,1659,1677,1681,1691,1729,1732,1739,1760,1767,1771,1782,1900,1904,1907,2045,2049,2055,2107,2111,2118,2130,2133,2188],[915,916,917],"p",{},"In this guide the basic deck is extended with a loading tray and the Autoload is used to move carriers on and off the deck. The barcode scanner of the Autoload is used to scan barcodes of the carrier and plate placed on it.",[915,919,920],{},[921,922,923],"strong",{},"Prerequisites",[925,926,927,931,934,937,945],"ul",{},[928,929,930],"li",{},"A switched on Hamilton STAR device with the Autoload module",[928,932,933],{},"A plate carrier with barcode, plate with a barcode",[928,935,936],{},"A running Hamilton STAR connector",[928,938,939,940,944],{},"Basic understanding of how labware is used (See the ",[941,942,943],"a",{"href":769},"using standard labware tutorial",")",[928,946,947,948,944],{},"Basic understanding of the liquid handler class (See the ",[941,949,950],{"href":346},"liquid handler tutorial",[952,953,955],"h2",{"id":954},"power-on-the-system","Power On the System",[915,957,958],{},"Ensure that the Hamilton STAR is powered on and ready for operation. Verify that the connector is running and connected to the UniteLabs platform.",[960,961,966],"pre",{"className":962,"code":963,"language":964,"meta":965,"style":965},"language-python shiki shiki-themes github-light-high-contrast github-light-high-contrast github-dark-default","from unitelabs.sdk import AsyncApiClient\nfrom unitelabs.liquid_handling.hamilton import MicrolabSTAR\n\nclient = AsyncApiClient()\n\n# Initialize the Hamilton Microlab STAR\nhamilton = MicrolabSTAR(\n  name=\"Microlab STAR\",\n  client=client,\n)\nawait hamilton.initialize()\n","python","",[967,968,969,988,1001,1008,1020,1025,1032,1043,1059,1070,1076],"code",{"__ignoreMap":965},[970,971,974,978,982,985],"span",{"class":972,"line":973},"line",1,[970,975,977],{"class":976},"sxkbv","from",[970,979,981],{"class":980},"sc-9e"," unitelabs.sdk ",[970,983,984],{"class":976},"import",[970,986,987],{"class":980}," AsyncApiClient\n",[970,989,991,993,996,998],{"class":972,"line":990},2,[970,992,977],{"class":976},[970,994,995],{"class":980}," unitelabs.liquid_handling.hamilton ",[970,997,984],{"class":976},[970,999,1000],{"class":980}," MicrolabSTAR\n",[970,1002,1004],{"class":972,"line":1003},3,[970,1005,1007],{"emptyLinePlaceholder":1006},true,"\n",[970,1009,1011,1014,1017],{"class":972,"line":1010},4,[970,1012,1013],{"class":980},"client ",[970,1015,1016],{"class":976},"=",[970,1018,1019],{"class":980}," AsyncApiClient()\n",[970,1021,1023],{"class":972,"line":1022},5,[970,1024,1007],{"emptyLinePlaceholder":1006},[970,1026,1028],{"class":972,"line":1027},6,[970,1029,1031],{"class":1030},"sIsDC","# Initialize the Hamilton Microlab STAR\n",[970,1033,1035,1038,1040],{"class":972,"line":1034},7,[970,1036,1037],{"class":980},"hamilton ",[970,1039,1016],{"class":976},[970,1041,1042],{"class":980}," MicrolabSTAR(\n",[970,1044,1046,1050,1052,1056],{"class":972,"line":1045},8,[970,1047,1049],{"class":1048},"sNqAu","  name",[970,1051,1016],{"class":976},[970,1053,1055],{"class":1054},"sCx38","\"Microlab STAR\"",[970,1057,1058],{"class":980},",\n",[970,1060,1062,1065,1067],{"class":972,"line":1061},9,[970,1063,1064],{"class":1048},"  client",[970,1066,1016],{"class":976},[970,1068,1069],{"class":980},"client,\n",[970,1071,1073],{"class":972,"line":1072},10,[970,1074,1075],{"class":980},")\n",[970,1077,1079,1082],{"class":972,"line":1078},11,[970,1080,1081],{"class":976},"await",[970,1083,1084],{"class":980}," hamilton.initialize()\n",[952,1086,1088],{"id":1087},"arrange-the-deck","Arrange the Deck",[915,1090,1091],{},"Arrange the deck layout using the components from the labware library. This guide uses",[925,1093,1094,1097],{},[928,1095,1096],{},"a plate carrier with one barcoded standard 96 well microtiter plate.",[928,1098,1099],{},"a sample carrier filled with barcoded tubes.",[915,1101,1102],{},"If the liquid handler is outfitted with a loading tray, this loading tray is configured during initialization and extends the regular main deck. The loading tray part of the deck can be accessed through the autoload module.",[960,1104,1106],{"className":962,"code":1105,"language":964,"meta":965,"style":965},"from unitelabs.labware import Standard96Plate, Vector\nfrom unitelabs.labware.falcon import Standard15mLTube\nfrom unitelabs.labware.hamilton import PLT_CAR_L5MD_A00, SMP_CAR_12_A00\n\n# Sample carrier\nsample_carrier = SMP_CAR_12_A00()\nsample_carrier.fill(Standard15mLTube())\nhamilton.autoload.loading_tray.add(sample_carrier, track=1)\n\n# Plate carrier\nplate_carrier = PLT_CAR_L5MD_A00()\nplate = Standard96Plate()\nplate_carrier[0] = plate\nhamilton.autoload.loading_tray.add(plate_carrier, track=7)\n",[967,1107,1108,1120,1132,1151,1155,1160,1170,1175,1190,1194,1199,1209,1220,1237],{"__ignoreMap":965},[970,1109,1110,1112,1115,1117],{"class":972,"line":973},[970,1111,977],{"class":976},[970,1113,1114],{"class":980}," unitelabs.labware ",[970,1116,984],{"class":976},[970,1118,1119],{"class":980}," Standard96Plate, Vector\n",[970,1121,1122,1124,1127,1129],{"class":972,"line":990},[970,1123,977],{"class":976},[970,1125,1126],{"class":980}," unitelabs.labware.falcon ",[970,1128,984],{"class":976},[970,1130,1131],{"class":980}," Standard15mLTube\n",[970,1133,1134,1136,1139,1141,1145,1148],{"class":972,"line":1003},[970,1135,977],{"class":976},[970,1137,1138],{"class":980}," unitelabs.labware.hamilton ",[970,1140,984],{"class":976},[970,1142,1144],{"class":1143},"sOiAX"," PLT_CAR_L5MD_A00",[970,1146,1147],{"class":980},", ",[970,1149,1150],{"class":1143},"SMP_CAR_12_A00\n",[970,1152,1153],{"class":972,"line":1010},[970,1154,1007],{"emptyLinePlaceholder":1006},[970,1156,1157],{"class":972,"line":1022},[970,1158,1159],{"class":1030},"# Sample carrier\n",[970,1161,1162,1165,1167],{"class":972,"line":1027},[970,1163,1164],{"class":980},"sample_carrier ",[970,1166,1016],{"class":976},[970,1168,1169],{"class":980}," SMP_CAR_12_A00()\n",[970,1171,1172],{"class":972,"line":1034},[970,1173,1174],{"class":980},"sample_carrier.fill(Standard15mLTube())\n",[970,1176,1177,1180,1183,1185,1188],{"class":972,"line":1045},[970,1178,1179],{"class":980},"hamilton.autoload.loading_tray.add(sample_carrier, ",[970,1181,1182],{"class":1048},"track",[970,1184,1016],{"class":976},[970,1186,1187],{"class":1143},"1",[970,1189,1075],{"class":980},[970,1191,1192],{"class":972,"line":1061},[970,1193,1007],{"emptyLinePlaceholder":1006},[970,1195,1196],{"class":972,"line":1072},[970,1197,1198],{"class":1030},"# Plate carrier\n",[970,1200,1201,1204,1206],{"class":972,"line":1078},[970,1202,1203],{"class":980},"plate_carrier ",[970,1205,1016],{"class":976},[970,1207,1208],{"class":980}," PLT_CAR_L5MD_A00()\n",[970,1210,1212,1215,1217],{"class":972,"line":1211},12,[970,1213,1214],{"class":980},"plate ",[970,1216,1016],{"class":976},[970,1218,1219],{"class":980}," Standard96Plate()\n",[970,1221,1223,1226,1229,1232,1234],{"class":972,"line":1222},13,[970,1224,1225],{"class":980},"plate_carrier[",[970,1227,1228],{"class":1143},"0",[970,1230,1231],{"class":980},"] ",[970,1233,1016],{"class":976},[970,1235,1236],{"class":980}," plate\n",[970,1238,1240,1243,1245,1247,1250],{"class":972,"line":1239},14,[970,1241,1242],{"class":980},"hamilton.autoload.loading_tray.add(plate_carrier, ",[970,1244,1182],{"class":1048},[970,1246,1016],{"class":976},[970,1248,1249],{"class":1143},"7",[970,1251,1075],{"class":980},[952,1253,644],{"id":1254},"positioning-movement",[915,1256,1257],{},"Before diving into loading and unloading, the current position of the autoload relative to the tracks is queried.",[960,1259,1261],{"className":962,"code":1260,"language":964,"meta":965,"style":965},"await hamilton.autoload.current_track()\n",[967,1262,1263],{"__ignoreMap":965},[970,1264,1265,1267],{"class":972,"line":973},[970,1266,1081],{"class":976},[970,1268,1269],{"class":980}," hamilton.autoload.current_track()\n",[915,1271,1272,1273,1276,1277,1280],{},"The autoload carriage can also be moved to a defined track position or moved to safety using the ",[967,1274,1275],{},"move_to()"," and the\n",[967,1278,1279],{},"park()"," method.",[960,1282,1284],{"className":962,"code":1283,"language":964,"meta":965,"style":965},"await hamilton.autoload.move_to(track=30)\nawait hamilton.autoload.park()\n",[967,1285,1286,1302],{"__ignoreMap":965},[970,1287,1288,1290,1293,1295,1297,1300],{"class":972,"line":973},[970,1289,1081],{"class":976},[970,1291,1292],{"class":980}," hamilton.autoload.move_to(",[970,1294,1182],{"class":1048},[970,1296,1016],{"class":976},[970,1298,1299],{"class":1143},"30",[970,1301,1075],{"class":980},[970,1303,1304,1306],{"class":972,"line":990},[970,1305,1081],{"class":976},[970,1307,1308],{"class":980}," hamilton.autoload.park()\n",[952,1310,1312],{"id":1311},"loading","Loading",[915,1314,1315,1316,1319,1320,1323],{},"The ",[967,1317,1318],{},"load_carrier()"," method will drive the autoload carriage to the defined track and move the carrier onto the deck space. The in-built barcode reader can read barcodes of tubes and plates that are placed on the carrier. The following line of code loads the plate carrier and reads the barcodes of all plates placed on it. Passing ",[967,1321,1322],{},"read_barcode=True"," scans using the labware's default symbologies.",[960,1325,1327],{"className":962,"code":1326,"language":964,"meta":965,"style":965},"barcodes = await hamilton.autoload.load_carrier(carrier=plate_carrier, read_barcode=True, is_last=False)\n",[967,1328,1329],{"__ignoreMap":965},[970,1330,1331,1334,1336,1339,1342,1345,1347,1350,1353,1355,1358,1360,1363,1365,1368],{"class":972,"line":973},[970,1332,1333],{"class":980},"barcodes ",[970,1335,1016],{"class":976},[970,1337,1338],{"class":976}," await",[970,1340,1341],{"class":980}," hamilton.autoload.load_carrier(",[970,1343,1344],{"class":1048},"carrier",[970,1346,1016],{"class":976},[970,1348,1349],{"class":980},"plate_carrier, ",[970,1351,1352],{"class":1048},"read_barcode",[970,1354,1016],{"class":976},[970,1356,1357],{"class":1143},"True",[970,1359,1147],{"class":980},[970,1361,1362],{"class":1048},"is_last",[970,1364,1016],{"class":976},[970,1366,1367],{"class":1143},"False",[970,1369,1075],{"class":980},[915,1371,1372,1373,1376],{},"In this example, the carriers are loaded one after another and thus the autoload carriage should remain in position after loading the first carrier. For this, the ",[967,1374,1375],{},"is_last=False"," is used. Otherwise, the carriage would return to its parking position after each loading procedure.",[915,1378,1379],{},"The method returns a list of strings with the decoded barcode information. The position in the list corresponds to the position of the labware on the carrier.",[915,1381,1315,1382,1384],{},[967,1383,1318],{}," method infers the orientation of the barcode on the labware and will turn the reader into a vertical or horizontal orientation respectively. The following line loads the sample carrier and reads the barcodes in a vertical orientation.",[960,1386,1388],{"className":962,"code":1387,"language":964,"meta":965,"style":965},"barcodes = await hamilton.autoload.load_carrier(carrier=sample_carrier)\n",[967,1389,1390],{"__ignoreMap":965},[970,1391,1392,1394,1396,1398,1400,1402,1404],{"class":972,"line":973},[970,1393,1333],{"class":980},[970,1395,1016],{"class":976},[970,1397,1338],{"class":976},[970,1399,1341],{"class":980},[970,1401,1344],{"class":1048},[970,1403,1016],{"class":976},[970,1405,1406],{"class":980},"sample_carrier)\n",[1408,1409,1411],"h3",{"id":1410},"barcode-types","Barcode Types",[915,1413,1414,1415,1418,1419,1421,1422,1424,1425,1428,1429,1432],{},"There is a variety of barcodes in use and in some cases it may be necessary to specify which symbologies the reader should scan for. Pass one or more ",[967,1416,1417],{},"BarcodeType"," flags to ",[967,1420,1352],{},". Because ",[967,1423,1417],{}," is a ",[967,1426,1427],{},"Flag"," enum, multiple symbologies can be combined with the bitwise ",[967,1430,1431],{},"|"," operator:",[960,1434,1436],{"className":962,"code":1435,"language":964,"meta":965,"style":965},"from unitelabs.liquid_handling.hamilton import BarcodeType\n\nbarcodes = await hamilton.autoload.load_carrier(\n    carrier=plate_carrier,\n    read_barcode=BarcodeType.ISBT | BarcodeType.CODE_128,\n)\n",[967,1437,1438,1449,1453,1464,1474,1498],{"__ignoreMap":965},[970,1439,1440,1442,1444,1446],{"class":972,"line":973},[970,1441,977],{"class":976},[970,1443,995],{"class":980},[970,1445,984],{"class":976},[970,1447,1448],{"class":980}," BarcodeType\n",[970,1450,1451],{"class":972,"line":990},[970,1452,1007],{"emptyLinePlaceholder":1006},[970,1454,1455,1457,1459,1461],{"class":972,"line":1003},[970,1456,1333],{"class":980},[970,1458,1016],{"class":976},[970,1460,1338],{"class":976},[970,1462,1463],{"class":980}," hamilton.autoload.load_carrier(\n",[970,1465,1466,1469,1471],{"class":972,"line":1010},[970,1467,1468],{"class":1048},"    carrier",[970,1470,1016],{"class":976},[970,1472,1473],{"class":980},"plate_carrier,\n",[970,1475,1476,1479,1481,1484,1487,1490,1493,1496],{"class":972,"line":1022},[970,1477,1478],{"class":1048},"    read_barcode",[970,1480,1016],{"class":976},[970,1482,1483],{"class":980},"BarcodeType.",[970,1485,1486],{"class":1143},"ISBT",[970,1488,1489],{"class":976}," |",[970,1491,1492],{"class":980}," BarcodeType.",[970,1494,1495],{"class":1143},"CODE_128",[970,1497,1058],{"class":980},[970,1499,1500],{"class":972,"line":1027},[970,1501,1075],{"class":980},[915,1503,1315,1504,1506],{},[967,1505,1352],{}," parameter accepts:",[925,1508,1509,1514,1520],{},[928,1510,1511,1513],{},[967,1512,1357],{}," — scan using the carrier's\u002Flabware's default symbologies (all 1D types except Code 93).",[928,1515,1516,1517,1519],{},"A ",[967,1518,1417],{}," (or combination) — scan only for the given symbologies.",[928,1521,1522,1524,1525,1528],{},[967,1523,1367],{}," \u002F ",[967,1526,1527],{},"None"," — do not read barcodes.",[915,1530,1531,1532,1535,1536,1540],{},"The following symbologies are supported. ",[921,1533,1534],{},"2D symbologies require an instrument with a 2D autoload module"," (see ",[941,1537,1539],{"href":1538},"#_2d-barcode-reader","2D Barcode Reader"," below).",[1542,1543,1544,1557],"table",{},[1545,1546,1547],"thead",{},[1548,1549,1550,1554],"tr",{},[1551,1552,1553],"th",{},"1D symbologies",[1551,1555,1556],{},"2D symbologies",[1558,1559,1560,1573,1585,1597,1609,1622,1635,1647],"tbody",{},[1548,1561,1562,1568],{},[1563,1564,1565,1567],"td",{},[967,1566,1486],{}," (ISBT Standard)",[1563,1569,1570],{},[967,1571,1572],{},"DATA_MATRIX",[1548,1574,1575,1580],{},[1563,1576,1577,1579],{},[967,1578,1495],{}," (subset B and C)",[1563,1581,1582],{},[967,1583,1584],{},"QR_CODE",[1548,1586,1587,1592],{},[1563,1588,1589],{},[967,1590,1591],{},"CODE_39",[1563,1593,1594],{},[967,1595,1596],{},"MAXI_CODE",[1548,1598,1599,1604],{},[1563,1600,1601],{},[967,1602,1603],{},"CODABAR",[1563,1605,1606],{},[967,1607,1608],{},"AZTEC",[1548,1610,1611,1617],{},[1563,1612,1613,1616],{},[967,1614,1615],{},"ITF"," (Code 2 of 5 Interleaved)",[1563,1618,1619],{},[967,1620,1621],{},"PDF_417",[1548,1623,1624,1630],{},[1563,1625,1626,1629],{},[967,1627,1628],{},"UPC_A"," (UPC A\u002FE)",[1563,1631,1632],{},[967,1633,1634],{},"MICRO_PDF_417",[1548,1636,1637,1642],{},[1563,1638,1639],{},[967,1640,1641],{},"EAN_8",[1563,1643,1644],{},[967,1645,1646],{},"GS1_DATABAR",[1548,1648,1649,1654],{},[1563,1650,1651],{},[967,1652,1653],{},"CODE_93",[1563,1655,1656],{},[967,1657,1658],{},"EAN_UCC_COMP",[1660,1661,1664],"callout",{"color":1662,"icon":1663},"info","i-heroicons-information-circle",[915,1665,1666,1667,1670,1671,1673,1674,1676],{},"Passing barcode types as plain integers (e.g. ",[967,1668,1669],{},"read_barcode=1",") is no longer supported starting from liqid-handling version sdk 0.31.0 — use the ",[967,1672,1417],{}," flags or ",[967,1675,1357],{},".",[952,1678,1680],{"id":1679},"unloading","Unloading",[915,1682,1683,1684,1687,1688,1690],{},"Unloading is performed with the ",[967,1685,1686],{},"unload_carrier()"," method. In the following snippet, the last unload method returns the autoload carriage to its home position after completing the unload process using the ",[967,1689,1362],{}," parameter.",[960,1692,1694],{"className":962,"code":1693,"language":964,"meta":965,"style":965},"await hamilton.autoload.unload_carrier(carrier=sample_carrier)\nawait hamilton.autoload.unload_carrier(carrier=plate_carrier, is_last=True)\n",[967,1695,1696,1709],{"__ignoreMap":965},[970,1697,1698,1700,1703,1705,1707],{"class":972,"line":973},[970,1699,1081],{"class":976},[970,1701,1702],{"class":980}," hamilton.autoload.unload_carrier(",[970,1704,1344],{"class":1048},[970,1706,1016],{"class":976},[970,1708,1406],{"class":980},[970,1710,1711,1713,1715,1717,1719,1721,1723,1725,1727],{"class":972,"line":990},[970,1712,1081],{"class":976},[970,1714,1702],{"class":980},[970,1716,1344],{"class":1048},[970,1718,1016],{"class":976},[970,1720,1349],{"class":980},[970,1722,1362],{"class":1048},[970,1724,1016],{"class":976},[970,1726,1357],{"class":1143},[970,1728,1075],{"class":980},[952,1730,1539],{"id":1731},"_2d-barcode-reader",[915,1733,1734,1735,1738],{},"Instruments fitted with a 2D autoload module can read 2D symbologies (Data Matrix, QR, etc.) and expose additional controls over the reading region and illumination. When reading a configuration from the instrument, this capability is detected directly, however the user can also explicitly enable the 2D features by configuring the autoload with ",[967,1736,1737],{},"two_d=True",":",[960,1740,1742],{"className":962,"code":1741,"language":964,"meta":965,"style":965},"await hamilton.autoload.configure(two_d=True)\n",[967,1743,1744],{"__ignoreMap":965},[970,1745,1746,1748,1751,1754,1756,1758],{"class":972,"line":973},[970,1747,1081],{"class":976},[970,1749,1750],{"class":980}," hamilton.autoload.configure(",[970,1752,1753],{"class":1048},"two_d",[970,1755,1016],{"class":976},[970,1757,1357],{"class":1143},[970,1759,1075],{"class":980},[915,1761,1762,1763,1766],{},"All 2D-only methods raise a ",[967,1764,1765],{},"ModuleError"," if the autoload was not configured as a 2D reader.",[1408,1768,1770],{"id":1769},"region-of-interest-illumination","Region of Interest & Illumination",[915,1772,1773,1774,1777,1778,1781],{},"When loading a carrier on a 2D reader, you can constrain the scan to a Region of Interest (ROI) and override the illumination. Passing either ",[967,1775,1776],{},"roi"," or ",[967,1779,1780],{},"illumination"," automatically enables the free-definable grid and requires a 2D reader.",[960,1783,1785],{"className":962,"code":1784,"language":964,"meta":965,"style":965},"barcodes = await hamilton.autoload.load_carrier(\n    carrier=plate_carrier,\n    read_barcode=BarcodeType.DATA_MATRIX,\n    # ROI in mm: (YR0, ZR, ΔYR, ΔZR)\n    roi=(0.0, 0.0, 20.0, 10.0),\n    # 7 illumination values: internal 1-4, external on, gain, exposure time\n    illumination=(0, 0, 0, 0, 1, 5, 100),\n)\n",[967,1786,1787,1797,1805,1817,1822,1852,1857,1896],{"__ignoreMap":965},[970,1788,1789,1791,1793,1795],{"class":972,"line":973},[970,1790,1333],{"class":980},[970,1792,1016],{"class":976},[970,1794,1338],{"class":976},[970,1796,1463],{"class":980},[970,1798,1799,1801,1803],{"class":972,"line":990},[970,1800,1468],{"class":1048},[970,1802,1016],{"class":976},[970,1804,1473],{"class":980},[970,1806,1807,1809,1811,1813,1815],{"class":972,"line":1003},[970,1808,1478],{"class":1048},[970,1810,1016],{"class":976},[970,1812,1483],{"class":980},[970,1814,1572],{"class":1143},[970,1816,1058],{"class":980},[970,1818,1819],{"class":972,"line":1010},[970,1820,1821],{"class":1030},"    # ROI in mm: (YR0, ZR, ΔYR, ΔZR)\n",[970,1823,1824,1827,1829,1832,1835,1837,1839,1841,1844,1846,1849],{"class":972,"line":1022},[970,1825,1826],{"class":1048},"    roi",[970,1828,1016],{"class":976},[970,1830,1831],{"class":980},"(",[970,1833,1834],{"class":1143},"0.0",[970,1836,1147],{"class":980},[970,1838,1834],{"class":1143},[970,1840,1147],{"class":980},[970,1842,1843],{"class":1143},"20.0",[970,1845,1147],{"class":980},[970,1847,1848],{"class":1143},"10.0",[970,1850,1851],{"class":980},"),\n",[970,1853,1854],{"class":972,"line":1027},[970,1855,1856],{"class":1030},"    # 7 illumination values: internal 1-4, external on, gain, exposure time\n",[970,1858,1859,1862,1864,1866,1868,1870,1872,1874,1876,1878,1880,1882,1884,1886,1889,1891,1894],{"class":972,"line":1034},[970,1860,1861],{"class":1048},"    illumination",[970,1863,1016],{"class":976},[970,1865,1831],{"class":980},[970,1867,1228],{"class":1143},[970,1869,1147],{"class":980},[970,1871,1228],{"class":1143},[970,1873,1147],{"class":980},[970,1875,1228],{"class":1143},[970,1877,1147],{"class":980},[970,1879,1228],{"class":1143},[970,1881,1147],{"class":980},[970,1883,1187],{"class":1143},[970,1885,1147],{"class":980},[970,1887,1888],{"class":1143},"5",[970,1890,1147],{"class":980},[970,1892,1893],{"class":1143},"100",[970,1895,1851],{"class":980},[970,1897,1898],{"class":972,"line":1045},[970,1899,1075],{"class":980},[1408,1901,1903],{"id":1902},"free-definable-carrier","Free Definable Carrier",[915,1905,1906],{},"For non-standard carriers, the reading position, ROI, direction and illumination can be defined per labware position. Configure each position, then reset when done.",[960,1908,1910],{"className":962,"code":1909,"language":964,"meta":965,"style":965},"await hamilton.autoload.set_free_definable_carrier(\n    position=1,            # labware position (0 is reserved for the carrier ID)\n    reading_position=12.5, # code reading position in mm\n    roi=(0.0, 0.0, 20.0, 10.0),\n    direction=2,           # 0=vertical, 1=horizontal, 2=free orientation\n    illumination=(0, 0, 0, 0, 1, 5, 100),\n)\n\n# Reset all free definable carrier settings\nawait hamilton.autoload.reset_free_definable_carrier()\n",[967,1911,1912,1919,1934,1949,1973,1989,2025,2029,2033,2038],{"__ignoreMap":965},[970,1913,1914,1916],{"class":972,"line":973},[970,1915,1081],{"class":976},[970,1917,1918],{"class":980}," hamilton.autoload.set_free_definable_carrier(\n",[970,1920,1921,1924,1926,1928,1931],{"class":972,"line":990},[970,1922,1923],{"class":1048},"    position",[970,1925,1016],{"class":976},[970,1927,1187],{"class":1143},[970,1929,1930],{"class":980},",            ",[970,1932,1933],{"class":1030},"# labware position (0 is reserved for the carrier ID)\n",[970,1935,1936,1939,1941,1944,1946],{"class":972,"line":1003},[970,1937,1938],{"class":1048},"    reading_position",[970,1940,1016],{"class":976},[970,1942,1943],{"class":1143},"12.5",[970,1945,1147],{"class":980},[970,1947,1948],{"class":1030},"# code reading position in mm\n",[970,1950,1951,1953,1955,1957,1959,1961,1963,1965,1967,1969,1971],{"class":972,"line":1010},[970,1952,1826],{"class":1048},[970,1954,1016],{"class":976},[970,1956,1831],{"class":980},[970,1958,1834],{"class":1143},[970,1960,1147],{"class":980},[970,1962,1834],{"class":1143},[970,1964,1147],{"class":980},[970,1966,1843],{"class":1143},[970,1968,1147],{"class":980},[970,1970,1848],{"class":1143},[970,1972,1851],{"class":980},[970,1974,1975,1978,1980,1983,1986],{"class":972,"line":1022},[970,1976,1977],{"class":1048},"    direction",[970,1979,1016],{"class":976},[970,1981,1982],{"class":1143},"2",[970,1984,1985],{"class":980},",           ",[970,1987,1988],{"class":1030},"# 0=vertical, 1=horizontal, 2=free orientation\n",[970,1990,1991,1993,1995,1997,1999,2001,2003,2005,2007,2009,2011,2013,2015,2017,2019,2021,2023],{"class":972,"line":1027},[970,1992,1861],{"class":1048},[970,1994,1016],{"class":976},[970,1996,1831],{"class":980},[970,1998,1228],{"class":1143},[970,2000,1147],{"class":980},[970,2002,1228],{"class":1143},[970,2004,1147],{"class":980},[970,2006,1228],{"class":1143},[970,2008,1147],{"class":980},[970,2010,1228],{"class":1143},[970,2012,1147],{"class":980},[970,2014,1187],{"class":1143},[970,2016,1147],{"class":980},[970,2018,1888],{"class":1143},[970,2020,1147],{"class":980},[970,2022,1893],{"class":1143},[970,2024,1851],{"class":980},[970,2026,2027],{"class":972,"line":1034},[970,2028,1075],{"class":980},[970,2030,2031],{"class":972,"line":1045},[970,2032,1007],{"emptyLinePlaceholder":1006},[970,2034,2035],{"class":972,"line":1061},[970,2036,2037],{"class":1030},"# Reset all free definable carrier settings\n",[970,2039,2040,2042],{"class":972,"line":1072},[970,2041,1081],{"class":976},[970,2043,2044],{"class":980}," hamilton.autoload.reset_free_definable_carrier()\n",[1408,2046,2048],{"id":2047},"reading-codes-by-position","Reading Codes by Position",[915,2050,2051,2052,2054],{},"After a ",[967,2053,1318],{}," call, individual codes and their lengths can be queried by labware position:",[960,2056,2058],{"className":962,"code":2057,"language":964,"meta":965,"style":965},"# Barcode at a specific position (0 = carrier ID, 1 = first labware position)\ncode = await hamilton.autoload.request_code_by_position(position=1)\n\n# Code lengths for all positions from the last load (0 = unread or > 255 chars)\nlengths = await hamilton.autoload.request_code_lengths()\n",[967,2059,2060,2065,2086,2090,2095],{"__ignoreMap":965},[970,2061,2062],{"class":972,"line":973},[970,2063,2064],{"class":1030},"# Barcode at a specific position (0 = carrier ID, 1 = first labware position)\n",[970,2066,2067,2070,2072,2074,2077,2080,2082,2084],{"class":972,"line":990},[970,2068,2069],{"class":980},"code ",[970,2071,1016],{"class":976},[970,2073,1338],{"class":976},[970,2075,2076],{"class":980}," hamilton.autoload.request_code_by_position(",[970,2078,2079],{"class":1048},"position",[970,2081,1016],{"class":976},[970,2083,1187],{"class":1143},[970,2085,1075],{"class":980},[970,2087,2088],{"class":972,"line":1003},[970,2089,1007],{"emptyLinePlaceholder":1006},[970,2091,2092],{"class":972,"line":1010},[970,2093,2094],{"class":1030},"# Code lengths for all positions from the last load (0 = unread or > 255 chars)\n",[970,2096,2097,2100,2102,2104],{"class":972,"line":1022},[970,2098,2099],{"class":980},"lengths ",[970,2101,1016],{"class":976},[970,2103,1338],{"class":976},[970,2105,2106],{"class":980}," hamilton.autoload.request_code_lengths()\n",[952,2108,2110],{"id":2109},"selected-low-level-methods","Selected Low-level Methods",[915,2112,2113,2114,2117],{},"More useful methods can be accessed through the low-level api using ",[967,2115,2116],{},"hamilton.autoload.api",". These methods only check basic parameter constraint and not any logical or collision-related constraints. The can be invoked as follows:",[960,2119,2121],{"className":962,"code":2120,"language":964,"meta":965,"style":965},"await hamilton.autoload.api.get_deck_presences()\n",[967,2122,2123],{"__ignoreMap":965},[970,2124,2125,2127],{"class":972,"line":973},[970,2126,1081],{"class":976},[970,2128,2129],{"class":980}," hamilton.autoload.api.get_deck_presences()\n",[915,2131,2132],{},"Useful low-level methods include, among others:",[925,2134,2135,2144,2152,2160,2168],{},[928,2136,2137,2140,2143],{},[967,2138,2139],{},"get_deck_presences()",[2141,2142],"br",{},"\nCheck the presence of carriers on the deck without movement. Presence sensors can only check the highest track number\nthat is occupied by the carrier, not its width.",[928,2145,2146,2149,2151],{},[967,2147,2148],{},"get_loading_tray_presences()",[2141,2150],{},"\nCheck the presence of carriers on the loading tray by moving along the tracks. Presence sensors can only check the\nhighest track number that is occupied by the carrier, not its width.",[928,2153,2154,2157,2159],{},[967,2155,2156],{},"get_carrier_presence(track)",[2141,2158],{},"\nCheck the presence of a single carrier on the loading tray by moving to the specified tracks.",[928,2161,2162,2165,2167],{},[967,2163,2164],{},"set_loading_indicators(status)",[2141,2166],{},"\nSet the loading indicators (LED's) of the autoload unit.",[928,2169,2170,2173,2175,2176,1147,2178,1147,2181,2184,2185,2187],{},[967,2171,2172],{},"get_module_type()",[2141,2174],{},"\nRequest the installed autoload module type (",[967,2177,1055],{},[967,2179,2180],{},"\"Microlab STAR 2D\"",[967,2182,2183],{},"\"XRP Lite\"",", or ",[967,2186,1527],{},").",[2189,2190,2191],"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 .sIsDC, html code.shiki .sIsDC{--shiki-light:#66707B;--shiki-default:#66707B;--shiki-dark:#8B949E}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 .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);}html pre.shiki code .sOiAX, html code.shiki .sOiAX{--shiki-light:#023B95;--shiki-default:#023B95;--shiki-dark:#79C0FF}",{"title":965,"searchDepth":973,"depth":990,"links":2193},[2194,2195,2196,2197,2200,2201,2206],{"id":954,"depth":990,"text":955},{"id":1087,"depth":990,"text":1088},{"id":1254,"depth":990,"text":644},{"id":1311,"depth":990,"text":1312,"children":2198},[2199],{"id":1410,"depth":1003,"text":1411},{"id":1679,"depth":990,"text":1680},{"id":1731,"depth":990,"text":1539,"children":2202},[2203,2204,2205],{"id":1769,"depth":1003,"text":1770},{"id":1902,"depth":1003,"text":1903},{"id":2047,"depth":1003,"text":2048},{"id":2109,"depth":990,"text":2110},"A guide on a liquid handler Autoload module.","md",{},"\u002Fliquid-handling-and-robots\u002Fhamilton-star\u002Fautoload",{"title":660,"description":2207},"0xCsEE1LhfoNqIXzEuwq152bNu8WgddpA0nLKeUA3Hk",[2214,2216],{"title":656,"description":2215,"path":657},"How to measure TADM curves and control liquid handling steps with them.",{"title":664,"description":2217,"path":665},"Understand and use the Hamilton waste block.",1791294186320]