Git-ting started with GitHub

GitHub serves a similar functionality to Google Drive. It:

  1. Helps people collaborate from around the world on the same project

  2. Can contain different file types which can link and work together

  3. Is essentially an online filing system

The main features that distinguish GitHub are:

  1. Branches: A GitHub branch is essentially a set of coding changes with a unique name. This is helpful for us to test out new software changes before it rolls out to Opentrons users (or for you to develop your own additions!) and keep records of changes we made. So if I wanted to test if the OT-2 works well with a new function, I'd test it out on my own “New_Function” branch.

  2. Pull Requests: Pull Requests asks the Opentrons developer team if the changes made from a branch like “New_Function” should be “Pulled” into the main branch. The main branch (Referred to as “Edge”) is “live” with our most updated/safe code and is what we utilize to produce software updates.

  3. Software Versioning: GitHub allows teams like Opentrons to make clear versioning updates and changes (in our case the Changelog keeps track from update to update).

  4. Bug Reporting: If there is something that just isn't working the way you would like it to, you can submit a bug request that describes the behavior, how to reproduce it, and what you expected the software. Note: If you have a technical issue, please contact support@opentrons.com instead of submitting a bug report. If it is a reproducible

  5. Feature Requests: If there is a feature that you would like to see on the OT-2, unlike a normal folder system, you can add a Feature Request so that our team can review and measure whether one day we can have it on the system.

To learn more about its history and uses in the world refer to:

  1. Tech Crunch's What Exactly is GitHub Anyway

  2. If you want to dig into the real details you can review Git and GitHub for Beginners - Crash Course.

How to search if your bug or feature request was ticketed on GitHub

We are constantly improving our hardware and software. If you would like to get involved and use a Bug Report of Feature Request (or are looking to see if there is a work around after reviewing our support documentation), it's best practices to check in our GitHub first.

You can go to org:Opentrons [Input search] and then look at the Issues section. View here for more details on searching and please ensure that your search bar doesn't accidentally contain org:Opentrons org:Opentrons.

If you are on the correct page, then you can also use the interface and select what level you wish to search something on.

How to use Opentrons' GitHub

Reviewing the opening page on our GitHub can be intimidating. So we are going to introduce each one with where it can be located and how to best utilize the information that is there. The repositories we will review are:

  1. Opentrons/opentrons

  2. Opentrons/Protocols

  3. Opentrons/SmoothiewareOT

  4. Opentrons/opentrons-modules

Opentrons/opentrons

The repository Opentrons/opentrons contains the source code for all of our user facing code. Each folder shows the "behind the scenes" of how anything from our Python API to our OT-2 connects with your computer on a network.

Opentrons/Protocols

The repository Opentrons/Protocols is the source code for our Protocol Library. If you are excited to share your protocol with the world you can follow our documentation! Please be advised that you should be using the Protocol Library version of protocols and not the GitHub page of protocols. Those are formatted to be read by our Protocol Library interface and not be usable as stand alone code. You can however go to the Readme file on the protocol page (or the title of the protocol) and paste the title into the Protocol Library search bar in order to locate the file.

Opentrons/SmoothiewareOT

The Opentrons/SmoothiewareOT repository gets a bit more complicated. Before we were talking primarily about software that has different computers talking to each other, which is like two people communicating. Now we are moving into something called "firmware" which is where a computer tells hardware what to do. This is more similar to a person's brain communicating with muscles. Instead of electrical impulses sent from a brain, the OT-2/OT-2R use something called "G-code."

The OT-2/OT-2R uses a fork (modified version of the original) of an open source G-code (robot command) interpreter from Smoothie. If you are investigating how best to control the OT-2 gantry from a computer instead of using our software, this is an excellent resource to learn about how the commands are sent.

Opentrons/opentrons-modules

The Opentrons/opentrons-modules is a similar situation, but instead of working with the hardware to move an Ot-2, it is instead focused on handling G-code within the context of modules.

It can cover:

  1. Firmware for all Opentrons modules - Temperature Module (Tempdeck), Magnetic Module (Magdeck) and Thermocycler.

  2. Libraries required to build any module firmware

  3. Module board file definitions for Arduino (for the arduino-based modules)

  4. Other files required for development & testing

It can cover:

  1. Firmware for all Opentrons modules - Temperature Module (Tempdeck), Magnetic Module (Magdeck) and Thermocycler.

  2. Libraries required to build any module firmware

  3. Module board file definitions for Arduino (for the arduino-based modules)

  4. Other files required for development & testing


Did this answer your question?