I’ve run into a small issue with my Bambulab P1S and wanted to see if anyone else has encountered the same. I think it could potentially be fixed with a firmware update.
Here’s what happened: I was printing with PCTG and had to pause the print occasionally to clean up the nozzle, as filament would accumulate over time. When the print head was positioned directly above the excess chute, I manually moved it forward to the door area to clean it. However, while it was above the poop chute, I accidentally moved the head to the left a couple of times (from the printer door perspective). This caused the print head to crash into the frame near the motor, making the belt slip. After that, the head couldn’t align with the original print position, so I had to scrap the print halfway through.
I’m guessing re-homing the head mid-print with filament on the bed isn’t the best idea. It feels like the printer should have some kind of software limit to prevent this from happening once it’s homed.
I forgot to take a photo of it; I’ll add it today.
I haven’t encountered MQTT until now, but if it’s something that would allow me to send G-code to a printer, then it’s exactly what I’ve been considering as a solution.
First, I tried your solution from that thread. I put it into the “G-code Change Layers” section with an if condition to execute every x layers. It worked, but I noticed some extra movements. The print head would go to clean itself, then move to the front left corner (near the door), and then return back above the poop chute before resuming printing.
I experimented a bit and found that, after deleting all lines with the G-code M624 AQAAAAAAAAA=, it only performed the cleaning as I intended. However, after completing the first layer, it misaligned the second layer, but all following layers were correctly aligned from the third layer onward. This brings me to my question: what exactly does the command M624 AQAAAAAAAAA= do?
But when i remove every my custom g-code and still remove all M624 AQAAAAAAAAA=, print would end up sucessfull. What is weird because i just use this:
G1 X60 Y265 F15000 ; nozzle wipe position
G92 E0 ; zero extruder
G1 E-0.5 F300 ; retract filament
G1 X100 F5000 ; wipe right
G1 X70 F15000 ; wipe left
G1 X100 F5000 ; wipe right
G1 X70 F15000 ; wipe left
G1 X100 F5000 ; wipe right
G1 X70 F15000 ; wipe left
G1 X100 F5000 ; wipe right
G1 X70 F15000 ; wipe left
G1 X60 F5000 ; clearance
I tried using it as a pause G-code, but I didn’t realize that it would only activate during a slicer-generated pause.
I’ll definitely come back to fine-tune this solution, either as a template or during a pause. The problem, though, is that I first need to improve my nozzle cleaner, as the basic one had significant issues with PCTG.