Skip to content
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

M601 does not pause print #131

Open
Chris-j-hill opened this issue Feb 5, 2018 · 2 comments
Open

M601 does not pause print #131

Chris-j-hill opened this issue Feb 5, 2018 · 2 comments

Comments

@Chris-j-hill
Copy link

M601 is meant to pause the print from gcode and wait for the user to manually resume. When this gcode is run the nozzle should be parked and a "while(card.pause)" loop is begun. However, the value of card.pause is never set to true in M601. Result being the nozzle goes to the specified park position then returns to the print job immediately. Simple fix is to explicitly set the value true just before the while loop.

@ckielstra
Copy link
Contributor

Not a bug but a feature request since the M601 command is an internal command and not listed in the supported G codes.

So, the request is to make M601 a supported command...

M601 is like an improved version of the M0 command where the build plate will move down a bit and the head moves to a parking location. The PauseAtHeight plugin in Cura uses the M0 command and a few extra gcodes to do the same (and more) as the M601.

We can make the M601 externally available, but just wondering what would be your use case?

@Chris-j-hill
Copy link
Author

For context, I was using this as part of a filament run out sensor addon I was working on at the time. My system worked simply by polling a pin connected to a limit switch and then when a run out was detected run the M601 command. So all of this was kept within the firmware.

I didnt use the M600 command because of the beeping, the printer was situated in a college with offices and lecture rooms adjacent to where the printers are located so allowing the printer to beep continuously if unattended was not an acceptable solution. M601 which just pauses and parks the nozzle seemed better, however it then didn't behave as I would have expected.

So in my case I don't need it to be a supported command. I changed M601 at my end to explicitly set the printer to be in the paused state and it hasn't broken anything that I'm aware of. Is there something that depends on this not being set within the function? If not, surely this would just lead to unnecessary code bloat if it needs to be set in a bunch of different places whenever M601 is being used.

Im not familiar with the PauseAtHeight plugin so I don't know what codes it's generating. I use simplify 3d as my primary slicer, and while I have not found a case where I need a pause at height feature, off the top of my head I'm not sure of a simple script I could write to achieve this without using M600, because of noise concerns, or M601, because its an internal command. In which case, maybe an alternative solution would be to support additional behavior for M600? That would be useful in my case but seems like more work than its worth, and would be to solve a pretty niche problem...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants