From 9bf714c7bbaad649d774ec0e479be1c1d5577239 Mon Sep 17 00:00:00 2001 From: Jordan Ruthe Date: Mon, 2 Nov 2020 13:58:47 -0500 Subject: [PATCH] Documentation updates --- README.md | 45 +++++---- docs/Configuration.md | 207 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 235 insertions(+), 17 deletions(-) create mode 100644 docs/Configuration.md diff --git a/README.md b/README.md index 4a14e0a7..837726ac 100644 --- a/README.md +++ b/README.md @@ -1,31 +1,42 @@ # KlipperScreen KlipperScreen is an idea based from [OctoScreen](https://github.com/Z-Bolt/OctoScreen/), but instead of needing OctoPrint or to compile go, KlipperScreen is python based and interacts directly with Moonraker, Klipper's API service, so that it can be run with no dependencies besides Klipper. -Currently working features: - - Homing - - Preheating - - Job Status and control - - Temperature control - - Extrude control - - Fan control - - Disable steppers - - Configure Z Offset using PROBE_CALIBRATE - -Working on: - - Print tuning (Z Babystepping, Speed Control, Flow Control) - - Better system panel - - Wifi selection - - Manual bed leveling assist - - Using thumbnails from prusa on job status page +Current feature list: + - [x] Homing + - [x] Preheating + - [x] Job Status and control + - [x] Temperature control + - [x] Extrude control + - [x] Fan control + - [x] Disable steppers + - [x] Configure Z Offset using PROBE_CALIBRATE + - [ ] Print tuning (Z Babystepping, Speed Control, Flow Control) + - [ ] Better system panel + - [ ] Wifi selection + - [ ] Manual bed leveling assist + - [ ] Using thumbnails from prusa on job status page More details to come... ### Installation +Follow the instructions to install klipper and moonraker. +klipper: https://github.com/KevinOConnor/klipper/ +moonraker: https://github.com/Arksine/moonraker + +Ensure that 127.0.0.1 is a trusted client for moonraker, such as in this example: +``` +[authorization] +trusted_clients: + 127.0.0.1 +``` + +For moonraker, ensure that 127.0.0.1 is a trusted client: + Run _scripts/KlipperScreen-install.sh_ This script will install packages that are listed under manual install, create a python virtual environment at ${HOME}/.KlipperScreen-env and install a systemd -service file. +service file. ### Manual Installation ``` diff --git a/docs/Configuration.md b/docs/Configuration.md new file mode 100644 index 00000000..c32d8519 --- /dev/null +++ b/docs/Configuration.md @@ -0,0 +1,207 @@ +# Configuration + +In the KlipperScreen folder, a file _KlipperScreen.config_ allows for configuration of the screen. There are currently +three main options to configure. +``` +{ + "preheat_options", + "mainmenu", + "printmenu" +} +``` + +## Preheat Options +Under preheat options, you may specify pre-defined temperatures for easy warmup. Each material should be formatted as +follows: +``` +"Material": { + "tool": 195, + "bed": 40 +} +``` +Tool is the extruder temperature, bed is the heated bed temperature. An example configuration for PLA and abs would be +like this: +``` +"preheat_options": { + "PLA": { + "tool": 195, + "bed": 40 + }, + "ABS":{ + "tool": 220, + "bed": 90 + } +} +``` + +## Main menu +This allows a custom configuration for the menu displayed while the printer is idle. You can use sub-menus to group +different items and there are several panel options available. It is possible to have a gcode script run on a menu +button press. + +Available panels: +* bed_level: Manual bed level +* extrude: Controls for extrusion +* fan: Controls fan speed +* finetune: Controls for fine-tuning print settings such as z-babystepping or extrustion rate +* menu: Allows for a sub-menu +* move: Controls the print head +* network: Network information panel +* preheat: Preheat bed/tools +* system: System information panel +* temperature: Controls temperature settings +* zcalibrate: Calibrating a probe + +A menu item is configured as follows: +``` +{ + "name": "Name displayed", + "icon": "file name from icons folder", + "panel": "panel from above options", + # Optional parameters + "items": [] # Items for a submenu + "method": "printer.gcode.script" # Moonraker method for a request + "params": {} # Parameters for the moonraker method +} +``` + +A sample configuration of a main menu would be as follows: +``` +"mainmenu": [ + { + "name": "Homing", + "icon": "home", + "panel": "menu", + "items": [ + { + "name": "Home All", + "icon": "home", + "method": "printer.gcode.script", + "params": {"script": "G28"} + }, + { + "name": "Home X", + "icon": "home-x", + "method": "printer.gcode.script", + "params": {"script": "G28 X"} + }, + { + "name": "Home Y", + "icon": "home-y", + "method": "printer.gcode.script", + "params": {"script": "G28 Y"} + }, + { + "name": "Home Z", + "icon": "home-z", + "method": "printer.gcode.script", + "params": {"script": "G28 Z"} + } + ] + }, + { + "name": "Preheat", + "icon": "heat-up", + "panel": "preheat" + }, + { + "name": "Actions" , + "icon": "actions", + "panel": "menu", + "items": [ + { + "name": "Move", + "icon": "move", + "panel": "move" + }, + { + "name": "Extrude", + "icon": "filament", + "panel": "extrude" + }, + { + "name": "Fan", + "icon": "fan", + "panel": "fan" + }, + { + "name": "Temperature", + "icon": "heat-up", + "panel": "temperature" + }, + { + "name": "Disable Motors", + "icon": "motor-off", + "method": "printer.gcode.script", + "params": {"script": "M18"}, + } + ] + }, + { + "name": "Configuration", + "icon": "control", + "panel": "menu", + "items": [ + { + "name": "Bed Level", + "icon": "bed-level", + "panel": "bed_level" + }, + { + "name": "ZOffsets", + "icon": "z-offset-increase", + "panel": "zcalibrate" + }, + { + "name": "Network", + "icon": "network", + "panel": "network" + }, + { + "name": "System", + "icon": "info", + "panel": "system" + } + ] + }, + { + "name": "Print", + "icon": "print", + "panel": "print" + } +] +``` + +## Print menu +The print menu controls items that are available during a print job. Certain panels, such as movement or homing, are +panels that shouldn't be displayed during a print as they could cause print errors. A default configuration is below: + +``` +"printmenu": [ + { + "name": "Temperature", + "icon": "heat-up", + "panel": "temperature" + }, + { + "name": "Tuning", + "icon": "fan", + "panel": "finetune" + }, + { + "name": "Network", + "icon": "network", + "panel": "network" + }, + { + "name": "System", + "icon": "info", + "panel": "system" + }, + { + "name": "Extrude", + "icon": "filament", + "panel": "extrude" + } +] +```