GithubHelp home page GithubHelp logo

jjgraphix / pressureadvancesettingplugin Goto Github PK

View Code? Open in Web Editor NEW
40.0 6.0 2.0 88 KB

Ultimaker Cura plugin to adjust settings for Pressure Advance feature of Klipper firmware.

License: GNU Affero General Public License v3.0

Python 100.00%
ultimaker-cura klipper pressure-advance cura-plugin

pressureadvancesettingplugin's Introduction

PressureAdvanceSettingPlugin

Compatibility tested up to Cura version 5.0.0 (SDK 8.0.0)

My new KlipperSettingsPlugin includes Pressure Advance and a number of other Klipper features. Give it a shot!

Unofficial Cura plugin which adds the feature option "Enable Pressure Advance Control". When enabled, a number of feature-specific "Pressure Advance" subsettings are added to the Material category in the Custom print setup of Cura. Is NOT compatible with Marlin's Linear Advance.

Designed to work natively on any printer running Klipper with Pressure Advance enabled. Fully compatible with multiple extruders and Cura per-object settings. Does not currently support changing pressure advance smooth time.

This is a work in progress that has improved significantly thanks to user feedback. Due to all of the variables it's difficult to test so I appreciate input from those making use of it. It is based on the LinearAdvanceSettingPlugin by Cura guru fieldOfView which had compatibility issues with Klipper. Features have since expanded beyond the scope of the original plugin but it is still the backbone that makes this possible.

The plugin inserts the following command into Cura gcode as needed:

SET_PRESSURE_ADVANCE ADVANCE=<value> EXTRUDER=extruder<int>

Current Release Notes (v1.4.0)

  • Now compatible up to Cura version 5.
  • Pressure advance control is now easily enabled or disabled with a single check box.
  • Added feature setting support for individual mesh objects.
  • Fixed reliability issues when using multiple extruders.
  • Support infill and interface settings now grouped under a single support option.
  • Minor updates to setting definitions.
Bug Fix (v1.4.1)

  • Disabled per-mesh setting support and "prime tower" option for older Cura versions.
  • Fixed error when only extruder used is not number 0.

Multiple Extruders

To improve reliability, active tool head numbers are now set by detecting Tool Select commands in gcode (T0, T1, T2...). This is then translated into Klipper's standard naming convention of 'extruder', 'extruder1' and so on. I could not get this technique to fail in testing but custom extruder names or plugins/scripts that modify tool change behavior may not be compatible.

How to Use

The Enable Pressure Advance option is added to the bottom of the Material category and effectively enables/disables this plugin. When unchecked, no commands will be added to final gcode. This does NOT mean pressure advance is disabled. To command Klipper to disable pressure advance, enable control and set values to '0'.

When Enabled, most feature-specfic settings can be adjusted:

Extruder Settings

Check setting visibility if options are missing.

image

Per-Object Settings

Per-object settings available in Cura version 4.7 and newer.

image

Any defined subsettings will always override the primary factor value. Setting only the primary value in per-object settings will override all extruder settings for that mesh but will not affect non-mesh features (first layer, skirt/brim and supports).

If you're wondering who could possibly need to change all of these, you're probably right. Most users should save profiles with the primary value and leave the rest hidden. Advanced users will likely see a benefit from controlling features like walls. Reducing P.A. for infill, skin or support may reduce excessive extruder movement on machines requiring high values, especially at high acceleration. Per-object settings were primarily added for testing to make it easy to quickly print multiple test geometries using different setting combinations.

Installation

Not currently available in the Cura marketplace. I am working on creating a .curapackage for streamlined installation but this is currently beyond my knowledge. If anyone would like to assist me with it, please let me know.

If Plugin Already Installed

Simply replace the old files with those from the latest release. Make sure all files in the folder are replaced. Any extra files in your folder are likely temporary and can be left alone or deleted. If you have issues, remove the entire folder and install again as instructed below.

Install from Source Files

Uninstall LinearAdvanceSettingPlugin, if already added to Cura.

Download PressureAdvanceSettingPlugin source .zip file from Github.

Open Cura, click 'Help', 'Show Configuration Folder', then navigate to the "plugins" subfolder and unpack .zip file there. Rename folder to "PressureAdvanceSettingPlugin", removing suffix added by Github (e.g "-master").

Repeat process for subfolder of the same name.

More Info

For more information on Pressure Advance and how to tune it, see the Klipper documentation.

For quicker response to questions or feedback, contact me directly at [email protected].

pressureadvancesettingplugin's People

Contributors

jjgraphix 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

pressureadvancesettingplugin's Issues

Not working in Cura 4.13Beta

can't find any pressure advance command in g-code from Cura 4.13 so I created M900 macro, with K-factor from Marlin's linear advance plugin

Couple of questions regarding proper use of this plugin

Should the pressure_advance value be removed from Klipper's printer.cfg to use this, or does the value specified in Cura alway override this?

What happens if I leave the value at 0 in Cura, will Klipper still use the value in printer.cfg or will it be forced to '0'?

Thanks for creating this!

Pressure Advance command always sent / make it selectable

Hi.

your plugin is very helpful, thanks for the work you put into it!

I use Cura with different printers, some of them do not understand the SET_PRESSURE_ADVANCE line in the G-Code and stop printing.

I tried doing a search & replace postprocessing to delete the SET_PRESSURE_ADVANCE command, but it seems that the line gets inserted after the post processing. So no luck.

Would it be possible to add a setting where you can turn on/off the PA setting per "print setting" and thus the SET_PRESSURE_ADVANCE does not get inserted (and on Klipper printers the Pressure Advance setting of the printer.cfg is used)? This would also prevent existing profiles (where one forgets to update the PA settings) overwriting the printer.cfg setting ;-)

Or could you run the PlugIn before Post Processing is done? The Post Processing scripts are stored per printer, so it would work.

Thx a lot!

What is Pressure Advance Factor... why not pressure advance in mm....??

I know exactly what my pressure advance needs to be in mm...
what is the factor value multiplying from?

in my case, I am printing at 80mm/sec, and I know my pressure advance needs to be 0.50 for that speed based on a pressure advance test in orca slicer

Does that mean my pressure advance needs to be a factor of .00625?

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.