Mesh grid compensation - Setup on Initial Gcode



  • Hi all,

    Yesterday I tried to print a very simple model and it failed miserably on both my duet controlled machines. Problem was, not sticking to the surface. I draw my attention however that it was totally unproblematic on one of my Marlin machines.

    On my Kossel, there was always an warning message that bothered me but, because since I installed the Duet never got a failed print, I just chose to ignore it (never touch a working OS), up until now.

    The warning the Kossel gave me, but continues to print, is:

    Warning: the height map was loaded when the current Z=0 datum was not determined probing. This may result in a height offset.
    

    When I googled it, I came across a page I never saw before. On this page it is described that I should be running a G30 or a Delta calibration before every print. I'm just trying to wrap my head around it because, to be honest, I don't understand it. With a Delta Calibration, the height, endstop offsets, etc. are calibrated again. But, on the other hand, all these values should not change significantly from print to print. They are static values, as I see it.
    Up until know, I just measured a Mesh Grid (saved on the SD card) and I run a G29 S1 on my Initial Gcode on my Slicer. I thought it was the correct way to do it and I'm sure I read it somewhere in the documentation.

    Anyhow, I modified the Initial Gcode and added a G30 command and a M291 to remind me to remove the probe. My initial Gcode looks like this now:

    G28 ; home all axes
    
    G1 Z15.  ; go close to to the surface
    G30        ; Z=0 datum thing
    G1 Z75    ; go up a bit
    M291 P"Remove probe" R"Warning" S3   ; warning message
    
    G29 S1  ;use mesh grid to compensate
    G92 E0
    G1 F1200 E10
    G92 E0
    

    Now before it prints, the G30 is executed and I have to remove the probe before continuing. However It still does not work and I can figure it why. I get a warning message (same as before) and an error:

    6:45:05 PM.   Warning: the height map was loaded when the current Z=0 datum was not determined probing. This may result in a height offset.
    6:44:54 PM.   Error: Z probe already triggered at start of probing move
    

    The probe is just one of these micro switches that goes right under the nozzle and is held by a magnet. And I know it works just fine because the mesh grid mapping works well.

    The Establish a Z=0 datum using the Z probe section on the link above claims that the Z=0 datum should be done with the nozzle and bed at working temperatures, which is very fine with your nozzle is the probe or for an IR probe, but for a snap-on micro switch is not really convenient.

    Most probably I misunderstood something here, so any help would be much appreciated. I had the impression that, with a Delta printer, once you have calibrated it, you are pretty much done with it unless you change something. That's why am really wondering about having to run a delta calibration or a G30 command each time I want to print.

    Thanks in advance



  • @FelixH

    You should NOT have to run a complete delta cal before every print.

    Run a single G30 before each print is a good idea as it can compensate for changes in nozzle-to-bed spacing that may occur as the hotend/bed heat up.

    In your case it sounds like you cannot do that.

    Another question: When you create the height map do you first do a G30?

    Frederick



  • Since your probe isn't exactly convenient for doing a G30 before each print, perhaps consider temporarily switching to the manual probe type (M558 P0) which would prompt you to jog the nozzle down until it touches the bed and then sets Z0 based on that.



  • @fcwilt said in Mesh grid compensation - Setup on Initial Gcode:

    @FelixH

    You should NOT have to run a complete delta cal before every print.

    Another question: When you create the height map do you first do a G30?

    Frederick

    No, I don't think I did. I will try that this afternoon...



  • @Phaedrux said in Mesh grid compensation - Setup on Initial Gcode:

    Since your probe isn't exactly convenient for doing a G30 before each print, perhaps consider temporarily switching to the manual probe type (M558 P0) which would prompt you to jog the nozzle down until it touches the bed and then sets Z0 based on that.

    I get what you mean, but it would be really inconvenient, don't you think?. The probe I use is a really common type, I'd assume.



  • @fcwilt I did do a G30 before a height map. No change, same error same everything



  • @FelixH said in Mesh grid compensation - Setup on Initial Gcode:

    @Phaedrux said in Mesh grid compensation - Setup on Initial Gcode:

    Since your probe isn't exactly convenient for doing a G30 before each print, perhaps consider temporarily switching to the manual probe type (M558 P0) which would prompt you to jog the nozzle down until it touches the bed and then sets Z0 based on that.

    I get what you mean, but it would be really inconvenient, don't you think?. The probe I use is a really common type, I'd assume.

    Using a removable probe is fine for things like the delta cal process because it is done infrequently.

    It is not a probe that lends itself to setting the Z=0 datum which should be done before each print.

    Use the nozzle as a probe would allow you do set the Z=0 datum with hotend/bed at working temps.

    Post the two lines of gcode that you are executing to configure your probe AND post your most recent heightmap.

    Please and thanks.

    Frederick



  • @fcwilt said in Mesh grid compensation - Setup on Initial Gcode:

    Post the two lines of gcode that you are executing to configure your probe AND post your most recent heightmap.

    Please and thanks.

    Frederick

    The lines of code I use for the setup are on my initial post, if that's is what you mean. I will try to post the bed map, later this afternoon. But it looks quite ok, to be honest.

    What I cannot wrap my head around of, is why it is necessary to set this Z=0 datum thing every single time before printing. What does it change from print to print? Everything is static except for the effector...



  • I think the issue is more one of 'if holding current was removed from the motors'.
    In that case a minor position change is pretty much guaranteed.
    I have set up holding current and I have removed the automatic 'shut down the motors' command from my start/end scripts so as long as I don't switch off the power or reset the duet I only do an initial z zero run.



  • @jens55 said in Mesh grid compensation - Setup on Initial Gcode:

    I think the issue is more one of 'if holding current was removed from the motors'.
    In that case a minor position change is pretty much guaranteed.
    I have set up holding current and I have removed the automatic 'shut down the motors' command from my start/end scripts so as long as I don't switch off the power or reset the duet I only do an initial z zero run.

    Yeah, I have something similar on my config.g. Would you mind sharing the script you use? Also, which kind of probe do you use?



  • @FelixH said in Mesh grid compensation - Setup on Initial Gcode:

    The lines of code I use for the setup are on my initial post, if that's is what you mean. I will try to post the bed map, later this afternoon. But it looks quite ok, to be honest.

    Sorry but I do not see the two lines that configure a Z probe.

    What I cannot wrap my head around of, is why it is necessary to set this Z=0 datum thing every single time before printing. What does it change from print to print? Everything is static except for the effector...

    The heating of the hotend/bed can cause a change in the nozzle-to-bed spacing.

    On my printer my bed is a 5 mm piece of aluminum plate with a 3 mm piece of glass. The bed thermistor is part of the silicone heater and thus the bed appears to be up to temp before the temp of the entire mass has stabilized.

    Frederick



  • @fcwilt said in Mesh grid compensation - Setup on Initial Gcode:

    Sorry but I do not see the two lines that configure a Z probe.

    Sorry, did you mean on my config.g?

    ; Configuration file for Duet WiFi (firmware version 1.20 or newer)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool on Thu Jul 12 2018 20:54:00 GMT-0500 (Central Daylight Time)
    
    ; General preferences
    G90                                                ; Send absolute coordinates...
    M83                                                ; ...but relative extruder moves
    
    ; After G32 auto-calibrate, copied from config-override.g
    ; Note: G31 Z (below) affects M665 H, and this is NOT yet calibrated.
    
    M665 L267.0 R132.382 H301.20 B106.0 X-0.174 Y0.096 Z0.0      ; Set delta radius, diagonal rod length, printable radius and homed height
    M666 X-0.14 Y-0.16 Z0.30 A0.00 B0.00                      ; Put your endstop adjustments here, or let auto calibration find them
    
    
    ; Network
    M550 P"Kossel"                                     ; Set machine name
    M552 S1                                            ; Enable network
    ;*** Access point is configured manually via M587
    M586 P0 S1                                         ; Enable HTTP
    M586 P1 S0                                         ; Disable FTP
    M586 P2 S0                                         ; Disable Telnet
    
    ; Drives
    M569 P0 S0                                         ; Drive 0 goes forwards
    M569 P1 S0                                         ; Drive 1 goes forwards
    M569 P2 S0                                         ; Drive 2 goes forwards
    M569 P3 S1                                         ; Drive 3 goes forwards
    M350 X16 Y16 Z16 E16 I1                            ; Configure microstepping with interpolation
    M92 X80 Y80 Z80 E96                                ; Set steps per mm
    M566 X300 Y300 Z300 E300                           ; Set maximum instantaneous speed changes (mm/min)
    M203 X12000 Y12000 Z12000 E12000                   ; Set maximum speeds (mm/min)
    M201 X3000 Y3000 Z3000 E3000                       ; Set accelerations (mm/s^2)
    M906 X1000 Y1000 Z1000 E1000 I50                   ; Set motor currents (mA) and motor idle factor in per cent
    M84 S30                                            ; Set idle timeout
    
    ; Axis Limits
    M208 Z0 S1                                         ; Set minimum Z
    
    ; Endstops
    M574 X2 Y2 Z2 S1                                   ; Set active high endstops
    
    ; Z-Probe
    M558 P4 H5 F120 T6000                              ; Set Z probe type to switch and the dive height + speeds
    G31 P1000 X0 Y0 Z16.10                             ; Set Z probe trigger value, offset and trigger height
    M557 R105 S20                                      ; Define mesh grid
    
    ; Heaters
    M307 H0 B0 S1.00                                   ; Disable bang-bang mode for the bed heater and set PWM limit
    M305 P0 T100000 B4267 C0 R4700                     ; Set thermistor + ADC parameters for heater 0
    M143 H0 S95                                        ; Set temperature limit for heater 0 to 120C
    
    M305 P1 T100000 B4267 C0 R4700                     ; Set thermistor + ADC parameters for heater 1
    M143 H1 S280                                       ; Set temperature limit for heater 1 to 280C
    
    M307 H1 A452.1 C123.2 D7.5 V12.5 B0                ;Hotend Autotune  //Changed
    M307 H0 A158.1 C 741.8 D0.7 V12.3 B0               ;Bed Autotune //Changed
    
    ; Fans
    M106 P0 S0 I0 F500 H-1                             ; PART FAN   -  Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
    M106 P1 S1 I0 F500 H1 T45                          ; HOTEND FAN -  Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on
    M106 P2 S0.20 I0 F500 H-1                          ; ELECTRONICS FAN - Set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned off
    
    ; Tools
    M563 P0 D0 H1                                      ; Define tool 0
    G10 P0 X0 Y0 Z0                                    ; Set tool 0 axis offsets
    G10 P0 R0 S0                                       ; Set initial tool 0 active and standby temperatures to 0C
    
    ; Automatic power saving
    M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; Set voltage thresholds and actions to run on power loss
    
    ; Custom settings are not configured
    
    
    


  • I just run a G30 command followed by a "Run Mesh Grid" on the Machine Control tab of the web interface. I'm attaching a picture of how it looks like.

    Screenshot_2019-12-11 Kossel.png



  • Hi,

    OK I see the lines for configuring the z probe and they look ok.

    The height map looks pretty good too.

    Have you verified that after doing a G30 that at Z=0 the nozzle is just touching the bed?

    Frederick



  • @fcwilt said in Mesh grid compensation - Setup on Initial Gcode:

    Have you verified that after doing a G30 that at Z=0 the nozzle is just touching the bed?

    Frederick

    Well, it seems ok at the beginning, but tomorrow I will check it with a gauge or a sheet of paper. However, today after I did the G30 followed by the Mesh Calibration, I tried to print the model again and, aside from failing again, it also gave me the same error:

    Warning: the height map was loaded when the current Z=0 datum was not determined probing. This may result in a height offset.
    


  • Well the warning is telling you exactly what it says. At the point in time that the heightmap was loaded, the Z0 point wasn't defined by a G30 probe, so there could potentially be an offset between the actual bed surface is and where the Z0 is currently assumed to be based on endstop homing.

    Now if your homed height is perfectly correct, Z0 should touch the bed and the warning is just a warning. If your homed height is off, then Z0 will not be touching the bed and your heightmap won't be effective because of the offset.



  • @FelixH said in Mesh grid compensation - Setup on Initial Gcode:

    Well, it seems ok at the beginning, but tomorrow I will check it with a gauge or a sheet of paper. However, today after I did the G30 followed by the Mesh Calibration, I tried to print the model again and, aside from failing again, it also gave me the same error:

    Warning: the height map was loaded when the current Z=0 datum was not determined probing. This may result in a height offset.
    

    Perhaps the height map is being load somewhere else before you are doing the G30?

    Frederick



  • @FelixH said in Mesh grid compensation - Setup on Initial Gcode:

    G28 ; home all axes

    G1 Z15. ; go close to to the surface
    G30 ; Z=0 datum thing
    G1 Z75 ; go up a bit
    M291 P"Remove probe" R"Warning" S3 ; warning message

    G29 S1 ;use mesh grid to compensate
    G92 E0
    G1 F1200 E10
    G92 E0

    Can you post your homeall/homedelta?



  • @fcwilt said in Mesh grid compensation - Setup on Initial Gcode:

    Perhaps the height map is being load somewhere else before you are doing the G30?

    Frederick

    this is my initial Gcode, set on the Slicer. Clearly the G30 command is sent before the G29 S1

    G28 ; home all axes
    
    G1 Z15.  ; go close to to the surface
    G30        ; Z=0 datum thing
    G1 Z75    ; go up a bit
    M291 P"Remove probe" R"Warning" S3   ; warning message
    
    G29 S1  ;use mesh grid to compensate
    G92 E0
    G1 F1200 E10
    G92 E0
    


  • @Phaedrux said in Mesh grid compensation - Setup on Initial Gcode:

    Can you post your homeall/homedelta?

    ; homedelta.g

    ; called to home all towers on a delta printer
    ;
    ; generated by RepRapFirmware Configuration Tool on Thu Jul 12 2018 20:54:00 GMT-0500 (Central Daylight Time)
    G91                        ; relative positioning
    G1 S1 X355 Y355 Z355 F1800 ; move all towers to the high end stopping at the endstops (first pass)
    G1 X-5 Y-5 Z-5 F1800 S2    ; go down a few mm
    G1 S1 X10 Y10 Z10 F360     ; move all towers up once more (second pass)
    G1 Z-5 F6000               ; move down a few mm so that the nozzle can be centred
    G90                        ; absolute positioning
    G1 X0 Y0 F6000             ; move X+Y to the centre
    

    I don't have any homeall.g on my sys folder


Log in to reply