Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    Mesh grid compensation - Setup on Initial Gcode

    Scheduled Pinned Locked Moved Solved
    Tuning and tweaking
    5
    51
    2.4k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • FelixHundefined
      FelixH
      last edited by

      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

      fcwiltundefined 1 Reply Last reply Reply Quote 0
      • fcwiltundefined
        fcwilt @FelixH
        last edited by

        @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

        Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

        FelixHundefined 2 Replies Last reply Reply Quote 0
        • Phaedruxundefined
          Phaedrux Moderator
          last edited by

          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.

          Z-Bot CoreXY Build | Thingiverse Profile

          FelixHundefined 1 Reply Last reply Reply Quote 0
          • FelixHundefined
            FelixH @fcwilt
            last edited by

            @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...

            1 Reply Last reply Reply Quote 0
            • FelixHundefined
              FelixH @Phaedrux
              last edited by

              @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.

              fcwiltundefined 1 Reply Last reply Reply Quote 0
              • FelixHundefined
                FelixH @fcwilt
                last edited by

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

                1 Reply Last reply Reply Quote 0
                • fcwiltundefined
                  fcwilt @FelixH
                  last edited by

                  @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

                  Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

                  FelixHundefined 1 Reply Last reply Reply Quote 0
                  • FelixHundefined
                    FelixH @fcwilt
                    last edited by

                    @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...

                    fcwiltundefined 1 Reply Last reply Reply Quote 0
                    • jens55undefined
                      jens55
                      last edited by

                      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.

                      FelixHundefined 1 Reply Last reply Reply Quote 0
                      • FelixHundefined
                        FelixH @jens55
                        last edited by

                        @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?

                        1 Reply Last reply Reply Quote 0
                        • fcwiltundefined
                          fcwilt @FelixH
                          last edited by

                          @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

                          Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

                          FelixHundefined 1 Reply Last reply Reply Quote 0
                          • FelixHundefined
                            FelixH @fcwilt
                            last edited by

                            @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
                            
                            
                            
                            1 Reply Last reply Reply Quote 0
                            • FelixHundefined
                              FelixH
                              last edited by

                              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

                              1 Reply Last reply Reply Quote 0
                              • fcwiltundefined
                                fcwilt
                                last edited by fcwilt

                                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

                                Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

                                FelixHundefined 1 Reply Last reply Reply Quote 0
                                • FelixHundefined
                                  FelixH @fcwilt
                                  last edited by FelixH

                                  @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.
                                  
                                  fcwiltundefined 1 Reply Last reply Reply Quote 0
                                  • Phaedruxundefined
                                    Phaedrux Moderator
                                    last edited by

                                    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.

                                    Z-Bot CoreXY Build | Thingiverse Profile

                                    1 Reply Last reply Reply Quote 0
                                    • fcwiltundefined
                                      fcwilt @FelixH
                                      last edited by

                                      @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

                                      Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

                                      FelixHundefined 1 Reply Last reply Reply Quote 0
                                      • Phaedruxundefined
                                        Phaedrux Moderator
                                        last edited by

                                        @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?

                                        Z-Bot CoreXY Build | Thingiverse Profile

                                        FelixHundefined 1 Reply Last reply Reply Quote 0
                                        • FelixHundefined
                                          FelixH @fcwilt
                                          last edited by

                                          @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
                                          
                                          Phaedruxundefined 1 Reply Last reply Reply Quote 0
                                          • FelixHundefined
                                            FelixH @Phaedrux
                                            last edited by

                                            @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

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post
                                            Unless otherwise noted, all forum content is licensed under CC-BY-SA