moggieuk / KlipperScreen-Happy-Hare-Edition

Customized KlipperScreen for ERCF - Happy Hare
GNU Affero General Public License v3.0
105 stars 17 forks source link

IMPORTANT

[!IMPORTANT]
After updating KlipperScreen be sure to re-run:

cd ~/KlipperScreen/happy_hare
./install_ks.sh -g <num_gates>

where <num_gates> is the number of gates on your MMU.
This will install new images, update menus and other config.


KlipperScreen - MMU Happy Hare Edition

MMU Control

Read more on how MMU Panels work...

Introduction

KlipperScreen Happy Hare edition is quite a mouthful! It is a forked (but kept up-to-date) version of KlipperScreen that is enhanced with functionality designed to run/manage any MMU using the Happy Hare driver software. Click here to access the original documentation.

:pushpin: KlipperScreen is an amazing piece of software but unfortunally lacks the level of panel integration and features I needed for this project. I hope in the future to have changes integrated so that this becomes a layered install rather than a fork. Until then you must follow these install directions closely. Also note that I regularly (every 2 weeks) re-merge with the master project so the Happy Hare addition is only additive and all original functionality is untouched.

Installation

Firstly, make sure Happy Hare software is completely up-to-date. Features were added to support this KlipperScreen add on.

Install and setup a base KlipperScreen from the original source. Get it working. Don't skip this step because I cannot help with basic KlipperScreen and system setup. Once you have that installed and working, log into you Rasberry Pi and execute the following commands. You can cut'n'paste...

cd ~
mv KlipperScreen KlipperScreen.orig
git clone https://github.com/moggieuk/KlipperScreen-Happy-Hare-Edition.git KlipperScreen

cd ~/KlipperScreen/happy_hare
./install_ks.sh -g <num_gates>

(where is the number of selectors you built with, e.g. 9)

KlipperScreen will be restarted and hopefully you should now be running the enhanced version!

Notes:

[!NOTE]
If you are installing on a rpi without Klipper and printer attached the install will not be able to find the Klipper "config" directory where the KlipperScreen.conf and mmu_klipperscreen.conf should be placed. To fix this, specify a -c <config_dir> option to the install line and specify a valid directory where KlipperScreen is expecting to see its config files.

[!NOTE]
Expert Tip: The last step of running './install_ks -g ' can be run many times.. and sometimes is needed after an update to install new images or update menu structure. If you customize the MMU part of the KlipperScreen menu and want to make use of the "replicator" function that will automatically replicate menu options for the configured number of gates, you can edit menus.conf and reference the templating there.

Note that the base KlipperScreen is up-to-date (and I will continue to merge with master every 2 weeks) with changes in the original but also includes extra menu functionality that can be used in the creation of your custom menus. See the generated ercf_klipperscreen.conf for clues!

Request

I can offer limited help on the Discord channels so would prefer if you submit an issue report via github so I can manage them. Also, some folks have asked about making a donation to cover the cost of the all the coffee I'm drinking. I'm not doing this for any financial reward but it you feel inclined a donation to PayPal https://www.paypal.me/moggieuk will certainly be spent making your life with MMU more enjoyable.

Thank you!

Caveats & Possible problems / workarounds

I have only tested on a single screen. A 640x480 resolution BTT TFT5.0. It is possible that you might find layout problems on other (likely smaller) displays. Also, I have only tested in and optimized for horizonal orientation. I doubt it will be effective in vertical but I don't know of any Voron owners with vertically mounted panels.

JFYI the installer will alter or add the KlipperScreen entry in moonraker.conf:

[update_manager KlipperScreen]
type: git_repo
path: ~/KlipperScreen
origin: https://github.com/moggieuk/KlipperScreen-Happy-Hare-Edition.git
env: ~/.KlipperScreen-env/bin/python
requirements: scripts/KlipperScreen-requirements.txt
install_script: scripts/KlipperScreen-install.sh
managed_services: KlipperScreen

Font problems:

The CSS style only specifies a "Free Mono" font to be used (this is the same as original KlipperScreen") for all textual displays. I use the Unicode Box character set in that font to render the selector status, filament positions and TTG map. A couple of users have reported issues with this part of the display, either not appearing or not spaced correctly. E.g.

mmu_panel_printing

If this occurs the first thing to try is to run the following, then restart KlipperScreen:

sudo apt install fontconfig
fc-cache -f -v
sudo systemctl restart KlipperScreen

If this doesn't fix the problem I suggest installing a new font set.

[!NOTE]
A very useful way of listing the fonts you have installed on your system by family is with:

fc-list : family | sort | uniq

🔹 How to install JetBrains fonts... Download the JetBrains fonts from (www.jetbrains.com). Extract the zip. Copy all the `*.ttf` fonts (you will find them under fonts/ttf in the extracted zip) into `/usr/share/fonts/truetype` directory (you will have to sudo cp else you will likely get permission denied), then cache these fonts: cd ..to where you extracted font files../fonts/ttf sudo cp *.ttf /usr/share/fonts/truetype fc-cache -f -v Then finally update the font reference in the KlipperScreen css file: cd ~/KlipperScreen/styles Edit `base.css` file. Find the css entry for `.mmu_status`, then change the font-family to: font-family: JetBrains Mono; (it will by default be `font-family: Free Mono;`) Then restart KlipperScreen sudo systemctl restart KlipperScreen If you have to do this, please let me know the details about the operating system you are running on and how you installed KlipperScreen in the first place... if I can locate the source of the issue I might be able to workaround in the future.

Blank Screen after system update

It has come to my attention that sometimes a system (OS) update can break KlipperScreen. This is nothing to do with KlipperScreen but rather the installation of a slightly broken video driver fbturbo. Luckily the fix is simple. After OS upgrade run:

sudo apt purge xserver-xorg-video-fbturbo

Happy Hare version incompatibility

If you are upgrading and see a message like this when accessing the main MMU panel it is probably because of a version mismatch with Happy Hare on your printer. Follow the instructions in the popup!

A description of all the MMU panels can be found here...

The original Klipperscreen panels can be found here

All screen shots are taken with the "Colorize" theme (my preference because the buttons are more defined). The default is z-bolt and looks slightly different