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

    Correction of heightmap is not really working

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

                                        @fcwilt
                                        So I don't switch out build plates, Just run a lot of the same material.
                                        I know he wanted that extra part to change out plates.
                                        So how do I need to change that.

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

                                          @fcwilt

                                          So I need change my config_probe.g Z setting back to
                                          global.g_probe_z_trigger
                                          like this

                                          ; config_probe.g
                                          ; config the probe and call the other files.g
                                           
                                          M558 P9 C"^zprobe.in" H5 F120 T6000 A1 R1
                                          M950 S0 C"duex.pwm5"
                                          G31 P25 X0 Y-30 Z{global.g_probe_z_trigger} ; set Z probe trigger value, offset and trigger height (larger value is closer)G31 P500 X0 Y-30 Z1.73
                                          
                                          fcwiltundefined 1 Reply Last reply Reply Quote 0
                                          • fcwiltundefined
                                            fcwilt @Sculpt Fabricator
                                            last edited by fcwilt

                                            @sculpt-fabricator

                                            You don't need to use the variable I all. I don't use one. I just have the constant value for the Z Trigger Height parameter in my config_probe.g file.

                                            If you want to use the variable then make the change you show to your config_probe.g 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

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