Coder Social home page Coder Social logo

fluidd-config's Introduction

Fluidd base configuration for Klipper

Disclaimer

The contents of this README.md file and the client.cfg file are part of the Mainsail Crew's own mainsail_config.

These have been prepared in collaboration between Mainsail and Fluidd maintainers and are used here with the knowledge and agreement of both teams.

Instructions

This is the new location of the macros and settings provided by the Fluidd team. The intent is to enable all users to setup important macros and settings needed by Fluidd.

Important features

  • Park position depending on printer kinematics or user preference
    • Round beds 0:Ymax
    • Square beds Xmax:Ymax
    • User Position
    • User can specify an differnt position for PAUSE and CANCEL_PRINT
  • PAUSE now supports option input parameters [X,Y,Z_MIN]
    • That is helpful to direct the use of the PAUSE macro in your M600 (see the fluidd.cfg for an example)
  • Customization via a single macro that contains all allowed variables
  • Additional custom variables for stuff like extra retract at CANCEL_PRINT.
  • "Pause at next Layer" and "Pause at Layer #"

Why have we decided to use a dedicated repo?

There are 2 main reasons for that decision

  1. The current moonraker changes have shown that we need to react very fast on changes.
  2. We regularly improve the macros and that is the simplest way that the installed base can benefit from it.

How to install

We currently do not provide an installer and we might never do. But doing it is simple copy and paste a few commands in an ssh terminal. The instructions assume that you have an up to data and working moonraker installation. If not start with updating your moonraker first.

cd ~
git clone https://github.com/fluidd-core/fluidd-config.git
ln -sf ~/fluidd-config/fluidd.cfg ~/printer_data/config/fluidd.cfg

Add updater section

You need to update your moonraker.conf to alway get the latest version.

Either open your moonraker.conf and add

[update_manager fluidd-config]
type: git_repo
primary_branch: master
path: ~/fluidd-config
origin: https://github.com/fluidd-core/fluidd-config.git
managed_services: klipper

below the fluidd updater section.

You can also link and include the prepared file to your moonraker.conf. ssh in your PI and

ln -sf ~/fluidd-config/fluidd-moonraker-update.conf ~/printer_data/config/fluidd-moonraker-update.conf

then open your moonraker.conf and add

[include fluidd-moonraker-update.conf]

below the fluidd updater section.

How to setup

The setup process is still the same, simply add

[include fluidd.cfg]

to your printer.cfg file. Be aware the file will show up as read only. This was intended by use.

How to customize your settings

Different virtual sd card location or a different on_error_gcode

for that simply copy the [virtual_sdcard] block from the fluidd.cfg and simple place it below your include. The result should look similar to:

[include fluidd.cfg]

[virtual_sdcard]
path: "my new location"
on_error_gcode: CANCEL_PRINT
Customize macros

We provided a variable setup that let you customize the provided PAUSE, RESUME and CANCEL_PRINT macros. If you need e.g., your own park position simple copy the complete _CLIENT_VARIABLE macro from the fluidd.cfg and place it below your fluidd include. After that uncomment the needed variable and fill them with your values.

The result for a custom park position would look like:

[include fluidd.cfg]

[gcode_macro _CLIENT_VARIABLE]
variable_use_custom_pos  : True  ; use custom park coordinates for x,y [True/False] 
variable_custom_park_x   : 150.0 ; custom x position; value must be within your defined min and max of X
variable_custom_park_y   : 10.0  ; custom y position; value must be within your defined min and max of Y
#variable_custom_park_dz  : 2.0   ; custom dz value; the value in mm to lift the nozzle when move to park position 
#variable_retract         : 1.0   ; the value to retract while PAUSE
#variable_cancel_retract  : 5.0   ; the value to retract while CANCEL_PRINT
#variable_speed_retract   : 35.0  ; retract speed in mm/s
#variable_unretract       : 1.0   ; the value to unretract while RESUME
#variable_speed_unretract : 35.0  ; unretract speed in mm/s
#variable_speed_hop       : 15.0  ; z move speed in mm/s
#variable_speed_move      : 100.0 ; move speed in mm/s
#variable_park_at_cancel  : False ; allow to move the toolhead to park while execute CANCEL_PRINT [True,False]
## !!! Caution [firmware_retraction] must be defined in the printer.cfg if you set use_fw_retract: True !!!
#variable_use_fw_retract  : False ; use fw_retraction instead of the manual version [True/False] 
gcode:

You can also uncomment all variables if you like. The values are the same as the user default.

Different park position

The following descrips how to setup a custom position for CANCEL_PRINT and PAUSE. As an example we asume the bed has asize of (300x300mm) and we want:

  • Position for CANCEL_PRINT: back right (295x295 mm)
  • Position for PAUSE : front left (10x10 mm)

First copy the complete _CLIENT_VARIABLE macro from the fluidd.cfg and place it below your fluidd include. After that uncomment the needed variables or all. The values are the same as the default. After that we need to enter the needed values. See the result below:

[include fluidd.cfg]

[gcode_macro _CLIENT_VARIABLE]
variable_use_custom_pos   : True  ; use custom park coordinates for x,y [True/False]
variable_custom_park_x    : 10.0  ; custom x position; value must be within your defined min and max of X
variable_custom_park_y    : 10.0  ; custom y position; value must be within your defined min and max of Y
variable_custom_park_dz   : 2.0   ; custom dz value; the value in mm to lift the nozzle when move to park position
variable_retract          : 1.0   ; the value to retract while PAUSE
variable_cancel_retract   : 5.0   ; the value to retract while CANCEL_PRINT
variable_speed_retract    : 35.0  ; retract speed in mm/s
variable_unretract        : 1.0   ; the value to unretract while RESUME
variable_speed_unretract  : 35.0  ; unretract speed in mm/s
variable_speed_hop        : 15.0  ; z move speed in mm/s
variable_speed_move       : 100.0 ; move speed in mm/s
variable_park_at_cancel   : True  ; allow to move the toolhead to park while execute CANCEL_PRINT [True/False]
variable_park_at_cancel_x : 295.0 ; different park position during CANCEL_PRINT [None/Position as Float]; park_at_cancel must be True
variable_park_at_cancel_y : 295.0 ; different park position during CANCEL_PRINT [None/Position as Float]; park_at_cancel must be True
# !!! Caution [firmware_retraction] must be defined in the printer.cfg if you set use_fw_retract: True !!!
variable_use_fw_retract  : False ; use fw_retraction instead of the manual version [True/False]
gcode:

This way insures that older configs still work as before.

New Feature: "Pause at next Layer" and "Pause at Layer #"

This is based on a idea of Pedro Lamas. It let you add a Pause at the next layer change or if you reach a specific layer number.

First you need to prepare your slicer as described in Klipper3d/klipper#5726

If you done that you can either use

SET_PAUSE_NEXT_LAYER [ENABLE=1] [MACRO=<name>]

to get execute the given GCODE macro at the next layer change. The MACRO is normally either PAUSE (default) or M600 (if you have specified it in your printer.cfg).

Or use

SET_PAUSE_AT_LAYER [ENABLE=1] [LAYER=<number>] [MACRO=<name>]

to get execute the given GCODE macro at the given LAYER number change. The MACRO is normally either PAUSE (default) or M600 (if you have specified it in your printer.cfg).

To remove the "Pause at next Layer" simple send

SET_PAUSE_AT_LAYER ENABLE=0

To remove the "Pause at Layer" simple send

SET_PAUSE_AT_LAYER [ENABLE=0]

Both will clear after execution.

New Feature: Save/Restore extruder temperature on pause/resume

It is posible to switch off the extruder after entering PAUSE. RESUME will heatup the extruder if needed.

That is helpful if you e.g. do a pause because of an runout and are not there. Be aware that doing that might have a negative effect on your print quality. Be aware the bed must be heated all the time!

The following example shows you how to modify your [idle_timeout] to switch of the extruder in case the idle timeout kicks in.

[idle_timeout]
gcode:
  {% if printer.pause_resume.is_paused %}
    {action_respond_info("Idle Timeout: Extruder powered down")}
    M104 S0   ; Set Hot-end to 0C (off)
  {% else %}
    {action_respond_info("Idle Timeout: Stepper and Heater powered down")}
    TURN_OFF_HEATERS
    M84
{% endif %}

fluidd-config's People

Contributors

pedrolamas avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.