OctoPrint-TFT
OctoPrint-TFT, a touch interface for TFT touch modules based on GTK+3.
Is a X application to be executed directly in the X Server without any windows
manager, as frontend of a OctoPrint server in a Raspberry Pi
equipped with any TFT Touch module.
Allows you to control your 3D Printer, like you can do with any TFT/LCD panel, but using OctoPrint and a Raspberry Pi.
Those 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.
Installation
Depedencies
OctoPrint-TFT is based on Golang, usually this means that is
dependency less, but in this cases GTK+3
is used, this means that GTK+3 libraries are required to be installed on
the system.
If you are using Raspian
or any other Debian
based distribution, GTK+3 can
be installed using:
sudo apt-get install libgtk-3-0
Installation Raspbian/OctoPi (recomened)
The recommended way to install OctoPrint-TFT is use the .deb
packages
from the Releases page. The packages
are available for Debian based distributions such as Raspbian and OctoPi for
versions jessie
and stretch
.
For example for a Raspbian Jessie:
> wget https://github.com/mcuadros/OctoPrint-TFT/releases/download/v0.1.0/octoprint-tft_0.1.0-1.jessie_armhf.deb
> dpkg -i octoprint-tft_0.1.0-1.jessie_armhf.deb
Install from source
The compilation and packaging tasks are managed by the Makefile
and backed on Docker. Docker is used to avoid install 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
just run:
curl -fsSL get.docker.com -o get-docker.sh
sh get-docker.sh
You can read more about this at docker-install
To compile the project, assuming that your already cloned this repository, just
execute the 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.
Configuration
Basic Configuration
The basic configuration is handle via environment variables, if your are using
the .deb
package you can configure it at /etc/octoprint-tft-environment
.
OCTOPRINT_HOST
- OctoPrint HTTP address, default http://localhost
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”.
OCTOPRINT_CONFIG_FILE
- Location of the OctoPrint's config.yaml file, if OCTOPRINT_APIKEY
is empty a the gobal API will be read from the config file. If empty the file will be search at the pi
home folder or the current user.
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.
Custom controls and commands
Custom controls to execute GCODE instructions and commands to execute shell commands can be defined in the config.yaml
file.
The controls are limit to static controls without inputs
.
License
GNU Affero General Public License v3.0, see LICENSE