GithubHelp home page GithubHelp logo

tchigher / octoscreen Goto Github PK

View Code? Open in Web Editor NEW

This project forked from z-bolt/octoscreen

0.0 0.0 0.0 7.86 MB

LCD touch interface for our Octoprint

License: GNU Affero General Public License v3.0

Dockerfile 0.49% Makefile 1.69% Go 95.77% CSS 2.05%

octoscreen's Introduction

OctoScreen GitHub release license

OctoScreen, LCD touch interface for our Octoprint based on GTK+3, that allows you to control your 3D Printer, like you can do with any LCD panel, but using OctoPrint and a Raspberry Pi. It's a X application to be executed directly in the X Server without any windows manager or browser, as frontend of a OctoPrint server in a Raspberry Pi equipped with any Touch Screen.

These are some of the functionalities supported:

  • Print jobs monitoring.
  • Temperature and Filament management.
  • Jogging operations.
  • Wifi connection management
  • Toolchanger management tools

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.

Roadmap

Installation

Dependencies

OctoScreen is based on Golang, usually this means that is dependency-less, but in this case GTK+3 is used, this means that GTK+3 libraries are required to be installed on the system. Be sure that graphical environment is additionally installed.

If you are using Raspbian or any other Debian based distribution, required packages can be installed using:

sudo apt-get install libgtk-3-0 xserver-xorg xinit x11-xserver-utils

Also you may need to install video drive, usually no screens found error indicates this. Please find manual here: https://github.com/ssvb/xf86-video-fbturbo/wiki/Installation

Install from .deb package

The recommended way to install OctoScreen is use the .deb packages from the Releases page. The packages are available for Debian Stretch based distributions such as Raspbian and OctoPi.

For example for a Raspbian Stretch:

wget https://github.com/Z-Bolt/OctoScreen/releases/download/v2.5.1/octoscreen_2.5-1_armhf.deb
sudo dpkg -i octoscreen_2.5-1_armhf.deb

Install from source

The compilation and packaging tasks are managed by the Makefile 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 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 you 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 handled via environment variables, if you are using the .deb package you can configure it at /etc/octoscreen/config.

  • OCTOPRINT_CONFIG_FILE - Location of the OctoPrint's config.yaml file. If empty the file will be searched at the pi home 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 - OctoScreen 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.

  • OCTOSCREEN_STYLE_PATH - Several themes are supported, and style configurations can be done through CSS. This variable defines the location of the application theme.

  • OCTOSCREEN_RESOLUTION - Resolution of the application, should be configured to the resolution of your screen. Optimal resolution for OctoScreen is no less than 800x480, so if the physical resolution of your screen is 480x320, it's recommended to set the software resolution 800x533. If you are using Raspbian you can do it by changing hdmi_cvt param in /boot/config.txt file.

Menu Configuration

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

This project is a hard fork from Octiprint-TFT created by @mcuadros

octoscreen's People

Contributors

alexkv avatar blondak avatar gmembre-zenika avatar herrwusel avatar ismangil avatar mcuadros avatar neatsoft avatar rook0316 avatar steviehs avatar zen avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.