XY homing when paused

I had a piece of filament break in the bowden to the hotend. When I removed it I must have jostled the hotend as it was layer shifted to the right a bit. I paused and hit home in Bambu Studio. That was a mistake, it tried to home XYZ and ruined a 15 hour print with 30 minutes left to go :frowning:
Is there a way to home just XY when paused so I could have fixed this?

Not that I know of but it’s a good feature request:

  1. When paused during a print, the homing button should home XY but not Z. Some symbol change on the screen could indicate the fact.
  2. Perhaps the printer should also initiate an XY homing by itself after a user pause?

This. ^^^

[padding to get over the 20 character response requirement]

1 Like

There is a field in “Printer settings” - “Machine G-code” for “Pause G-code” where this could possibly be added.

I’m not sure if this is only called when the slicer initiates a pause or if it is also called when the user initiates a pause.

Will have to do some experimenting…

4 Likes

Edit: @JonRaymond beat me to it - but here are the details:

NOTE: I have not yet tried this myself. I’m lucky enough to be on a sunny island some 4,500 kms from home. If you try this at all, be prepared for misbehavior until me or someone else (you?) can confirm.

Find “Pause G-code” in your printer profile. It looks like this:

M400 U1

Trivially add the gcode for homing XY (and some comments) so it looks like this:

M400 U1 ; Pause for user intervention
G28 X Y ; Home the X and Y axes in case they were upset

Save it as a user profile and use that from now on. EDIT: see caveat about repeatability below.

See @BambuLab I already did half of it for you! :sunglasses: Now please tweak the firmwares so the home button(s) only homes XY when pressed during a printer pause. Must be fixed everywhere: On printer, in Studio and in Handy.

EDIT: Looking at Marlin docs, it says “By default “G28” disables bed leveling. Follow with “M420 S” to turn leveling on.” and then some exceptions to that statement for newer versions and depending on how it was built. A quick look at Bambu’s G-codes indicates such command shouldn’t be needed, and that Bambu seem to use “G29.2 S1” for that if it would be.

The fact that Bambu doesn’t just provide us a list of what G-codes are supported or not is ridiculous.

The other issue is that sensorless homing isn’t known to be that repeatable. On a 3d printer x/y start position doesn’t need to be repeatable as it is only used as the initial reference. Testing would need to be done to see how repeatable Bambu’s homing sequence is.

4 Likes

Very true. So maybe we only want it done when actually pressing “home” button.

I see some more caveats. Will amend my post.

A test might be to print a 10mm high cube and insert a custom Pause sequence with a G28 X Y every 1mm and see how repeatable homing is.

4 Likes

Did not expect to wake up to quite a discussion on my, what I thought was, a simple question. Without testing on the repeatability of the sensorless homing, I agree, I would not like it to try to home every time I paused, although in the two months I’ve owned the printer, this is the first time I have paused a print. I agree, the home button during a print should only home XY. I would definitely disable Z homing during a print pause. I can think of no reason why you would ever want to do that. Thanks for the great information.

It is called “Crash detection” where the print head homes itself mid print and goes back to where it was… all automatically.

Well… Interesting results.

Printing a 25x25x50mm cube with Custom G-Code: “G28 X Y” inserted every 1cm yielded very promising results. The printer seems to home very consistently as there are no “steps” in the part. There is the slightest visual layer difference when looked at it in the right light but nothing you can feel with your fingernail. There is a little bit of stringing on the back side when the nozzle comes back from the wiper.

Inserting the "Pause: “M400 U1 G28 X Y” in the slicer yielded the same results. The nozzle would wait till the user resumed the print and would then home before continuing printing.

BUT

Pausing using the screen or Handy App would not use the Pause g-code from the slicer. It would pause and resume without homing.

My take away is that Bambu will have to add it to the printer firmware.

5 Likes

Awesome! If you feel curious you could also try this variant:

G28 O X Y ; Home the X and Y axes unless already trusted

I’m not sure it would ever home then, if at all supported by Bambu, and probably not: “Not trusted” should mean that steppers have been powerless, which I presume they are not at a user pause. And if they were, I bet the printer would want to auto home XY all by itself (that just gotta be happening when coming back after a powerloss, but I’ve never tested that).

I wonder how OP’s layer shift could happen in the first place, isn’t it pretty hard to mess a position up by hand if steppers are powered? Maybe it isn’t that hard. Maybe they reduce the power a little during a user pause, just not completely.

Anyway it’s great that these printers seem to have greati repeatability!

In this post, you said find the “Pause G-code” in you printer profile. Not sure how to find it. I looked on Bambu Studio and I’m not seeing it. Could you help with some clarification as to where to look. I’m fairly new Bambu Lab P1S user.
Thanks

Welcome to the forum.

It’s the second last entry in the “Printer settings” window.

5 Likes

On this note I had the arguable pleasure to try out the powerloss recovery today. My printer probably got a kernel panic or something: It just froze in the middle of some infill (luckily) and stayed there without responding on the network nor to the touchscreen. For a week it has had a few problems like that, I’ve been experimenting with different SD cards and running without one but am still not sure it’s about that at all. But anyway this was in the middle of a 30 hour, 922 g print so I just power cycled the printer and prayed.

It booted up normally and almost immediately popped up a notice about an interrupted print, asking if I wanted to resume. I obviously did. So it just homed XY and took off where it had stopped. I can see a very faint line at the layer it happened, not more than a typical mould line. And for the things I’m printing it definitely doesn’t matter. Good stuff! I was actually planning to try this out on purpose, powering off right in the middle of printing a Benchy, for being prepared for the future. Turns out the future was faster than me lol.

1 Like

Yes I found it and changed it for each of my Nozzle sizes. Also saw this in a related thread what do you think about this sequence:
M400 U1 ; pause and wait for resume pressed
G28 X ;home XY
M106 S255 ; restart part cooling fan

Reasoning you want to “restart part cooling fan”?

2 Likes

A thread that I read implied that the Pause (M400 U1 and or the G28 X turns the part fan off, so this is just turning it on. This might be a moot point, since that fan will probably turn on eventually. What do you think?