[{"data":1,"prerenderedAt":1359},["ShallowReactive",2],{"navigation":3,"/operate/guides/labware/troughs":764,"/operate/guides/labware/troughs-surround":1354},[4,80,134,343,378,442,544,581,660],{"title":5,"path":6,"stem":7,"children":8,"page":42},"Get Started","/get-started","01.get-started",[9,13,17,43,47],{"title":10,"path":11,"stem":12},"Welcome to UniteLabs","/get-started/welcome","01.get-started/00.welcome",{"title":14,"path":15,"stem":16},"How it works","/get-started/how-it-works","01.get-started/01.how-it-works",{"title":18,"path":19,"stem":20,"children":21,"page":42},"Use Cases","/get-started/use-cases","01.get-started/02.use-cases",[22,26,30,34,38],{"title":23,"path":24,"stem":25},"Instrument Control","/get-started/use-cases/low-level-instrument-control","01.get-started/02.use-cases/10.low-level-instrument-control",{"title":27,"path":28,"stem":29},"Multidevice Control","/get-started/use-cases/multidevice-control","01.get-started/02.use-cases/20.multidevice-control",{"title":31,"path":32,"stem":33},"Workflow Orchestration","/get-started/use-cases/workflow-orchestration","01.get-started/02.use-cases/30.workflow-orchestration",{"title":35,"path":36,"stem":37},"Custom Apps and LIMS Integration","/get-started/use-cases/custom-apps-lims","01.get-started/02.use-cases/40.custom-apps-lims",{"title":39,"path":40,"stem":41},"Scale and Fleet Management","/get-started/use-cases/scale-and-fleet","01.get-started/02.use-cases/50.scale-and-fleet",false,{"title":44,"path":45,"stem":46},"Lab as Code","/get-started/why-code","01.get-started/03.why-code",{"title":48,"path":49,"stem":50,"children":51,"page":42},"Setup","/get-started/setup","01.get-started/20.setup",[52,56,60,64,68,72,76],{"title":53,"path":54,"stem":55},"GroundControl","/get-started/setup/groundcontrol","01.get-started/20.setup/10.groundcontrol",{"title":57,"path":58,"stem":59},"Network requirements","/get-started/setup/network-requirements","01.get-started/20.setup/20.network-requirements",{"title":61,"path":62,"stem":63},"Multi-device Networking","/get-started/setup/multiple-devices","01.get-started/20.setup/30.multiple-devices",{"title":65,"path":66,"stem":67},"Connect to Platform","/get-started/setup/connect-to-platform","01.get-started/20.setup/40.connect-to-platform",{"title":69,"path":70,"stem":71},"Headless install","/get-started/setup/headless-install","01.get-started/20.setup/50.headless-install",{"title":73,"path":74,"stem":75},"Raspberry Pi","/get-started/setup/raspberry-pi","01.get-started/20.setup/55.raspberry-pi",{"title":77,"path":78,"stem":79},"Installation","/get-started/setup/sdk-installation","01.get-started/20.setup/60.sdk-installation",{"title":81,"path":82,"stem":83,"children":84,"page":42},"Integrate","/integrate","02.integrate",[85,89,93,118],{"title":86,"path":87,"stem":88},"What is a connector?","/integrate/what-is-a-connector","02.integrate/00.what-is-a-connector",{"title":90,"path":91,"stem":92},"Calling a Connector","/integrate/control-with-code","02.integrate/05.control-with-code",{"title":94,"path":95,"stem":96,"children":97,"page":42},"Concepts","/integrate/concepts","02.integrate/10.concepts",[98,102,106,110,114],{"title":99,"path":100,"stem":101},"Connector","/integrate/concepts/connector","02.integrate/10.concepts/10.connector",{"title":103,"path":104,"stem":105},"Module","/integrate/concepts/module","02.integrate/10.concepts/20.module",{"title":107,"path":108,"stem":109},"Action","/integrate/concepts/action","02.integrate/10.concepts/30.action",{"title":111,"path":112,"stem":113},"Subscription","/integrate/concepts/subscription","02.integrate/10.concepts/40.subscription",{"title":115,"path":116,"stem":117},"Device","/integrate/concepts/device","02.integrate/10.concepts/50.device",{"title":119,"path":120,"stem":121,"children":122,"page":42},"Use a connector","/integrate/use-a-connector","02.integrate/30.use-a-connector",[123,126,130],{"title":53,"path":124,"stem":125},"/integrate/use-a-connector/groundcontrol","02.integrate/30.use-a-connector/10.groundcontrol",{"title":127,"path":128,"stem":129},"Platform","/integrate/use-a-connector/platform","02.integrate/30.use-a-connector/20.platform",{"title":131,"path":132,"stem":133},"UniteLabs SDK & REST API","/integrate/use-a-connector/python","02.integrate/30.use-a-connector/30.python",{"title":135,"path":136,"stem":137,"children":138,"page":42},"Operate","/operate","03.operate",[139,142,146,186,259],{"title":135,"path":140,"stem":141},"/operate/overview","03.operate/00.overview",{"title":143,"path":144,"stem":145},"Your First Protocol","/operate/your-first-protocol","03.operate/05.your-first-protocol",{"title":94,"path":147,"stem":148,"children":149,"page":42},"/operate/concepts","03.operate/10.concepts",[150,154,158,162,166,170,174,178,182],{"title":151,"path":152,"stem":153},"Liquid Handling","/operate/concepts/liquid-handling","03.operate/10.concepts/10.liquid-handling",{"title":155,"path":156,"stem":157},"Modules","/operate/concepts/modules","03.operate/10.concepts/20.modules",{"title":159,"path":160,"stem":161},"Deck","/operate/concepts/deck","03.operate/10.concepts/30.deck",{"title":163,"path":164,"stem":165},"Labware","/operate/concepts/labware","03.operate/10.concepts/40.labware",{"title":167,"path":168,"stem":169},"Liquids","/operate/concepts/liquids","03.operate/10.concepts/50.liquids",{"title":171,"path":172,"stem":173},"Liquid Classes","/operate/concepts/liquid-classes","03.operate/10.concepts/60.liquid-classes",{"title":175,"path":176,"stem":177},"Tips and Tip Tracking","/operate/concepts/tips","03.operate/10.concepts/70.tips",{"title":179,"path":180,"stem":181},"Simulation","/operate/concepts/simulation","03.operate/10.concepts/80.simulation",{"title":183,"path":184,"stem":185},"Error Handling","/operate/concepts/error-handling","03.operate/10.concepts/90.error-handling",{"title":187,"path":188,"stem":189,"children":190,"page":42},"Guides","/operate/guides","03.operate/20.guides",[191,220,232,256],{"title":163,"path":192,"stem":193,"children":194},"/operate/guides/labware","03.operate/20.guides/10.labware/index",[195,196,200,204,208,212,216],{"title":163,"path":192,"stem":193},{"title":197,"path":198,"stem":199},"Standard Labware","/operate/guides/labware/standard-labware","03.operate/20.guides/10.labware/05.standard-labware",{"title":201,"path":202,"stem":203},"Plates","/operate/guides/labware/plates","03.operate/20.guides/10.labware/10.plates",{"title":205,"path":206,"stem":207},"Tips and Tip Racks","/operate/guides/labware/tips-and-racks","03.operate/20.guides/10.labware/20.tips-and-racks",{"title":209,"path":210,"stem":211},"Tubes and Tube Racks","/operate/guides/labware/tubes-and-tube-racks","03.operate/20.guides/10.labware/30.tubes-and-tube-racks",{"title":213,"path":214,"stem":215},"Troughs","/operate/guides/labware/troughs","03.operate/20.guides/10.labware/35.troughs",{"title":217,"path":218,"stem":219},"Carriers and Adapters","/operate/guides/labware/carriers-and-adapters","03.operate/20.guides/10.labware/40.carriers-and-adapters",{"title":159,"path":221,"stem":222,"children":223,"page":42},"/operate/guides/deck","03.operate/20.guides/20.deck",[224,228],{"title":225,"path":226,"stem":227},"Building a Deck","/operate/guides/deck/building-a-deck","03.operate/20.guides/20.deck/10.building-a-deck",{"title":229,"path":230,"stem":231},"Save/Load a Deck","/operate/guides/deck/save-load-deck","03.operate/20.guides/20.deck/20.save-load-deck",{"title":233,"path":234,"stem":235,"children":236,"page":42},"Pipetting","/operate/guides/pipetting","03.operate/20.guides/30.pipetting",[237,241,245,249,252],{"title":238,"path":239,"stem":240},"Basic Pipetting","/operate/guides/pipetting/basic-pipetting","03.operate/20.guides/30.pipetting/10.basic-pipetting",{"title":242,"path":243,"stem":244},"Advanced Pipetting","/operate/guides/pipetting/advanced-pipetting","03.operate/20.guides/30.pipetting/20.advanced-pipetting",{"title":246,"path":247,"stem":248},"Tip Handling","/operate/guides/pipetting/tip-handling","03.operate/20.guides/30.pipetting/30.tip-handling",{"title":171,"path":250,"stem":251},"/operate/guides/pipetting/liquid-classes","03.operate/20.guides/30.pipetting/40.liquid-classes",{"title":253,"path":254,"stem":255},"Labware Transport","/operate/guides/pipetting/labware-transport","03.operate/20.guides/30.pipetting/50.labware-transport",{"title":179,"path":257,"stem":258},"/operate/guides/simulation","03.operate/20.guides/40.simulation",{"title":260,"path":261,"stem":262,"children":263,"page":42},"Liquid Handler Guides","/operate/devices","03.operate/30.devices",[264,305,326],{"title":265,"path":266,"stem":267,"children":268,"page":42},"Hamilton STAR","/operate/devices/hamilton-star","03.operate/30.devices/10.hamilton-star",[269,273,277,281,285,289,293,297,301],{"title":270,"path":271,"stem":272},"Positioning & Movement","/operate/devices/hamilton-star/positioning","03.operate/30.devices/10.hamilton-star/10.positioning",{"title":274,"path":275,"stem":276},"Gripper Module","/operate/devices/hamilton-star/core-gripper","03.operate/30.devices/10.hamilton-star/20.core-gripper",{"title":278,"path":279,"stem":280},"iSWAP Module","/operate/devices/hamilton-star/iswap","03.operate/30.devices/10.hamilton-star/30.iswap",{"title":282,"path":283,"stem":284},"Using TADM","/operate/devices/hamilton-star/tadm","03.operate/30.devices/10.hamilton-star/40.tadm",{"title":286,"path":287,"stem":288},"Autoload Module","/operate/devices/hamilton-star/autoload","03.operate/30.devices/10.hamilton-star/50.autoload",{"title":290,"path":291,"stem":292},"Waste Block","/operate/devices/hamilton-star/waste-block","03.operate/30.devices/10.hamilton-star/60.waste-block",{"title":294,"path":295,"stem":296},"Complex Mixing","/operate/devices/hamilton-star/complex-mixing","03.operate/30.devices/10.hamilton-star/66.complex-mixing",{"title":298,"path":299,"stem":300},"Teaching Gripper Paddle Positions","/operate/devices/hamilton-star/gripper-positions","03.operate/30.devices/10.hamilton-star/70.gripper-positions",{"title":302,"path":303,"stem":304},"Training a Custom Deck Position With the iSWAP","/operate/devices/hamilton-star/custom-deck-position","03.operate/30.devices/10.hamilton-star/75.custom-deck-position",{"title":306,"path":307,"stem":308,"children":309,"page":42},"Hamilton Vantage","/operate/devices/hamilton-vantage","03.operate/30.devices/20.hamilton-vantage",[310,314,318,322],{"title":311,"path":312,"stem":313},"Waste Configuration","/operate/devices/hamilton-vantage/waste.configuration","03.operate/30.devices/20.hamilton-vantage/05.waste.configuration",{"title":315,"path":316,"stem":317},"Covers and Lights","/operate/devices/hamilton-vantage/covers-and-lights","03.operate/30.devices/20.hamilton-vantage/10.covers-and-lights",{"title":319,"path":320,"stem":321},"IDL Module","/operate/devices/hamilton-vantage/idl","03.operate/30.devices/20.hamilton-vantage/20.idl",{"title":323,"path":324,"stem":325},"IPG Module","/operate/devices/hamilton-vantage/ipg","03.operate/30.devices/20.hamilton-vantage/30.ipg",{"title":327,"path":328,"stem":329,"children":330,"page":42},"Agilent Bravo","/operate/devices/agilent-bravo","03.operate/30.devices/30.agilent-bravo",[331,334,337,340],{"title":246,"path":332,"stem":333},"/operate/devices/agilent-bravo/tip-handling","03.operate/30.devices/30.agilent-bravo/10.tip-handling",{"title":238,"path":335,"stem":336},"/operate/devices/agilent-bravo/basic-pipetting","03.operate/30.devices/30.agilent-bravo/20.basic-pipetting",{"title":171,"path":338,"stem":339},"/operate/devices/agilent-bravo/liquid-classes","03.operate/30.devices/30.agilent-bravo/25.liquid-classes",{"title":274,"path":341,"stem":342},"/operate/devices/agilent-bravo/using-the-gripper","03.operate/30.devices/30.agilent-bravo/30.using-the-gripper",{"title":344,"path":345,"stem":346,"children":347,"page":42},"Software Development Kit","/software-development-kit","03.software-development-kit",[348],{"title":187,"path":349,"stem":350,"children":351,"page":42},"/software-development-kit/guides","03.software-development-kit/40.guides",[352,362],{"title":306,"path":353,"stem":354,"children":355,"page":42},"/software-development-kit/guides/hamilton-vantage","03.software-development-kit/40.guides/20.hamilton-vantage",[356,359],{"title":323,"path":357,"stem":358},"/software-development-kit/guides/hamilton-vantage/using-the-ipg","03.software-development-kit/40.guides/20.hamilton-vantage/10.using-the-ipg",{"title":319,"path":360,"stem":361},"/software-development-kit/guides/hamilton-vantage/using-the-idl","03.software-development-kit/40.guides/20.hamilton-vantage/20.using-the-idl",{"title":327,"path":363,"stem":364,"children":365,"page":42},"/software-development-kit/guides/agilent-bravo","03.software-development-kit/40.guides/30.agilent-bravo",[366,369,372,375],{"title":246,"path":367,"stem":368},"/software-development-kit/guides/agilent-bravo/tip-handling","03.software-development-kit/40.guides/30.agilent-bravo/10.tip-handling",{"title":238,"path":370,"stem":371},"/software-development-kit/guides/agilent-bravo/basic-pipetting","03.software-development-kit/40.guides/30.agilent-bravo/20.basic-pipetting",{"title":171,"path":373,"stem":374},"/software-development-kit/guides/agilent-bravo/liquid-classes","03.software-development-kit/40.guides/30.agilent-bravo/25.liquid-classes",{"title":274,"path":376,"stem":377},"/software-development-kit/guides/agilent-bravo/using-the-gripper","03.software-development-kit/40.guides/30.agilent-bravo/30.using-the-gripper",{"title":379,"path":380,"stem":381,"children":382,"page":42},"Device Guides","/device-guides","06.device-guides",[383,386,399,416,429],{"title":379,"path":384,"stem":385},"/device-guides/overview","06.device-guides/00.overview",{"title":387,"path":388,"stem":389,"children":390,"page":42},"Incubation","/device-guides/incubation","06.device-guides/20.incubation",[391,395],{"title":392,"path":393,"stem":394},"Inheco ODTC","/device-guides/incubation/inheco-odtc","06.device-guides/20.incubation/10.inheco-odtc",{"title":396,"path":397,"stem":398},"Inheco SCILA","/device-guides/incubation/inheco-scila","06.device-guides/20.incubation/20.inheco-scila",{"title":400,"path":401,"stem":402,"children":403,"page":42},"Heater-Shakers","/device-guides/heater-shakers","06.device-guides/30.heater-shakers",[404,408,412],{"title":405,"path":406,"stem":407},"Inheco Thermoshake","/device-guides/heater-shakers/inheco-thermoshake","06.device-guides/30.heater-shakers/10.inheco-thermoshake",{"title":409,"path":410,"stem":411},"QInstruments Bioshake","/device-guides/heater-shakers/qinstruments-bioshake","06.device-guides/30.heater-shakers/20.qinstruments-bioshake",{"title":413,"path":414,"stem":415},"QInstruments ColdPlate","/device-guides/heater-shakers/qinstruments-coldplate","06.device-guides/30.heater-shakers/30.qinstruments-coldplate",{"title":417,"path":418,"stem":419,"children":420,"page":42},"Readers","/device-guides/readers","06.device-guides/40.readers",[421,425],{"title":422,"path":423,"stem":424},"Biotek Gen5","/device-guides/readers/biotek-gen5","06.device-guides/40.readers/10.biotek-gen5",{"title":426,"path":427,"stem":428},"Biotek Synergy H1","/device-guides/readers/biotek-synergy-h1","06.device-guides/40.readers/20.biotek-synergy-H1",{"title":430,"path":431,"stem":432,"children":433,"page":42},"Tilt & Turn","/device-guides/tilt-and-turn","06.device-guides/50.tilt-and-turn",[434,438],{"title":435,"path":436,"stem":437},"TurnStation","/device-guides/tilt-and-turn/qinstruments-turnstation","06.device-guides/50.tilt-and-turn/10.qinstruments-turnstation",{"title":439,"path":440,"stem":441},"TiltStation","/device-guides/tilt-and-turn/qinstruments-tiltstation","06.device-guides/50.tilt-and-turn/20.qinstruments-tiltstation",{"title":443,"path":444,"stem":445,"children":446,"page":42},"Automate","/automate","07.automate",[447,451,455,459,508],{"title":448,"path":449,"stem":450},"What is a workflow?","/automate/what-is-a-workflow","07.automate/00.what-is-a-workflow",{"title":452,"path":453,"stem":454},"Workflow template","/automate/workflow-template","07.automate/05.workflow-template",{"title":456,"path":457,"stem":458},"Your First Workflow","/automate/your-first-workflow","07.automate/08.your-first-workflow",{"title":94,"pages":460,"path":470,"stem":471,"children":472,"page":42},[461,462,463,464,465,466,467,468,469],"workflow","phase","step","runs","input","artifacts","logs","human-in-the-loop","error-handling","/automate/concepts","07.automate/10.concepts",[473,477,481,485,489,493,497,501,505],{"title":474,"path":475,"stem":476},"Workflow","/automate/concepts/workflow","07.automate/10.concepts/10.workflow",{"title":478,"path":479,"stem":480},"Phase","/automate/concepts/phase","07.automate/10.concepts/20.phase",{"title":482,"path":483,"stem":484},"Step","/automate/concepts/step","07.automate/10.concepts/30.step",{"title":486,"path":487,"stem":488},"Runs","/automate/concepts/runs","07.automate/10.concepts/40.runs",{"title":490,"path":491,"stem":492},"Input","/automate/concepts/input","07.automate/10.concepts/50.input",{"title":494,"path":495,"stem":496},"Artifacts","/automate/concepts/artifacts","07.automate/10.concepts/60.artifacts",{"title":498,"path":499,"stem":500},"Logs","/automate/concepts/logs","07.automate/10.concepts/70.logs",{"title":502,"path":503,"stem":504},"Human in the Loop","/automate/concepts/human-in-the-loop","07.automate/10.concepts/80.human-in-the-loop",{"title":183,"path":506,"stem":507},"/automate/concepts/error-handling","07.automate/10.concepts/90.error-handling",{"title":187,"path":509,"stem":510,"children":511,"page":42},"/automate/guides","07.automate/25.guides",[512,516,520,524,528,532,536,540],{"title":513,"path":514,"stem":515},"Deploy a workflow","/automate/guides/deploy-a-workflow","07.automate/25.guides/30.deploy-a-workflow",{"title":517,"path":518,"stem":519},"Run a workflow","/automate/guides/run-a-workflow","07.automate/25.guides/35.run-a-workflow",{"title":521,"path":522,"stem":523},"CI/CD for workflows","/automate/guides/cicd-for-workflows","07.automate/25.guides/40.cicd-for-workflows",{"title":525,"path":526,"stem":527},"HITL basics","/automate/guides/basic-hitl","07.automate/25.guides/50.basic-hitl",{"title":529,"path":530,"stem":531},"Typed operator inputs","/automate/guides/typed-operator-inputs","07.automate/25.guides/55.typed-operator-inputs",{"title":533,"path":534,"stem":535},"Error recovery","/automate/guides/basic-error-handling","07.automate/25.guides/60.basic-error-handling",{"title":537,"path":538,"stem":539},"Advanced error handling","/automate/guides/advanced-error-handling","07.automate/25.guides/70.advanced-error-handling",{"title":541,"path":542,"stem":543},"Workflows REST API","/automate/guides/workflows-api","07.automate/25.guides/80.workflows-api",{"title":545,"path":546,"stem":547,"children":548,"page":42},"Observe","/observe","08.observe",[549,553,569],{"title":550,"path":551,"stem":552},"Overview","/observe/overview","08.observe/10.overview",{"title":94,"path":554,"stem":555,"children":556,"page":42},"/observe/concepts","08.observe/20.concepts",[557,561,565],{"title":558,"path":559,"stem":560},"Object Storage","/observe/concepts/storage","08.observe/20.concepts/10.storage",{"title":562,"path":563,"stem":564},"Secrets","/observe/concepts/secrets","08.observe/20.concepts/20.secrets",{"title":566,"path":567,"stem":568},"Data sources","/observe/concepts/data-sources","08.observe/20.concepts/30.data-sources",{"title":187,"path":570,"stem":571,"children":572,"page":42},"/observe/guides","08.observe/30.guides",[573,577],{"title":574,"path":575,"stem":576},"File System Connector","/observe/guides/filesystem-connector","08.observe/30.guides/10.filesystem-connector",{"title":578,"path":579,"stem":580},"Building an ETL","/observe/guides/building-an-etl","08.observe/30.guides/20.building-an-etl",{"title":582,"path":583,"stem":584,"children":585,"page":42},"Technical Reference","/technical-reference","10.technical-reference",[586,590,594,606,617,628,638,649],{"title":587,"path":588,"stem":589},"Introduction","/technical-reference/platform-blueprint","10.technical-reference/00.platform-blueprint",{"title":591,"path":592,"stem":593},"REST API","/technical-reference/rest-api","10.technical-reference/01.rest-api",{"title":53,"path":595,"stem":596,"children":597,"page":42},"/technical-reference/groundcontrol","10.technical-reference/10.groundcontrol",[598,602],{"title":599,"path":600,"stem":601},"Install & Setup","/technical-reference/groundcontrol/install","10.technical-reference/10.groundcontrol/10.install",{"title":603,"path":604,"stem":605},"Changelog","/technical-reference/groundcontrol/changelog","10.technical-reference/10.groundcontrol/20.changelog",{"title":607,"path":608,"stem":609,"children":610,"page":42},"UniteLabs SDK","/technical-reference/python-sdk","10.technical-reference/20.python-sdk",[611,614],{"title":599,"path":612,"stem":613},"/technical-reference/python-sdk/install","10.technical-reference/20.python-sdk/10.install",{"title":603,"path":615,"stem":616},"/technical-reference/python-sdk/changelog","10.technical-reference/20.python-sdk/20.changelog",{"title":618,"path":619,"stem":620,"children":621,"page":42},"Liquid Handling SDK","/technical-reference/python-liquid-handling-sdk","10.technical-reference/30.python-liquid-handling-sdk",[622,625],{"title":599,"path":623,"stem":624},"/technical-reference/python-liquid-handling-sdk/install","10.technical-reference/30.python-liquid-handling-sdk/10.install",{"title":603,"path":626,"stem":627},"/technical-reference/python-liquid-handling-sdk/changelog","10.technical-reference/30.python-liquid-handling-sdk/20.changelog",{"title":163,"path":629,"stem":630,"children":631,"page":42},"/technical-reference/labware","10.technical-reference/40.labware",[632,635],{"title":599,"path":633,"stem":634},"/technical-reference/labware/install","10.technical-reference/40.labware/10.install",{"title":603,"path":636,"stem":637},"/technical-reference/labware/changelog","10.technical-reference/40.labware/20.changelog",{"title":639,"path":640,"stem":641,"children":642,"page":42},"Python Omnibus","/technical-reference/python-omnibus","10.technical-reference/50.python-omnibus",[643,646],{"title":599,"path":644,"stem":645},"/technical-reference/python-omnibus/install","10.technical-reference/50.python-omnibus/10.install",{"title":603,"path":647,"stem":648},"/technical-reference/python-omnibus/changelog","10.technical-reference/50.python-omnibus/20.changelog",{"title":650,"path":651,"stem":652,"children":653,"page":42},"Python CDK","/technical-reference/python-cdk","10.technical-reference/60.python-cdk",[654,657],{"title":599,"path":655,"stem":656},"/technical-reference/python-cdk/install","10.technical-reference/60.python-cdk/10.install",{"title":603,"path":658,"stem":659},"/technical-reference/python-cdk/changelog","10.technical-reference/60.python-cdk/20.changelog",{"title":661,"path":662,"stem":663,"children":664},"Connector Development (CDK)","/connector-development","20.connector-development",[665,667,686,719,727,758],{"title":661,"path":662,"stem":666},"20.connector-development/index",{"title":668,"path":669,"stem":670,"children":671,"page":42},"Getting Started","/connector-development/getting-started","20.connector-development/10.getting-started",[672,675,679,682],{"title":550,"path":673,"stem":674},"/connector-development/getting-started/overview","20.connector-development/10.getting-started/10.overview",{"title":676,"path":677,"stem":678},"What's new","/connector-development/getting-started/whats-new","20.connector-development/10.getting-started/20.whats-new",{"title":77,"path":680,"stem":681},"/connector-development/getting-started/installation","20.connector-development/10.getting-started/30.installation",{"title":683,"path":684,"stem":685},"Contributing","/connector-development/getting-started/contributing","20.connector-development/10.getting-started/40.contributing",{"title":687,"path":688,"stem":689,"children":690,"page":42},"Tutorial","/connector-development/tutorial","20.connector-development/20.tutorial",[691,695,699,703,707,711,715],{"title":692,"path":693,"stem":694},"Walkthrough","/connector-development/tutorial/walkthrough","20.connector-development/20.tutorial/00.walkthrough",{"title":696,"path":697,"stem":698},"SiLA Endpoints","/connector-development/tutorial/sila-endpoints","20.connector-development/20.tutorial/10.sila-endpoints",{"title":700,"path":701,"stem":702},"Data Endpoints","/connector-development/tutorial/data-endpoints","20.connector-development/20.tutorial/20.data-endpoints",{"title":704,"path":705,"stem":706},"Controls","/connector-development/tutorial/controls","20.connector-development/20.tutorial/30.controls",{"title":708,"path":709,"stem":710},"SiLA Data Types","/connector-development/tutorial/data-types","20.connector-development/20.tutorial/40.data-types",{"title":712,"path":713,"stem":714},"Feature","/connector-development/tutorial/connector-structure","20.connector-development/20.tutorial/70.connector-structure",{"title":716,"path":717,"stem":718},"Hardware Communication","/connector-development/tutorial/hardware-communication","20.connector-development/20.tutorial/90.hardware-communication",{"title":94,"path":720,"stem":721,"children":722,"page":42},"/connector-development/concepts","20.connector-development/30.concepts",[723],{"title":724,"path":725,"stem":726},"SiLA","/connector-development/concepts/sila","20.connector-development/30.concepts/sila",{"title":187,"path":728,"stem":729,"children":730,"page":42},"/connector-development/guides","20.connector-development/40.guides",[731,735,739,743,747,750,754],{"title":732,"path":733,"stem":734},"Configuration","/connector-development/guides/configuration","20.connector-development/40.guides/20.configuration",{"title":736,"path":737,"stem":738},"Deployment","/connector-development/guides/deployment","20.connector-development/40.guides/30.deployment",{"title":740,"path":741,"stem":742},"Security","/connector-development/guides/security","20.connector-development/40.guides/40.security",{"title":744,"path":745,"stem":746},"Subscriptions","/connector-development/guides/subscriptions","20.connector-development/40.guides/45.subscriptions",{"title":183,"path":748,"stem":749},"/connector-development/guides/error-handling","20.connector-development/40.guides/50.error-handling",{"title":751,"path":752,"stem":753},"Serial Troubleshooting","/connector-development/guides/serial-troubleshooting","20.connector-development/40.guides/70.serial-troubleshooting",{"title":755,"path":756,"stem":757},"Testing","/connector-development/guides/testing","20.connector-development/40.guides/80.testing",{"title":759,"path":760,"stem":761,"children":762},"References","/connector-development/reference","20.connector-development/50.reference/index",[763],{"title":759,"path":760,"stem":761},{"id":765,"title":213,"body":766,"description":1348,"extension":1349,"links":1350,"meta":1351,"navigation":836,"path":214,"seo":1352,"stem":215,"__hash__":1353},"docs/03.operate/20.guides/10.labware/35.troughs.md",{"type":767,"value":768,"toc":1345},"minimark",[769,773,777,793,1334,1341],[770,771,213],"h2",{"id":772},"troughs",[774,775,776],"p",{},"Troughs are used to store large amounts of liquid such as water, ethanol, or buffer solutions. In contrast to a plate, aspiration from or to a trough with multiple channels work from the same shared container volume.",[774,778,779,780,784,785,788,789,792],{},"Conceptually, a trough is a collection of Fillables with a defined number of access points (",[781,782,783],"code",{},"Hole"," objects) for pipetting channels. These Fillables and holes can be arranged in any layout. In the example below, a grid of 96 holes is generated — similar to a 96-well plate layout — so that multi-channel heads can access the trough at each column position. ",[781,786,787],{},"cols"," and ",[781,790,791],{},"rows"," are hints for the arrangement of the Holes.",[794,795,800],"pre",{"className":796,"code":797,"language":798,"meta":799,"style":799},"language-python shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import collections.abc\nimport dataclasses\n\nfrom unitelabs.labware import (\n    Container,\n    Cuboid,\n    Fillable,\n    Hole,\n    StandardMicroplateDimensions,\n    Trough,\n    Vector,\n    place_standardized,\n)\n\n\n@dataclasses.dataclass\nclass StandardTrough(Trough, StandardMicroplateDimensions):\n    \"\"\"A standard trough.\"\"\"\n\n    cols: int = 12\n    rows: int = 8\n    dimensions: Vector = dataclasses.field(default_factory=lambda: Vector(z=44))\n    children: collections.abc.Sequence[Fillable] = dataclasses.field(\n        repr=False,\n        default_factory=lambda: [\n            Fillable(\n                container=Container(max_volume=300_000, sections=[Cuboid(width=108, depth=72, height=40)]),\n                children=[\n                    Hole(dimensions=dimensions).copy(location=location)\n                    for location, dimensions in place_standardized(count=96, boundary_height=44, item_height=40)\n                ],\n            )\n        ],\n    )\n","python","",[781,801,802,823,831,838,857,866,874,882,890,898,906,914,922,928,933,938,953,979,992,997,1016,1031,1082,1122,1131,1146,1154,1219,1228,1260,1310,1316,1322,1328],{"__ignoreMap":799},[803,804,807,811,815,819],"span",{"class":805,"line":806},"line",1,[803,808,810],{"class":809},"s7zQu","import",[803,812,814],{"class":813},"sTEyZ"," collections",[803,816,818],{"class":817},"sMK4o",".",[803,820,822],{"class":821},"swJcz","abc\n",[803,824,826,828],{"class":805,"line":825},2,[803,827,810],{"class":809},[803,829,830],{"class":813}," dataclasses\n",[803,832,834],{"class":805,"line":833},3,[803,835,837],{"emptyLinePlaceholder":836},true,"\n",[803,839,841,844,847,849,852,854],{"class":805,"line":840},4,[803,842,843],{"class":809},"from",[803,845,846],{"class":813}," unitelabs",[803,848,818],{"class":817},[803,850,851],{"class":813},"labware ",[803,853,810],{"class":809},[803,855,856],{"class":817}," (\n",[803,858,860,863],{"class":805,"line":859},5,[803,861,862],{"class":813},"    Container",[803,864,865],{"class":817},",\n",[803,867,869,872],{"class":805,"line":868},6,[803,870,871],{"class":813},"    Cuboid",[803,873,865],{"class":817},[803,875,877,880],{"class":805,"line":876},7,[803,878,879],{"class":813},"    Fillable",[803,881,865],{"class":817},[803,883,885,888],{"class":805,"line":884},8,[803,886,887],{"class":813},"    Hole",[803,889,865],{"class":817},[803,891,893,896],{"class":805,"line":892},9,[803,894,895],{"class":813},"    StandardMicroplateDimensions",[803,897,865],{"class":817},[803,899,901,904],{"class":805,"line":900},10,[803,902,903],{"class":813},"    Trough",[803,905,865],{"class":817},[803,907,909,912],{"class":805,"line":908},11,[803,910,911],{"class":813},"    Vector",[803,913,865],{"class":817},[803,915,917,920],{"class":805,"line":916},12,[803,918,919],{"class":813},"    place_standardized",[803,921,865],{"class":817},[803,923,925],{"class":805,"line":924},13,[803,926,927],{"class":817},")\n",[803,929,931],{"class":805,"line":930},14,[803,932,837],{"emptyLinePlaceholder":836},[803,934,936],{"class":805,"line":935},15,[803,937,837],{"emptyLinePlaceholder":836},[803,939,941,944,948,950],{"class":805,"line":940},16,[803,942,943],{"class":817},"@",[803,945,947],{"class":946},"s2Zo4","dataclasses",[803,949,818],{"class":817},[803,951,952],{"class":946},"dataclass\n",[803,954,956,960,964,967,970,973,976],{"class":805,"line":955},17,[803,957,959],{"class":958},"spNyl","class",[803,961,963],{"class":962},"sBMFI"," StandardTrough",[803,965,966],{"class":817},"(",[803,968,969],{"class":962},"Trough",[803,971,972],{"class":817},",",[803,974,975],{"class":962}," StandardMicroplateDimensions",[803,977,978],{"class":817},"):\n",[803,980,982,985,989],{"class":805,"line":981},18,[803,983,984],{"class":809},"    \"\"\"",[803,986,988],{"class":987},"sHwdD","A standard trough.",[803,990,991],{"class":809},"\"\"\"\n",[803,993,995],{"class":805,"line":994},19,[803,996,837],{"emptyLinePlaceholder":836},[803,998,1000,1003,1006,1009,1012],{"class":805,"line":999},20,[803,1001,1002],{"class":813},"    cols",[803,1004,1005],{"class":817},":",[803,1007,1008],{"class":962}," int",[803,1010,1011],{"class":817}," =",[803,1013,1015],{"class":1014},"sbssI"," 12\n",[803,1017,1019,1022,1024,1026,1028],{"class":805,"line":1018},21,[803,1020,1021],{"class":813},"    rows",[803,1023,1005],{"class":817},[803,1025,1008],{"class":962},[803,1027,1011],{"class":817},[803,1029,1030],{"class":1014}," 8\n",[803,1032,1034,1037,1039,1042,1045,1048,1050,1053,1055,1059,1061,1064,1066,1069,1071,1074,1076,1079],{"class":805,"line":1033},22,[803,1035,1036],{"class":813},"    dimensions",[803,1038,1005],{"class":817},[803,1040,1041],{"class":813}," Vector ",[803,1043,1044],{"class":817},"=",[803,1046,1047],{"class":813}," dataclasses",[803,1049,818],{"class":817},[803,1051,1052],{"class":946},"field",[803,1054,966],{"class":817},[803,1056,1058],{"class":1057},"sHdIc","default_factory",[803,1060,1044],{"class":817},[803,1062,1063],{"class":958},"lambda",[803,1065,1005],{"class":817},[803,1067,1068],{"class":946}," Vector",[803,1070,966],{"class":817},[803,1072,1073],{"class":1057},"z",[803,1075,1044],{"class":817},[803,1077,1078],{"class":1014},"44",[803,1080,1081],{"class":817},"))\n",[803,1083,1085,1088,1090,1092,1094,1097,1099,1102,1105,1108,1111,1113,1115,1117,1119],{"class":805,"line":1084},23,[803,1086,1087],{"class":813},"    children",[803,1089,1005],{"class":817},[803,1091,814],{"class":813},[803,1093,818],{"class":817},[803,1095,1096],{"class":821},"abc",[803,1098,818],{"class":817},[803,1100,1101],{"class":821},"Sequence",[803,1103,1104],{"class":817},"[",[803,1106,1107],{"class":821},"Fillable",[803,1109,1110],{"class":817},"]",[803,1112,1011],{"class":817},[803,1114,1047],{"class":813},[803,1116,818],{"class":817},[803,1118,1052],{"class":946},[803,1120,1121],{"class":817},"(\n",[803,1123,1125,1128],{"class":805,"line":1124},24,[803,1126,1127],{"class":1057},"        repr",[803,1129,1130],{"class":817},"=False,\n",[803,1132,1134,1137,1139,1141,1143],{"class":805,"line":1133},25,[803,1135,1136],{"class":1057},"        default_factory",[803,1138,1044],{"class":817},[803,1140,1063],{"class":958},[803,1142,1005],{"class":817},[803,1144,1145],{"class":817}," [\n",[803,1147,1149,1152],{"class":805,"line":1148},26,[803,1150,1151],{"class":946},"            Fillable",[803,1153,1121],{"class":817},[803,1155,1157,1160,1162,1165,1167,1170,1172,1175,1177,1180,1183,1186,1188,1191,1193,1196,1198,1201,1203,1206,1208,1211,1213,1216],{"class":805,"line":1156},27,[803,1158,1159],{"class":1057},"                container",[803,1161,1044],{"class":817},[803,1163,1164],{"class":946},"Container",[803,1166,966],{"class":817},[803,1168,1169],{"class":1057},"max_volume",[803,1171,1044],{"class":817},[803,1173,1174],{"class":1014},"300_000",[803,1176,972],{"class":817},[803,1178,1179],{"class":1057}," sections",[803,1181,1182],{"class":817},"=[",[803,1184,1185],{"class":946},"Cuboid",[803,1187,966],{"class":817},[803,1189,1190],{"class":1057},"width",[803,1192,1044],{"class":817},[803,1194,1195],{"class":1014},"108",[803,1197,972],{"class":817},[803,1199,1200],{"class":1057}," depth",[803,1202,1044],{"class":817},[803,1204,1205],{"class":1014},"72",[803,1207,972],{"class":817},[803,1209,1210],{"class":1057}," height",[803,1212,1044],{"class":817},[803,1214,1215],{"class":1014},"40",[803,1217,1218],{"class":817},")]),\n",[803,1220,1222,1225],{"class":805,"line":1221},28,[803,1223,1224],{"class":1057},"                children",[803,1226,1227],{"class":817},"=[\n",[803,1229,1231,1234,1236,1239,1241,1243,1246,1249,1251,1254,1256,1258],{"class":805,"line":1230},29,[803,1232,1233],{"class":946},"                    Hole",[803,1235,966],{"class":817},[803,1237,1238],{"class":1057},"dimensions",[803,1240,1044],{"class":817},[803,1242,1238],{"class":946},[803,1244,1245],{"class":817},").",[803,1247,1248],{"class":946},"copy",[803,1250,966],{"class":817},[803,1252,1253],{"class":1057},"location",[803,1255,1044],{"class":817},[803,1257,1253],{"class":946},[803,1259,927],{"class":817},[803,1261,1263,1266,1269,1271,1274,1277,1280,1282,1285,1287,1290,1292,1295,1297,1299,1301,1304,1306,1308],{"class":805,"line":1262},30,[803,1264,1265],{"class":809},"                    for",[803,1267,1268],{"class":946}," location",[803,1270,972],{"class":817},[803,1272,1273],{"class":946}," dimensions ",[803,1275,1276],{"class":809},"in",[803,1278,1279],{"class":946}," place_standardized",[803,1281,966],{"class":817},[803,1283,1284],{"class":1057},"count",[803,1286,1044],{"class":817},[803,1288,1289],{"class":1014},"96",[803,1291,972],{"class":817},[803,1293,1294],{"class":1057}," boundary_height",[803,1296,1044],{"class":817},[803,1298,1078],{"class":1014},[803,1300,972],{"class":817},[803,1302,1303],{"class":1057}," item_height",[803,1305,1044],{"class":817},[803,1307,1215],{"class":1014},[803,1309,927],{"class":817},[803,1311,1313],{"class":805,"line":1312},31,[803,1314,1315],{"class":817},"                ],\n",[803,1317,1319],{"class":805,"line":1318},32,[803,1320,1321],{"class":817},"            )\n",[803,1323,1325],{"class":805,"line":1324},33,[803,1326,1327],{"class":817},"        ],\n",[803,1329,1331],{"class":805,"line":1330},34,[803,1332,1333],{"class":817},"    )\n",[774,1335,1336,1337,1340],{},"More complex troughs can have multiple containers, as with \"12-column troughs\" or \"8-row troughs\". For consistency across these labware types, troughs' containers are accessed like ",[781,1338,1339],{},"trough.containers[0]",", even if there is only one container (i.e. the standard trough above, the most common case).",[1342,1343,1344],"style",{},"html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}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 .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}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":799,"searchDepth":806,"depth":825,"links":1346},[1347],{"id":772,"depth":825,"text":213},"Define custom reagent troughs using the Trough base class.","md",null,{},{"title":213,"description":1348},"I6PRhsIRt1VY87Fh7H0QeLTz60uOdVGYv3LvVyv4r2Y",[1355,1357],{"title":209,"path":210,"stem":211,"description":1356,"children":-1},"Define custom tubes and tube racks using the Tube and TubeRack base classes.",{"title":217,"path":218,"stem":219,"description":1358,"children":-1},"Define custom plate carriers, tip carriers, trough carriers, and plate adapters for the deck.",1779956184343]