OctoPrint-TFT, a touch interface for TFT touch modules based on GTK+3.
Allows you to control your 3D Printer, like you can do with any TFT/LCD panel, but using OctoPrint and a Raspberry Pi.
These are some of the functionalities supported:
- Print jobs monitoring.
- Temperature and Filament management.
- Jogging operations.
How this is different from TouchUI?
TouchUI, is an amazing plugin for Octoprint, was created as a responsive design for access to OctoPrint, from low resolution devices, such as smartphones, tablets, etc.
Executing TouchUI under a RPi w/TFT modules, presents two big problems, first isn't optimized to be used with resistive touch screens with low resolutions like 480x320 and second requires a browser to be access, consuming a lot of resources.
This is the main reason because I develop this X application to be executed in my 3d printer.
This version brings some major improvements and fixes:
- Built-in DPMS control to disable screen blanking
- Status screen optimized, with larger and more visible progress bar and larger buttons
- New button has been added to the temperature controls, allowing to heat only the nozzle up, for example for filament changes
- Redesigned reboot / shutdown buttons in the system menu
- New confirmation dialog when pressing Stop print button
- Mid-print freezing of the interface has been fixed
- Print/pause/stop buttons now work correctly
- Random appearance of splash screen after pressing pause / resume has been fixed
Install the GUI context
First we need to make sure the GUI context is set up correctly and running on your TFT screen. For this, please follow the instructions, based on your specific installation:
For Raspbian installation
If you first installed Raspbian, and then manually installed Octoprint:
sudo apt install lightdm
If you have previously attempted to install Octoprint-TFT, during the follwing GUI installation process you could be asked whether to use Lightdm or Octoprint-TFT as your default window manager. Please select Lightdm for now. After installation is completed, reboot and make sure the GUI works on your TFT screen. NOTE: if the screen remains blank, you should try reinstalling the TFT screen drivers (depending on your screen make and model).
For Octopi installation
If you have installed Octopi directly. First you need to install GUI context:
If you have previously attempted to install Octoprint-TFT, during the follwing GUI installation process you could be asked whether to use Lightdm or Octoprint-TFT as your default window manager. Please select Lightdm for now. Answer 'yes' to all questions. After installation is completed, reboot and make sure the GUI works on your TFT screen. NOTE: if the screen remains blank, you should try reinstalling the TFT screen drivers (depending on your screen make and model).
Uninstall Lightdm window manager
Prior to Octoprint-TFT installation, we need to remove Lightdm window manager, as it could interefere with the successful installation of OctoPrint TFT. In order to do this without removing dependencies that are also required by Octoprint-TFT, run:
sudo dpkg -r --force-depends lightdm
If you are using
Raspbian or any other
Debian based distribution, GTK+3 can
be installed using:
sudo apt-get install libgtk-3-0
OctoPi does not come with graphical environment, additionally install:
sudo apt-get install xserver-xorg xinit
IMPORTANT!!! In order for the DPMS management to work correctly, you need to install:
sudo apt-get install x11-xserver-utils
Installation using the Debian installer for Raspbian/OctoPi (recommended)
The recommended way to install OctoPrint-TFT is use the
from the Releases page. The packages
are available for Debian based distributions such as Raspbian and OctoPi for
In order to check which Debian version you have installed, run the following command:
cat /etc/os-release | grep PRETTY_NAME
For example, for a Raspbian Stretch, version 1.1:
> wget https://github.com/darksid3r/OctoPrint-TFT/releases/download/1.1/octoprint-tft_stretch_1.1.git91fa718-1_armhf.deb > sudo dpkg -i octoprint-tft_stretch_1.1.git91fa718-1_armhf.deb
Please note that in order to get the latest version of Octoprint-TFT for your specific Debian release, go to the "Releases" section of this page.
Install from source
The compilation and packaging tasks are managed by the
and backed on Docker. Docker is used to avoid installing any other
dependencies since all the operations are done inside of the container.
If you need to install docker inside
Raspbian or any other linux distrubution
curl -fsSL get.docker.com -o get-docker.sh sh get-docker.sh
You can read more about this at
To compile the project, assuming that you already cloned this repository, just
build target, this will generate in
build folder all the binaries
and debian packages:
> make build > ls -1 build/
If you are using
Raspbian you can install any of the
.deb generated packages.
If not, just use the compiled binary.
The basic configuration is handled via environment variables, if you are using
.deb package you can configure it at
OCTOPRINT_CONFIG_FILE- Location of the OctoPrint's config.yaml file. If empty the file will be searched at the
pihome folder or the current user. Only used for locally installed OctoPrint servers.
OCTOPRINT_HOST- OctoPrint HTTP address, example
http://localhost:5000, if OctoPrint is locally installed will be read from the config file.
OCTOPRINT_APIKEY- OctoPrint-TFT expects an API key to be supplied. This API key can be either the globally configured one or a user specific one if “Access Control”. if OctoPrint is locally installed will be read from the config file.
OCTOPRINT_TFT_STYLE_PATH- Several themes are supported, and style configurations can be done through CSS. This variable defines the location of the application theme.
OCTOPRINT_TFT_RESOLUTION- Resolution of the application, should be configured to the resolution of your screen, for example
800x480. By default
Custom controls and commands
The controls are limit to static controls without
GNU Affero General Public License v3.0, see LICENSE