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

Allow selecting filament WITHOUT sending ANY G-Code. #1436

Closed
scottmudge opened this issue Feb 17, 2021 · 5 comments
Closed

Allow selecting filament WITHOUT sending ANY G-Code. #1436

scottmudge opened this issue Feb 17, 2021 · 5 comments
Labels
enhancement New feature or request

Comments

@scottmudge
Copy link

scottmudge commented Feb 17, 2021

Is your feature request related to a problem? Please describe.
Even with M600 mode set, this is the 3rd time now that using the filament change mode has just rammed the extruder of my printer into the endstop. For some inexplicable reason, after pre-heating the extruder is moved in relative units about +50mm in the X-axis. Not absolute units, which would make way more sense if the goal is to get the extruder somewhere accessible in the middle. Yeah fine, relative units work if the printer isn't homed. But it always is in my case, and the genius of using relative units is that if the extruder is already close to the end of the X-axis print volume, it doesn't stop. It just keeps ramming itself into the end, causing stepper noise and potential bearing damage over time. Which I'd really like to avoid.

It was suggested to use M600 mode before, which I am, but it's still prone to causing all sorts of problems.

All I want to do is change the active filament being tracked. That it. I don't want it to do anything to my printer. I don't trust the plugin or OctoPrint to do it correctly, because it frequently doesn't.

How can I disable ALL outgoing g-code for filament changes? I don't want it to send anything. I just want it to change the active filament being tracked in OctoPrint.

@scottmudge scottmudge added the enhancement New feature or request label Feb 17, 2021
@UnchartedBull
Copy link
Owner

As already mentioned in your last issue, the next release will include the fast track to change filament without any GCode being send (it is already available in the beta).

I don't really know why your printer is moving the X-Axis during filament change, since OctoDash is only sending commands to the extruder.

@scottmudge
Copy link
Author

scottmudge commented Feb 18, 2021

Is there a nightly build or branch with this change, or is it still pending?

And I don't know why either, looking through all of the OctoPrint configurations, I don't see any script or g-code associated with tool change or m600 commands.

And the firmware sets an absolute x-position for M600 commands without an explicit x-shift:

image

For now I'm going to modify the firmware directly and prevent it from moving in any axis except E and Z while not printing, and if M600 is sent during the middle of a print, it will move to a safe absolute X-position.

It could be a bug in the Prusa firmware, I've found a couple other parser bugs which I've had to fix.

Thanks for the help.

@scottmudge
Copy link
Author

scottmudge commented Feb 20, 2021

Alright I modified the firmware to behave correctly w/ M600 commands, but after installing Midnight's nightly build (Snapshot 02-06-2021), the M600 command is no longer being sent by OctoDash, even with it enabled in the config. So unfortunately I got what I desired in the end, but I was generally enjoying the OctoDash M600 implementation combined with my firmware changes.

I also noticed the configuration validation wizard (not sure why it even ran after reboot, as a valid config.json already existed) had issues validating the presence of "disableExtruderGCode" and "screenSleepCommand", though I confirmed they existed in the config.json file. I performed apt-get upgrade before rebooting after installing the OctoDash snapshot, perhaps that had something to do with it.

I restarted the machine, and it re-initialized a blank config, which was a little bit annoying, but it's a short config to set up.

Anyway, here's my config params. Does setting the "feedSpeed" or "feedLength" to 0 disable the M600 being sent? The filament change prompt continually noted "M600 command sent", but the printer did nothing until I manually sent "M600" in OctoPrint's terminal.

OctoDash seemed to be communicating with the printer otherwise, as the temperature command worked just fine.

image

@UnchartedBull
Copy link
Owner

No M600 should be send either way. I did a complete rewrite of the backend logic for that part after the last release so something probably got broken in the process. Going to check that now.

@UnchartedBull
Copy link
Owner

Screenshot 2021-03-05 at 15 46 10

There's the problem. Forgot to put that line back in. Should be fixed with #1438.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants