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

    Correction of heightmap is not really working

    Scheduled Pinned Locked Moved
    General Discussion
    5
    126
    6.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.
    • ICY_SNAKEundefined
      ICY_SNAKE @fcwilt
      last edited by

      @fcwilt ok

      so i need only one macro to set the z, correct?

      DO IT OR DON'T

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

        @icy_snake said in Correction of heightmap is not really working:

        @fcwilt ok

        so i need only one macro to set the z, correct?

        If the value for each buildplate is constant you can eliminate editing of the probe_config.g file by using a global variable to hold the G31 Z Trigger Height value.

        Then you can have one macro for each buildplate to set the variable to the correct value for that buildplate.

        How does that sound?

        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

        ICY_SNAKEundefined 1 Reply Last reply Reply Quote 0
        • ICY_SNAKEundefined
          ICY_SNAKE @fcwilt
          last edited by

          @fcwilt Yes that would be prefect

          DO IT OR DON'T

          ICY_SNAKEundefined fcwiltundefined 2 Replies Last reply Reply Quote 0
          • ICY_SNAKEundefined
            ICY_SNAKE @ICY_SNAKE
            last edited by

            @icy_snake could you write that for me, please?

            DO IT OR DON'T

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

              @icy_snake said in Correction of heightmap is not really working:

              @fcwilt Yes that would be prefect

              OK I will code that.

              In the meantime here is the macro for measuring the Z probe trigger height - if you ever need it.

              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 probe_config.g file"
              

              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 @ICY_SNAKE
                last edited by fcwilt

                @icy_snake

                Add this near the start of your config.g:

                global g_probe_z_trigger   = 1.8                ; default - set as appropriate for the Z probe
                

                Just for reference this is what the start of my config.g file showing the section where I set all my global variables:

                ; ****************************************************************************************************
                ; prologue
                ; ****************************************************************************************************
                
                M111 S0				; debug off
                
                M550 P"MF1"			; machine name
                ;M551 P"xxxxxx"                 ; machine password
                
                M555 P2                         ; set output to look like Marlin
                M575 P0 B57600 S2               ; communication parameters for USB serial
                M575 P1 B115200 S1              ; communication parameters for PanelDue
                
                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)
                
                G21                             ; dimensions in mm
                G90                             ; for X,Y,Z     use absolute coordinate values
                M83                             ; for E0,E1,etc use relative coordinate values
                
                ; ****************************************************************************************************
                ; mode control variables
                ; ****************************************************************************************************
                
                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        = "3 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
                
                global g_probe_z_trigger   = 1.8                ; default - set as appropriate for the Z probe
                
                

                In your probe_config.g file update your G31 command to replace the value after the Z parameter with the variable reference shown below:

                G31 P25 X0 Y24.5 Z{global.g_probe_z_trigger}  ; set Z probe trigger value, offset and trigger height (larger value is closer)
                

                Create the macros to set the global variable to the needed values. Name them as you desire. Here is an example:

                set global.g_probe_z_trigger = 1.8 ; set the variable
                
                M98 P"probe_config.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
                

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

                ICY_SNAKEundefined 1 Reply Last reply Reply Quote 1
                • ICY_SNAKEundefined
                  ICY_SNAKE @fcwilt
                  last edited by

                  @fcwilt Whowww, many thanks Frederick,

                  perfect support, you helped me alot, thanks again.

                  I´m often in the USA for business. Maybe there will be a day that we could have some drinks.

                  Best Regards
                  Dieter

                  DO IT OR DON'T

                  ICY_SNAKEundefined fcwiltundefined 2 Replies Last reply Reply Quote 1
                  • ICY_SNAKEundefined
                    ICY_SNAKE @ICY_SNAKE
                    last edited by

                    @icy_snake I´m already home today, here it´s evening.

                    I will add tomorrow the new code. I let you know if i could get it running.

                    Good evening
                    Dieter

                    DO IT OR DON'T

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

                      @icy_snake said in Correction of heightmap is not really working:

                      I´m often in the USA for business. Maybe there will be a day that we could have some drinks.

                      Best Regards
                      Dieter

                      That would be grand but I am located in South West Virginia. The closet city is Roanoke to give you a reference.

                      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
                      • Phaedruxundefined
                        Phaedrux Moderator
                        last edited by

                        The trigger height for the BLTouch should stay the same between different build plates since it physically touches the build plate and the offset between the bltouch trigger point and the nozzle remains constant. That's one of the main benefits of a BLTouch.

                        Z-Bot CoreXY Build | Thingiverse Profile

                        fcwiltundefined 1 Reply Last reply Reply Quote 2
                        • fcwiltundefined
                          fcwilt @Phaedrux
                          last edited by

                          @phaedrux

                          Yes it should. Hopefully this will be a good learning experience for Dieter.

                          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

                          ICY_SNAKEundefined 1 Reply Last reply Reply Quote 1
                          • ICY_SNAKEundefined
                            ICY_SNAKE @fcwilt
                            last edited by

                            @fcwilt hahah yes it was and it is and will be in the future.

                            thx all for the perfect help here.

                            Dieter

                            DO IT OR DON'T

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

                              @icy_snake

                              Morning.

                              Once you have verified that everything we have done on so far is working we can move on to the last piece of the puzzle - your "start" code - the code that is executed at the start of a print to get everything set as needed for a successful print.

                              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

                              ICY_SNAKEundefined 1 Reply Last reply Reply Quote 0
                              • ICY_SNAKEundefined
                                ICY_SNAKE @fcwilt
                                last edited by ICY_SNAKE

                                @fcwilt Good morning frederick,

                                here is my start gcode in ideamaker.

                                It works, need to do anything after i hit the start button:

                                <G28                         	; Home
                                M566 E3000		; max speed change
                                M572 D0 S0.07	        ; pressure calibration value 0.01 bis 0.12
                                G92 E0		        ; Reset the extruder
                                G0 Z20           	        ; Z down bei 20
                                G0 X0 Y0 F6000         ; Go to left front
                                G92 E0 
                                G1 E50 F350           	; Extrude 50mm speed 350,time to clean head 
                                G92 E0
                                G0 X100 Y10 F9000  ; Move quickly to X100 Y10, cut the string automaticly
                                G0 Z0.3                	; Lower Z to 0.3
                                G1 F1000 X200 E3 	; print line to x200 speed 1000 
                                G92 E0
                                G1 F800 E-0.3		; retract -0.3mm 
                                M117 Printing..the..new..model.>
                                

                                Here is my End Gcode:

                                 <G1 F800 E-1.0	;retract filament 1.0mm to prevent oozing
                                 M104 S0 T0	 	; turn off hotend 1
                                 M104 S0 t1		; turn off hotend 1
                                 G90		                ; use absolute coordinates
                                 G28 X0 Y0	 	; Move to Home without Z
                                 M221 D0 S100 	; extrusion Factor back to 100
                                 M106 S0 T0    	         ; turn off fan 1
                                 M106 S0 T1		; turn off fan 2
                                 M84	 	                ; Switch off all Motors
                                 M117 Ready..with..the..new..model--have fun!>
                                

                                Let me know what you think.

                                DO IT OR DON'T

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

                                  @icy_snake

                                  I gather most of that code is for priming the extruder?

                                  I don't see any code to:

                                  • set heater temp
                                  • set bed temp
                                  • load height map

                                  Where is that being done?

                                  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

                                  ICY_SNAKEundefined 1 Reply Last reply Reply Quote 0
                                  • ICY_SNAKEundefined
                                    ICY_SNAKE @fcwilt
                                    last edited by ICY_SNAKE

                                    @fcwilt Ok thats what you mean

                                    heater temp i set i my ideamaker

                                    bed temp i ned to set manually at an extra hardware, cannot be set via software

                                    load heightmap i do not know to load it before printing??

                                    G29 S1

                                    do i need to reload always the heightmap before printing?

                                    Dieter

                                    DO IT OR DON'T

                                    ICY_SNAKEundefined Stephen6309undefined fcwiltundefined 3 Replies Last reply Reply Quote 0
                                    • ICY_SNAKEundefined
                                      ICY_SNAKE @ICY_SNAKE
                                      last edited by

                                      @icy_snake IMG_20220202_154456.jpg

                                      thats the printsize 600x600mm

                                      my test stl

                                      DO IT OR DON'T

                                      1 Reply Last reply Reply Quote 0
                                      • Stephen6309undefined
                                        Stephen6309 @ICY_SNAKE
                                        last edited by

                                        @icy_snake Load the heightmap after the G28. You do have to load the heightmap.

                                        Basic example, this runs the mesh everytime:
                                        G28
                                        G29 ; add S1 just to load the current one

                                        I use this mesh.g , it makes the heightmap if it doesn't exist and makes sure the printer has been homed before the G29 S0, just call it with G29.

                                        M561            ; clear any bed transform
                                        G29 S1          ; load heightmap.csv
                                        if result > 1   ; make if it doesn't exist
                                          if !move.axes[0].homed || !move.axes[1].homed || !move.axes[2].homed ; check if homed
                                           G28
                                          G29 S0        ; create heightmap.csv
                                        
                                        1 Reply Last reply Reply Quote 0
                                        • fcwiltundefined
                                          fcwilt @ICY_SNAKE
                                          last edited by

                                          @icy_snake said in Correction of heightmap is not really working:

                                          heater temp i set i my ideamaker

                                          bed temp i ned to set manually at an extra hardware, cannot be set via software

                                          load heightmap i do not know to load it before printing??

                                          G29 S1

                                          do i need to reload always the heightmap before printing?

                                          Dieter

                                          Where does the heater temp setting code appear? Is what you posted code generated by IdeaMaker?

                                          As to the height map remember you need to do the following to load it correctly. I load it in my start code.

                                          G1 Xaaa Ybbb ; where aaa and bbb put the probe at the center of the bed
                                          G30          ; probe the bed to set the Z=0 Datum
                                          G29 S1       ; load the height map
                                          

                                          You may recall that in the mesh.g file the Z=0 datum is also set before creating the height map.

                                          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

                                          ICY_SNAKEundefined 1 Reply Last reply Reply Quote 0
                                          • ICY_SNAKEundefined
                                            ICY_SNAKE @fcwilt
                                            last edited by ICY_SNAKE

                                            @fcwilt
                                            now you confuse me ???

                                            my mesh.g

                                            <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 X300 Y300                 ; 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 X20:600 Y20:600 S58     ; define mesh grid 420 point = S29, 210 = S58
                                            G29 S0                       ; probe bed and create height map
                                            

                                            my bed.g

                                             < ; bed.g
                                             ; called to perform automatic bed compensation via G32
                                             ;
                                             
                                             ;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
                                             G1 Z5 F99999                 ; insure Z starting position is high enough to avoid probing errors
                                             
                                             ; M671: Define positions pf manual bed levelling screws or Z leadscrews
                                             ; Xnn:nn:nn... list of between 2 and 4 X coordinates of the leadscrews that drive the Z axis or the bed levelling screws
                                             ; Ynn:nn:nn... list of between 2 and 4 Y coordinates of the leadscrews that drive the Z axis or the bed levelling screws
                                             ; Snn          maximum correction allowed for each leadscrew in mm (optional, default 1.0)
                                             ; Pnnn         pitch of the bed levelling screws (not used when bed levelling using independently-driven leadscrews). Defaults to 0.5mm which is correct for M3 bed levelling screws
                                             ; Fnn          fudge factor, default 1.0
                                              
                                             
                                             M671 X-189:-189:645:645 Y645:-64:-64:645 S10 ; Anticlockwise
                                             
                                             ; --- level bed ---
                                             
                                             while true
                                             
                                               ; run leveling pass
                                             
                                               G30 P0 X2   Y2  Z-99999    ; Probe near a leadscrew
                                               G30 P1 X600 Y2  Z-99999    ; Probe near a leadscrew
                                               G30 P2 X600 Y600 Z-99999    ; Probe near a leadscrew
                                               G30 P3 X2   Y600 Z-99999 S4 ; Probe near a leadscrew
                                             
                                               if move.calibration.initial.deviation < 0.02
                                             
                                                 break
                                             
                                               ; check pass limit - abort if pass limit reached
                                             
                                               if iterations = 5
                                             
                                                 M291 P"Bed Leveling Aborted" R"Pass Limit Reached"
                                                 abort "Bed Leveling Aborted - Pass Limit Reached"
                                             
                                             ; --- finish up ---
                                             
                                             ; --- set Z=0 datum which can be affected by leveling ---
                                             
                                             G1 X300 Y300 ; 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
                                            

                                            My Z Macro

                                            <; Z-setup Macro
                                            ; setup Z distance
                                            
                                            M300 S666 P666               ; beeo
                                            M291 S3 R"Measure Z 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              ; beeo
                                            
                                            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 probe_config.g file"
                                            

                                            my config_probe.g

                                            < ; config_probe.g
                                            ; config the probe and call the other files.g
                                            ;
                                            
                                            M950 S0 C"duex.pwm5"
                                            M558 P9 C"zprobe.in" H5 F120 T6000 A5 R0.7
                                            
                                            G31 P500 X-18 Y24 Z{global.g_probe_z_trigger} ; set Z probe trigger value, offset and trigger height (larger value is closer) 
                                            

                                            my config.g

                                            ; General preferences_________________________________________________________
                                            G90                                             			; send absolute coordinates...
                                            M83                                             			; ...but relative extruder moves
                                            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 60X V3.4 15.02.2022"                        		; set printer name
                                            ; History
                                            ; removed U  15.02.2022
                                            ;
                                            ;
                                            
                                            M552 S1                                        				; enable network
                                            M552 P192.168.10.169										; My IP Address
                                            M586 P0 S1                                      			; enable HTTP
                                            M586 P1 S0                                      			; disable FTP
                                            M586 P2 S0                                      			; disable Telnet
                                            
                                            ; add probe file
                                            
                                            M98 P"probe_config.g"
                                            G31
                                            
                                            ; Global settings
                                            global g_probe_z_trigger = 2.91
                                            
                                            ; Z-Probe
                                            M558 P9 C"zprobe.in" H5 F120 T6000 A1 R0.7
                                            M950 S0 C"duex.pwm5"
                                            M556 S50 X0 Y0 Z0                               		
                                            M376 H10	
                                            

                                            now it´s not loading the value ??

                                            DO IT OR DON'T

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