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

    Correction of heightmap is not really working

    Scheduled Pinned Locked Moved
    General Discussion
    5
    126
    6.8k
    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.
    • fcwiltundefined
      fcwilt @Sculpt Fabricator
      last edited by

      @sculpt-fabricator said in Correction of heightmap is not really working:

      that is my bed.g
      and config_probe.g

      OK your config_probe.g file looks good. So remove the commands I mentioned from config.g

      Please upload your bed.g file using the "upload file" tag. I will edit it to correct the errors.

      You simply have not used the required indentation.

      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

      Sculpt Fabricatorundefined 3 Replies Last reply Reply Quote 0
      • Sculpt Fabricatorundefined
        Sculpt Fabricator @fcwilt
        last edited by

        Got the lines changed in the config.g
        53c4553b-7416-43a3-88c3-e28bf4d94205-image.png

        Here is the bed.g
        bed.g

        fcwiltundefined 1 Reply Last reply Reply Quote 0
        • Sculpt Fabricatorundefined
          Sculpt Fabricator @fcwilt
          last edited by

          @fcwilt

          Here is homeall.g

          ; homeall.g
          ; called to home all axes
          
          G91                    					; relative positioning
          
          G1 H2 Z5 F200          		            ; lift Z relative to current position
          G1 H1 X-605 Y605 F3000 		            ; move quickly to X and Y axis endstops and stop there (first pass)     
          G1 H2 X5 Y-5 F600      		            ; go back a few mm
          G1 H1 X-605 Y605 F600  		            ; move slowly to X and Y axis endstops once more (second pass)           
                                                                
          G90                    		            ; absolute positioning
          M98 P"config_probe.g"
          G30                    		            ; home Z by probing the bed
          G1
          

          mesh.g

          M98 P"config_probe.g"        ; insure probe is using most recent configuration values
           
          G29 S2                       ; cancel mesh bed compensation
          M290 R0 S0                   ; cancel baby stepping
           
          G90                          ; absolute moves
           
          							 ; --- set Z=0 datum which is needed for creating a heightmap
           
          G1 Z5 F99999                 ; insure Z starting position is high enough to avoid probing errors
           
          G1 X270 Y270                 ; move probe to center of bed - set values aaa and bbb as appropriate
          G30                          ; do single probe which sets Z to trigger height of Z probe
           
          M557 X0:560 Y0:580 S58       ; define mesh grid 420 points S58       			
          G28
          G29 S0                       ; probe bed and create height map
          
          1 Reply Last reply Reply Quote 0
          • Sculpt Fabricatorundefined
            Sculpt Fabricator @fcwilt
            last edited by

            @fcwilt

            So another question. Modix had a Macro -
            Automatic tilt calibration + Bed Compensation - 101 points

            That Macro has all changed now with your code correct ?

            So how do I run the bed tilt calibration
            and the bed probe calibration ?

            I am confused on it I wipe those clean and add a M98 P"bed.g"
            and run it trough the macro
            or just type that into the console comand ?

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

              @sculpt-fabricator

              The current approach that the DWC expects is this:

              • the file mesh.g is used to create the height map needed for Mesh Bed Compensation.
              • the file bed.g is used for Manual or Automatic Bed Leveling.

              A G29 command executes mesh.g and creates the height map.

              To use the height map you would have a G29 S1 command somewhere in your print start code.

              A G32 command executes bed.g.

              I use G32 as part of my home all code.

              So it looks like you are already using the correct approach.

              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

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

                @sculpt-fabricator

                See if this bed.g file works for you:

                bed.g

                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

                Sculpt Fabricatorundefined 3 Replies Last reply Reply Quote 0
                • Sculpt Fabricatorundefined
                  Sculpt Fabricator @fcwilt
                  last edited by

                  @fcwilt
                  Thank you very very much, I will give it a try

                  1 Reply Last reply Reply Quote 0
                  • Sculpt Fabricatorundefined
                    Sculpt Fabricator @fcwilt
                    last edited by

                    @fcwilt
                    I got this -
                    fa002fd1-bf75-4fd2-aa26-ecda2fd15779-image.png

                    Does that command need a ; in front of it ?

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

                      @sculpt-fabricator

                      Sorry there is a missing comment in front of that line.

                      It should be this:

                      ; --- set Z=0 datum which can be affected by leveling ---
                       
                      G1 X270 Y270 ; move probe to center of bed - set values aaa and bbb as appropriate
                      G30          ; do single probe which sets Z to trigger height of Z probe
                       
                      

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

                      Sculpt Fabricatorundefined 2 Replies Last reply Reply Quote 0
                      • Sculpt Fabricatorundefined
                        Sculpt Fabricator @fcwilt
                        last edited by

                        @fcwilt
                        Ok now I cant get the bed tilt leveling right.
                        I am not understanding the placement of z screws

                        bed.g M671 , needs to match the config.g M671 correct ??

                         M671 X-189:640:640:-189 Y643:643:-64:-64 S10                        Anticlockwise
                        
                        1. why does it say anticlockwise
                        2. In my bed.g it says to run the probe pattern -
                         ; run leveling pass
                         
                          G30 P0 X5 Y5 Z-99999      ; probe near a leadscrew
                          G30 P1 X570 Y5 Z-99999     ; probe near a leadscrew 
                          G30 P2 X570   Y580   Z-99999     ; probe near a leadscrew
                          G30 P3 X5   Y580   Z-99999 S4  ; probe near a leadscrew and calibrate 4 motors 
                         
                        

                        But that is running from the left rear , clockwise

                        But when it runs the Tilt calibration, it starts at the front left and go's to the front right, and so on, Anticlockwise.

                        In the Gcode Directory it examples M671 going clockwise

                        43805def-6cf9-460c-90a0-732d0711ac34-image.png

                        I am stumped !!

                        fcwiltundefined 1 Reply Last reply Reply Quote 0
                        • Sculpt Fabricatorundefined
                          Sculpt Fabricator @fcwilt
                          last edited by

                          @fcwilt
                          also If I skip the tilt calibration and go to Bed compensation,
                          I can strategically place a high spot under one of the probe points.
                          and it shows me that the map is 90 deg out.
                          to correct it, it would have to turn 90 deg Anticlockwise.

                          if that helps

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

                            @sculpt-fabricator

                            Since we are putting everything related to bed leveling in bed.g there should not be a M671 command in config.g.

                            I don't know why it says "anticlockwise" - I did not put that there.

                            As I recall what does need to match up is the order of the Z steppers in the M584 command and the order of the positions specified in the M671 command.

                            I also have the G30 commands probe the bed in the order specified in the M671 command though I don't know if that is a requirement.

                            But my bed leveling works so it doesn't hurt to keep everything in the same order, even if it is not required.

                            The height map is not related to anything being done in bed leveling.

                            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

                            1 Reply Last reply Reply Quote 0
                            • Sculpt Fabricatorundefined
                              Sculpt Fabricator @fcwilt
                              last edited by Sculpt Fabricator

                              @fcwilt

                              Ok so still having some problems
                              We are following these instructions for setting the Z=0 datum

                              We run the Z offset macro that you made to move to the center of the bed
                              and probe to set the config_probe.g G31 Z

                              We got a reading of 1.752

                              So we changed that in the Config.probe.g
                              (do we need to change it anywhere else ? for example mesh.g
                              ? global_mesh_g in config.g file ? )

                              Then we run your probe in center of be code - With a added Z0

                              G1 X{((move.axes[0].max + move.axes[0].min) / 2) - sensors.probes[0].offsets[0]}, Y{((move.axes[1].max + move.axes[1].min) / 2) - sensors.probes[0].offsets[1]}, F1800  Z0
                              
                              

                              It should be at the same 1.752 but it is not. Its further away from the
                              bed than that by .40

                              so we go back and add that .40 to the 1.752 = 2.152 in the config.probe.g

                              it didn't work. we are still further away.

                              its not saving it for some reason.

                              fcwiltundefined Sculpt Fabricatorundefined 2 Replies Last reply Reply Quote 0
                              • fcwiltundefined
                                fcwilt @Sculpt Fabricator
                                last edited by

                                @sculpt-fabricator

                                Where are you executing the G30 at the center of the bed to set the Z=0 Datum?

                                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

                                Sculpt Fabricatorundefined 1 Reply Last reply Reply Quote 0
                                • Sculpt Fabricatorundefined
                                  Sculpt Fabricator @fcwilt
                                  last edited by

                                  @fcwilt
                                  Yes, that is where we are executing it from, the center of the bed.

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

                                    @sculpt-fabricator said in Correction of heightmap is not really working:

                                    @fcwilt
                                    Yes, that is where we are executing it from, the center of the bed.

                                    Sorry I wasn't clear. In your post I didn't see you mention that you were executing a G30.

                                    When are you doing that?

                                    In what bit of code are you doing that?

                                    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

                                    Sculpt Fabricatorundefined 2 Replies Last reply Reply Quote 0
                                    • Sculpt Fabricatorundefined
                                      Sculpt Fabricator @Sculpt Fabricator
                                      last edited by

                                      @sculpt-fabricator
                                      config.g

                                        ;Generated by Modix - 2.0
                                      ;Modix Big-60, Duex Expansion, Dual Printhead
                                      ; Configuration file for Duet WiFi (firmware version 3.3)
                                      
                                      
                                      ; General preferences_________________________________________________________
                                      G21 														; dimentions in mm
                                      G90                                             			; for X,Y,Z     use absolute coordinate values
                                      M83                                             			; for E0,E1,etc use relative coordinate values
                                      M111 S0 													; Debug off
                                      M555 P2 													; Set output to look like Marlin
                                      M575 P0 B57600 S2              								; communication parameters for USB serial
                                      M575 P1 B57600 S1											; Set auxiliary serial port baud rate and require checksum (for PanelDue)
                                      
                                      ; Network_____________________________________________________________________
                                      M550 P"Big 60"                         						; set printer name
                                      M552 S1                                        				; enable (S1) networking (WiFi)
                                      M586 S1 P1 ;T0                 								; enable (S1) FTP    (P1) Disable TLS (T0)
                                      M586 S1 P2 ;T0                								; enable (S1) Telnet (P2) Disable TLS (T0)
                                      
                                      ; mode control variables _____________________________________________________
                                      global g_probe_z_trigger = 1.752                            ; default - set as appropriate for the Z probe 
                                      global g_z_home            = 5                  ; can be used to always move Z to known height
                                      global g_z_datum_set       = false              ; can be used to prevent unneeded setting of Z=0 datum
                                       
                                      global g_map_mode          = "300 point"        ; determines which kind of height map is created/loaded
                                      global g_probe_mode        = "two consecutive"  ; determines if z proving used consecutive or averaging
                                      global g_level_mode        = "4 point"          ; determines if 3 or 4 points are used for leveling
                                       
                                      global g_print_beg_prime   = 10                 ; default - set desired in filament config.g
                                      global g_print_beg_retract = 0                  ; default - set desired in filament config.g
                                       
                                      global g_print_end_retract = 0                  ; default - set desired in filament config.g
                                      global g_print_end_mode    = "heat off"         ; determines if heaters are turned off when print is done
                                       
                                      
                                      ; Drives_________________________________________________________________________
                                      
                                      ;Main board______________________________________________________________________
                                      M569 P0 S0                                                          ; Physical drive 0 . X1
                                      M569 P1 S1                                                          ; Physical drive 1 . X2
                                      M569 P3 S1                                                       	; Physical drive 3 . Main Extruder
                                      M569 P4 S0                                                       	; Physical drive 4 . Secondary Extruder									
                                      ;Duex5 board_____________________________________________________________________
                                      M569 P5 S0                                                       	; Physical drive 5 . Y
                                      M569 P6 S0                                                       	; Physical drive 6 . Z1 (-190 , 664) 
                                      M569 P7 S0                                                       	; Physical drive 7 . Z2 (-190, -64) 
                                      M569 P8 S0                                                       	; Physical drive 8 . Z3 (680 , -64) 
                                      M569 P9 S0                                                       	; Physical drive 9 . Z4 (680 , 664) 
                                      
                                      ;Settings_________________________________________________________
                                      M584 X0:1 Y5 Z6:7:8:9  E3:4 P3								   	    ; Driver mapping                                                 
                                      
                                      
                                      ;___________________________________________________________________
                                      M350 X16 Y16 I1  		                            				; Configure microstepping with interpolation                     
                                      M350 Z16 E16:16 I0              		                			; Configure microstepping without interpolation
                                      
                                      M92 X100.00 Y100.00 Z2000.00 E686:700       				        ; Set steps per mm                                                
                                      
                                      M566 X300 Y500 Z100.00 E120.00:120.00  P1               		    ; Set maximum instantaneous speed changes (mm/min)                
                                      M203 X18000.00 Y18000.00 Z300.00 E1200.00:1200.00           		; Set maximum speeds (mm/min)                                     
                                      M201 X1000 Y1000 Z120.00 E250.00:250.00                  			; Set accelerations (mm/s^2)                                      
                                      M204 P500                                     			            ; Set print and travel accelerations  (mm/s^2)
                                      M906 X1800 Y1800.00 E1270:1270  I40 					        	; Set motor currents (mA) and motor idle factor in per cent (E1270 per dyze)   
                                      M906 Z1800.00 I50 													; Set motor currents (mA) and motor idle factor in per cent
                                      M84 S100                                          					; Set idle timeout - 100 seconds
                                      
                                      ; Axis Limits
                                      
                                      M208 X0 Y0 Z-0.5 S1                               			 	    ; set axis minima
                                      M208 X580 Y545 Z630 S0                          					; set axis maxima 580;580
                                      
                                      ; Endstops
                                      
                                      M574 X1 S1 P"xstop + e0stop"                            	; configure switch-type (e.g. microswitch) endstop for low end on X via pin xstop
                                      M574 Y2 S1 P"ystop"                            				; configure switch-type (e.g. microswitch) endstop for low end on Y via pin ystop
                                      
                                      
                                      ; Z-Probe
                                      
                                      
                                      ;M558 P9 C"^zprobe.in" H5 F120 T6000 A1 R1  					; set Z probe type to bltouch and the dive height + speeds
                                      ;M950 S0 C"duex.pwm5"										; set probe pin
                                      M98 P"config_probe.g"
                                      M556 S50 X0 Y0 Z0		                               		; set orthogonal axis compensation parameters woher kommt der test wie wurde der Winkel bestimmt Unklar!
                                      M376 H10													; stop z-leveling after 10 layers
                                      
                                      ; Heaters___________________________________________________________
                                      M140 H-1                                       				; disable heated bed (overrides default heater mapping)
                                      
                                      
                                      

                                      macro/g_probe_z_trigger

                                      set global.g_probe_z_trigger = 1.752 ; set the variable
                                       
                                      M98 P"config_probe.g"              ; configure the probe using the new value
                                       
                                      ; I put this G31 here just to show the current settings - it is optional
                                      ; You can provide visual feedback some other way, say, using an M291 command
                                       
                                      G31
                                      

                                      mesh.g

                                      M98 P"config_probe.g"        ; insure probe is using most recent configuration values
                                       
                                      G29 S2                       ; cancel mesh bed compensation
                                      M290 R0 S0                   ; cancel baby stepping
                                       
                                      G90                          ; absolute moves
                                       
                                      							 ; --- set Z=0 datum which is needed for creating a heightmap
                                       
                                      G1 Z5 F99999                 ; insure Z starting position is high enough to avoid probing errors
                                       
                                      G1 X270 Y270                 ; move probe to center of bed - set values aaa and bbb as appropriate
                                      G30                          ; do single probe which sets Z to trigger height of Z probe
                                       
                                      M557 X0:580 Y0:510 S29:25.5       ; define mesh grid 420 points S58       			
                                      G28
                                      G29 S0                       ; probe bed and create height map
                                      

                                      homeall.g

                                      ; homeall.g
                                      ; called to home all axes
                                      
                                      G91                    					; relative positioning
                                      
                                      
                                      G1 H2 Z5 F200          		            ; lift Z relative to current position
                                      G1 H1 X-605 Y605 F3000 		            ; move quickly to X and Y axis endstops and stop there (first pass)     
                                      G1 H2 X5 Y-5 F600      		            ; go back a few mm
                                      G1 H1 X-605 Y605 F600  		            ; move slowly to X and Y axis endstops once more (second pass)           
                                                                                            
                                      G90                    		            ; absolute positioning
                                      M98 P"config_probe.g"
                                      G30                    		            ; home Z by probing the bed
                                      G1
                                      
                                      

                                      macro/z-offset calibration

                                      ; Z-setup Macro
                                      ; setup Z distance
                                      
                                      M300 S666 P666               ; beeo
                                       
                                      M291 S3 R"Test Z Probe Trigger Height" P"Press OK to continue, or CANCEL to abort"
                                       
                                      G28                          ; home all
                                       
                                      G29 S2                       ; cancel mesh bed compensation
                                      M290 R0 S0                   ; cancel baby stepping
                                       
                                      G90                          ; absolute movements
                                       
                                      ; this complicated looking command computes the X and Y parameters needed to move the probe to the center of the bed
                                       
                                      G1 X{((move.axes[0].max + move.axes[0].min) / 2) - sensors.probes[0].offsets[0]}, Y{((move.axes[1].max + move.axes[1].min) / 2) - sensors.probes[0].offsets[1]}, F1800
                                       
                                      M300 S1111 P666              ; beep
                                       
                                      M564 H1 S0                   ; ignore axis limits
                                       
                                      M291 S2 R"Test Z Probe Trigger Height - Step 1" P"Place a paper sheet under the nozzle and raise the bed until slight friction can be noticed" Z1 ;
                                       
                                      G92 Z0                       ; the nozzle should now be just touching the bed so set the logical Z position to match the physical Z position
                                       
                                      M300 S666 P666               ; beep
                                       
                                      M291 S2 R"Test Z Probe Trigger Height - Step 2" P"Please remove the paper sheet and wait for the bed-probing to begin" ;
                                       
                                      G1 Z5 F200                   ; insure Z position will allow for probing
                                       
                                      G30 S-1                      ; probe the bed and report the Z probe trigger height
                                       
                                      M564 S1 H1                   ; respect axis limits
                                       
                                      M291 S2 R"Test Z Probe Trigger Height - Step 3" P"Copy the reported height value on the G-Code console and paste it into the config_probe.g file"
                                      
                                      
                                      1 Reply Last reply Reply Quote 0
                                      • Sculpt Fabricatorundefined
                                        Sculpt Fabricator @fcwilt
                                        last edited by

                                        @fcwilt

                                        We are running the G30 in the
                                        macro/z-offset Calibration

                                        ; Z-setup Macro
                                        ; setup Z distance
                                        
                                        M300 S666 P666               ; beeo
                                         
                                        M291 S3 R"Test Z Probe Trigger Height" P"Press OK to continue, or CANCEL to abort"
                                         
                                        G28                          ; home all
                                         
                                        G29 S2                       ; cancel mesh bed compensation
                                        M290 R0 S0                   ; cancel baby stepping
                                         
                                        G90                          ; absolute movements
                                         
                                        ; this complicated looking command computes the X and Y parameters needed to move the probe to the center of the bed
                                         
                                        G1 X{((move.axes[0].max + move.axes[0].min) / 2) - sensors.probes[0].offsets[0]}, Y{((move.axes[1].max + move.axes[1].min) / 2) - sensors.probes[0].offsets[1]}, F1800
                                         
                                        M300 S1111 P666              ; beep
                                         
                                        M564 H1 S0                   ; ignore axis limits
                                         
                                        M291 S2 R"Test Z Probe Trigger Height - Step 1" P"Place a paper sheet under the nozzle and raise the bed until slight friction can be noticed" Z1 ;
                                         
                                        G92 Z0                       ; the nozzle should now be just touching the bed so set the logical Z position to match the physical Z position
                                         
                                        M300 S666 P666               ; beep
                                         
                                        M291 S2 R"Test Z Probe Trigger Height - Step 2" P"Please remove the paper sheet and wait for the bed-probing to begin" ;
                                         
                                        G1 Z5 F200                   ; insure Z position will allow for probing
                                         
                                        G30 S-1                      ; probe the bed and report the Z probe trigger height
                                         
                                        M564 S1 H1                   ; respect axis limits
                                         
                                        M291 S2 R"Test Z Probe Trigger Height - Step 3" P"Copy the reported height value on the G-Code console and paste it into the config_probe.g file"
                                        
                                        
                                        fcwiltundefined 1 Reply Last reply Reply Quote 0
                                        • Sculpt Fabricatorundefined
                                          Sculpt Fabricator @fcwilt
                                          last edited by

                                          @fcwilt
                                          We are running the z-offset calibration with the G30 in it
                                          after we run the z probe calibration

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

                                            @sculpt-fabricator

                                            OK I see now.

                                            A few things to mention:

                                            • For the other person I had shown how to use a variable to set the G31 Z Trigger Height setting. You have created the variable but I don't see that you are using it in config_probe.g.
                                              Using the variable is optional. If you are not going to use it in config_probe.g then you can remove any other code referencing the variable.

                                            • You mention using the formula to move to the center of the bed with Z0 added. But you show it after the F parameter without a comma separating from the F parameter. I don't believe it actual does anything without the comma. What was the intent of executing this command?

                                            • Anytime you change anything in your config_probe.g file you need to be sure it is executed before you attempt to use the new setting(s) in the file.

                                            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

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