I noticed that after a print, if I want to move the toolhead, it says I have to home it if I want to move it.
But I just printed something it should know exactly where the head is, and I have never had to do this for any other printer, and the machine isn’t shutting off after a print, so the info shouldn’t be erased.
Is there some code I can add to safely keep the toolhead location so I don’t have to rehome after a print? or is this something that could be dangerous to fix?
Something in your slicer end print g-code or printer end_print macro is apparently setting one or more axis as “untrusted”. Send a klippy.log and I’ll see if I can figure out what is causing it.
It never occurred to me till now but one could home x,y in their end print instead of park. That way if a couple steps got “lost” you’d reestablish 0.
correct I can move the XYZ without homing after a print. Seems to work exactly how it should… I hope there isn’t a high level reason they decided to disable the steppers at the end of the print
Yes, in Klipper any stepper that is disabled looses it’s “trusted” status.
BUT “start print” always begins with “home all” I don’t see a compelling reason not to turn them off and let them cool while you clear and clean the build plate.
It’s handy to have the motors disabled so I can manually move the print head out of the way, or manually feed a new filament by turning the wheel on the extruder, but it’s a minor hassle to have the motors disabled when I want to use the Fluidd or Mainsail web interface to jog the Z axis up after a short print to make it easier to load a new filament and purge the nozzle. It’s not difficult or very time consuming to click the Home All button, but I forget to do it when switching from a printer that keeps the motors energized to one that doesn’t. Stepper drivers significantly reduce the current to idle stepper motors to minimize motor heating.
Since Klipper, I increasingly use the computer to control the printers, so I should make all of the printers keep their motors engaged all of the time so they all behave the same way. It’s possible that high speed printers have so much motor current that even the much lower fraction of holding current when idle is enough to have the motors warmer than we’d like, and some printer designs require Z axis motors to be energized when idle to prevent the bed from lowering under its own weight or with slight pressure when removing a print.
If you disable the motors after a print when the manufacturer left the motors energized, ensure the printer always homes before moving. If you keep the motors enabled when the manufacturer disabled them after the print, ensure the idle motors aren’t too hot.
My Elegoo Neptune 4 Pro disables the motors after a print but doesn’t home the printer before doing a bed mesh calibration. I’ll be messing with the printer to swap build plates or change nozzles and I remember that I need to generate a new bed mesh (unlike late model Eddy probe equipped Sovol printers that make a new bed mesh before each print) but I usually forget to home the printer before probing the bed and it crashes. The bed probing code should home the printer first. I should fix that, but Elegoo should have fixed that before selling the printer.
@nerocaesar I have a Sovol Zero and have run into this same issue a couple of times! Why do I need to home?!! you should know exactly where the print head is?”. So I checked and found the same macro “M84 X Y Z E” in the CANCEL_PRINT macro. I don’t own a SV08, I do see the same line for the SV08 Macro.cfg file.
Sharing my tie in with a Sovol Zero and canceling prints in case it helps anyone.
For my situation I canceled a print after I noticed the print head was dragging a cooled blob of filament that extended 5-10mm from the printhead down to the print bed, incorrect temps , I’m learning and new to 3d printing… Anyway, after canceling the print I was not able to move the print bed down due to it’s needing to be homed error. Catch 22 …unfortunately due to the cooled blob I would not be able to home the printhead unless some belt grinding and gear crunching took place while it tried to home … The fix, I shut the printer off, unscrewed the bottom plate of the Zero, and manually moved the z axis belts until I could get to the printhead and work on it.
Now after reading your post along with @cardoc’s note about “trusted” status loss, I’m was pretty sure this same “M84 X Y Z E” is what caused my needing to home issue after canceling a print.
So I tested it by commenting the “M84 X Y Z E” out at the end of the cancel_print macro in Macro.cfg, started a print and canceled it a few layers in and was able lower the print bed. Uncommenting and retesting I could not move the print bed until home! Answer found …
I’ve not tested the motors standing idle after this change and @Liberty4Ever offers some sage advice quoted below, the manufacturer (Sovol) may have disabled them for a reason, keep an eye on the motors…
I don’t recall ever seeing FORCE_MOVE in Fluidd or Mainsail but I often don’t see features I’m not using. I just took a look and the Zero’s Mainsail web page doesn’t seem to have that handy FORCE_MOVE feature. That sounds like something the manufacturers might not want us to have. You don’t let children play with matches or sharp objects because you don’t want them to hurt themselves.
With a cold blob on the nozzle, I’d probably use Fluidd or Mainsail to heat the nozzle, remove the blob with tweezers at least enough to allow the printer to home, and then raise the nozzle high enough that I can brass brush it to clean it properly.
On some 3D printers the motors can be disabled and the bed can be gently pushed down but the gear ratio and stepper motor cogging force on the Zero don’t allow the bed to be lowered by back driving the stepper motors without applying excessive force.
While not perfect, I’m scoring the Zero (and SV08 Max) strategy of always homing and always making a fast Eddy bed mesh before each print as a major win. I like it homing, making a current bed mesh and establishing a zero offset automatically between each print so I don’t need to worry about any of that and the requirements for a perfect first layer and a successful print are taken care of at the start of every print. This greatly improves the reliability and print quality, and also reduces maintenance because I don’t have clogs or scratched build plates from a too-low zero offset.
@cardoc Thank you for the pointers, I’m using the mainsail interface via Orcaslicer to access my printer and did not see any way to force move. I’m just now learning about the various G-Code Klipper commands and had not run across the G92 command yet. To be honest G-Code’s are still a bit of that “it’s magic” type area for me and I learn something new every time I try and understand why the printer did what. I know My Zero is running Klipper, but I do like the Marlin command list you linked, it’s going in the cross check list thanks!
@Liberty4Ever Totally agree “You don’t let children play with matches or sharp objects because you don’t want them to hurt themselves.”. Over time through learning I’ve become a proud graduate from that school, have received a few “Degrees” and “Doc,‘oh’ that’s” , puns intended, from the school matches and sharp objects.
Seriously though, I did try to heat the nozzle and use tweezers, unfortunately the blob was touching the plate and I was having a difficult time getting my hand and the tweezers in the right position and kept burning myself, thus the best I could come up with was to manually make enough room. Next time now that I’m a bit farther in with 3D printing I might try increasing the temperature a bit more.
Agreed about the always homing and fast Eddy bed mesh process on the Zero.
Thank you both for sharing the insight and knowledge!
You can add some code to your end print macro just before your stepper motor disable commands to move to a certain height if you’re below it and remain where it is if it’s already above that height. That way your steppers are allowed to cool and aren’t always on when your printer is just sitting there not printing but it’s high enough to meet your needs.