New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
PAUSE or FILAMENT_CHANGE implementation (M600) #149
Comments
On Mon, Jan 29, 2018 at 02:16:42AM -0800, LemarinelNet wrote:
Hi,
I was about to enable filament change on my marlin firmware, and just discovered klipper firmware !
I installed it this morning, I now have to test it !
So I was wondering if the firmware does implement M600 and it seems it's not yet there.
I'm willing to help implementing it: I know python, GCODE, but need some guidelines to help me decide correctly where it has to be setup.
So the goal is to have a M600 gcode working as in Marlin : you can call M600 without parameters , or with some parameters. It will stop extruding, move the head to a "parking position", and wait for the user to change the filament.
Once the filament has been changed, the user has to push a button to resume the print. Since we don't have a physical UI, we could wait for a special GCODE to resume the print (surely a MXXX code !)
What about this ?
I'd recommend using the existing M0 logic (which is implemented in
OctoPrint and likely others). It will cause OctoPrint to pause the
print, allow the user to make a modification, and then allow the user
to resume the print via the OctoPrint continue button.
We could add an alias capability to Klipper so that a single command
(eg, "PARK_MY_PRINT_HEAD") will run a series of g-code commands. That
may help reduce the complexity of specifying long g-code parking
commands within the slicer.
…-Kevin
|
I'm half ok with you ;) In facts, I've not yet tried M0 in octoprint... |
On Tue, Jan 30, 2018 at 04:11:00PM +0000, LemarinelNet wrote:
I'm half ok with you ;)
the problem with the "PARK_MY_PRINT_HEAD" macro, is that we must keep a track of where the head comes from, to go back to this particular position, else we will miss a segment !
Ah, okay. I'm not sure I fully understand how you use M600. How does
the command get into the g-code stream? Can you describe a real world
example where you would use the functionality and what the steps would
be?
…-Kevin
|
The M600 GCode is used to change filament while printing, either because of end-of-filament, or because the user want to change color.
This is in facts an advanced pause gcode, that moves the head away the print so it is not damaged while waiting for the filament change, and then set it back to its original position ! |
If you pause, you can jog the axis around, Octoprint paus saves position, so when you resume regardless of what moves you made it will resume in the correct position (including z axis). But I would agree on implementing it for one reason which is: extrusion pressure. Having to do it manually would be bit difficult. M600 extrudes a bit while moving to the resume location, else you will have gaps on ~0.3mm layer heights etc. |
The function can be useful if there are any problems with the filament and you need to quickly replace or fix the problem. |
I'm going to close this issue as it doesn't appear anyone is actively working on developing it. |
Another vote for the M600 implementation. |
that would be great 👍 |
+1 vote for adding pause management for filament replacement :-) |
Another vote, that would be great. So we can "easily" change colors while printing... Thanks for the great work. |
Hi guys, I´m looking that this issue is already close but without some solve. I made some research and find the way how to run multicolor prints very similar way like M600 but without M600. First step is installing of Octorpint plug-in Multi Colors: https://plugins.octoprint.org/plugins/multi_colors/ Next step is make you own gcode for filament change with using M0. This is my tested code for 750mm long bowden extruder setup and contain: retraction, swipe nozzle, move nozzle away, unload filament, beep, pause, load filament, clean nozzle, retraction, back to position, de-retraction, continuing: ; FILAMENT CHANGE Next is use the code in Multi Colors plug-in setup. Find line (regular expression) set on - G1 Z{layer}.*? Now you are able to make gcode multicolor modification by setting layer or layers heights by one click. Whole this setup running perfect only one think is important to keep on you mind. Moving of the nozzle to change position is fix and in some cases it can make some troubles. |
When insert Pause command to the gcode Octoprint recognize command, pause the print and wait for resume or cancel. If you send Pause command directly to the Klipper nothings happens. Klipper don't know this command. From these reason is not usable macro function in Klipper for this kind of operations. So here is only one way, use pause command for Octoprint only and be faster like the Steppers switch off delay timer in Klipper. |
@Foxbiker 's gcode worked well for me (thanks!). I got an error: In printer.cfg, under the
|
Just tried the M600 macro and get this error
This is the macro
|
You must add: |
So it's klipper capturing the position rather than octoprint? |
Hi, I'm quite new to Klipper, but had success in installing and configuring on a semi-custom delta. [gcode_macro M600] |
It remembers Z's position If you are using Octoprint add in the settings, in the After_resume Gcode section RESUME then when you resume printing on octoprint, it will return to printing nicely |
Hi,
I was about to enable filament change on my marlin firmware, and just discovered klipper firmware !
I installed it this morning, I now have to test it !
So I was wondering if the firmware does implement M600 and it seems it's not yet there.
I'm willing to help implementing it: I know python, GCODE, but need some guidelines to help me decide correctly where it has to be setup.
So the goal is to have a M600 gcode working as in Marlin : you can call M600 without parameters , or with some parameters. It will stop extruding, move the head to a "parking position", and wait for the user to change the filament.
Once the filament has been changed, the user has to push a button to resume the print. Since we don't have a physical UI, we could wait for a special GCODE to resume the print (surely a MXXX code !)
What about this ?
The text was updated successfully, but these errors were encountered: