Opentrons Thermocycler Protocol Commands
Overview
Opentrons Thermocycler commands can be sent to the instrument through the Instrument Actions page (shown below). Select the Execute Commands action and attach a JSON file with the list of commands to execute. Below is a list of a commands to open and then close the thermocycler.
Execute Commands Action
{
"commands": [
{
"command_id": "open"
},
{
"command_id": "close"
}
]
}

After the specified commands finished running, view the run result to see the list of responses:

Opentrons Thermocycler Commands
Commands
Open
{
"command_id": "open"
}
Close
{
"command_id": "close"
}
Stop
{
"command_id": "stop"
}
Deactivate Lid
{
"command_id": "deactivate_lid"
}
Deactivate Plate
{
"command_id": "deactivate_plate"
}
Lift Plate
{
"command_id": "lift_plate"
}
Get Lid Status
{
"command_id": "get_lid_status"
}
Get Lid Temperature
{
"command_id": "get_lid_temperature"
}
Get Plate Temperature
{
"command_id": "get_plate_temperature"
}
Set Ramp Rate
Arguments
- ramp_rate: float – How quickly the thermocycler can change temperatures.
{
"command_id": "set_ramp_rate"
"payload": {
"ramp_rate": 5.6
}
}
Set Lid Temperature
Arguments
- temperature: float – The target temperature in celcius we want the lid to reach. Can be a value between 37.0 and 110.0
- wait_for_temp: Optional[Bool] – Whether or not to wait for the temperature to be reached. Defaults to True.
- temp_threshold: Optional[Float] – To determine whether or not we have reached the target temperature, the current temperature is subtracted from the target temperature and compared to the threshold. If it’s less than the threshold we will treat it as reaching temp. Defaults to 0.3.
{
"command_id": "set_lid_temperature"
"payload": {
"temperature": 75.0
"wait_for_temp": True
}
}
Set Plate Temperature
Arguments
- temperature: float – The target temperature in celcius we want the lid to reach. Can be a value between 37.0 and 110.0
- wait_for_temp: Optional[Bool] – Whether or not to wait for the temperature to be reached. Defaults to True.
- hold_time: Optional[float] – A time, in seconds, to wait while the plate is at temperature. No hold will take place if this is unset.
- volume: Optional[float] – An optional volume of the wells. Used as a hint for the thermocycler when setting the temperature.
- temp_threshold: Optional[Float] – To determine whether or not we have reached the target temperature, the current temperature is subtracted from the target temperature and compared to the threshold. If it’s less than the threshold we will treat it as reaching temp. Defaults to 0.3.
{
"command_id": "set_plate_temperature"
"payload": {
"temperature": 75.0
"wait_for_temp": True,
"hold_time": 30,
}
}
Cycle
Arguments
- count: int – How many times to loop
- commands: List[COMMANDS] – A list of one or more commands. It can also embed another loop.
{
"command_id": "cycle",
"payload": {
"count": 2,
"commands": [
{
"command_id": "set_plate_temperature",
"payload": {
"temperature": 65,
"hold_time": 15
}
},
{
"command_id": "set_plate_temperature",
"payload": {
"temperature": 60,
"hold_time": 30
}
},
{
"command_id": "set_plate_temperature",
"payload": {
"temperature": 68,
"hold_time": 30
}
}
]
}
}