jschuh / klipper-macros

A collection of useful macros for the Klipper 3D printer firmware
GNU General Public License v3.0
972 stars 172 forks source link

[BUG]Grinding with direct drive extruders on pause and finish #61

Closed l3ean5 closed 1 year ago

l3ean5 commented 1 year ago

I have three printers using these macros. I started with an ender 3 pro with an skr mini e3 v3 board, and I have no issues with that printer. I then installed them on a sovol sv03 (with same skr mainboard) and just today on an ender 3 v2 with a creality 4.2.7 board. The sovol comes stock with a direct drive, but on my ender 3 v2 I have a micro swiss ng installed. Both these printers are having the same issue where when I pause/cancel a print, where the printer will grind when parking the head. Same when a print finishes, but it only does it once. The ender 3 pro which has a bowden set up does not have this issue. Here's a video of what happens when a print is paused and canceled: https://www.youtube.com/shorts/m60P4iKn_JA

any help would be appreciated.
ender3v2 config: printer.cfg.zip sovol sv03 config: printer (1).cfg.zip ender 3 pro config (no issue with this printer): printer (2).cfg.zip

jschuh commented 1 year ago

Sounds like the extruder is skipping steps because it's being driven too fast. The first thing to check is that the current is correct for your extruder stepper. Assuming that's good, you may still need to set a lower max_extrude_only_velocity in the [extruder] config.

You could also lower the variable_load_speed value for the macros (default is 300 mm/m), but I wouldn't recommend that approach. You're really better off ensuring that the stepper can't be driven too fast in the first place.

l3ean5 commented 1 year ago

any idea why this only happens when the head gets parked?

jschuh commented 1 year ago

The pause/cancel/print_end all perform a few millimeters of retraction at load_speed, to minimize filament drooling.

l3ean5 commented 1 year ago

So, I don't think the current to the extruder stepper is the issue, since it's pretty much stock and wasn't an issue before installing klipper. But I have no clue what I'm doing so I could be completely wrong.

I lowered the max extrude only velocity to 10mm/s to exaggerate the effect hoping it wouldn't grind at all, but instead of the quick/rapid grind, now it does a slow grinding sound. Also, it allowed me to differentiate the three grinding sounds I hear; the first one is the extruder, the last two are the y (once when it parks to the back from pausing the print, and the other when it parks to the front from canceling the print).

What's confusing me about this is how the bowden setup printer works fine, but the two direct drive printers have the same issue with the extruder stepper and the y stepper. I followed the same instructions for all three, the one that works has the same mainboard as one that doesn't, and both that don't have different mainboards but are both direct drive. I'm curious what could be causing this issue.

jschuh commented 1 year ago

If an axis stepper buzzes at the end of parking it's usually because one of the axis limits (position_max, or on rare occasion position_min) is set beyond the physical travel of the axis—i.e. the stepper is running into the end of the axis because the config says the axis is longer than it is. The other possibility is that the printer dropped some number of steps over the course of a print and Klipper's internal state is just wrong (but that doesn't seem to be the case here).

Either way, all of this is just typical Klipper misconfiguration, and doesn't have anything to do with the macros. On a properly configured printer it's simply not possible for a macro to cause the stepper to drop steps or collide with an axis. So, it's a matter of troubleshooting your base Klipper config and fixing those issues.

One important thing to remember is that the generic printer configs in the Klipper repo can't account for all the tolerance variances with these cheaply made printers. E.g. the person who made the config may have had slightly more travel in a given axis than your machine; the steppers may be a different model requiring different current; or the whole mainboard may have been changed out in the same printer revision. So, a stock printer config will usually require some adjustment to make it work properly with your physical printer.

Anyway, good luck. I hope I've pointed you at the right config parameters to adjust.