Giter Club home page Giter Club logo

zippy-klipper_config's Introduction

Rootiest Zippy Klipper Config

GitHub Super-Linter

header

This is my klipper_config that uses custom gcode macros extensively to enhance the 3D printing experience.

It was originally envisioned to allow data to be communicated from the Slicer to Klipper and then stored in variables for use by other macros during/before/after the print but I would like eventually for it to be a much more extensive project that truly takes advantage of what gcode macros can do!

There is now quite a large selection of macros!

From filament changes to maintenance positioning to heat soaks and print-area-meshing. There's something for everyone! And I've done my best to make the user experience as clean as possible.

Additionally, this config now utilizes:

  • Multiple temperature/humidity/environment sensors
  • Monitors chamber, ambient, and spool temp/humidity and VOC levels
  • WLED-controlled addressable LED strips
  • Directly-controlled addressable LEDs
  • KlipperScreen on a 7-inch HDMI touchscreen
  • Two SSH1306 OLED displays with custom display data
  • A BTT Mini12864 display hosted by a custom STM32 controller board for easy usb connectivity
  • Rotary encoder and several physical buttons
  • Multi-pitch beeper
  • Smart plug for printer power
  • Smart plug for Filter power
  • Nevermore Carbon Filter
  • A controllable fan-enhanced desiccant box
  • MAX31865/PT-1000 extruder thermistor
  • Several controller boards: SKR-Pico, Pi Host, EBB42 CANbus Toolhead, Pico, and two QTPY-rp2040
  • All of the toolhead components have been moved to the CANbus board
  • Speed-controlled cooling fans for Nevermore, bed fans, and part-cooling
  • Temperature-controlled fans for hotend, exhaust, SKR-Pico, and Pi host.
  • Smart filament sensor with automated filament change procedure
  • Two ADXL accelerometers for resonance tuning and input shaping
  • An extensive collection of custom macros

Guides

If you are looking for guides on calibrating or setting up a new Klipper printer, those are found here:

Warnings

This is still (and likely always will be) very, very much a work in progress

I'm working on, breaking, changing, and using this daily! I strongly suggest nobody use this full config for anything more than reference/inspiration at this time.

It is likely to fail/crash on your system in its current state!

Many of these macros work as great examples of using scripting and other Klipper features to perform different tasks.

Many may even work on your printer as-is.

But a lot of them won't.

So consider this more of a selection of examples that will likely need to be tailored to fit your unique system. Use it as a resource to see how you could do something, not necessarily how you should. Feel free to message me with questions if you have them.

Notes

The files in the extras folder are not used

This may be just because they conflict with other existing macros I already use, or they are there as samples/examples. But they aren't included on my personal system.

The files in the machine and macros folders are included in the config

The machine folder is included by the printer.cfg file and the rest are included through zippy.cfg

The printer.cfg file is not synced in order to preserve automatic config overrides

Its only contents (aside from automated overrides) are:

# Rootiest Zippy Klipper config

# Machine  directory
[include machine/*.cfg]

This way we can have full access to modify any parts of the config without risking overwriting the automated overrides.

The zippy.cfg file contains the includes for the macros directory as well as some other files used by extensions. This allows the paths of those files to be preserved to maintain compatibility with extension updates.

A snapshot of the printer.cfg file is available to see here:

printer.cfg

The following files are not synced for privacy and security purposes

  • mooncord.json
  • telegram.conf
  • telegram_conf.conf
  • moonraker_secrets.ini

Sanitized examples can be seen here:

Sanitized Samples

Automated backups are also ignored

This helps to prevent accidental syncing of your private passwords or tokens as well as reducing clutter from backup files.

Acknowledgments

Many parts of this project were borrowed quite heavily from other people's work.

I am compiling a list of acknowledgements to include in this README before posting publicly.


Klipper

https://www.klipper3d.org/

Klipper is a 3D-Printer firmware. It combines the power of a general purpose computer with one or more micro-controllers. See the features document for more information on why you should use Klipper.

To begin using Klipper start by installing it.

Klipper is Free Software. See the license or read the documentation.

Contact

Rootiest on Discord (Voron and Klipper servers)

Donate to support my work:

ko-fi

Join the Rootiest Discord server for information and support for my projects.

Shows a snake consuming the squares from the rootiest contributions graph.

zippy-klipper_config's People

Contributors

megarushing avatar orther avatar rootiest avatar sammcj avatar shyndman avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

zippy-klipper_config's Issues

canbus on skr pico error

hi there, thanks for the write up. i followed all the insructions and i get the following error:

sudo ip link set up can0 type can bitrate 500000

output : Cannot find device "can0"

any ideas what i did wrong?

missing macro

SET_TEMPERATURE_FAN_TARGET macro is used but never defined as a macro anywhere. Might be in the missing printer.cfg

[BUG]

When attempting to run the mostly stock command CHANGE_TOOL TOOL=1(or 2) I get this error
sh: 0: cannot open ~/printer_data/config/tool_swap.sh: No such file

I changed the directory to /home/pi/ in place of ~/ and I get this error:

/home/pi/printer_data/config/tool_swap.sh: 37: [[: not found
Error: Invalid input. Integer required.

So it looks like with /home/pi/ it can make it to the file but the tool_swap.sh code rejects the 1 and 2 stating they are not integers.

Commenting out the integer check in tool_swap.sh results in printer.cfg being erased.

I followed the instructions here:
https://github.com/rootiest/zippy-klipper_config/tree/master/extras/tool_swap
and I have made no adjustments to the code in swap_tools.cfg and tool_swap.sh but did add my tool configs to the tool1.cfg and tool2.cfg to prevent klipper errors.
CHANGE_TOOL Command and results
CHANGE_TOOL TOOL=2 Command and results
swap_tools cfg
Printer cfg

[FEATURE]

Is your feature request related to a problem?Add [smart_effector] support to get_probe_limits macro
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
I use the [smart_effector] in my printer.cfg, when running this it errored out on get_probe_limits

10:40:01 $ GET_PROBE_LIMITS
10:40:01 echo: Failed to detect probe in configfile

So I added the following in the macro.

{% elif config["smart_effector"] %}
# smart_effector probe section found
{% set probe = config["smart_effector"] %}
{% set has_probe = True %}

And it then functioned properly.

10:41:46 $ GET_PROBE_LIMITS
10:41:46 echo: Configured Probe X-Offset -5.00
10:41:46 echo: Configured Probe Y-Offset 0.00
10:41:46 echo: Configured Probe Z-Offset -0.1
10:41:46 echo: Minimum PROBE position X=-9.0 Y=-5.0
10:41:46 echo: Maximum PROBE position X=228.125 Y=212.125

Describe the solution you'd like
A clear and concise description of what you want to happen.
I am not familiar with adding this via pulls or anything, but found it useful. And wanted to let you know somehow or another.
So forgive if would be better another meathod.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
I can use the [probe] definition on my system, but prefer [smart_effector] as it lets me set probe move acceleration
It would be handy to see other output related to the [smart_effector] features, but not required for the fix.

Additional context
Add any other context or screenshots about the feature request here.

Checklist

  • [x ] I have included a clear description of the feature
  • [x ] I have included a description of the solution
  • [x ] I have included any alternative solutions or features I've considered
  • [x ] I have included any relevant screenshots or videos

Include [beacon] in GET_PROBE_LIMITS macro

With the recent launch of the Beacon inductive sensor, their documentation requires the removal of the [probe] section and the usage of [beacon] instead.

Can we update the GET_PROBE_LIMITS macro to also include [beacon]? Currently, it errors out with the message "No probe or bltouch sections found".

Documentation: https://docs.beacon3d.com/quickstart/

[QUESTION] Error when COLOR_CHANGE Macro is triggered

Hi Rootiest,

Thank you for the awesome Macro and write up.

Quick question for you, when the COLOR_CHANGE macro is triggered on my setup I get the following error twice in my console.

Error on 'SET_IDLE_TIMEOUT TIMEOUT=': unable to parse

Have you seen this before?

Thank you for the help and time.

[QUESTION]How to use mcu_timing

I need to adjust mcu_timing because I keep getting communication errors when running QGL on my voron 2.4 350mm. I have no other can bus issues I could find but this is becoming more of an issue. Google led me here. I just can't figure out how to install and make this script work.

Version of the Smart M600 macro as a nozzle change macro?

I’m not yet that proficient at writing macros with lots of variables passed, but the thought crossed my mind that the way your great smart M600 raises z up high and parks the tool head to hold temp.. with a few variable adjustments could be adapted to a great nozzle change macro..

  1. heat hotend if not at set temp for nozzle change
  2. retract/unload material if present
  3. raise z to max, x to middle, send y bed back to limit
  4. hold temp
  5. resume after pause after nozzle changed
  6. load new filament
  7. end nozzle change

i’m going to try and figure it out but it’ll take me some time…. putting the idea out there in the event there’s interest from others.

cheers.

TEST_RESONANCES lead to "Timer too close" error

So i have been running a few test prints on my v0 using SKR Pico as CAN bridge, an EBB36 and a Pi3b. Everything is reliable so far, but the resonance testing. The test starts fine and works until ca. 100Hz and than crashes klipper with a "Timer too close" Error on the mcu (SKR Pico), not the pi nor the ebb36. Did you experience something similar?
I am wondering if during resonance testing maybe the SKR Pico's 3.3V supply gets overloaded by the CAN adapter, which i supply from that.

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.