Appearance
Station Configuration
The driver configuration connects logical experimental containers to a fixed simulated deck. Start from a shipped example that matches the operation and hardware profile.
A Transfer Deck
The first-transfer example uses examples/transfer/deck.json:
json
{
"robot_type": "OT-2",
"api_level": "2.20",
"pipette": "p300_single_gen2",
"mount": "right",
"tiprack": {"load_name": "opentrons_96_tiprack_300ul", "slot": "2"},
"labware": {"tubes": {"load_name": "opentrons_24_tuberack_eppendorf_2ml_safelock_snapcap", "slot": "1"}},
"bindings": {
"entry.s0::alloc": {"labware": "tubes", "well": "A1"},
"entry.s1::alloc": {"labware": "tubes", "well": "A2"}
}
}| Setting | Purpose |
|---|---|
| Robot, API and pipette | Select a supported vendor execution profile. |
| Labware and slots | Describe the loaded deck. |
| Bindings | Map compiled container allocation identities to physical addresses. |
Binding keys come from the compiled program. They are not arbitrary labels and may change when source structure changes. Inspect the generated plan.json and update mappings when changing a program. A language plate/group is a semantic collection; available channels and physical geometry constrain its device implementation.
Keep Station Identity Stable
--station-id or CULSMA_OS_STATION_ID identifies the station. CULSMA_OS_STATION_ROOT chooses the shared station storage root. Keep the root fixed across processes that operate the same station.
For independent simulator experiments, choose different station IDs. Changing the output directory alone does not make a new station. Editing a deck file does not authorize a physical move or clear an uncertain position.
Multiple Programs on One Deck
Use --workspace-config to select immutable per-program bindings and routes while preserving one station configuration. The shipped examples/resident-station/workspaces.json maps the PCR and bead programs separately; its program paths are relative to that workspace file.
sh
culsma-os serve \
--station-id pcr-beads \
--socket /tmp/culsma-mixed.sock \
--host-db run-artifacts/mixed/os.sqlite3 \
--driver-config examples/resident-station/deck.json \
--workspace-config examples/resident-station/workspaces.json \
--artifacts-dir run-artifacts/mixedBindings are selected against the compiled plan identity. Distinct programs cannot share a mapping merely because they contain the same local step name.