Beginning wipe sequence, back of plate

I have a P1S but I think this is with all BL printers and has to do with the g-code, so if this is in the wrong section feel free to move it.

After the printer heats up and purges filament, hits the wiper a couple times, it then moves to the back of the print plate. It makes a circular motion and wipes the nozzle on the plate.

However, it looks like the nozzle is pressing down too hard and flexes the nozzle sideways and “skips” as it catches and then breaks loose and springs over. Which doesn’t seem right and looks like it’s putting too much stress on the hotend!?

Does anyone know if the hotend is supposed to apply a certain amount of pressure that it senses when it comes down on the plate? Or does it come down and move to where it thinks it’s supposed to be and if the plate is slightly high then it could be pressing too hard?

Is there something that I could change in the startup g-code to decrease the down force or raise the nozzle slightly? I feel like there is a better way to clean the nozzle than stressing the hotend at the beginning of every print?

Any thoughts or info or a link to the g-code commands?

Thanks!

My X1C does leave permanent marks on the plate over time, but it doesn’t appear overly brutal during the process. Perhaps make a video and open a support issue?

It does turn ABL off during that process so in case your bed is tilted in that axis it might end up harder. But it does perform a local Z-homing at that spot during wiping, so it shouldn’t matter really. Here’s how to check your bed in a non-destructive way anyway.

You can look at the gcode in Bambu Studio - edit machine/nozzle settings and look at “machince start G-code”. It has comments so you can find the correct section. I suppose you could insert eg. “M17 Z0.4” to lower the Z-stepper current before the process, if they don’t already do that. And obviously a corresponding command to get back to normal afterwards. Search your current G-code for M17 commands, for clues in comments. On X1C normal is “M17 Z0.75”, probably same on yours.

Thanks for the reply. I will look into what you have mentioned. Do you by chance have a good resource to find out what the various g-code commands do? Such as the M17 that you mentioned looking for? I guess I’m unsure if these are specific to Bambu or if the are based on something else (klipper?) with a bunch of their own mixed in? I’ve tried looking but didn’t find much and it seemed like it was more for the X1 machines and functions the P1 aren’t capable of.

I’ve also partially figured out my problem but I would still like to find a solution or even try to locate and remove the code and plate wipe sequence altogether.

The back of the Bambu plates have that tab that sticks out where the nozzle wipes. They also have that cutout which allows the plate to flex down instead of causing the nozzle to flex. The problem is if you use an aftermarket plate there’s a good chance the material is too thick and not designed to flex. So when the plate doesn’t give it’s the nozzle that has to. I don’t want to throw the company under the bus so I will alert them to the problem and give them a chance to figure something out first.

I use Marlin for reference but I’m expecting (and have seen) some differences. And I’ve looked a lot in the Bambu G-code for clues, it’s fairly documented.

I’ll have a look at the P1 gcode, I think I have an idea for you.

OK so here’s an excerpt from the P1S “machine start” G-code, from line 86 and partially snipped:


G0 X135 Y253 F20000  ; move to exposed steel surface edge
G28 Z P0 T300; home z with low precision,permit 300deg temperature
G29.2 S0 ; turn off ABL
G0 Z5 F20000

G1 X60 Y265
G92 E0
G1 E-0.5 F300 ; retrack more
G1 X100 F5000; second wipe mouth
(...)
G0 X128 Y261 Z-1.5 F20000  ; move to exposed steel surface and stop the nozzle
M104 S140 ; set temp down to heatbed acceptable
M106 S255 ; turn on fan (G28 has turn off fan)

M221 S; push soft endstop status
M221 Z0 ;turn off Z axis endstop
G0 Z0.5 F20000
G0 X125 Y259.5 Z-1.01
G0 X131 F211
G0 X124
G0 Z0.5 F20000
G0 X125 Y262.5
G0 Z-1.01
(...)

It goes on like that for a while more, alternating Z between -1.01 and 0.5 mm while rotating XY.

So it homes the bed and only then turns off ABL. It then pushes the bed to a negative -1.5 mm, meaning 1.5 mm higher than the nozzle. That is a whole lot if your bed isn’t flexing! After that first one it alternates between -1.01 mm and 0.5 mm which is still more than I expected.

But all you’d have to do is a search/replace from, say, “Z-1” to “Z-0” and it will be much less brutal. There are 8 such “Z-1” instances in total and all of them are the wiping process. Perhaps lower the very first one even more, to say -0.1.

I would try that out rather than disabling it completely.

Thank you! That is very helpful!

I tried looking at the start up g-code and then went looking for a list of commands and didn’t find much and it was mainly for the X1 and it’s features that the P1 series doesn’t have.

1.5mm is a lot and since there’s no give anywhere I’m almost surprised the stepper motor doesn’t skip/ make terrible noises. Maybe the belt slips some or can stretch a small amount? I don’t know, but I will definitely be making some changes to the code and try to get it a lot more gentle. I might even try lowering the nozzle temp and leave a small gap and put the rough side of some Velcro on the tab to wipe on? I’ll try a few things but now I have a starting point so thank you for doing that!

Do you by any chance have any clue what the smallest linear step the motors make is? Based on the code I’ve seen I guess 0.1mm is a fair assumption?

Anyways, I really appreciate the help and I’ll post back of I get anywhere.

Hopefully at least 10x better than that: I believe the Z axis is 0.04 mm per natural step, and then there’s microsteps but I don’t know how many. For XY I don’t know - would obviously depend on gearing ratios somewhere. I expect XY to be same resolution or better than Z based on… err thin air LOL.
I really don’t know yet but I love figuring out stuff like that so if anyone have some clues, please chime in!

I would think the printer is capable of a lot smaller steps as well, but I guess I thought their software would be utilizing these smaller steps by calling out smaller fractions in the code (thousandths if a mm instead of tenths). But I guess there are places that go down to 1/100th. I’m sleepy and not explaining that well…

I did get a chance to adjust the g-code and get it so the nozzle just touched the build plate so at least I’ll be able to use the plate without all that pressure going into the nozzle. Obviously the print head can detect force so it knows when it hits the plate. I guess I’m surprised that there’s not a maximum force it can be subjected to before it saying hey, somethings wrong and I need to stop doing this before I break myself. And it seems like it would do it in each direction so if something got left in the printer or something is preventing movement so there is a spike in force and it would pause itself and alert that there is something wrong.

I’ve read about quite a few people talking about using aftermarket plates so I posted in the X1 forum to try to alert people of the issue but there don’t seem to be many people concerned? Maybe there aren’t as many people using them as I thought? But I have some thoughts on things to try and once I get something figured out that I’m happy with, I will post back with what I came up with in case there’s anyone else that’s concerned and looking for a solution.

Thanks again Raz, you helped me out a lot!

Now I’m off to bed…

Meanwhile I took a good look at my printer during wiping. It really doesn’t look like it’s flexing at all but it’s not easy to see back there. You’d think over a millimeter should be very visible.

Does the nozzle wipe somehow account for a non-flat bed? Maybe it does, but if it doesn’t, the variation at the center of the bed could be quite different. For example, my bed has a -0.8mm offset (imagine a banana) between the center and the outside edges. Perhaps if my bed were more flat, the wipe operation would jam into the cleaning tab a bit harder…

(Pure speculation, as I don’t know when/how the ABL data is applied.)

It turns ABL off and auto homes Z near that tab so it shouldn’t be an issue. But I think I saw it actually homes just inside the tab, where there might be a layer of eg. Cool Plate sheet. This probably means the Engineering or Textured plates get a harder wipe than Cool or HT plates

You definitely need a flashlight or bright light shining back there to see if well. The only Bambu plate I have is the newer gold textured PEI plate and if you watch the tab in relation to the plate in front of it, the nozzle definitely pushes it down quite a bit. It helps when the light is reflecting off the tab where the cutout is and you can see the tab goes completely below the plate. At least on mine.

I have a video where it shows the nozzle flexing sideways on the aftermarket plate that doesn’t flex at all but we can’t upload videos or even a picture/ .gif over 4mb which I tried to make to get around that. I need to upload it somewhere but just haven’t had much free time with Halloween and a softball tournament my daughter has this week. But I’ll get around to it.

I did change all the negative values in the startup wipe code to a -0.1 (I think, I’ll have to check because it might be -0.01, as well as put a piece of masking tape on the problem plate’s tab and it still wipes the nozzle but isn’t trying to push the hotend thru the top of the machine and wear a hole thru the G10 like before.

I actually don’t really understand that wipe because it might get something that’s melted on the very end of the nozzle, but it’s hot and anything on it will be soft if not melted and it doesn’t need that much force?

I have an idea that I’m going to work on this weekend that I think will clean from the bottom of the sock down much better than what it currently does. If I get it working I’ll definitely post it for anyone that might be concerned about all this.

I’m wondering exactly what you changed. I noticed my brass revo nozzles are being worn out in a very short period of time because of the nozzle cleaning on the plates tab. I was looking for something to just completely delete this sequence from the gcode but I can’t find anything reliable. But if I can make it so it’s just barely touching the tab it might save my brass nozzles.

I haven’t been on here in a while and somehow just happened to see your post…

Did you get it figured out?

If not, and assuming you have an X1/P1 series, it’s modified in Bambu Studio at the top left-hand side under “Printer”. Below that is a drop down selection with your printer and nozzle size and to the right is an edit icon that you press

Under the “Machine G-Code” tab go to the “Machine start G-code” and start scrolling down to
;===== wipe nozzle =======

Keep scrolling until you pass “; second wipe mouth” and get to:
G0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface

The “Z-1.5” means the build plate is moved above the nozzle tip and these negative numbers are what need to be changed. I made them “Z0.0” and and a comment about what I changed which would look something like “; Edit - Changed Z-1.5 to Z0.0” where the semicolon is the start of a comment and ignored by the machine.

There are 7 (I think) more places where “Z-1.01” and has a negative number and should all be changed to “Z0.0” if you want it to stop right where it thinks the build plate is touching the nozzle. If you want it to still push down but not as drastic, you can change it to a smaller negative number like “Z-0.2” or whatever you want to try.

I also added a piece of masking tape to the tab at the back of the build plate so the nozzle barely presses into it instead. This helps clean the tip and if it rips you know it’s still digging in some. I haven’t had any issues with plastic buildup on the nozzle so I haven’t changed anything. This should be the only places you need to make a change and then save it as a user preset with something like " _Gentle Wipe" added to the end. When you print something grab a flashlight and watch it wipe the back tab and make sure it doesn’t raise the bed at all during the wipe and you’ll know all the negative values were adjusted. If you have an A1 then it’s probably similar but a bit different, just look for the negative Z values.

Sorry this is so long! I always try to give too many details and I’m tired and rambling and it is what it is. If I made anything confusing let me know…

1 Like

I did wind up figuring it out. I deleted the back and forth wipe motion it performs on the plate while leaving everything else alone. It’s been working great for the past week and a half on both my x1-c’s and my p1s.

Here’s what I did.