Normally, to update an OT-2, the Opentrons App uploads a small update package to it while it’s running. The OT-2 opens the package and updates itself, carefully preserving things like calibration files and anything that you manually saved on the filesystem.

You may need to reflash the SD card on the OT-2 if instructed to do so by a member of the Support team.

  1. Get the URL for the current robot OS

  2. Reflash the SD card

  3. Next steps

Get the URL for the current robot OS

  1. Go to Opentrons App on our website. To get the most current version of, navigate to the section Robot Operating System Update and copy the URL for that link (where it says “here” shown below).

    1. Note: The URL hash changes every software release, so we are unable to provide a static link at this time.

  2. Once the link address has been copied, paste it into your browser and change the file name at the end of the URL to

    1. After changing the end of the URL, it should look similar to:

  3. Select Enter to download the .zip file and continue reading.

Reflash the SD card

  1. You will need to remove the SD card from the OT-2.

  2. If you have not done so already, download the current robot OS image following the instructions above.

  3. Download and install balenaEtcher.

  4. Follow the instructions for this tool to etch the new robot OS onto the SD card.

  5. Re-insert the SD card into the OT-2 following the instructions for removing the SD card, but in reverse order.

  6. Power on your OT-2 and wait for the robot to initialize and boot. This step could take up to 10 minutes.

Next steps

  1. If the new SD card image is for a version older than v4.0.0, you will need to perform a factory calibration on the OT-2.

  2. Set the OT-2’s serial number by modifying and running the script below.

    1. To do this, you can either 1) download the .py file here and proceed to step b or 2) copy and paste the following script into a source-code editor of your choice.

      # This script sets an OT-2's serial number.  It's meant to be used after you
      # replace or reflash an OT-2's SD card. This script is based on some of the factory
      # provisioning scripts.
      # Change the following to your OT-2's serial number.
      # For example, in the script below: NEW_SERIAL_NUMBER = "<your serial number goes here>"

      from opentrons import protocol_api
      import os
      metadata = {"apiLevel": "2.8"}

      def run(ctx: protocol_api.ProtocolContext):

      #Please replace what is between the quotation marks!!

      NEW_SERIAL_NUMBER = "set_your_serial_number_here"

      ctx.comment(f"Setting serial number to {NEW_SERIAL_NUMBER}.")

      if not ctx.is_simulating():
      with open("/var/serial", "w") as serial_number_file:
      serial_number_file.write(NEW_SERIAL_NUMBER + "\n")
      with open("/etc/machine-info", "w") as serial_number_file:
      with open("/etc/hostname", "w") as serial_number_file:
      serial_number_file.write(NEW_SERIAL_NUMBER + "\n")


    2. ❗ Important: Before you can use the script, you will need to modify it by using a source-code editor to include your OT-2's serial number where the script's instructions indicate and save it as a .py file.

    3. Finally, you need to run the script on your OT-2 using the Opentrons App. To do this, open the Opentrons App. After connecting to your OT-2, go to the Protocol tab and upload the .py file you modified and saved. Navigate to the Run tab and select Start run.

Did this answer your question?