Garolite bed crashes
I'm trying to set up my mk3S to print Nylon, so I got a Garolite bed to place over the spring bed. the problem is that the nozzle crashes into the bed with some considerable force in the home position when the print goes to start, and it attempts to calibrate Z with no success. I believe it's a problem with the PINDA sensor, as it only happens on the Garolite side of the bed, but how would I work around this issue? I just want to print some NylonX lol.
RE: Garolite bed crashes
You've got two options:
- Let the printer do the bed leveling with the normal bed, then pause the printer, change the Live Z, add garolite, print. This can be slightly improved by adding a
M0 Add Garolite and press button when ready
to your custom gcode section in PrusaSlicer. A further improvement is to use the PrusaSlicer Z offset to automatically add the thickness of the garolite to the print, so that you don't need to tweak the Live Z.
- Buy a bare steel sheet, some 468MP adhesive, a 0.2mm or 0.5mm Garolite sheet, and make yourself your own garolite flex sheet. Or buy one pre-made.
RE: Garolite bed crashes
Most Nylons also stick well to the standard PEI sheet after applying PVA gluestick (thick) and letting it dry before printing.
If you haven't printed with nylon before, then first make sure it's dry, and second make sure it's not PA12-based. Wet nylon filaments will start clogging quickly. A fresh out of the box filament is not a guarantee that it is dry. Most PA12-based filaments can only be printed in a heated chamber and will warp too much on the Mk3. You'll be much more successful with nylons based on PA6/6.6 mixtures. MatterHackers doesn't say if NylonX is PA12 or PA6/6.6, but there is a good chance it's the latter.
My garolite flex steel sheet:
RE: Garolite bed crashes
You've got two options:
- Let the printer do the bed leveling with the normal bed, then pause the printer, change the Live Z, add garolite, print. This can be slightly improved by adding a
M0 Add Garolite and press button when readyto your custom gcode section in PrusaSlicer. A further improvement is to use the PrusaSlicer Z offset to automatically add the thickness of the garolite to the print, so that you don't need to tweak the Live Z.
Can you provide a working example of how you've used this? I was unable to get messages to display when I tried to work with M0 in this manner. The timeout and/or wait for button part worked, but I never could get text to display either with M0 or M117.
- Buy a bare steel sheet, some 468MP adhesive, a 0.2mm or 0.5mm Garolite sheet, and make yourself your own garolite flex sheet. Or buy one pre-made.
Isn't the problem that the garolite is thick enough that the PINDA hits it before triggering? A flex sheet would certainly be convenient, but you'd still have to do the 2-step (mesh bed level -> pause -> put on garolite and correct Live-Z) would you not?
I bought one of the "spring steel" sheets (FYSETC I think) off AliExpress. It's so bloody thick I can barely get a good Live-Z setting without adjusting my PINDA, which I'm not willing to do. I've had much better luck (and quality) with the spring steel sheets from PrintedSolid. They're about as thick as the PC sheets from Prusa.
and miscellaneous other tech projects
He is intelligent, but not experienced. His pattern indicates two dimensional thinking. -- Spock in Star Trek: The Wrath of Khan
RE: Garolite bed crashes
Can you provide a working example of how you've used this? I was unable to get messages to display when I tried to work with M0 in this manner. The timeout and/or wait for button part worked, but I never could get text to display either with M0 or M117.
M0 Works for me
M84
- Buy a bare steel sheet, some 468MP adhesive, a 0.2mm or 0.5mm Garolite sheet, and make yourself your own garolite flex sheet. Or buy one pre-made.
Isn't the problem that the garolite is thick enough that the PINDA hits it before triggering?
Not if you use a 0.5mm Garolite (I used another brand, similar phenolic resin) sheet. Then the thickness is still within the PINDA trigger distance. You need to have a separate Live Z for this sheet, though. I solved that part by defining a new printer in PrusaSlicer with a different Z offset. And so I can switch sheets by switching printers in PrusaSlicer.
I bought one of the "spring steel" sheets (FYSETC I think) off AliExpress. It's so bloody thick I can barely get a good Live-Z setting without adjusting my PINDA, which I'm not willing to do. I've had much better luck (and quality) with the spring steel sheets from PrintedSolid. They're about as thick as the PC sheets from Prusa.
The one I'm linking to is uncoated, it's bare steel. As such, PINDA detects it from a distance large enough to still be able to sandwitch the garolite between the PINDA and the steel. This may require lowering the PINDA if yours is setup for maximum nozzle-PINDA height difference.
RE: Garolite bed crashes
I should have explained my setup before. I got the garolite sheet from Matterhackers and placed it on one side of the spring steel sheet that came with the printer. I may try lowering the PINDA sensor a bit and seeing if that triggers it. I have had limited luck with using a glue stick, but it's a pain, as you seem to have to use a LOT of it to get proper adhesion.
RE: Garolite bed crashes
I should have explained my setup before. I got the garolite sheet from Matterhackers and placed it on one side of the spring steel sheet that came with the printer. I may try lowering the PINDA sensor a bit and seeing if that triggers it. I have had limited luck with using a glue stick, but it's a pain, as you seem to have to use a LOT of it to get proper adhesion.
I assume the "steel sheet that came with the printer" is the Prusa smooth PEI sheet. The MatterHackers garolite seems to be 1.0mm thick. The Prusa smooth sheet is 0.5mm steel with 0.3mm PEI and glue on both sides. That would put you at 1.3mm or more of non-conductive material on the spring steel base. That's at the edge of the PINDA detection range. You may be able to make it work if you get the PINDA as low as possible without hitting the object while printing, but I'm afraid it's too much to work reliably.
RE: Garolite bed crashes
A static "works for me" isn't a message displayed during printing. Actually, this M117 issue is a KNOWN DEFECT in the firmware, something to do with the sequencer not being truly linear. lol.
RE: Garolite bed crashes
Perhaps I wasn't clear with "working example".
M115 U3.7.1 ; tell printer latest fw version
M0 Works for Vojtech-p6
Results in:
Temps remain at 0 until I press the knob. I mean, thanks for the reference to the online documentation and all, but that's what I was referring to with previous testing (now repeated). It doesn't actually work in actual usage. I've had the same issue with M117. This unfortunately makes it more of a hinderance than an aid, as the print just stops with no indication that it's waiting for input. Would love to be able to present an actual message to the user, but any of the gcode commands that work to present a message "in theory" don't seem to work on the Prusas.
and miscellaneous other tech projects
He is intelligent, but not experienced. His pattern indicates two dimensional thinking. -- Spock in Star Trek: The Wrath of Khan
RE: Garolite bed crashes
[...] A further improvement is to use the PrusaSlicer Z offset to automatically add the thickness of the garolite to the print, so that you don't need to tweak the Live Z.
Not to belabor the point, but have you tested this? I've been down this road as well. Those adjustments take effect only in the actual part printing sequence, not at the start of the print job. Any auto-homing, mesh bed leveling and (if you don't modify the startup gcode) prime line printing will take place before this setting. I just confirmed this by setting Printer Settings->General->Size and coordinates->Z offset to 3.14159. The actual change occurs well after any startup gcode:
;BEFORE_LAYER_CHANGE
G92 E0.0
;0.2
G1 Z3.342 F12000.000 ; move to next layer (0)
(Layer height is 0.20mm)
If you have anything on the sheet that's too thick for the PINDA to trigger, it'll come crashing into it during the startup sequence, which is the very problem the OP has described. I've seen this suggested as theory before, but find it worthy of some cautions before recommending in practice. What did you do differently in your testing? Can you share your tested gcode?
and miscellaneous other tech projects
He is intelligent, but not experienced. His pattern indicates two dimensional thinking. -- Spock in Star Trek: The Wrath of Khan
RE: Garolite bed crashes
Bob, you are too polite. Voj is simply entirely off kilter - as usual. He's probably still Googling for an answer he can copy and paste here.
RE: Garolite bed crashes
Perhaps I wasn't clear with "working example".
M115 U3.7.1 ; tell printer latest fw version
M0 Works for Vojtech-p6Temps remain at 0 until I press the knob. I mean, thanks for the reference to the online documentation and all, but that's what I was referring to with previous testing (now repeated). It doesn't actually work in actual usage. I
As you probably have guessed, I went straight for option two and am using a thin garolite flex sheet. So yes, you're right, I never actually needed to use the M0 in PrusaSlicer.
Now I've tried your example and actually got the message. Weird. But then I tried to actually put it in the custom gcode of PrusaSlicer and it failed miserably, it didn't even wait for the click and just proceeded printing. Now that I've replicated the issue, I have no other option than to find the bug in Marlin. 🙂
RE: Garolite bed crashes
[...] A further improvement is to use the PrusaSlicer Z offset to automatically add the thickness of the garolite to the print, so that you don't need to tweak the Live Z.
Not to belabor the point, but have you tested this? I've been down this road as well. Those adjustments take effect only in the actual part printing sequence, not at the start of the print job. Any auto-homing, mesh bed leveling and (if you don't modify the startup gcode) prime line printing will take place before this setting. I just confirmed this by setting Printer Settings->General->Size and coordinates->Z offset to 3.14159. The actual change occurs well after any startup gcode:
;BEFORE_LAYER_CHANGE
G92 E0.0
;0.2
G1 Z3.342 F12000.000 ; move to next layer (0)(Layer height is 0.20mm)
If you have anything on the sheet that's too thick for the PINDA to trigger, it'll come crashing into it during the startup sequence, which is the very problem the OP has described. I've seen this suggested as theory before, but find it worthy of some cautions before recommending in practice. What did you do differently in your testing? Can you share your tested gcode?
Yep, you're right. Just tested. The sheet worked just fine with manually adjusting Live Z, since PINDA still triggers fine, but adjusting the Z offset in PrusaSlicer fails during the purge line, which needs to be edited too. I didn't notice, because I tested this approach on my powder-coated sheet, which is thinner than the smooth PEI sheet and where the too high purge line wasn't a problem. I think you just saved my freshly re-made Garolite sheet from a nasty gash.
RE: Garolite bed crashes
With a bed comprised of a standard PEI sheet, one side unmodified, the other side with an extra layer: this code works without any slicing changes or special handling of z-offset.
M115 U3.7.1 ; tell printer latest fw version
G90 ; use absolute coordinates
M83 ; extruder relative mode
G28 W ; home all without mesh bed level
; heat things up
M104 S215; [first_layer_temperature] ; set nozzle temp
M190 S60 ; [first_layer_bed_temperature] ; wait for bed temp
M109 S215 ; [first_layer_temperature] ; wait for extruder temp
G80 ; mesh bed leveling
G0 X200 Y0 Z100 ; this is a good waiting point for bed flip
M1 Flip sheet then press OK
; Purge
G1 Y-3.0 Z0.15 F1000.0 ; go outside print area
G92 E0.0
G1 X60.0 E9.0 F1000.0 ; intro line
G1 X100.0 E12.5 F1000.0 ; intro line
G92 E0.0
M221 S95 ; {if layer_height<0.075}100{else}95{endif}
; actual g-code here
; end g-code
G4 ; wait
M221 S100
M104 S0 ; turn off temperature
M140 S0 ; turn off heatbed
M107 ; turn off fan
; {if layer_z < max_print_height}G1 Z{z_offset+min(layer_z+30, max_print_height)}{endif} ; Move print head up
G1 X0 Y200 Z50 F3000 ; home X axis
M84 ; disable motors
RE: Garolite bed crashes
The reason it works is the home, and layer cal operate on the "stock" side, and then the user flips to the oddball side. But at that point the height is calibrated. It won't be perfect, variations in surface flatness won't be compensated, but it allows the print to run, more or less.
Sheet build should look something like this:
RE: Garolite bed crashes
Note to OP:
If the sheet with the Garlite is solid and laminated: one side the original PEI, and the other side with added Garlite, I think the code will work pretty well. If you have a MK3, you can copy the code to SD and try it. It only prints a purge line.
Just be sure you start with the PEI side up so the PINDA has something to find.
I am pretty sure the process will work with a rather simple change to your Printer Custom G-code ... and everything else will print normally.
The other possible change I might recommend is to use a thicker layer one - 0.25 mm - this to compensate for any high spots on the Garolite side. But this may not be necessary.
RE: Garolite bed crashes
I've had no luck getting anything to print with M0 or M1, and I find no matter how hard I try to remember, I always forget there's a pause waiting for the knob to be pressed. It definitely works. I need to test, but I think homing & mesh bed leveling only need to be done once -- let the printer figure out where it is -- at the start of a session, so after initial prep, you could print with added offsets easily and skip homing & leveling. I've been thinking about this, wanting to try other print surfaces (garolite perhaps, but also intrigued by FilaPrint) and people have asked about using glass (shudder).
Tim, the use of the steel bed+thick surface makes sense. It'll be "calibrated" to trigger the PINDA correctly when printed PEI-up, but PINDA will be at correct height if flipped, just so long as you avoid doing another mesh bed level or homing. Definitely something worthy of testing. Stupid question, but would a strip of ferrous tape or other material atop the left-front corner of garolite or other surface work for homing? It would require some eyeballing to account for the thickness of the tape. Do that and just skip the mesh bed level altogether? You'd have to satisfy yourself that it's leveled enough manually, going old-school. Is there a way to make sure the printer doesn't try to use stored mesh values?
and miscellaneous other tech projects
He is intelligent, but not experienced. His pattern indicates two dimensional thinking. -- Spock in Star Trek: The Wrath of Khan
RE: Garolite bed crashes
You could use the code I use to move the head out of the way for about 10 seconds, and use Z offset in slicer set to the thickness of the garolite.
But this will only work if the PINDA has range enough to allow the nozzle to home without crashing in the first place.
I use those FYSETC steel sheets that bobstro hates so much 😋 which are just shy of 0.5mm thick, then I stick PEI or Buildtak to them.
My Live-z settings are PRUSA Textured spring steel sheet which measures 0.75mm (Including textured PEI coating) -1.350
FYSETC with 0.2mm PEI sheet stuck on total of 0.8mm -1.040 (Adhesive comes in at 0.1mm)
FYSETC with Buildtak 0.3 mm stuck on so total is 0.9mm (Plus a .04mm offset to stop things sticking too well!) -0.900 (Adhesive comes in at 0.1mm)
In theory I should be able to go thicker with non conductive surface, but it will also depend upon your PINDA and setup, mine is 0.7mm higher than the tip of my nozzle, but from my figures above it looks like my pinda switches at a height of 2.24mm above the steel of the bed, but is 0.7mm higher than the nozzle tip so that leaves 1.54mm (Nozzle to steel distance), allow for 0.2mm layer extrusion, 1.34mm and the thickness of the PEI that leaves a gap of 1.04 mm, which is what my Live -z value is -1.040
With a FYSETC sheet, there is not a lot of room to play with, so if I were sticking a 1mm sheet onto a 0.3 mm PEI sheet, The nozzle would basically have no room .
This is for my particular case with my Live z values based on my PINDA installation on a FYSETC steel sheet.
(I just measured it and my calculations are spot on!)
looks like the PRUSA Textured sheet is detected slightly higher with the PINDA switching at 0.3mm higher so you may have room if your PINDA is set closer to your nozzle height.
What you also have to remember is that during PINDA switching, the head has to go below the switching point then back up again. You really are too close for comfort, even if your PINDA is set almost flush with your nozzle, which you don't really want.
Anyway, here is the code to move the head up out of the way after homing then waiting 10 seconds to give you a chance to swap sheets or something, It will then continue on it's own or start sooner if you press the button, get rid of the S10 and it will wait indefinately until you press the button, but I could not get a message to work.
M115 U3.5.1 ; tell printer latest fw version
M83 ; extruder relative mode
G28 W ; MUST FIRST home all without mesh bed level or else risk nozzle crash!
G1 X10 Y200 Z110 F1000
M1 S10 ; Wait approx 10s to allow time to clean nozzle ooze then continue without user intervention.
Normal people believe that if it ainât broke, donât fix it. Engineers believe that if it ainât broke, it doesnât have enough features yet.
RE: Garolite bed crashes
- Buy a bare steel sheet, some 468MP adhesive, a 0.2mm or 0.5mm Garolite sheet, and make yourself your own garolite flex sheet. Or buy one pre-made.
That is fantastic. Thanks for sharing. I have been looking for one for months.
--------------------
Chuck H
3D Printer Review Blog
RE: Garolite bed crashes
- Buy a bare steel sheet, some 468MP adhesive, a 0.2mm or 0.5mm Garolite sheet, and make yourself your own garolite flex sheet. Or buy one pre-made.
That is fantastic. Thanks for sharing. I have been looking for one for months.
I cannot vouch for quality or fitness for purpose of the pre-made one, though, I have made one for myself from the Aliexpress parts.