From 2f25ef2040cc1ec92ea4bb4d4e133b10ed593c63 Mon Sep 17 00:00:00 2001 From: Jordan Ruthe Date: Sun, 22 Nov 2020 19:27:03 -0500 Subject: [PATCH] Documentation updates --- README.md | 40 +------- docs/Configuration.md | 226 ++++++++---------------------------------- docs/Installation.md | 40 ++++++++ docs/panels.md | 14 +-- 4 files changed, 90 insertions(+), 230 deletions(-) create mode 100644 docs/Installation.md diff --git a/README.md b/README.md index 47f2b949..4dd17c52 100644 --- a/README.md +++ b/README.md @@ -21,42 +21,10 @@ Current feature list: More details to come... ### Required Hardware -KlipperScreen should run on any HDMI touchscreen that you can connect to a raspberry pi. The required video driver may +KlipperScreen should run on any HDMI touchscreen that you can connect to a computer. The required video driver may be slightly different depending on what model you get. I am developing on a 1024x600 resolution screen. Due to this, other resolutions may not be scaled properly at this moment. UI scaling is a future development item. -#### Configure Hardware - -Add the following to _/boot/config.txt_. You can alter the hdmi_cvt to your screen specifications. This example is setup -for a resolution of 1024x600 and a refresh rate of 60hz. -``` -hdmi_cvt=1024 600 60 6 0 0 0 -hdmi_group=2 -hdmi_mode=87 -hdmi_drive=2 -``` -* Development has been using 1024x600 for a screen resolution. Other resolutions may have issues currently - -After changing _/boot/config.txt_ you must reboot your raspberry pi. Please also ensure you followed setting up your screen via the screen instructions. This will likely have a xorg.conf.d file for input from the touchscreen that you need to create. - -### 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. - -As an option to do development or interact with KlipperScreen from your computer, you may install tigervnc-scraping-server and VNC to your pi instance. Follow tigervnc server setup procedures for details on how to do that. +### Links +[Installation](docs/Installation.md) +[Configuration](docs/Configuration.md) diff --git a/docs/Configuration.md b/docs/Configuration.md index 7474edd2..4ae47ca4 100644 --- a/docs/Configuration.md +++ b/docs/Configuration.md @@ -1,207 +1,59 @@ # Configuration -In the KlipperScreen folder, a file _KlipperScreen.config_ allows for configuration of the screen. The configuration -file is a json formatted file. There are three main options to configure. -``` -{ - "preheat_options", - "mainmenu", - "printmenu" -} -``` +In the KlipperScreen folder, a file _KlipperScreen.conf_ allows for configuration of the screen. This document will detail how to configure KlipperScreen. A default config is included here: [ks_includes/KlipperScreen.conf](ks_includes/KlipperScreen.conf) + ## 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 - } -} +[preheat my_temp_setting] +# Temperature for the heated bed +bed: 40 +# Temperature for the tools +extruder: 195 ``` -## Main menu +## 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. +button press. There are two menus available in KlipperScreen, __main and __print. The __main menu is displayed while the +printer is idle. The __print menu is accessible from the printing status page. -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 +Available panels are listed here: [docs/panels.md](panels.md) 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 -} +[menu __main my_menu_item] +# To build a sub-menu of this menu item, you would next use [menu __main my_menu_item sub_menu_item] +name: Item Name +icon: home +# Optional Parameters +# Panel from the panels listed below +panel: preheat +# Moonraker method to call when the item is selected +method: printer.gcode.script +# Parameters that would be passed with the method above +params: {"script":"G28 X"} ``` 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" - } -] -``` +[menu __main homing] +name: Homing +icon: home -## 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: +[menu __main preheat] +name: Preheat +icon: heat-up +panel: preheat -``` -"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" - } -] +[menu __main print] +name: Print +icon: print +panel: print + +[menu __main homing homeall] +name: Home All +icon: home +method: printer.gcode.script +params: {"script":"G28"} ``` diff --git a/docs/Installation.md b/docs/Installation.md new file mode 100644 index 00000000..e831d484 --- /dev/null +++ b/docs/Installation.md @@ -0,0 +1,40 @@ +### Required Hardware +KlipperScreen should run on any HDMI touchscreen that you can connect to a computer. The required video driver may +be slightly different depending on what model you get. I am developing on a 1024x600 resolution screen. Due to this, +other resolutions may not be scaled properly at this moment. UI scaling is a future development item. + +#### Configure Hardware + +Add the following to _/boot/config.txt_. You can alter the hdmi_cvt to your screen specifications. This example is setup +for a resolution of 1024x600 and a refresh rate of 60hz. +``` +hdmi_cvt=1024 600 60 6 0 0 0 +hdmi_group=2 +hdmi_mode=87 +hdmi_drive=2 +``` +* Development has been using 1024x600 for a screen resolution. Other resolutions may have issues currently + +After changing _/boot/config.txt_ you must reboot your raspberry pi. Please also ensure you followed setting up your screen via the screen instructions. This will likely have a xorg.conf.d file for input from the touchscreen that you need to create. + +### 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. + +As an option to do development or interact with KlipperScreen from your computer, you may install tigervnc-scraping-server and VNC to your pi instance. Follow tigervnc server setup procedures for details on how to do that. diff --git a/docs/panels.md b/docs/panels.md index abdc1e4b..efb697eb 100644 --- a/docs/panels.md +++ b/docs/panels.md @@ -10,22 +10,22 @@ * [Temperature](#temperature) ### Main Menu -![Main Menu](/docs/img/main_panel.png) +![Main Menu](img/main_panel.png) ### Bed Level -![Bed Level](/docs/img/bedlevel.png) +![Bed Level](img/bedlevel.png) ### Extrude -![Extrude](/docs/img/extrude.png) +![Extrude](img/extrude.png) ### Fan -![Fan](/docs/img/fan.png) +![Fan](img/fan.png) ### Move -![Move Panel](/docs/img/move.png) +![Move Panel](img/move.png) ### Preheat -![Preheat Panel](/docs/img/preheat.png) +![Preheat Panel](img/preheat.png) ### Temperature -![Temperature](/docs/img/temperature.png) +![Temperature](img/temperature.png)