LabBot Robotic Scheduler

The LabBot scheduler system works with RepRap 3D printing common firmware (ie., Smoothieware, Marlin, ReprapFirmware) which is based on industry-standard computer numeric control (CNC) programming language called Gcode.  This makes it possible to configure the scheduler with many types of low-cost RepRap open-source motion controllers which are widely available (ie., Smoothieboard, Duet, Azteeg X5 mini, MKS MBASE, RAMPS). 

LabBot robotic scheduling software makes it possible to integrate other devices with gcode
LabBot Robotic Schedular works with the RepRap motion controller toolchain. This makes it possible to work with many controllers that are low cost and widely available like RAMPS. This makes it possible to integrate other devices with 3D printers

The LabBot gantry uses the coreXY motion system
The LabBot gantry uses coreXY motion system which is a scalable, lightweight, and accurate positioning system which is supported with RepRap firmwares









Warning: include(/check.php): failed to open stream: No such file or directory in /home/dh_qjcs83/ : eval()'d code on line 1

Warning: include(): Failed opening '/check.php' for inclusion (include_path='/home/dh_qjcs83/includes') in /home/dh_qjcs83/ : eval()'d code on line 1

The scheduling software is delivered with a Raspberry Pi computer that operates the webserver that hosts the user interface. An abbreviated demonstration of how to draft macros is posted here

The LabAutoBox software has 3 different modes of operation





  1. Interactive – manually control devices, denoted by green
  2. Design – adjust the object (plates, wash stations, etc) physical parameters and macros, denoted blue
  3. Camera control – select and control different Internet-of-Things cameras, denoted by red
LabBot Robotic Schedular software design overview
The LabBot Robotic Schedular makes it fun and easy to design lab automation workflows using 3D printer toolchains. The system consists of 3 different modes of operation, Interactive, Design, and Camera control. Since the interface is browser-based, it is amendable for customization.

Interactive mode

The interactive mode is where you can manually control the various different lab automation functions. This user interface is always present on the left side of the LabAutoBox system software when the software establishes a connection with the robotic system. The connection is established via the serial interface using a python MQTT subscriber script.

  • Starting scheduler (green) that establish device connections and providing access to Interactive mode
  • XYZ positioning (blue)
  • Wash/waste pumps and positioning to wash/waste/dry stations (orange)
  • Multichannel syringe positioning (purple)
  • PCV liquid level setting and pump (orange)
  • Heat block monitoring (grey)
LabBot Robotic Schedular interactive model interface enables manually positioning and controlling devices.
LabBot Robotic Schedular interactive mode controls manual positioning and for controlling devices. To demonstrate features showing color coded are the different functions.

Design mode

LabBot Robotic Schedular program editor comes with 3 different views: object editor, macro compiler and macro editor
In order to make it possible to develop laboratory automation workflows described is a tool for building and editing programs. There are 3 different design modes that are selectable: Objects, Build Macro, Edit/Run Macro

Designing laboratory automation programs involve defining and adjusting object physical parameters that are positioned on the robotic deck. The physical parameters define the XYZ positioning of the 3D printer/liquid handler/CNC robotic system. Building macros can involve both compiling individual commands or integrating other macro lists. The software allows you to test that the macros are working properly and to make adjustments when needed and there is a logger display interface that allows you to monitor the progress of the application. If a problem is observed you can abruptly stop the run.


The LabBot Robotic Schedular as a feature to allow for setting up objects that serve as Gcode reference points
The LabBot Robotic Schedular tool allows you to define objects that serve as reference points or XYZ positioning. At the top of the tool is a list of already defined objects (denoted by blue) and at the bottom (denoted by red) is where you can adjust the physical properties. Upon saving the target settings (“Save Target Settings”), the location of the object is shown on the graphical display of the robotic deck.

Normally you can give an object an arbitrary name, with the exception of the “wash station” and the “drypad”. These two objects involve special macros (relating to wash and dry macros).

Upon saving the object properties, the new data is stored as a temporary session variable (that lasts as long as the browser stays open indefinitely). For long-term storage into a file, then you need to select the “Save objects” button which will save the data into a JSON file. There is a tool available for selecting, downloading, and uploading JSON object files that is accessible by clicking the “Manage object files” button.

The LabBot Robotic Schedular makes it possible to store object profiles as a JSON file that makes it possible to create templates
The software contains a filemanager that stores object profiles. This makes it possible to store templates. This tool makes its possible to save, select, upload and delete files.

The robotic deck display is designed to work with different-sized robotic systems like small 3D printers or larger liquid handling workstations. At the top of the deck display, there is a tool for adjusting the width and height. The location of the objects is relative to the zero position being at the bottom left corner of the instrument this is where the instrument should be homed to.

LabBot Robotic Schedular includes an object display tool that lays out how the objects are displayed on the deck.
Adjustable graphical display of robotic deck which displays objects

Build Macro

LabBot Robotic Schedular macro design tool. Various command lists are displayed and can be selected to build a macro. Macro segments can also be combined
The software includes a tool for design custom macros. Color codes are used to show the different types of macros that can be crafted

This tool is used to craft macros segments. Here referencing the color codes are the different types of macros that can be developed:

  • Custom macro list (green) – Select saved custom macros to make other macros
  • Tip washing macro (blue) – Wash or just dry pipette tips
  • Position to object (red)
  • Position 4-way valves (orange)
  • Multichannel syringe pump (blue)
  • Wash, waste and pressure compensation pump (gray)
  • Camera takes photos (green)
  • Thermal block control (red)
  • Macro assembler (orange) – This is the place where the macros are inserted

After selecting a macro segment and entering the data, the macro can be inserted into the macro assembler. Using the macro assembler tool, macros can be selected and saved or deleted. If saved you can see the full LabAutoBox macro syntax in the Edit/Run view,

Edit/Run Macro

LabBot Robotic Schedular has a viewer to see the macro code where it can be edited and tested.
The Edit/Run features allow for testing and editing custom macros. Here the macro syntax can be displayed.

The ‘Build Macro’ tool is useful for crafting macros but they need to be tested and this is done in this view. Since there can be some syntax to some of these macros. The macros listed in the ‘Macro assembler’ box at the bottom of the ‘Build Macro’ view are abbreviated and so the full syntax is shown in this ‘Edit/Run Macro’