klipperscreen / klipperscreen Goto Github PK
View Code? Open in Web Editor NEWGUI for Klipper
Home Page: https://klipperscreen.github.io/KlipperScreen/
License: GNU Affero General Public License v3.0
GUI for Klipper
Home Page: https://klipperscreen.github.io/KlipperScreen/
License: GNU Affero General Public License v3.0
Heya,
just run your script after a git clone
to install your KlipperScreen.
It returns the following. Is there a fix?
Building wheel for vext.gi (setup.py) ... error
ERROR: Command errored out with exit status 1:
command: /root/.KlipperScreen-env/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-8tgs5uvr/vext-gi_7b15bbdfbf054ca4a53aea893eb54224/setup.py'"'"'; __file__='"'"'/tmp/pip-install-8tgs5uvr/vext-gi_7b15bbdfbf054ca4a53aea893eb54224/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-pitomfw3
cwd: /tmp/pip-install-8tgs5uvr/vext-gi_7b15bbdfbf054ca4a53aea893eb54224/
Complete output (29 lines):
running bdist_wheel
running build
installing to build/bdist.linux-armv7l/wheel
running install
vext.gi Install
running install_data
creating build
creating build/bdist.linux-armv7l
creating build/bdist.linux-armv7l/wheel
creating build/bdist.linux-armv7l/wheel/vext.gi-0.7.4.data
creating build/bdist.linux-armv7l/wheel/vext.gi-0.7.4.data/data
creating build/bdist.linux-armv7l/wheel/vext.gi-0.7.4.data/data/share
creating build/bdist.linux-armv7l/wheel/vext.gi-0.7.4.data/data/share/vext
creating build/bdist.linux-armv7l/wheel/vext.gi-0.7.4.data/data/share/vext/specs
copying gi.vext -> build/bdist.linux-armv7l/wheel/vext.gi-0.7.4.data/data/share/vext/specs
running install_egg_info
running egg_info
writing vext.gi.egg-info/PKG-INFO
writing dependency_links to vext.gi.egg-info/dependency_links.txt
writing requirements to vext.gi.egg-info/requires.txt
writing top-level names to vext.gi.egg-info/top_level.txt
reading manifest file 'vext.gi.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no files found matching '*.txt'
writing manifest file 'vext.gi.egg-info/SOURCES.txt'
Copying vext.gi.egg-info to build/bdist.linux-armv7l/wheel/vext.gi-0.7.4-py3.7.egg-info
running install_scripts
Install vext files:
error: [Errno 2] No such file or directory: 'vext': 'vext'
----------------------------------------
ERROR: Failed building wheel for vext.gi
Running setup.py clean for vext.gi
Failed to build vext.gi
Installing collected packages: vext.gi
Running setup.py install for vext.gi ... error
ERROR: Command errored out with exit status 1:
command: /root/.KlipperScreen-env/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-8tgs5uvr/vext-gi_7b15bbdfbf054ca4a53aea893eb54224/setup.py'"'"'; __file__='"'"'/tmp/pip-install-8tgs5uvr/vext-gi_7b15bbdfbf054ca4a53aea893eb54224/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-587refqp/install-record.txt --single-version-externally-managed --compile --install-headers /root/.KlipperScreen-env/include/site/python3.7/vext.gi
cwd: /tmp/pip-install-8tgs5uvr/vext-gi_7b15bbdfbf054ca4a53aea893eb54224/
Complete output (22 lines):
running install
vext.gi Install
running build
running install_data
creating /root/.KlipperScreen-env/share/vext
creating /root/.KlipperScreen-env/share/vext/specs
copying gi.vext -> /root/.KlipperScreen-env/share/vext/specs
running install_egg_info
running egg_info
writing vext.gi.egg-info/PKG-INFO
writing dependency_links to vext.gi.egg-info/dependency_links.txt
writing requirements to vext.gi.egg-info/requires.txt
writing top-level names to vext.gi.egg-info/top_level.txt
reading manifest file 'vext.gi.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no files found matching '*.txt'
writing manifest file 'vext.gi.egg-info/SOURCES.txt'
Copying vext.gi.egg-info to /root/.KlipperScreen-env/lib/python3.7/site-packages/vext.gi-0.7.4-py3.7.egg-info
running install_scripts
writing list of installed files to '/tmp/pip-record-587refqp/install-record.txt'
Install vext files:
error: [Errno 2] No such file or directory: 'vext': 'vext'
----------------------------------------
ERROR: Command errored out with exit status 1: /root/.KlipperScreen-env/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-8tgs5uvr/vext-gi_7b15bbdfbf054ca4a53aea893eb54224/setup.py'"'"'; __file__='"'"'/tmp/pip-install-8tgs5uvr/vext-gi_7b15bbdfbf054ca4a53aea893eb54224/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-587refqp/install-record.txt --single-version-externally-managed --compile --install-headers /root/.KlipperScreen-env/include/site/python3.7/vext.gi Check the logs for full command output.
Installing KlipperScreen unit file
I updated my KlipperScreen by downloading the latest version using a clone command. Then ran the installation script which ended with the following message:
Updating X11 configuration
Job for KlipperScreen.service failed because the control process exited with error code.
See "systemctl status KlipperScreen.service" and "journalctl -xe" for details.
When I run systemctl I get this message:
● KlipperScreen.service - KlipperScreen
Loaded: loaded (/etc/systemd/system/KlipperScreen.service; enabled; vendor preset: enabled)
Active: activating (start-post) (Result: exit-code) since Sun 2020-11-15 11:09:23 PST; 6s ago
Process: 863 ExecStart=/usr/bin/xinit /home/pi/.KlipperScreen-env/bin/python /home/pi/KlipperScreen/screen.py (code=exited, status=203/EXEC
Main PID: 863 (code=exited, status=203/EXEC); Control PID: 864 (disablescreenbl)
Tasks: 2 (limit: 4915)
CGroup: /system.slice/KlipperScreen.service
├─864 /bin/bash /home/pi/KlipperScreen/scripts/disablescreenblank.sh
└─865 sleep 15
Nov 15 11:09:23 raspberrypi systemd[1]: Starting KlipperScreen...
Nov 15 11:09:23 raspberrypi systemd[863]: KlipperScreen.service: Failed to execute command: No such file or directory
Nov 15 11:09:23 raspberrypi systemd[863]: KlipperScreen.service: Failed at step EXEC spawning /usr/bin/xinit: No such file or directory
Nov 15 11:09:23 raspberrypi systemd[1]: KlipperScreen.service: Main process exited, code=exited, status=203/EXEC
KlipperScreen shows no tool / tool temparature.
Log states: Toolcount: 0
Also the coordinates on the move panel doesn't update the coordinates.
I installed using the KIAUH script. Current KlipperScreen verison is 0.1.2-58
Any idea?
I am able to operate most of the buttons found under Actions but almost everything else does not work. Here is a description of the behavior of my install
Most of the simple move X, Y and Z seem to work. I can control the fan and fan speed and do home from the Actions->Move menu but the rest is not functional.
I did look at my /var/log/syslog and for the operations that don't work I don't get any lines but the ones that do work I get these line:
Oct 26 15:40:55 raspberrypi xinit[1721]: {"jsonrpc": "2.0", "method": "server.files.list", "params": {}, "id": 2}
Oct 26 15:40:55 raspberrypi xinit[1721]: {"jsonrpc": "2.0", "method": "printer.gcode.script", "params": {"script": "G28 X"}, "id": 3}
Oct 26 15:40:55 raspberrypi xinit[1721]: {"jsonrpc": "2.0", "method": "printer.gcode.script", "params": {"script": "G28"}, "id": 4}
Oct 26 15:40:55 raspberrypi xinit[1721]: {"jsonrpc": "2.0", "method": "printer.gcode.script", "params": {"script": "PROBE_CALIBRATE"}, "id": 5}
Oct 26 15:40:55 raspberrypi xinit[1721]: {"jsonrpc": "2.0", "method": "printer.gcode.script", "params": {"script": "TESTZ Z=-1"}, "id": 11}
Oct 26 15:40:55 raspberrypi xinit[1721]: {"jsonrpc": "2.0", "method": "printer.gcode.script", "params": {"script": "TESTZ Z=-.01"}, "id": 15}
Oct 26 15:40:55 raspberrypi xinit[1721]: {"jsonrpc": "2.0", "method": "printer.gcode.script", "params": {"script": "ACCEPT"}, "id": 16}
Oct 26 15:40:55 raspberrypi xinit[1721]: {"jsonrpc": "2.0", "method": "printer.gcode.script", "params": {"script": "SAVE_CONFIG"}, "id": 17}
Oct 26 15:40:55 raspberrypi xinit[1721]: {"jsonrpc": "2.0", "method": "printer.gcode.script", "params": {"script": "ACCEPT"}, "id": 18}
Oct 26 15:40:55 raspberrypi xinit[1721]: {"jsonrpc": "2.0", "method": "printer.gcode.script", "params": {"script": "SAVE_CONFIG"}, "id": 19}
Oct 26 15:40:55 raspberrypi xinit[1721]: {"jsonrpc": "2.0", "method": "printer.gcode.script", "params": {"script": "ABORT"}, "id": 20}
Oct 26 15:40:55 raspberrypi xinit[1721]: {"jsonrpc": "2.0", "method": "printer.gcode.script", "params": {"script": "G28"}, "id": 21}
Oct 26 15:40:55 raspberrypi xinit[1721]: {"jsonrpc": "2.0", "method": "printer.gcode.script", "params": {"script": "G91\nG1 Z1"}, "id": 25}
Oct 26 15:40:55 raspberrypi xinit[1721]: {"jsonrpc": "2.0", "method": "printer.gcode.script", "params": {"script": "M106 S0"}, "id": 35}
Oct 26 15:40:55 raspberrypi xinit[1721]: {"jsonrpc": "2.0", "method": "printer.gcode.script", "params": {"script": "M104 T0 S130.0"}, "id": 57}
After doing a save config in KlipperScreen it restarts Klipper but then gets stuck on the "klipper has shutdown" screen. Klipper is back up and I can see everything is fine in mainsail. The logs from moonraker and from klipper seem find and working. Only KlipperScreen is stuck and won't run correctly unless I stop the service and start it again.
I've included the klippy.log and KlipperScreen.log and a picture of the image I am stuck on. I can also put the moonraker.log file if it helps but it is 40M in size.
When the system boots KlipperScreen stays on "in initializing".
When I press "Klipper restart" klipper restarts and the screen switches to main menu.
With the latest update the screen does not update when I start a print. I have to restart KlipperScreen for it to work.
Sometimes I loose network on my printer(s). but with no keyboard or mouse it would be useful to powerdown/reboot the whole system. Due to my waveshare display the GPIO-pin to reboot is not accessable to install a switch there.
So a touch menu entry would be very nice..
I have had this work only a few times but recently when I upload files and set prusaslicer to "start print after upload" klipper screen does not switch to the printing view. It still display temperature and such but does not switch to the printing view.
If I kill the klipperscreen process it is stuck at "initializing". If I start a print directly from the display it also does not show the printing screen.
I have attached the log file
KlipperScreen.log
In the "Actions" Subpage, the "Move" icon is the same as for temperature settings. See this photo:
Heya again, now, after your plugin/addon seems to work as intended I found a small thing that is a bit annoying after you uploaded a lot of files to your pi :)
The printable lilelist is sorted by name but I would say, most of us want to see the most recent files at the top of the list instead of scrolling through the whole list or?
Maybe you could add a sort option by name or upload date?
I'm setting up klipperscreen on a 480x320 screen. It works and all buttons seem operational but the icons and text is very small even if the screen seems to have some space to spare. It would be great to take better advantage of the space available and make the icons and text a bit larger.
When selecting the Accept button in the z-offset panel it seems to accept the new offset looking at the log but it does not return to the parent panel.
Looked at the source code and noticed the Abort has the _menu_go_back call but accept does not. With-out this I have no way to go back unless I press the Abort button which does not make sense. Also you stay in the z-offset UI which is not not functional because the z-offset command has ended after klipper got the Accept command.
Hi
It's possible to show mouse on screen.
I connect my mouse and control it:
https://youtu.be/fGXR0J1NS1w
but I didn't see cursor.
I updated Klipper, Moonraker and Klipperscreen.
Now the move actions (X+,X-,Y+ ...) don't do anything anymore. The rest seems to be fine. (homing, heating etc.)
Control via Klipperscreen works.
Klipper 0.9.1-143
Moonraker 0.2.8-27
Mainsail 0.4.1
KlipperScreen 0.1.2-85
moonraker_noMove.log
klippy_noMove.log
KlipperScreen_noMove.log
I've installed KlipperScreen but the service log files indicates it is unable to take control of the screen. I have tried running it with an auto log-in raspbian setup or with-out auto log in or with start up with no UI. In all cases it is unable to display. With no auto log-in the log file indicates:
Oct 26 10:55:02 raspberrypi xinit[766]: #011and start again.
Oct 26 10:55:02 raspberrypi xinit[766]: (EE)
Oct 26 10:55:02 raspberrypi xinit[766]: (EE)
Oct 26 10:55:02 raspberrypi xinit[766]: Please consult the The X.Org Foundation support
Oct 26 10:55:02 raspberrypi xinit[766]: #11 at http://wiki.x.org
Oct 26 10:55:02 raspberrypi xinit[766]: for help.
Oct 26 10:55:02 raspberrypi xinit[766]: (EE)
Oct 26 10:55:17 raspberrypi xinit[766]: Invalid MIT-MAGIC-COOKIE-1 key/usr/bin/xinit: giving up
Oct 26 10:55:17 raspberrypi xinit[766]: /usr/bin/xinit: unable to connect to X server: Resource temporarily unavailable
Oct 26 10:55:17 raspberrypi xinit[766]: /usr/bin/xinit: server error
Oct 26 10:55:17 raspberrypi systemd[1]: KlipperScreen.service: Main process exited, code=exited, status=1/FAILURE
Oct 26 10:55:17 raspberrypi systemd[1]: KlipperScreen.service: Failed with result 'exit-code'.
Oct 26 10:55:18 raspberrypi systemd[1]: KlipperScreen.service: Service RestartSec=1s expired, scheduling restart.
Oct 26 10:55:18 raspberrypi systemd[1]: KlipperScreen.service: Scheduled restart job, restart counter is at 14.
Oct 26 10:55:18 raspberrypi systemd[1]: Stopped KlipperScreen.
Oct 26 10:55:18 raspberrypi systemd[1]: Started KlipperScreen.
Oct 26 10:55:18 raspberrypi xinit[768]: (EE)
Oct 26 10:55:18 raspberrypi xinit[768]: Fatal server error:
Oct 26 10:55:18 raspberrypi xinit[768]: (EE) Server is already active for display 0
Oct 26 10:55:18 raspberrypi xinit[768]: #011If this server is no longer running, remove /tmp/.X0-lock
I was using the extrusion panel and tried to extrude while the nozzle was still warming up. I can see the temp control option on this panel but it would be very useful to see the current temperature in the extrusion panel. In my case I had already set the temp and just had to wait for it to reach this target temp. Having it displayed would save me having to go to the sub panel or another panel to see the current temp.
first of - thanks a lot for your work and for sharing the results!
I use your solution for the printer I currently build.
I have an issue though. When I start a print the display doesn't switch to the job status.
Possible causes - in case this is not an issue with the software:
Any idea on what might be wrong?
User
in /etc/systemd/system/KlipperScreen.service
was set to pi
, but my username was hevo
. This caused the service start to fail:
rpi3-3d-hevo systemd[1]: Failed to start KlipperScreen.
rpi3-3d-hevo systemd[1857]: KlipperScreen.service: Failed to determine user credentials: No such process
rpi3-3d-hevo systemd[1857]: KlipperScreen.service: Failed at step USER spawning /home/hevo/KlipperScreen/scripts/disablescreenblank.sh: No such process
Or this error message, after successfull installation:
error: [Errno 2] No such file or directory: 'vext'
Job for KlipperScreen.service failed because the control process exited with error code.
See "systemctl status KlipperScreen.service" and "journalctl -xe" for details.
Changing it to the correct username fixed it.
Unsuccessful installation on Rpi4 2GB RaspbianOS 32bit LITE.
During installation, I get the error -log below:
(from ruamel.yaml>=0.11.10->vext>=0.7.4->vext.gi==0.7.4) (0.2.2)
Building wheels for collected packages: vext.gi
Building wheel for vext.gi (setup.py) ... error
ERROR: Command errored out with exit status 1:
command: /home/pi/.KlipperScreen-env/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-6h7gzwgs/vext-gi_0a516d6aeca54762b34c2627c4a523aa/setup.py'"'"'; __file__='"'"'/tmp/pip-install-6h7gzwgs/vext-gi_0a516d6aeca54762b34c2627c4a523aa/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-1ukti3ot
cwd: /tmp/pip-install-6h7gzwgs/vext-gi_0a516d6aeca54762b34c2627c4a523aa/
Complete output (29 lines):
running bdist_wheel
running build
installing to build/bdist.linux-armv7l/wheel
running install
vext.gi Install
running install_data
creating build
creating build/bdist.linux-armv7l
creating build/bdist.linux-armv7l/wheel
creating build/bdist.linux-armv7l/wheel/vext.gi-0.7.4.data
creating build/bdist.linux-armv7l/wheel/vext.gi-0.7.4.data/data
creating build/bdist.linux-armv7l/wheel/vext.gi-0.7.4.data/data/share
creating build/bdist.linux-armv7l/wheel/vext.gi-0.7.4.data/data/share/vext
creating build/bdist.linux-armv7l/wheel/vext.gi-0.7.4.data/data/share/vext/specs
copying gi.vext -> build/bdist.linux-armv7l/wheel/vext.gi-0.7.4.data/data/share/vext/specs
running install_egg_info
running egg_info
writing vext.gi.egg-info/PKG-INFO
writing dependency_links to vext.gi.egg-info/dependency_links.txt
writing requirements to vext.gi.egg-info/requires.txt
writing top-level names to vext.gi.egg-info/top_level.txt
reading manifest file 'vext.gi.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no files found matching '*.txt'
writing manifest file 'vext.gi.egg-info/SOURCES.txt'
Copying vext.gi.egg-info to build/bdist.linux-armv7l/wheel/vext.gi-0.7.4-py3.7.egg-info
running install_scripts
Install vext files:
error: [Errno 2] No such file or directory: 'vext': 'vext'
----------------------------------------
ERROR: Failed building wheel for vext.gi
Running setup.py clean for vext.gi
Failed to build vext.gi
Installing collected packages: vext.gi
Running setup.py install for vext.gi ... error
ERROR: Command errored out with exit status 1:
command: /home/pi/.KlipperScreen-env/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-6h7gzwgs/vext-gi_0a516d6aeca54762b34c2627c4a523aa/setup.py'"'"'; __file__='"'"'/tmp/pip-install-6h7gzwgs/vext-gi_0a516d6aeca54762b34c2627c4a523aa/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-h59t69wr/install-record.txt --single-version-externally-managed --compile --install-headers /home/pi/.KlipperScreen-env/include/site/python3.7/vext.gi
cwd: /tmp/pip-install-6h7gzwgs/vext-gi_0a516d6aeca54762b34c2627c4a523aa/
Complete output (22 lines):
running install
vext.gi Install
running build
running install_data
creating /home/pi/.KlipperScreen-env/share/vext
creating /home/pi/.KlipperScreen-env/share/vext/specs
copying gi.vext -> /home/pi/.KlipperScreen-env/share/vext/specs
running install_egg_info
running egg_info
writing vext.gi.egg-info/PKG-INFO
writing dependency_links to vext.gi.egg-info/dependency_links.txt
writing requirements to vext.gi.egg-info/requires.txt
writing top-level names to vext.gi.egg-info/top_level.txt
reading manifest file 'vext.gi.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no files found matching '*.txt'
writing manifest file 'vext.gi.egg-info/SOURCES.txt'
Copying vext.gi.egg-info to /home/pi/.KlipperScreen-env/lib/python3.7/site-packages/vext.gi-0.7.4-py3.7.egg-info
running install_scripts
writing list of installed files to '/tmp/pip-record-h59t69wr/install-record.txt'
Install vext files:
error: [Errno 2] No such file or directory: 'vext': 'vext'
----------------------------------------
ERROR: Command errored out with exit status 1: /home/pi/.KlipperScreen-env/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-6h7gzwgs/vext-gi_0a516d6aeca54762b34c2627c4a523aa/setup.py'"'"'; __file__='"'"'/tmp/pip-install-6h7gzwgs/vext-gi_0a516d6aeca54762b34c2627c4a523aa/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-h59t69wr/install-record.txt --single-version-externally-managed --compile --install-headers /home/pi/.KlipperScreen-env/include/site/python3.7/vext.gi Check the logs for full command output.
Installing KlipperScreen unit file
Updating X11 configuration
In my setup, the fixed screw is back left, but the display shows it as back right.
As this setup may vary for users, it should be possible to map the screw names to their display position.
Hello,
so i recently installed KlipperScreen on my Voron and run into an issue.
After i start or restart Klipper Klipperscreen boots ok into the main screen. BUT after i run any command (g-code or macro) it disconnects from Klipper and shows me on-screen message "Klipper has shutdown". Even it further runs without any issue on Mainsail.
I run following firmware:
Hi,
First of all - Thank you for your great work for this app :)
Given the below 7" touch screen (1024x600).
0.
It would be nice, if the GUI itself could reload it's config file (either by a button which is always on the screen or if it detects when the file is changed) - it would be good for testing different menu layout modifications without restarting the service
1.
I feel the left half of the main screen is wasted with just the temperatures are sitting there.
Instead, what I would like to do:
[menu __main config save]
name: {{ gettext('Save Config') }}
icon: complete
method: printer.gcode.script
params: {"script":"SAVE_CONFIG"}
confirm:
{{ gettext('Save configuration.') }}
{{ gettext('Klipper will reboot') }}
+1: If KlipperScreen is installed beside for example MainSailOS, most of the config files resides in /home//config_klipper directory. You might consider in your installation to either automatically link there your config file or make it possible during installation to select the actually used config directory.
Or if you would implement [include extra-config.cfg] logic in your config file (like klipper's config file), we could create the customization in different directory than KlipperScreen's own dir.
Thanks a lot in advance!
hi, the print screen does not show the newly uploaded gcode. The restore button on the screen does not work. The service must be restarted "sudo systemctl restart KlipperScreen.service". Additionally, the uploaded file does not match. it shows me 50 years ago.
I've getting KlipperScreen to run well on one of my printer. I'm trying to setup a second printer with a Raspberr PI 3B+. I did the install and I can run the "sudo service KlipperScreen start" command but nothing happens. The log file is not created so I don't have any visibility into what the service is doing when it tries to start. Where can I look to find any errors encountered during service startup?
There are items which are selected to be hidden but are still shown.
END_PRINT, M600,PURGE_LINE_BEFORE_PRINT
And some are set to be shown but are not visible:
CANCEL_PRINT,LOAD_FILAMENT,PURGE,PARK...
Macros visibility settings:
https://www.youtube.com/watch?v=cWiBNtBtAp4&feature=youtu.be
KlipperScreen.conf.txt
klippy (2).log.txt
KlipperScreen.log.txt
Hello,
if I try to install KlipperScreen via your script, I get an Error and later on, it does not start.
Requirement already satisfied: ruamel.yaml.clib>=0.1.2 in /home/pi/.KlipperScreen-env/lib/python3.7/site-packages (from ruamel.yaml>=0.11.10->vext>=0.7.4->vext.gi==0.7.4) (0.2.2)
Building wheels for collected packages: vext.gi
Building wheel for vext.gi (setup.py) ... error
ERROR: Command errored out with exit status 1:
command: /home/pi/.KlipperScreen-env/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-o9j192_d/vext-gi_d1926f5bfb3a4624aed5f199a9da5edf/setup.py'"'"'; __file__='"'"'/tmp/pip-install-o9j192_d/vext-gi_d1926f5bfb3a4624aed5f199a9da5edf/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-3vu2uav1
cwd: /tmp/pip-install-o9j192_d/vext-gi_d1926f5bfb3a4624aed5f199a9da5edf/
Complete output (29 lines):
running bdist_wheel
running build
installing to build/bdist.linux-armv7l/wheel
running install
vext.gi Install
running install_data
creating build
creating build/bdist.linux-armv7l
creating build/bdist.linux-armv7l/wheel
creating build/bdist.linux-armv7l/wheel/vext.gi-0.7.4.data
creating build/bdist.linux-armv7l/wheel/vext.gi-0.7.4.data/data
creating build/bdist.linux-armv7l/wheel/vext.gi-0.7.4.data/data/share
creating build/bdist.linux-armv7l/wheel/vext.gi-0.7.4.data/data/share/vext
creating build/bdist.linux-armv7l/wheel/vext.gi-0.7.4.data/data/share/vext/specs
copying gi.vext -> build/bdist.linux-armv7l/wheel/vext.gi-0.7.4.data/data/share/vext/specs
running install_egg_info
running egg_info
writing vext.gi.egg-info/PKG-INFO
writing dependency_links to vext.gi.egg-info/dependency_links.txt
writing requirements to vext.gi.egg-info/requires.txt
writing top-level names to vext.gi.egg-info/top_level.txt
reading manifest file 'vext.gi.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no files found matching '*.txt'
writing manifest file 'vext.gi.egg-info/SOURCES.txt'
Copying vext.gi.egg-info to build/bdist.linux-armv7l/wheel/vext.gi-0.7.4-py3.7.egg-info
running install_scripts
Install vext files:
error: [Errno 2] No such file or directory: 'vext': 'vext'
----------------------------------------
ERROR: Failed building wheel for vext.gi
Running setup.py clean for vext.gi
Failed to build vext.gi
Installing collected packages: vext.gi
Running setup.py install for vext.gi ... error
ERROR: Command errored out with exit status 1:
command: /home/pi/.KlipperScreen-env/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-o9j192_d/vext-gi_d1926f5bfb3a4624aed5f199a9da5edf/setup.py'"'"'; __file__='"'"'/tmp/pip-install-o9j192_d/vext-gi_d1926f5bfb3a4624aed5f199a9da5edf/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-ij0sl130/install-record.txt --single-version-externally-managed --compile --install-headers /home/pi/.KlipperScreen-env/include/site/python3.7/vext.gi
cwd: /tmp/pip-install-o9j192_d/vext-gi_d1926f5bfb3a4624aed5f199a9da5edf/
Complete output (22 lines):
running install
vext.gi Install
running build
running install_data
creating /home/pi/.KlipperScreen-env/share/vext
creating /home/pi/.KlipperScreen-env/share/vext/specs
copying gi.vext -> /home/pi/.KlipperScreen-env/share/vext/specs
running install_egg_info
running egg_info
writing vext.gi.egg-info/PKG-INFO
writing dependency_links to vext.gi.egg-info/dependency_links.txt
writing requirements to vext.gi.egg-info/requires.txt
writing top-level names to vext.gi.egg-info/top_level.txt
reading manifest file 'vext.gi.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no files found matching '*.txt'
writing manifest file 'vext.gi.egg-info/SOURCES.txt'
Copying vext.gi.egg-info to /home/pi/.KlipperScreen-env/lib/python3.7/site-packages/vext.gi-0.7.4-py3.7.egg-info
running install_scripts
writing list of installed files to '/tmp/pip-record-ij0sl130/install-record.txt'
Install vext files:
error: [Errno 2] No such file or directory: 'vext': 'vext'
----------------------------------------
ERROR: Command errored out with exit status 1: /home/pi/.KlipperScreen-env/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-o9j192_d/vext-gi_d1926f5bfb3a4624aed5f199a9da5edf/setup.py'"'"'; __file__='"'"'/tmp/pip-install-o9j192_d/vext-gi_d1926f5bfb3a4624aed5f199a9da5edf/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-ij0sl130/install-record.txt --single-version-externally-managed --compile --install-headers /home/pi/.KlipperScreen-env/include/site/python3.7/vext.gi Check the logs for full command output.
Installing KlipperScreen unit file
Created symlink /etc/systemd/system/multi-user.target.wants/KlipperScreen.service → /etc/systemd/system/KlipperScreen.service.
Updating X11 configuration
After the reboot, the screen flashes Black or command promt every 1-2 seconds.
If I try to rerun your script, the error message is gone but the screen flashes again.
I used the newest version of mainsailOS with the latest updates on a RPi3b, with this display.
Greetings Minnten
Currently the menu for Z Bed Leveling seems to manually find the screws within the config file and manually moves to each position.
I have had a problem with the lower left on my Ender 5 Plus where the location that the menu sends the head to is ~.3mm lower than it should be.
Would it not be a simpler approach to rely on the Klipper FW command BED_SCREWS_ADJUST similar to what is done for PROBE_CALIBRATE? This would allow a simple interface which could show the location of the head as BED_SCREWS_ADJUST moves around the plate and the ACCEPT / ABORT / ADJUST buttons on the menu
After doing a completely fresh install of Raspberry Pi OS, Klipper, Moonraker, Fluidd and KlipperScreen (using KIAUH), I have everything working except KlipperScreen which throws the following error in /tmp/KlipperScreen.log:
2020-12-01 16:43:10,120 - KlipperScreen - ERROR - Fatal error in main loop
Traceback (most recent call last):
File "/home/pi/KlipperScreen/screen.py", line 465, in <module>
main()
File "/home/pi/KlipperScreen/screen.py", line 457, in main
win = KlipperScreen()
File "/home/pi/KlipperScreen/screen.py", line 104, in __init__
self._ws.connect()
File "/home/pi/KlipperScreen/ks_includes/KlippyWebsocket.py", line 61, in connect
self.ws = websocket.WebSocketApp(self.ws_url,
AttributeError: module 'websocket' has no attribute 'WebSocketApp'
When I try and press the Cancel button it just keeps on printing. After trying multiple times I usually press the Pause button and then it finally stops but seems to be in pause but the UI returns to the main panel.
In the attached log files I started a benchy print. Let it warm up. When it started I pressed cancel three times but it continued. I then pressed pause and it finally stop. It still had heat going on both bed and hot end which I had to stop manually. It looks like it was in pause but the UI was on the main panel where I could start a new print which does not feel like pause.
One other note. I had a hard time getting the files off my PI because the PI seemed to be unresponsive. I had to restart the firmware (and nothing else) before it came back to life and I could get the log files. Looks like the system was waiting on a firmware response or something. I've attached all the log files.
I am using KlipperScreen on a CR10 Max. It has a 450mm by 450mm printable bed size. The bed is physically 470 by 470. When doing manual bed leveling the UI uses 1/4 the size of the printable bed size to decide on the nozzle placement. For my print this shifts the nozzle into the bed to location X=112.5mm Y=112.5mm. This is too far from the corner of the print bed.
When then moving the the max X and Y location it seems to use printable bed size - 1/4(printabel bed size). This results in a location of X=337.5 Y=337.5 (I've not confirmed this from the logs yet) which seems to result in a location even further in. I'll confirm this exactly by looking at the log once my current print has completed but I know 1/4 is used in the source code and you probably know exactly how physical vs printable area is used in this calculation.
A better method would be to use a user specified offset either from the printer.cfg or the KlipperScreen.conf. It could then use the offset combined with the bed physical size to calculate the nozzle location. This would result in a more controllable and predictable behavior.
For now I have manually modified my source to use 1/8 instead but I still have the impression the nozzle is shifted in further on the max side. I'll confirm and provide the log shortly.
My printer supports auto bed leveling with a BLTouch. Klipper is configured to run this command. My flow is to run it once and then no run this command before every print to save time. I can get many print going.
For now KlipperScreen allows me to do Z-offset followed by a manual bed leveling. Once done I would want to update my ABL table and run a G29 but this option is not supported yet in KlipperScreen.
Please add support for ABL.
The latest update blocks communication with the printer. The printer cannot be controlled via mainsail either.
After stopping KlipperScreen, the printer starts communicating via mainsail.
7" HDMI panel. There is no menu on it to set screen saver time so this must be happening external to it. After just a few minutes the KlipperScreen goes black and won't redisplay until I turn the panel off, on and then press on again. The first time I turn on I see the RPi log and then an "Input not Found" error, the second On press activates KlipperScreen. Is there a config somewhere to completely disable this time out?
Hi,
Print job status screen is not updating. I get this error:
self.panels[sub].process_update(action, data) Dec 21 11:43:24 Printer xinit[30095]: File "/home/pi/KlipperScreen/panels/job_status.py", line 351, in process_update Dec 21 11:43:24 Printer xinit[30095]: self._printer.get_dev_stat(x,"target") Dec 21 11:43:24 Printer xinit[30095]: File "/home/pi/KlipperScreen/panels/job_status.py", line 506, in update_temp Dec 21 11:43:24 Printer xinit[30095]: self.labels[x].set_markup( Dec 21 11:43:24 Printer xinit[30095]: KeyError: 'extruder1' Dec 21 11:43:24 Printer xinit[30095]: Traceback (most recent call last): Dec 21 11:43:24 Printer xinit[30095]: File "/home/pi/KlipperScreen/screen.py", line 401, in _websocket_callback Dec 21 11:43:24 Printer xinit[30095]: self.panels[sub].process_update(action, data) Dec 21 11:43:24 Printer xinit[30095]: File "/home/pi/KlipperScreen/panels/job_status.py", line 351, in process_update Dec 21 11:43:24 Printer xinit[30095]: self._printer.get_dev_stat(x,"target") Dec 21 11:43:24 Printer xinit[30095]: File "/home/pi/KlipperScreen/panels/job_status.py", line 506, in update_temp Dec 21 11:43:24 Printer xinit[30095]: self.labels[x].set_markup( Dec 21 11:43:24 Printer xinit[30095]: KeyError: 'extruder1'
It is extruder that is selected but it is checking extruder1
I have two extruders sharing one hotend. When the printer is on idle it always shows tool2 temp even when tool1 is selected.
Thanks
Klipper prefers manual calibration for the bed mesh.
Actually I do a bed_mesh_calibrate with a bunch ob macros.
So it would be great to build a panel to it. The panel zcalibrate looks perfect for that. The only missing thing is a NEXT-Button.
maybe this new panel could be integrated into the bedmesh panel as a link.
Is it useful to only show this menu if a delta-like kinematic is in the printer.cfg?
Or use it on delta-like kinematics instead of the bed_level menu?
Maybe this is a good way to keep erverything clean and also meet all printer specific needs.
When a print is complete. The progress screen while printing does not reset. When you restart a new print it shows the progress of the last completed print.
First of all I would love to say that your work looks amaizing for the raspi gurus that can get it installed and operating. If its not too much to ask, Can you make these instructions a little more novice friendly? I want to use it on my Voron badly but I just can't get it to boot up automaticaly.
Last command showing up on my pi is 6.557421] systemd[1]: listening on udev Kernel Socket
pi@mainsailos:~ $ ls
CanSerial klipper_config LCD-show moonraker
gcode_files KlipperScreen mainsail moonraker-env
klipper klippy-env mjpg-streamer
pi@mainsailos:~ $
It is installed
I have big problem wit my screen: https://youtu.be/kfWwXCsWVL0 and https://youtu.be/DRJWYgnF0JY
Slider was works welly well but buttons not.
It's normal?
Is it possible to show that kind of progress bar, what can be seen on a character based LCD?
I know, (sum)print time estimation is a hard thing, that's why(?) KS shows remaining time 0 min, while the print job is still running. Maybe an additional progress bar would add a "touch" the UIX :)
Maybe even "Time left" label could count and show the additional time, after it reaches 0
For example
[hourglass]Left: 0m 0s + (1m 20s) - this last part would increase until job ends
What do you think?
Feature Request: A Button for Z_Tilt Adjust in bed level section would be great. And Gantry Leveling too.
GCode Macros Visible and invisible Option.
Dont know if its just me, but I cant seem to find this
Using sudo, then run the service install script under scripts/install_service.sh and perform sudo systemctl daemon-reload. You can then start KlipperScreen with systemctl such as systemctl start KlipperScreen<
Am I the only one that got this issue?
I did an update to latest commit yesterday and after a reboot of my pi I'm not able to do any "touch" commands on the original raspberry pi touch screen anymore.
display is showing everything as it should but can't control my printer anymore :(
Hello I copied the scripts to the scripts folder and with the command
. /home/pi/klipper/scripts/KlipperScreen-install.sh
I install it everything is ok at the beginning then at the end I have an error, I tried again and always the same.
But a then end i got this message
. /home/pi/klipper/scripts/KlipperScreen-install.sh
dirname: invalid option -- 'b'
Try 'dirname --help' for more information.
Update package data
Hit:1 http://raspbian.raspberrypi.org/raspbian buster InRelease
Hit:2 http://archive.raspberrypi.org/debian buster InRelease
Reading package lists... Done
Building dependency tree
Reading state information... Done
57 packages can be upgraded. Run 'apt list --upgradable' to see them.
Installing package dependencies
Reading package lists... Done
Building dependency tree
Reading state information... Done
python3-distutils is already the newest version (3.7.3-1).
python3-gi is already the newest version (3.30.4-1).
python3-gi-cairo is already the newest version (3.30.4-1).
python3-virtualenv is already the newest version (15.1.0+ds-2).
virtualenv is already the newest version (15.1.0+ds-2).
xinit is already the newest version (1.4.0-1).
xinput is already the newest version (1.6.2-1).
gir1.2-gtk-3.0 is already the newest version (3.24.5-1+rpt2).
x11-xserver-utils is already the newest version (7.7+8+rpi1).
xserver-xorg-video-fbturbo is already the newest version (1.20190107~114053).
0 upgraded, 0 newly installed, 0 to remove and 57 not upgraded.
Creating virtual environment
ERROR: Could not open requirements file: [Errno 2] No such file or directory: '/home/pi/scripts/KlipperScreen-requirements.txt'
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Requirement already satisfied: vext.gi==0.7.4 in ./.KlipperScreen-env/lib/python3.7/site-packages (0.7.4)
Requirement already satisfied: vext>=0.7.4 in ./.KlipperScreen-env/lib/python3.7/site-packages (from vext.gi==0.7.4) (0.7.4)
Requirement already satisfied: ruamel.yaml>=0.11.10 in ./.KlipperScreen-env/lib/python3.7/site-packages (from vext>=0.7.4->vext.gi==0.7.4) (0.16.12)
Requirement already satisfied: ruamel.yaml.clib>=0.1.2 in ./.KlipperScreen-env/lib/python3.7/site-packages (from ruamel.yaml>=0.11.10->vext>=0.7.4->vext.gi==0.7.4) (0.2.2)
Installing KlipperScreen unit file
-bash: /home/pi/KlipperScreen.service: No such file or directory
The unit files have no installation config (WantedBy=, RequiredBy=, Also=,
Alias= settings in the [Install] section, and DefaultInstance= for template
units). This means they are not meant to be enabled using systemctl.
Possible reasons for having this kind of units are:
• A unit may be statically enabled by being symlinked from another unit's
.wants/ or .requires/ directory.
• A unit's purpose may be to act as a helper for some other unit which has
a requirement dependency on it.
• A unit may be started when needed via activation (socket, path, timer,
D-Bus, udev, scripted systemctl call, ...).
• In case of template units, the unit is meant to be enabled with some
instance name specified.
Updating X11 configuration
Failed to start KlipperScreen.service: Unit KlipperScreen.service has a bad unit file setting.
See system logs and 'systemctl status KlipperScreen.service' for details.
Fully patched Raspian on Raspi4 with Klipper and Mainsail installed from kiauh scripts. When I run /scripts/KlipperScreen-install.sh It pulls down the packages then gives me this.
Collecting ruamel.yaml.clib>=0.1.2; platform_python_implementation == "CPython" and python_version < "3.9"
Downloading https://www.piwheels.org/simple/ruamel-yaml-clib/ruamel.yaml.clib-0.2.2-cp37-cp37m-linux_armv7l.whl (550 kB)
|████████████████████████████████| 550 kB 1.2 MB/s
Building wheels for collected packages: vext.gi
Building wheel for vext.gi (setup.py) ... error
ERROR: Command errored out with exit status 1:
....
ERROR: Failed building wheel for vext.gi
Running setup.py clean for vext.gi
Failed to build vext.gi
Any help you could give would be appreciated.
If you create a sub-directory in ~/sdcard/
and place some gcode files in it, the gcode thumbnail as well as the estimated print time do not parse.
Also some of those files won't allow you to start the print from them.
Would be great to have an option to shut down the host system.
So the system can be shut down from the panel before switching of power.
I first though implementing it as a Klipper Macro. But it seems system calls are not possible as macros.
On a few occasions I've had KlipperScreen disconnect from klipper and show the "Klipper has disconnected" screen. I need to send a log of this time since it never reconnected after I just did a Klipper restart from Fluidd. So I know my Klipper is running but KlipperScreen is stuck on this screen. My only options are Restart which I'm assuming means kipper restart and Firmware restart.
I'm now stuck logging into my PI and restarting KlipperScreen or possibly restarting Moonraker. Or I can shut it down and restart the whole system.
This screen instead should have the extra option of restarting Moonraker or more importantly restarting KlipperScreen. This would just do the simple service stop and service start on KlipperScreen (or Moonraker) which would allow an easier recovery of my control screen.
Hi,
Reporting this isue here that I'm seeing.
I have Klipperscreen running alongside FluidDD UI, in case I start a print using Fluidd, KlipperScreen loose the connection.
IT says that Klipper shutdown (that is not true) and if I force restart the KlipperScreen service It stays forever with the "initializing message in the LCD.
Checking the log I can clearly see that it was able to comunicate an it even received the status that klipper is printing.
ccel_to_decel': 7000.0, 'axis_minimum': [0.0, 0.0, -0.5, 0.0], 'axis_maximum': [260.0, 240.0, 250.0, 0.0], 'position': [112.983, 115.928, 0.019159361882638067, 89.45488000000044], 'extruder': 'extruder'}, 'fan': {'speed': 0.0}, 'webhooks': {'state': 'ready', 'state_message': 'Printer is ready'}, 'heater_bed': {'temperature': 86.00248219247557, 'power': 0.1696788422897857, 'target': 85.0}, 'extruder': {'pressure_advance': 0.1275, 'target': 240.0, 'smooth_time': 0.04, 'power': 0.3150097760102062, 'temperature': 240.1732832036485}}
2021-01-19 20:35:30,123 - KlipperScreen.Printer - DEBUG - Changing state from 'disconnected' to 'printing'
2021-01-19 20:35:30,123 - KlipperScreen.Printer - DEBUG - Running callback for state: printing
2021-01-19 20:35:30,483 - KlipperScreen.KlipperWebsocket - DEBUG - Attempting to reconnect
2021-01-19 20:35:30,484 - KlipperScreen.KlipperWebsocket - DEBUG - Reconnected
2021-01-19 22:11:46,596 - KlipperScreen - DEBUG - [
"notify_gcode_response",
"Done printing file"
]
Later also when the print is finished, yet it does not do anything.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.