Skip to content

Commit

Permalink
HappyHare & other related dev (#371)
Browse files Browse the repository at this point in the history
* HappyHare MMU integration in Klippain

* Spoolman support

* Multiple MCU templates added or modified, especially MMU templates

* LED system rework to support the LED_effects plugin and rainbow barf, etc... ( #416 )

* TMC Autotune moonraker updater predefined config (add your motor defs to your overrides.cfg or mcu.cfg)

---------

Co-authored-by: Jan-Gerrit Drexhage <102791900+Surion79@users.noreply.github.com>
Co-authored-by: claudioguareschi <33001685+claudioguareschi@users.noreply.github.com>
Co-authored-by: Félix Boisselier <felix@fboisselier.fr>
Co-authored-by: ksummers92 <66363414+ksummers92@users.noreply.github.com>
  • Loading branch information
5 people authored Feb 1, 2024
1 parent 9cc1d91 commit c5b4bdc
Show file tree
Hide file tree
Showing 80 changed files with 1,935 additions and 601 deletions.
114 changes: 57 additions & 57 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,57 +1,57 @@
# Klippain

> Klippain - The pain-free recipe for (french)bread and butter Klipper configuration!
Klippain is a generic, modular, and highly customizable Klipper configuration for 3D printers. Designed for use on various machines such as Cartesian, CoreXY and CoreXZ, it has been reported working correctly on Voron V2.4, Voron Trident, Voron V0, Voron SwitchWire, TriZero, VZbot, Ender5, Ender3, Prusas, etc...

![Klippain](./docs/klippain.png)

Klippain is regularly updated with new features and merged PRs from users. You can reach me on the Voron Discord as **Frix_x#0161**.

Fun fact: "pain" \pɛ̃\ is the French word for bread, so there's no pain in this pain—only joy! Thanks to the French channel "honhonhonbaguette-FR" on the Voron Discord for the joke and name suggestion!


## Features

Klippain is designed for versatility. By selecting and enabling the desired hardware and software options, it can be used on a wide range of machines.

Custom features available out of the box include **adaptive bed mesh**, **custom printer calibration macros**, **automated input shaper workflows**, and **vibration measurement** macros and scripts, ... Refer to the [features documentation](./docs/features.md) for a detailed list and usage instructions.


## Installation

To install Klippain, first ensure you have already Klipper, Moonraker, and a WebUI installed on your printer. If not, use [KIAUH](https://github.com/th33xitus/kiauh).

Then, run the installation script using the following command over SSH. This script will backup your old configuration, download this GitHub repository to your RaspberryPi home directory, and set up Klippain in `~/printer_data/config`. You will also be prompted to select and install MCU board_pins templates. This is recommended for faster `mcu.cfg` setup, but you can do it manually later if you prefer.

```bash
wget -O - https://raw.githubusercontent.com/Frix-x/klippain/main/install.sh | bash
```

Finally, Klippain requires a few simple steps to configure and customize it for your printer: please follow the [configuration guide](./docs/configuration.md).

> **Warning**
>
> General rule to keep the auto-update feature working: **never modify Klippain files directly**, but instead add overrides as per the documentation! To proceed, you can modify all the pre-installed templates in your config root folder (`printer.cfg`, `mcu.cfg`, `variables.cfg` and `overrides.cfg`) as they will be preserved on update.

## Removing Klippain

In case Klippain doesn't suit your needs or if you installed it by mistake, you can easily remove Klippain and revert to your previous configuration by using the automated uninstall script. During the uninstallation process, the script will remove all specific Klippain files and configurations. Additionally, you will be given an option to restore your previously backed-up configuration, allowing your printer to return to its last working state (from before Klippain was installed).

To run the uninstall script, execute the following command over SSH:

```bash
wget -O - https://raw.githubusercontent.com/Frix-x/klippain/main/uninstall.sh | bash
```

> **Note**
>
> All backups are preserved during the uninstallation process. So, you can easily revert back at any time if you wish to :stuck_out_tongue_winking_eye:

## Support the Project

I strive to accommodate user requests that align with this configuration's design. Feel free to open an issue or a PR for specific hardware device support or new features.

Alternatively, consider buying me a coffee or contributing to new hardware purchases to support my work!
# Klippain

> Klippain - The pain-free recipe for (french)bread and butter Klipper configuration!
Klippain is a generic, modular, and highly customizable Klipper configuration for 3D printers. Designed for use on various machines such as Cartesian, CoreXY and CoreXZ, it has been reported working correctly on Voron V2.4, Voron Trident, Voron V0, Voron SwitchWire, TriZero, VZbot, Ender5, Ender3, Prusas, etc...

![Klippain](./docs/klippain.png)

Klippain is regularly updated with new features and merged PRs from users. You can reach me on the Voron Discord as **Frix_x#0161**.

Fun fact: "pain" \pɛ̃\ is the French word for bread, so there's no pain in this pain—only joy! Thanks to the French channel "honhonhonbaguette-FR" on the Voron Discord for the joke and name suggestion!


## Features

Klippain is designed for versatility. By selecting and enabling the desired hardware and software options, it can be used on a wide range of machines.

Custom features available out of the box include a full featured set of standard macros, **adaptive bed mesh**, **custom printer calibrations**, **automated input shaper workflows**, and **vibration measurement** macros and scripts, ... Refer to the [features documentation](./docs/features.md) for a detailed list and usage instructions.


## Installation

To install Klippain, first ensure you have already Klipper, Moonraker, and a WebUI installed on your printer. If not, you can use [KIAUH](https://github.com/th33xitus/kiauh).

Then, run the installation script using the following command over SSH. This script will backup your old configuration, download this GitHub repository to your RaspberryPi home directory, and set up Klippain in `~/printer_data/config`. You will also be prompted to select and install MCU board_pins templates. This is recommended for faster `mcu.cfg` setup, but you can do it manually later if you prefer.

```bash
wget -O - https://raw.githubusercontent.com/Frix-x/klippain/main/install.sh | bash
```

Finally, Klippain requires a few simple steps to configure and customize it for your printer: please follow the [configuration guide](./docs/configuration.md).

> **Warning**:
>
> General rule to keep the auto-update feature working: **never modify Klippain files directly**, but instead add overrides as per [the documentation](./docs/overrides.md)! To proceed, you can modify all the pre-installed templates in your config root folder (`printer.cfg`, `mcu.cfg`, `variables.cfg` and `overrides.cfg`) as they will be preserved on update.

## Removing Klippain

In case Klippain doesn't suit your needs or if you installed it by mistake, you can easily remove Klippain and revert to your previous configuration by using the automated uninstall script. During the uninstallation process, the script will remove all specific Klippain files and configurations. Additionally, you will be given an option to restore your previously backed-up configuration, allowing your printer to return to its last working state (from before Klippain was installed).

To run the uninstall script, execute the following command over SSH:

```bash
wget -O - https://raw.githubusercontent.com/Frix-x/klippain/main/uninstall.sh | bash
```

> **Note**:
>
> All backups are preserved during the uninstallation process. So, you can easily revert back at any time if you wish to :stuck_out_tongue_winking_eye:

## Support the Project

I strive to accommodate user requests that align with this configuration's design. Feel free to open an issue or a PR for specific hardware device support or new features.

Alternatively, consider buying me a coffee or contributing to new hardware purchases to support my work!
24 changes: 4 additions & 20 deletions config/hardware/ercf.cfg
Original file line number Diff line number Diff line change
@@ -1,26 +1,10 @@
## DEPRECATED!
## Please use the mmu.cfg file instead


## Enraged Rabbit Carrot Feeder config file
## Designed to be used with Ercf Software V3 "Happy Hare" (HH) by moggieuk: https://github.com/moggieuk/ERCF-Software-V3

[gcode_macro _USER_VARIABLES]
variable_klippain_ercf_enabled: True
gcode:

[extruder]
max_extrude_only_distance: 200
max_extrude_cross_section: 50.0

# Custom macro to raise an error during the START_PRINT and stop it in case of an ERCF error
[gcode_macro _ERCF_ERROR_CHECK]
gcode:
{% set verbose = printer["gcode_macro _USER_VARIABLES"].verbose %}
{% set INITIAL_TOOL = printer["gcode_macro START_PRINT"].initial_tool %}

{% if printer.ercf.enabled %}
{% if printer.ercf.tool|int != INITIAL_TOOL or printer.ercf.filament != "Loaded" %}
{action_raise_error("ERCF error while loading filament! Please check and restart the print")}
{% else %}
{% if verbose %}
RESPOND MSG="T{INITIAL_TOOL} ready"
{% endif %}
{% endif %}
{% endif %}
56 changes: 56 additions & 0 deletions config/hardware/lights/config_colors.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
## This file contain the color definitions used for the different LED states
# You can override it if needed to define your own colors. These defaults
# should be a good starting point

[gcode_macro _LEDS_COLORS_DEFINITION]
variable_colors: {
'logo': {
'busy': {'r': 0.4, 'g': 0.0, 'b': 0.0, 'w': 0.0},
'cleaning': {'r': 0.0, 'g': 0.02, 'b': 0.5, 'w': 0.0},
'calibrating_z': {'r': 0.8, 'g': 0., 'b': 0.35, 'w': 0.0},
'heating': {'r': 0.3, 'g': 0.18, 'b': 0.0, 'w': 0.0},
'homing': {'r': 0.0, 'g': 0.6, 'b': 0.2, 'w': 0.0},
'leveling': {'r': 0.5, 'g': 0.1, 'b': 0.4, 'w': 0.0},
'meshing': {'r': 0.2, 'g': 1.0, 'b': 0.0, 'w': 0.0},
'on': {'r': 0.8, 'g': 0.8, 'b': 0.8, 'w':1.0},
'off': {'r': 0.0, 'g': 0.0, 'b': 0.0, 'w': 0.0},
'printing': {'r': 1.0, 'g': 0.0, 'b': 0.0, 'w': 0.0},
'done_printing': {'r': 0.0, 'g': 1.0, 'b': 0.0, 'w': 0.0},
'standby': {'r': 0.01, 'g': 0.01, 'b': 0.01, 'w': 0.1},
'error': {'r': 0.6, 'g': 0.0, 'b': 0.0, 'w':0.0},
},
'nozzle': {
'heating': {'r': 0.8, 'g': 0.35, 'b': 0.0, 'w':0.0},
'off': {'r': 0.0, 'g': 0.0, 'b': 0.0, 'w': 0.0},
'on': {'r': 0.8, 'g': 0.8, 'b': 0.8, 'w':1.0},
'standby': {'r': 0.6, 'g': 0.0, 'b': 0.0, 'w':0.0},
'done_printing': {'r': 1.0, 'g': 1.0, 'b': 0.0, 'w': 1.0},
'error': {'r': 0.6, 'g': 0.0, 'b': 0.0, 'w':0.0},
},
'caselight': {
'busy': {'r': 0.4, 'g': 0.0, 'b': 0.0, 'w': 0.0},
'cleaning': {'r': 0.0, 'g': 0.02, 'b': 0.5, 'w': 0.0},
'calibrating_z': {'r': 0.8, 'g': 0., 'b': 0.35, 'w': 0.0},
'heating': {'r': 0.3, 'g': 0.18, 'b': 0.0, 'w': 0.0},
'homing': {'r': 0.0, 'g': 0.6, 'b': 0.2, 'w': 0.0},
'leveling': {'r': 0.5, 'g': 0.1, 'b': 0.4, 'w': 0.0},
'meshing': {'r': 0.2, 'g': 1.0, 'b': 0.0, 'w': 0.0},
'on': {'r': 0.8, 'g': 0.8, 'b': 0.8, 'w':1.0},
'off': {'r': 0.0, 'g': 0.0, 'b': 0.0, 'w': 0.0},
'printing': {'r': 1.0, 'g': 0.0, 'b': 0.0, 'w': 0.0},
'done_printing': {'r': 0.0, 'g': 1.0, 'b': 0.0, 'w': 0.0},
'standby': {'r': 0.01, 'g': 0.01, 'b': 0.01, 'w': 0.1},
'error': {'r': 0.6, 'g': 0.0, 'b': 0.0, 'w':0.0},
},
'minidisplay': {
'on': {'r': 0.0, 'g': 0.2, 'b': 0.4, 'w':1.0},
'off': {'r': 0.0, 'g': 0.0, 'b': 0.0, 'w': 0.0},
'error': {'r': 0.4, 'g': 0.0, 'b': 0.0, 'w':0.0},
},
'thermal': {
'hot': {'r': 1.0, 'g': 0.0, 'b': 0.0, 'w': 0.0},
'cold': {'r': 0.3, 'g': 0.0, 'b': 0.3, 'w': 0.0}
}
}

gcode:
1 change: 1 addition & 0 deletions config/hardware/lights/fcob_white.cfg
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# White lights using 24V (example: white fcob)

[gcode_macro _USER_VARIABLES]
variable_light_enabled: True
variable_light_pin_name: "caselight"
Expand Down
2 changes: 2 additions & 0 deletions config/hardware/lights/neopixel_caselight.cfg
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
# Neopixel leds used as general printer lights

[gcode_macro _USER_VARIABLES]
variable_status_leds_caselight_enabled = True
variable_status_leds_caselight_led_name: "caselight"
gcode:

# Also include directly the leds control macros from here
[include ../../../macros/hardware_functions/status_leds.cfg]
[include config_colors.cfg]


[neopixel caselight]
Expand Down
Loading

0 comments on commit c5b4bdc

Please sign in to comment.