MatterHacker Garolite bed crash
So, heres my dilemma...
I have the i3 MK3. Trying to print with MatterHackers Nylon X filament. After doing a little research I found out that this particular filament doesn't stick to the PEI sheet well so I purchased MatterHacker's Garolite sheet and installed it onto the stock Prusa bed. Next I went to do a print and during the Z axis calibration the nozzle crashes into the bed. After a little more research ( https://forum.prusa3d.com/forum/original-prusa-i3-mk3s-mk3-hardware-firmware-and-software-help/garolite-bed-crashes/ ) I come to the conclusion that the newly installed Garolite sheet is too thick (roughly 1mm thick) for the PINDA probe to work correctly. I noticed that there were a couple of work arounds (i.e. remove Garolite sheet, adjust Live Z, etc). Unfortunately for me at this point, I have already attached the said Garolite sheet permenantly to the PEI sheet and would rather not pull it off now since I am worried about damaging either the PEI sheet, Garolite sheet or worse case scenario; both at the same time.
Now, I am very new to 3d printing. With that being said, I probably need help in the most layman of terms. Based on what I read in the forum thread I posted above; I think that the solution is to move the PINDA probe down to compensate for the newly added thickness of the Garolite sheet or am I completely off in my thinking? Should I just ditch the idea of printing with the Nylon X / Garolite combination; get a replacement PEI sheet and stick with less durable materials? Thanks in advance for the help!!
RE: MatterHacker Garolite bed crash
If you have attached the garrolite to a normal spring steel sheet then simply turn the sheet over during mesh levelling. The pinda probe detects the steel surface below the pei sticker during normal mesh probing. By flipping it you put the steel back at the top.
Once levelled you would need to pause, flip the sheet back and then possibly adjust the z offset depending on how flat the actual garrolite/steel sheet sandwich actually is. Personally I'd add the pause for flipping into a copy of the printers start gcode. That way when slicing for that material /bed combination I could just select it as printer type and it gets added for me. When printing normal materials on a normal bed then it would slice without the pause.
RE: MatterHacker Garolite bed crash
"If you have attached the garrolite to a normal spring steel sheet then simply turn the sheet over during mesh levelling. The pinda probe detects the steel surface below the pei sticker during normal mesh probing. By flipping it you put the steel back at the top."
Yep, Im following you on this.
Once levelled you would need to pause, flip the sheet back and then possibly adjust the z offset depending on how flat the actual garrolite/steel sheet sandwich actually is.
Would I just measure the total thickness of the PEI/Garolite combination (.082") and add that to the Z offset via live Z?
Personally I'd add the pause for flipping into a copy of the printers start gcode. That way when slicing for that material /bed combination I could just select it as printer type and it gets added for me.
Where can I find the gcode to add the pause and where would I add it in the gcode file? Not all too familiar with gcode yet.
RE: MatterHacker Garolite bed crash
First are you using Prusa Slicer ? If so then under Printer Settings there are the section to enter and control the gcode sequences for Start/End etc. You must be in iirc Expert mode for them to show though.
If you ran through the wizard to install your prusa printer then it will all be there when the printer was added. You can makie changes there to control just what and how your printer behaves. You cant edit the default ones so ant changes must be saved as a new profile. You could create one for example called "MK3 Garrolite" with the changes in. When slicing for material that uses the garrolite bed you would just select that printer instead of the normal MK3s. Any changes to the gcode will then automatically get added for that file.
Prusa MK3 printers use a customised version of Marlin. A run down of all the marlin codes is available here https://marlinfw.org/meta/gcode/
Not all gcodes are implemented though.
You shouldnt need to adjust for the entire thickness of the garrolite sheet.
Think about what the pinda probe is actually doing. Lets for example say your garrolite/steel sheet total thickness is 1mm (to keep the numbers simple). With the steel towards the top the firmware lowers the pinda down until it detects metal. So lets say it detects metal when it gets to 1mm away from the sheet surface also to keep the numbers simple. So you adjust your offset so to -800 so the nozzle is actually 0.2 away from the surface.
So if you flip your sheet the nozzle is STILL 0.2mm from the surface. That example only works though if your bed sheet is exactly the same thickness everywhere. The problem with doing it with non magnetic materials like garrolite is what if its 0.05 thicker on the left side ? The mesh will adjust all the print points up 0.05 on the left, but you have flipped the sheet for actual printing so the right side is now 0.05 up and the left side is 0.05 DOWN from where it thinks. So small errors add up quickly, especially when talking layers that are 0.2mm thick. So I hope your sheet if perfectly even.
For the gcode part of your question -
G4 S60 for example should pause the printer for 60 seconds. Although to allow the swap you may want to also raise the extruder up too before pausing and then lowering again to where it was before.
A mk3 should have something like the following in the start gcode section
M862.3 P "[printer_model]" ; printer model check
M862.1 P[nozzle_diameter] ; nozzle diameter check
M115 U3.9.1 ; tell printer latest fw version
G90 ; use absolute coordinates
M83 ; extruder relative mode
M104 S[first_layer_temperature] ; set extruder temp
M140 S[first_layer_bed_temperature] ; set bed temp
M190 S[first_layer_bed_temperature] ; wait for bed temp
M109 S[first_layer_temperature] ; wait for extruder temp
G28 W ; home all without mesh bed level
G80 ; mesh bed leveling
G1 Y-3.0 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 S{if layer_height<0.075}100{else}95{endif}
; Don't change E values below. Excessive value can damage the printer.
{if print_settings_id=~/.*(DETAIL @MK3|QUALITY @MK3).*/}M907 E430 ; set extruder motor current{endif}
{if print_settings_id=~/.*(SPEED @MK3|DRAFT @MK3).*/}M907 E538 ; set extruder motor current{endif}
I would add in the pause section in after the mesh but before it prints the intro line so you can make sure its at the right height, like so -
M862.3 P "[printer_model]" ; printer model check
M862.1 P[nozzle_diameter] ; nozzle diameter check
M115 U3.9.1 ; tell printer latest fw version
G90 ; use absolute coordinates
M83 ; extruder relative mode
M104 S[first_layer_temperature] ; set extruder temp
M140 S[first_layer_bed_temperature] ; set bed temp
M190 S[first_layer_bed_temperature] ; wait for bed temp
M109 S[first_layer_temperature] ; wait for extruder temp
G28 W ; home all without mesh bed level
G80 ; mesh bed leveling
;Insert pause for flipping the bed here
G1 Z100 ; raise to 100mm up to give room to flip bed
G4 S60 ; pause for 60 seconds - adjust to a suitable length to give you time to do the flip
G1 Z0.15 ; lower to 0.15 height - might need to adjust this value
G1 Y-3.0 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 S{if layer_height<0.075}100{else}95{endif}
; Don't change E values below. Excessive value can damage the printer.
{if print_settings_id=~/.*(DETAIL @MK3|QUALITY @MK3).*/}M907 E430 ; set extruder motor current{endif}
{if print_settings_id=~/.*(SPEED @MK3|DRAFT @MK3).*/}M907 E538 ; set extruder motor current{endif}
Something like that. I'm not at my printer so I cant test it but its a simple enough modification. If you want to see an example of another modified start up routine with notes (that many of us use a variant of) then take a look at Bobs website here http://projects.ttlexceeded.com/3dprinting_prusaslicer_gcode.html
Lots of useful information collated together there.
RE: MatterHacker Garolite bed crash
Just adding something like a filament change command after bed level and final heating should work: and allows a prompt to do something. Yeah, you'd need to do a few button presses to continue, but will allow less opportunity for a mistake.
Has Prusa ever fixed the comment pause with command?