Skip to content

Kalico additions

Changes to Klipper defaults

  • [force_move] is enabled by default. Use [force_move] enable_force_move: False to disable it
  • [respond] is enabled by default. Use [respond] enable_respond: False to disable it
  • [exclude_object] is enabled by default. Use [exclude_object] enable_exclude_object: False to disable it

Additional configuration options

  • [mcu] is_non_critical enables marking of an mcu as optional - it can be freely disconnected and connected at will. (useful for MCU-based accelerometer boards, mcu-based probes that shut down in hot chambers, etc...)
  • [danger_options] - New configuration options to adjust Kalico values that were previously hidden
  • Additional kinematics versions enabled per-axis acceleration, see limited_cartesian and limited_corexy
  • --rotate-log-at-restart can be added to your Kalico start script or service to force log rotation every restart.
  • [virtual_sdcard] with_subdirs enables scanning of subdirectories for .gcode files, for the menu and M20/M23 commands
  • [firmware_retraction] z_hop_height adds an automatic z hop when using firmware retraction
  • [constants] and ${constants.value} allow re-using values in your configuration
  • [include] variables let one included file be reused with different values, e.g. one board config for several toolhead MCUs

Enhanced behavior

  • SET_NOZZLE_DIAMETER changes an extruder's nozzle diameter (and optionally its max extrusion cross section) at runtime, e.g. for toolheads with different nozzles or a high-flow purge line.
  • canbus_query.py now responds with all Kalico devices, even after they've been assigned a node_id.
  • Input shaper calibration now warns about active fans that may affect measurement accuracy.
  • BED_MESH_CHECK validates the current bed mesh against specified criteria, allowing you to check maximum deviation and slope between adjacent points before printing.
  • [resonance_tester] now supports multiple accelerometer chips via the new accel_chips parameter, allowing data from multiple accelerometers to be combined for more accurate input shaper calibration.

New Kalico Modules

  • gcode_shell_command - Execute linux commands and scripts from within Kalico
  • indx - Support for the Bondtech INDX toolboard and its inductive nozzle heater

Sensorless Homing

Probes and Probing

Heaters, Fans, and PID changes

  • Model Predictive Control is an advanced temperature control method that offers an alternative to traditional PID control.
  • Velocity PID can be more accurate than positional PID, but is more susceptible to noisy sensors and may require larger smoothing times
  • PID_PROFILE [LOAD/SAVE] allows you to calibrate and save PID profiles at multiple temperatures and fan speeds, and later restore them. With some clever macros, automatic per-material pid tuning is within reach!
  • SET_HEATER_PID HEATER= KP= KI= KD= can update your PID parameters without a reload.
  • HEATER_INTERRUPT will interrupt a TEMPERATURE_WAIT.
  • ADC out of range errors now include which heater, and additional information to assist in troubleshooting
  • [temperature_fan] control: curve lets you set a fan curve instead of linear control
  • [temperature_fan] reverse: True will let you control a fan in reverse to temperature control. The lower the temperature, the higher the fan runs.
  • Fans now normalize PWM power within min_power and max_power, so setting a fan to 10% will get you 10% fan speed within your configured min/max range.
  • Dual-loop PID control to accurately manage the bed's temperature while limiting heater power to prevent exceeding a maximum temperature.

TMC Drivers

Macros

  • The jinja do extension has been enabled. You can now call functions in your macros without resorting to dirty hacks: {% do array.append(5) %}
  • The python math library is available to macros. {math.sin(math.pi * variable)} and more!
  • New RELOAD_GCODE_MACROS G-Code command to reload [gcode_macro] templates without requiring a restart.
  • G-Code Macros can be written in Python. Read more here
    • Macros may also be loaded from other files, using !!include path/to/file.py
  • Inside a macro you can use RETURN to end macro execution early without raising an error.

Plugins

Extend your Kalico installation with custom plugins.

Your python plugins can now extend klippy/extras adding new modules to Kalico without causing updates to fail due to a "dirty" git tree.

Enable [danger_options] allow_plugin_override: True to override existing extras.