Skip to content



Work in progress. This page will contain links to:

  • Source files for hardware designs.
  • Source files for firmware.
  • Source files for software.

Licencing terms should be pointed out for each kind of content, and open source software/hardware used by the project.

The Pipettin Bot is an open-source hardware project that anyone can contribute to. Firmware and software sources are also available.

Licensing terms can be found here.

The project is built using open tools like FreeCAD. We want to make it easy for people to get involved and help us develop the project, and have developed it using open-source tools only.

Quick links:


The Pipettin Bot project is open source; you can find all the hardware source files on GitLab and on this wiki, including schematics and FreeCAD files.

Since the Pipettin Bot is open source hardware, it was developed using open source tools, specifically FreeCAD for the hardware design. We developed our project using FreeCAD version 0.20.1 or greater.

We hope this will help you learn how the project works and contribute with your modifications.

Our Pipetting Bot's hardware and design documents are released under the CERN Open Hardware License S 2.0 (strongly reciprocal). If you have any questions about the license, please refer to the License text and the licensing section of this wiki.


We are using Google Drive as temporary folders for storage, sharing, and collaboration. The "OLA documentation" drive is a cloud folder that we have used for quick and easy sharing of drawings, FreeCAD files, and other types of documentation. This is not, however, their final destination. All part models of Pipettin Bot will eventually live on GitLab.

CNC Firmware


The project has moved from GRBL to Klipper, but will stick with Arduino UNO + CNC shield for the DIY version of the electronics.

Klipper will run on many more MCUs than the Arduino UNO, and is also Open Source Software. Using more expensive boards (e.g. the Duet2) with Klipper is very straightforward, as long as their microprocessors are supported.

Firmware source:



Work in progress. Most equipment mentioned below is not yet ready for automation.

Pipettin Bot can also interact with an active "benchtop" equipment, such as colorimeters, heater blocks, among others.

To learn more about Pipettin Bot's equipment visit here


A guide on how to do this is due. In short, a "plugin" module must be added to piper, and custom actions must be added to protocols.


Prototype adaptation of the PocketPCR to our system.


Thermocyclers, also known as PCR machines, are used in molecular biology for the polymerase chain reaction (PCR). The basic idea of a thermal cycler is that it provides a thermally controlled environment for PCR samples.

A thermal cycler usually contains a heating block with holes or depressions in it that receive sample tubes. For the PCR reactions to work properly, the block must change temperature at specific times, and spend specific durations of time at specific temperatures.



Prototype adaptation of a colorimeter to our system.

Colorimeters are devices that measure the color of a sample. They do this by passing light through the sample and measuring how much of the light is absorbed at different wavelengths. The color of the sample is then determined by comparing the absorbance spectrum to a known standard.

colori1.jpg colori2.jpg



Prototype micro-centrifuge to our system.

More information here.


Controller: piper

In Pipettin-land, "controllers" are Python modules that coordinate and control hardware devices.

The main controller is the piper module.

This module handles commands from the Pipettin Writer webapp/GUI. The events are received as socketio events by the GUI's backend, and proceeded into GCODE or other commands for hardware devices. The main program that piper interacts with is Moonraker, which in turn controls a CNC Firmware called Klipper.


SocketIO is a library that enables real-time, bidirectional and event-based communication between the browser and the server.


Moonraker is a Python 3 based web server that exposes APIs with which client applications may use to interact with the 3D printing firmware Klipper.


Licensing terms can be found in the repositories.

Python API: newt


Work in progress: the API is unfinished and non-functional. The JSON schemas for data validation and some low-level generator functions need more work.

Newt API is a module designed for the Pipettin project, and its purpose is to provide convenience functions for generating and validating JSON representations of pipetting objects. These objects include protocols, steps, labware, workspaces, platforms, and contents. The Newt API aims to create JSON "schemas" for each type of data, which can be used to ensure the consistency and correctness of the generated JSON objects.


Licensing terms can be found in the repositories.

Klipper stack

We also use other software components associated to the Klipper project, which we refer to as the "Klipper software stack".

Licensing terms can be found in the repositories.

User Interface: Pipettin Writer

The "Pipettin Writer" is a web interface for writing and executing pipetting protocols. It is Open Source Software, with source files available and maintained on GitLab.

Specific and updated licensing terms can be found in the repositories.

Visual identity

Logos and all visual identity of the OLA and Pipettin Bot are not shared for free use.

All rights reserved.