| Project Specification

OpenGB 3D Printer Interface

A 3D printer controller interface compatible with Open Gigabot and Marlin firmware 3D printers


LanguagePython 3.4 or later
FrameworkTornado Asynchronous Web Framework


OpenGB 3D Printer Interface is an open-source user interaction platform for 3D printing. The interface design is an independent project by Katy Jeremko, James Stewart, and Levi Lalla. The interface works with Open Gigabot open-source 3D printer allowing users to seamlessly connect to an application on their desktop for printing 3D objects. The interface provides an intuitive outlook with essential features, control buttons, and display panels to indicate the running activities and status of the connected 3D printers.

Application for Linux-Based Systems

OpenGB is a Python-based application. It uses Python 3.4 or later and is compatible with Linux and its various distros like Ubuntu, Raspbian, etc. Since it's for Linux devices, it's pretty convenient to install the application by downloading it from GitHub via the Linux command line. 

To install the OpenGB application, the user must first add the OpenGB Repository, then install it, and later upgrade it through simple commands on the shell. 

The user interface for OpenGB is straightforward. It allows the user to set up the software as a local machine initially. Among many operations, the user can install a full-screen extension, turn off mouse pointers, etc.

Multiprocess Architecture for Uninterrupted 3D Printing

Thanks to a multiprocess architecture, OpenGB is designed to ensure flawless uninterrupted 3D printing. These processes are divided into two major categories, i.e.,

  • Server Process

  • Printer Process

The server process is based on the Tornado asynchronous web framework and focuses on broadcasting printer events to the connected clients. It uses JSON-RPC 2.0 events for broadcasting and also serves as the web interface for OpenGB. Moreover, it also exposes the printer's functions to the clients. 

Moreover, the printer process involves translating messages from the Server to the printer. It addresses the operations related to printing at the client's end. It also compiles messages from the printer to the server process and handles routine requests related to 3D printing. Since the printing process is quite flexible, it supports additional firmware and extensions.

As the user connects to the OpenGB web application, it connects to the browser and transfers the signal to the Marlin microcontroller, which triggers the signals to the connected 3D printer. 

Assistive Graphical Interface for the Users

The graphical interface features all the essential displays and configuration tools to indicate the current printing status. It shows the printing progress, duration, filament length, material, and quality. 

Moreover, there are temperature readings to ensure safety, and it shows the motor status for the printers too. The left-hand panel provides a configuration and setup environment where the users can set permissions and control features. 

The app can run on a touchscreen interface, and there is a web interface too. Users can also open multiple OpenGB instances on the same network using a different hostname. 

Designed for OpenGigabot 3D Printer

OpenGB is meant for the OpenGigabot 3D printer, which provides an extensive and feature-rich environment for professional and high-quality 3D printing. It's a fully networked, touchscreen-enabled 3D printer to assist researchers and 3D printing enthusiasts. 

The 3D printer features open software programmable via Python and Arduino IDE and presents a configurable footprint for optimized 3D printing. 

The OpenGB serves the functionalities in the OpenGigabot 3D printer, making it a feasible option for large-scale 3D printing operations.


Tornado Web Server [Internet]


3d printers3D Printinggraphical user interfaces

Continue Reading