Duet Ethernet Mesh bed compensation

  • Hello, when I try to do the self-calibration map from the web panel with the G32 command, I get an error in the console that I could not go through several points. Once finished, I save it with the M374 command in the bed.g file. Then at the end of the config.g file, I have since every time I start the controller, load the compensation plane with M375, but it tells me that it cannot load it. When I print a piece, the compensation of the bed does not apply and I don't know why it is due. I use an NPN inductive sensor. I attach files to see if someone can tell me where the problem is.

    0_1565215339988_console (1).txt

  • The first error, with the probe not being able to reach a number of points, is because your probe is offset from your nozzle (set in config.g with G31 P530 X40 Y20 Z0.10) at X40 Y20. The points that it is unable to reach are at Y5, which would put the axis beyond the homing point. In the X axis, your probing starts at X42, so it can reach this point. Change the line in config.g from:

    M557 X42:340 Y5:240 P10:8
    M557 X42:340 Y22:240 P10:8

    I'm not sure if this makes the heightmap.csv unloadable, but this small change should at least fix the probing error, and see if it then works.


  • Great, now the errors don't come out. I wanted to ask you several questions, the first is that when you use the M557 command and define the final distance in X and Y, would that be the position of the nozzle or the sensor? Now, when printing, I am compensated, but the nozzle is very close to the bed and I have to use Z Baby Stepping, is it a failure to define Z in G31 or can it be a cura failure? (I enclose the gcode of the beginning of cura) Should I remove the initial gcode of cura?


  • administrators

    The M557 mesh probing limits are where you want the probe to be, not the nozzle. So the firmware will subtract the probe XY offsets form the M557 values. If that places the nozzle outside the M208 limits, the probe point will be omitted. So if e.g. you have a probe offset of +30 in X and you want to start probing from X=5 then that's fine if the nozzle can reach X=-25. In that case your Xmin homing switch (if that's what you have) will presumably trigger at something X=-25 or X=-30, and your M208 negative X limit will reflect this.

  • administrators

    If the nozzle starts at the wrong height above he bed when you print, that normally means that you haven't set Z=0 correctly. If you are homing Z using a Z probe, that usually means you haven't calibrated the Z probe trigger height. See https://duet3d.dozuki.com/Wiki/Test_and_calibrate_the_Z_probe.

  • Ok, so I guess I should tell the beginning of the cura code to take Z = 0 when I use G30, is that so?

  • @dc42 I have calibrated the inductive sensor Z with the tutorial that you have passed me, the problem is that when I define the new Z = 0 with G92 and modify Z in G31 in the config.g file, the board resets and when loading the file it returns to take Z = 0 with respect to the limit switches so that the nozzle collides with the bed again. I have added the instruction G30 S-1 in the cura code and then a G92 X0 Y0 Z0 E0, it looks more or less good, but a high tilt with respect to the bed and when using self-compensation in some areas it stays a little more raised with what some layers do not weld well. I also wanted to ask if in the config.g file, when I define the Z ofset in G31 is the distance left to the nozzle to touch the bed or when it starts printing is what goes down to reach Z = 0?

  • @kurn said in Duet Ethernet Mesh bed compensation:

    I have added the instruction G30 S-1 in the cura code and then a G92 X0 Y0 Z0 E0,

    That does not sound correct at all. You should not use G92 in your slicer start code at all. Except for E if you are using absolute extrusion. (you should use relative extrusion anyway)

    In bed.g you should remove these two lines:

    M500	; store parameters auto bed compensation
    M374	; saves the height map

    They are not needed. G29 will automatically save and apply the heightmap.csv

    In your homing files you are homing using the endstop switches to level the Z axis, which is fine, but you should then use the probe to find Z0 at bed center with G30.

    M584 Z2 U3 P4	  	   ; split Z motor control to Z and U, for it to work we have to show U (param P4) in the UI
    G1 S1 Z-180 U-180 F450 	   ; move Z down until the endstop is triggered  
    G1 Z5 U5 F450       	   ; go back a few mm
    G1 S1 Z-255 U-255 F180     ; move slowly to Y axis endstop once more (second pass)
    M584 Z2:3 P3		   ; back to combined axes and hidden 
    G90			   ; absolute positioning
    G92 Z0            	   ; set Z position to axis minimum (you may want to adjust this)

    After this section, add this:

    G1 Z10 F6000 ; Raise Z axis to 10mm above the bed
    G1 X200 Y200 ; Move probe to bed center (adjust for your bedsize and probe offset
    G30 ; probe center of the bed to establish Z0
    G29 S1 ; load saved heightmap
    G1 Z5 ; raise nozzle 5mm above bed
    G1 X0 Y0 ; return print head to 0,0 position

    You should also then remove M375 ; Load height map from your config.g. Instead, it will load when you home the printer after the Z0 has been defined.

Log in to reply