Mesh Compensation
-
@Corexy said in Mesh Compensation:
; homeall.g
; called to home all axes
;
; generated by RepRapFirmware Configuration Tool v2.1.2 on Thu Nov 21 2019 10:53:58 GMT+1100 (Australian Eastern Daylight Time)
G91 ; relative positioning
G1 H2 Z5 F6000 ; lift Z relative to current position
G1 H1 X-200 Y-200 F1800 ; move quickly to X and Y axis endstops and stop there (first pass)
G1 H2 X5 Y5 F6000 ; go back a few mm
G1 H1 X-200 Y-200 F360 ; move slowly to X and Y axis endstops once more (second pass)
G90 ; absolute positioning
G1 H2 X97.5 Y97.5 F6000 ; go to first bed probe point and home Z
G30 ; home Z by probing the bedUnrelated to your mesh discussion, but You've got an overabundance of H2 switches in your homing files. It's intended to allow you to move an axis that hasn't been homed yet. Once the axis has been homed it's not needed, and really, the only axis you should use it on is the Z axis in case you need to move it out of the way before homing X and Y.
And infact, in CoreXY machines using H2 on the X and Y force it to use a single motor, which is definitely not what you want.
H1 terminate the move when the endstop switch is triggered and set the axis position to the axis limit defined by M208. On delta printers, H1 also selects individual motor mode as for H2. Normally used with relative motor coordinates (see G91).
H2 Individual motor mode. X refers to the X motor, Y refers to the Y motor, and so on. Normally used with relative motor coordinates (see G91).https://duet3d.dozuki.com/Wiki/Gcode#Section_G0_G1_Move
So based on above homeall should actually look like this:
G91 ; relative positioning G1 H2 Z5 F6000 ; lift Z relative to current position G1 H1 X-200 Y-200 F1800 ; move quickly to X and Y axis endstops and stop there (first pass) G1 X5 Y5 F6000 ; go back a few mm G1 H1 X-200 Y-200 F360 ; move slowly to X and Y axis endstops once more (second pass) G90 ; absolute positioning G1 X97.5 Y97.5 F6000 ; go to first bed probe point and home Z G30 ; home Z by probing the bed
Same goes for the other homing files. H2 only on Z axis moves. I'm actually not sure how your machine is homing at all with those files.
-
@Corexy said in Mesh Compensation:
"spikyness" in the map that I get with Printbite.
Looking at pictures of printbite online it seems that is has a slightly glossy surface and a grid pattern on it. This would be a less than ideal surface for an IR sensor. the glossy pattern can make surface detection unreliable, and the dark pattern could be picked up causing it to trigger early. In fact the spiky image you posted looks like you can almost make out the grid.
Using a piece of matte paper (preferably dark) should give a better idea of the surface. And the image you posted of the paper may actually be closer to the true shape of the bed.
If you don't want to change out the bed surface, and you don't want to change the probe since it seems to work reliably enough with setting the Z height, if the bed is flat enough you could just run without compensation, or set it to a very sparse grid to just capture the edges and center point (3x3 grid).
I wouldn't use an inductive or capacitive probe, too much temperature variability and insensitivity to thin metal. The BLTouch can work well since it's a contact probe it will work on any surface. But it is a bit larger, and has a more involved installation and configuration process.
-
Cheers both of you, it's good of you to help.
Phaedrux,
Ran that homeall and it's all good. Did the same thing as before, but I'll guess that it's doing it with less "confusion".
So will these do?
homex:
G91 ; relative positioning
G1 H2 Z5 F6000 ; lift Z relative to current position
G1 H1 X-200 F1800 ; move quickly to X axis endstop and stop there (first pass)
G1 X5 F6000 ; go back a few mm
G1 H1 X-200 F360 ; move slowly to X axis endstop once more (second pass)
G1 H2 Z-5 F6000 ; lower Z again
G90 ; absolute positioninghomey
G91 ; relative positioning
G1 H2 Z5 F6000 ; lift Z relative to current position
G1 H1 Y-200 F1800 ; move quickly to Y axis endstop and stop there (first pass)
G1 Y5 F6000 ; go back a few mm
G1 H1 Y-200 F360 ; move slowly to Y axis endstop once more (second pass)
G1 H2 Z-5 F6000 ; lower Z again
G90 ; absolute positioninghomez
G91 ; relative positioning
G1 H2 Z5 F6000 ; lift Z relative to current position
G90 ; absolute positioning
G1 X97.5 Y97.5 F6000 ; go to first probe point
G30 ; home Z by probing the bed
;G91 ; relative positioning
;G1 H2 Z5 F100 ; lift Z relative to current position
;G90 ; absolute positioningHow do they look?
-
@Corexy said in Mesh Compensation:
homez
G91 ; relative positioning
G1 H2 Z5 F6000 ; lift Z relative to current position
G90 ; absolute positioning
G1 X97.5 Y97.5 F6000 ; go to first probe point
G30 ; home Z by probing the bed
;G91 ; relative positioning
;G1 H2 Z5 F100 ; lift Z relative to current position
;G90 ; absolute positioningLooks good. Except if we're being picky the H2 on the final Z move here is not needed since it's been homed by the G30.
-
@Phaedrux said in Mesh Compensation:
@Corexy said in Mesh Compensation:
"spikyness" in the map that I get with Printbite.
Looking at pictures of printbite online it seems that is has a slightly glossy surface and a grid pattern on it. This would be a less than ideal surface for an IR sensor. the glossy pattern can make surface detection unreliable, and the dark pattern could be picked up causing it to trigger early. In fact the spiky image you posted looks like you can almost make out the grid.
Using a piece of matte paper (preferably dark) should give a better idea of the surface. And the image you posted of the paper may actually be closer to the true shape of the bed.
If you don't want to change out the bed surface, and you don't want to change the probe since it seems to work reliably enough with setting the Z height, if the bed is flat enough you could just run without compensation, or set it to a very sparse grid to just capture the edges and center point (3x3 grid).
I wouldn't use an inductive or capacitive probe, too much temperature variability and insensitivity to thin metal. The BLTouch can work well since it's a contact probe it will work on any surface. But it is a bit larger, and has a more involved installation and configuration process.
I don't think it's flat enough to get a good mesh without probing, and to be honest I'd rather get full use of that feature.
Has the plain matt black printbite been known to work? I just want that permanent "pop off" surface
-
@Corexy said in Mesh Compensation:
Has the plain matt black printbite been known to work?
If it is indeed plain, black, and matte, then I would think it would work well.
-
@Phaedrux said in Mesh Compensation:
@Corexy said in Mesh Compensation:
homez
G91 ; relative positioning
G1 H2 Z5 F6000 ; lift Z relative to current position
G90 ; absolute positioning
G1 X97.5 Y97.5 F6000 ; go to first probe point
G30 ; home Z by probing the bed
;G91 ; relative positioning
;G1 H2 Z5 F100 ; lift Z relative to current position
;G90 ; absolute positioningLooks good. Except if we're being picky the H2 on the final Z move here is not needed since it's been homed by the G30.
Hey mate, please be as picky as you like! I like it all clean and minimalist.
-
@Phaedrux said in Mesh Compensation:
@Corexy said in Mesh Compensation:
Has the plain matt black printbite been known to work?
If it is indeed plain, black, and matte, then I would think it would work well.
It's a pain, as I really like the IR probe for being non contact and accurate, and I don't know of any other print surface that is permanent and self releasing like the Printbite...I hope to keep both.
Hi David,
I've seen the issue of the IR probe on Printbite come up here a bit. Can you please advise if any of their latest versions works properly with your probe?
I spent quite a bit on those surfaces, so if I'm going to buy them again I'd like to know I'm not hindering the performance of the Duets full range of functions.
-
OK, so now the printer's back up I'd like to push on with this, despite the IR probe not being perfect.
When I run the mesh it seems to really help that first layer, but running G29 at the start of each print takes too long. Especially when my bed is extremely solid and made of precision ally plate, it doesn't seem to move or change at all.
I'd just like to run the mesh occasionally via the "calibration and compensation" tab in the DWC, and have every print just use the latest mesh.
Problem is that it doesn't seem to store the mesh after being shut down, as if I start a new print and open "calibration and compensation", it says there's no mesh compensation in play.
I really just want to do the G29 if there's some sign of first layer issues, rather than at the start of each print.
How can I store the last mesh, and make each future print use it?
; bed.g
; called to perform automatic bed compensation via G32
;
; generated by RepRapFirmware Configuration Tool v2.1.2 on Thu Nov 21 2019 10:53:55 GMT+1100 (Australian Eastern Daylight Time)
M561 ; clear any bed transform
G29 ; probe the bed and enable compensation -
@Corexy said in Mesh Compensation:
I'd just like to run the mesh occasionally via the "calibration and compensation" tab in the DWC, and have every print just use the latest mesh.
Problem is that it doesn't seem to store the mesh after being shut down, as if I start a new print and open "calibration and compensation", it says there's no mesh compensation in play.
I really just want to do the G29 if there's some sign of first layer issues, rather than at the start of each print.
How can I store the last mesh, and make each future print use it?
I have G29 S1 at the end of both my homez.g and homeall.g. When I first power the machine on it says no compensation is in use, however if I were to start a print (start gcode calls for a homeall/homez) or press the home z or homeall buttons, the compensation file is loaded once complete.
-
@Corexy Exactly as @sebkritikel says. As it says here: https://duet3d.dozuki.com/Wiki/Gcode?revisionid=HEAD#Section_G29_Mesh_bed_probe
G29 or G29 S0 - Probe the bed, save the height map in a file on the SD card, and activate bed compensation. The height map is stored in file is /sys/heightmap.csv.
G29 S1 - Load the height map from file and activate bed compensation. The default filename is as for S0 but a different filename an be specified using the P parameter.Add it to any script AFTER Z has been zeroed. If you do it before, it will generate an error that the heightmap has been loaded without the Z datum being set.
Ian