Skill Tracer
Skills › Scientific Agent Skills › opentrons-integration › sources.md

sources.md

172 lines · skills/opentrons-integration/references/sources.md at 5f2bc03

Open on GitHub
1# Upstream Sources
2
3This skill snapshot was verified on **2026-10-01**. Opentrons publishes robot
4software, the desktop/touchscreen Apps, the Python package, and Protocol API
5levels on related but distinct release cycles. Recheck time-sensitive facts
6before generating a production protocol.
7

Upstream Sources

This skill snapshot was verified on 2026-10-01. Opentrons publishes robot software, the desktop/touchscreen Apps, the Python package, and Protocol API levels on related but distinct release cycles. Recheck time-sensitive facts before generating a production protocol.

Raw lines 1 to 7
8## Verified Baseline
9
10- Stable PyPI package:
11 [`opentrons==10.0.0`](https://pypi.org/project/opentrons/), released
12 2026-09-30, requiring Python 3.10 or newer. Local tests used Python 3.12
13 because the package requires NumPy below 2. This package targets Flex.
14- Local OT-2 API 2.28 compatibility simulation uses `opentrons==9.0.0`, the
15 tested shared-line PyPI release that accepts OT-2 protocols at that API level.
16- Current robot-software support documented by Opentrons:
17 - Flex: API 2.15–2.30; API 2.30 maps to robot software 10.0.0.
18 - OT-2: API 2.0–2.28.
19- API 2.29 and newer use separate Flex and OT-2 software/App release lines.
21`opentrons==10.0.0` rejects OT-2 simulation and directs users to the separate
22OT-2 App. The target robot's maximum API value and analysis result in the
23appropriate App are authoritative for whether a specific protocol can run.
25The released 10.0.0 Python library reports `MAX_SUPPORTED_VERSION=2.31`, while
26the official robot support table stops at 2.30. This skill uses the documented
27robot ceiling and retains API 2.29 for its bundled Flex templates. API 2.30's
28start-only meniscus fix is separately simulation-tested. Do not treat a local
29constant or successful simulation as evidence of support on a physical robot.
31All six bundled templates were simulated: five with 10.0.0, and OT-2 with
329.0.0. Tests also exercise runtime-parameter boundaries, low-volume modes,
33meniscus behavior, Heater-Shaker tasks, and tip reuse semantics. Reference code
34fragments require the surrounding deck and liquid setup; unless covered by
35these tests, they are illustrative and were checked against official docs and
36released method signatures rather than executed as complete protocols. No
37robot, App, sensor, or physical assay validation was performed.

Verified Baseline

  • Stable PyPI package: [opentrons==10.0.0](https://pypi.org/project/opentrons/), released 2026-09-30, requiring Python 3.10 or newer. Local tests used Python 3.12 because the package requires NumPy below 2. This package targets Flex.
  • Local OT-2 API 2.28 compatibility simulation uses opentrons==9.0.0, the tested shared-line PyPI release that accepts OT-2 protocols at that API level.
  • Current robot-software support documented by Opentrons:
  • Flex: API 2.15–2.30; API 2.30 maps to robot software 10.0.0.
  • OT-2: API 2.0–2.28.
  • API 2.29 and newer use separate Flex and OT-2 software/App release lines.

opentrons==10.0.0 rejects OT-2 simulation and directs users to the separate OT-2 App. The target robot's maximum API value and analysis result in the appropriate App are authoritative for whether a specific protocol can run.

The released 10.0.0 Python library reports MAX_SUPPORTED_VERSION=2.31, while the official robot support table stops at 2.30. This skill uses the documented robot ceiling and retains API 2.29 for its bundled Flex templates. API 2.30's start-only meniscus fix is separately simulation-tested. Do not treat a local constant or successful simulation as evidence of support on a physical robot.

All six bundled templates were simulated: five with 10.0.0, and OT-2 with 9.0.0. Tests also exercise runtime-parameter boundaries, low-volume modes, meniscus behavior, Heater-Shaker tasks, and tip reuse semantics. Reference code fragments require the surrounding deck and liquid setup; unless covered by these tests, they are illustrative and were checked against official docs and released method signatures rather than executed as complete protocols. No robot, App, sensor, or physical assay validation was performed.

Raw lines 8 to 38
39## Core Protocol API Documentation
41- [Python Protocol API home](https://docs.opentrons.com/python-api/)
42 — current Flex and OT-2 protocol overview and minimal examples.
43- [Tutorial](https://docs.opentrons.com/python-api/tutorial/)
44 — protocol structure, requirements, labware, trash, pipettes, simulation, and
45 App import.
46- [Versioning](https://docs.opentrons.com/python-api/versioning/)
47 — supported API ranges, robot-software mapping, and changes by API level.
48- [ProtocolContext API reference](https://docs.opentrons.com/python-api/reference/protocols/)
49 and [InstrumentContext API reference](https://docs.opentrons.com/python-api/reference/instruments/)
50 — exact current class and method signatures and navigation to other classes.
51- [Protocol examples](https://docs.opentrons.com/python-api/examples/)
52 — official ready-made Flex and OT-2 examples.
53- [Adapting from OT-2 to Flex](https://docs.opentrons.com/python-api/adapting-ot2-flex/)
54 — robot declaration, deck, trash, pipettes, and module migration.

Core Protocol API Documentation

Raw lines 39 to 55
56## Pipettes and Liquid Handling
58- [Loading Pipettes](https://docs.opentrons.com/python-api/pipettes/loading/)
59 — current load names, tip compatibility, trash containers, and liquid
60 presence detection.
61- [Pipette Characteristics](https://docs.opentrons.com/python-api/pipettes/characteristics/)
62 — channels, movement, and flow behavior.
63- [Volume Modes](https://docs.opentrons.com/python-api/pipettes/volume-modes/)
64 — the mode change required for Flex 50 µL pipettes below 5 µL.
65- [Partial Tip Pickup](https://docs.opentrons.com/python-api/pipettes/partial-tip-pickup/)
66 — nozzle layouts, target-well rules, adapters, deck reach, and collision
67 warnings.
68- [Liquid Control](https://docs.opentrons.com/python-api/building-block-commands/liquids/)
69 — aspirate, dispense, push out, blowout, touch tip, mix, dynamic mix, and air
70 gaps.
71- [Complex Commands](https://docs.opentrons.com/python-api/complex-commands/)
72 — transfer, distribute, consolidate, order, and parameters.
73- [Using Liquid Classes](https://docs.opentrons.com/python-api/liquid-classes/using/)
74 — verified class selection and liquid-class transfer methods.
75- [Liquid Class Definitions](https://docs.opentrons.com/python-api/liquid-class-definitions/)
76 — verified behavior definitions.

Pipettes and Liquid Handling

Raw lines 56 to 77
78## Parameters, Labware, and Deck
80- [Runtime Parameters](https://docs.opentrons.com/python-api/runtime-parameters/)
81 — overview and use cases.
82- [Defining Runtime Parameters](https://docs.opentrons.com/python-api/runtime-parameters/defining/)
83 — exact Boolean, numeric, string, and CSV definitions.
84- [Labware](https://docs.opentrons.com/python-api/labware/)
85 — loading, well access, adapters, liquids, and lids.
86- [Moving Labware](https://docs.opentrons.com/python-api/moving-labware/)
87 — manual and Gripper moves.
88- [Deck Slots](https://docs.opentrons.com/python-api/deck-slots/)
89 — Flex and OT-2 labels, staging area, trash, waste chute, and conflicts.
90- [Step Grouping](https://docs.opentrons.com/python-api/groups/)
91 — API 2.29 grouping methods and protocol visualization.
92- [Opentrons Labware Library](https://labware.opentrons.com/)
93 — authoritative standard labware load names and definitions.

Parameters, Labware, and Deck

Raw lines 78 to 94
95## Hardware Modules
97- [Module Setup](https://docs.opentrons.com/python-api/modules/setup/)
98 — load names, API introduction levels, adapters, and labware.
99- [Absorbance Plate Reader API](https://docs.opentrons.com/python-api/modules/absorbance-plate-reader/)
100 — initialization, lid operations, reading, and output data.
101- [Flex Stacker API](https://docs.opentrons.com/python-api/modules/flex-stacker/)
102 — storage configuration, retrieve/store, capacity, fill, and empty.
103- [Heater-Shaker API](https://docs.opentrons.com/python-api/modules/heater-shaker/)
104 — latch, temperature, and shake control.
105- [Magnetic Block API](https://docs.opentrons.com/python-api/modules/magnetic-block/)
106 — passive Flex separation workflow.
107- [Magnetic Module API](https://docs.opentrons.com/python-api/modules/magnetic-module/)
108 — powered OT-2 module control.
109- [Temperature Module API](https://docs.opentrons.com/python-api/modules/temperature-module/)
110 — blocking and concurrent temperature control.
111- [Thermocycler API](https://docs.opentrons.com/python-api/modules/thermocycler/)
112 — lid, block, profiles, ramp rate, and concurrent operations.
113- [Thermocycler lid seals](https://docs.opentrons.com/thermocycler/lid-seals/)
114 — disposable lid versus reusable module-lid seal compatibility.
115- [Concurrent Module Actions](https://docs.opentrons.com/python-api/modules/concurrent/)
116 — API 2.27+ background tasks and waiting.

Hardware Modules

Raw lines 95 to 117
118## Robot and App User Guides
120- [Flex Instruction Manual](https://docs.opentrons.com/flex/)
121 — installation, hardware, touchscreen, App, modules, calibration, and
122 operations.
123- [Flex Python API overview](https://docs.opentrons.com/flex/protocols/python-api/)
124 — capabilities available to Flex protocol authors.
125- [Flex supported modules](https://docs.opentrons.com/flex/modules/)
126 — current physical module compatibility.
127- [OT-2 Instruction Manual](https://docs.opentrons.com/ot-2/)
128 — installation, hardware, App, calibration, and operations.
129- [OT-2 supported modules](https://docs.opentrons.com/ot-2/modules/)
130 — current physical module compatibility.
131- [Opentrons App download](https://opentrons.com/app/)
132 — current Flex and OT-2 App installers.

Robot and App User Guides

Raw lines 118 to 133
134## Releases and Source
136- [PyPI package](https://pypi.org/project/opentrons/)
137 — stable package version, release date, Python requirement, and package
138 license.
139- [Robot software release notes](https://github.com/Opentrons/opentrons/blob/edge/api/release-notes.md)
140 — user-facing robot software and API changes.
141- [GitHub releases](https://github.com/Opentrons/opentrons/releases)
142 — tagged robot software artifacts.
143- [10.0.0 release](https://github.com/Opentrons/opentrons/releases/tag/v10.0.0)
144 and [tagged API constants](https://github.com/Opentrons/opentrons/blob/v10.0.0/api/src/opentrons/protocols/api_support/definitions.py)
145 — released source and the local-versus-robot API ceiling discrepancy.
146- [Opentrons monorepo](https://github.com/Opentrons/opentrons)
147 — source for the Protocol API, robot stack, App, shared data, and docs.

Releases and Source

Raw lines 134 to 148
149## Separate HTTP API Surface
151The Python Protocol API is the preferred surface for protocol files. Direct
152robot-server integrations are separate:
154- [HTTP API specification](https://docs.opentrons.com/http/api_reference.html)
155 — published OpenAPI description.
156- A target robot also serves its OpenAPI document on port 31950.
158Use the specification served by the target robot when integrating directly.
159Do not translate Protocol API methods into guessed HTTP endpoints.

Separate HTTP API Surface

The Python Protocol API is the preferred surface for protocol files. Direct robot-server integrations are separate:

  • HTTP API specification — published OpenAPI description.
  • A target robot also serves its OpenAPI document on port 31950.

Use the specification served by the target robot when integrating directly. Do not translate Protocol API methods into guessed HTTP endpoints.

Raw lines 149 to 160
161## Source Precedence
163When sources differ:
1651. Target robot's maximum API and analysis result in the appropriate App.
1662. Current official versioning and API reference.
1673. Current robot/module instruction manual.
1684. Stable PyPI metadata and tagged GitHub release.
1695. Example protocols.
171Examples can lag the versioning page or show a higher generic API level than a
172particular robot currently supports. Apply the target robot's maximum.

Source Precedence

When sources differ:

  1. Target robot's maximum API and analysis result in the appropriate App.
  2. Current official versioning and API reference.
  3. Current robot/module instruction manual.
  4. Stable PyPI metadata and tagged GitHub release.
  5. Example protocols.

Examples can lag the versioning page or show a higher generic API level than a particular robot currently supports. Apply the target robot's maximum.

Raw lines 161 to 172