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

    I have found that G29 is NOT the same as G29 S0.

    Scheduled Pinned Locked Moved
    Tuning and tweaking
    5
    34
    3.5k
    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.
    • Nuramoriundefined
      Nuramori
      last edited by Phaedrux

      @dc42 I have found (in RRF 3.3 stable at least) that the wording in the g-code dictionary as

      "If G29 is commanded with no S parameter, then file sys/mesh.g is run if it exists, otherwise the command behaves like G29 S0."

      is not proving to be true. The distinction appears to be unless S0 is enumerated, then active mesh compensation is NOT activated. Only by specifying "S0" will mesh compensation will function.

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

        @nuramori

        G29 alone will run mesh.g.

        If mesh.g does not result in the creation/loading of a mesh then mesh compensation will not be enabled.

        Does your mesh.g file do one of those two things?

        Frederick

        Printers: a E3D MS/TC setup and a RatRig Hybrid. Using Duet 3 hardware running 3.4.6

        Nuramoriundefined 1 Reply Last reply Reply Quote 0
        • Nuramoriundefined
          Nuramori @fcwilt
          last edited by Nuramori

          @fcwilt When I run G29 by itself, the mesh map is made, BUT the compensation is not activated.

          Running G29 S0 will make the mesh, AND activate compensation.

          I do have a mesh.g file, and always have; I recently noticed that my bed z axis motors were not slightly moving over the course of a layer print like it used to, so I started investigating. Prior to 3.3 it was working as intended, without the S0. I had left it out because the notes seemed to indicate that without S0 stated, it defaulted to S0 in behavior. It had in the past, and now it appears to not.

          Adding S0 to my G29 command has corrected the behavior, but I wanted to see if this was a real change somehow.

          As a test, I also removed mesh.g to see what wouyld happen. Same thing - unless S0 is actually stated in the command, mesh compensation will not activate.

          fcwiltundefined Phaedruxundefined 3 Replies Last reply Reply Quote 0
          • fcwiltundefined
            fcwilt @Nuramori
            last edited by

            @nuramori said in I have found that S29 is NOT the same as S29 S0.:

            @fcwilt When I run G29 by itself, the mesh map is made, BUT the compensation is not activated.

            Running G29 S0 will make the mesh, AND activate compensation.

            I do have a mesh.g file, and always have; I recently noticed that my bed z axis motors were not slightly moving over the course of a layer print like it used to, so I started investigating. Prior to 3.3 it was working as intended, without the S0. I had left it out because the notes seemed to indicate that without S0 stated, it defaulted to S0 in behavior. It had in the past, and now it appears to not.

            Adding S0 to my M29 command has corrected the behavior, but I wanted to see if this was a real change somehow.

            As a test, I also removed mesh.g to see what wouyld happen. Same thing - unless S0 is actually stated in the command, mesh compensation will not activate.

            Please post your mesh.g file.

            Thanks.

            Frederick

            Printers: a E3D MS/TC setup and a RatRig Hybrid. Using Duet 3 hardware running 3.4.6

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

              @nuramori said in I have found that S29 is NOT the same as S29 S0.:

              As a test, I also removed mesh.g to see what wouyld happen. Same thing - unless S0 is actually stated in the command, mesh compensation will not activate.

              Thanks. Either a bug or the documentation needs to be updated. Will check which.

              Z-Bot CoreXY Build | Thingiverse Profile

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

                @nuramori said in I have found that G29 is NOT the same as G29 S0.:

                Adding S0 to my M29 command has corrected the behavior, but I wanted to see if this was a real change somehow.

                Where was the command that you added the S0 to?

                Frederick

                Printers: a E3D MS/TC setup and a RatRig Hybrid. Using Duet 3 hardware running 3.4.6

                Nuramoriundefined 1 Reply Last reply Reply Quote 0
                • Nuramoriundefined
                  Nuramori @fcwilt
                  last edited by

                  @fcwilt in my bed.g file. included below in case it's asked for....

                  ; bed.g
                  
                  M291 P"Probing mesh grid process started" R"Probing.." S1 T2
                  M561                          ; clear any bed transform
                  M557 X40:290 Y40:290 P6:6     ; Define mesh grid
                  G90                           ; absolute positioning
                  
                  G1 H2 Z20 F1000               ; Making sure we're not going to hit the side of glass
                  M400                          ; Wait for move to finish
                  
                  G30 P0 X40 Y186 Z-99999       ; probe near leadscrew one
                  G30 P1 X300 Y290 Z-99999      ; probe near leadscrew two
                  G30 P2 X300 Y60 Z-99999 S3    ; probe near leadscrew three and calibrate.
                  G30 S-3                       ; Probe and set Z=0
                  G1 H2 Z20 F1000               ; Making sure we're not going to hit the side of glass
                  G29 S0                        ; Probe the bed and save height map to file
                  M402                          ; Retract probe
                  
                  M291 P"Probing mesh grid process finished !" R"Probing.." S1 T2
                  G1 X0 Y0 F10000
                  
                  fcwiltundefined 1 Reply Last reply Reply Quote 0
                  • fcwiltundefined
                    fcwilt @Nuramori
                    last edited by

                    @nuramori said in I have found that G29 is NOT the same as G29 S0.:

                    @fcwilt in my bed.g file. included below in case it's asked for....

                    ; bed.g
                    
                    M291 P"Probing mesh grid process started" R"Probing.." S1 T2
                    M561                          ; clear any bed transform
                    M557 X40:290 Y40:290 P6:6     ; Define mesh grid
                    G90                           ; absolute positioning
                    
                    G1 H2 Z20 F1000               ; Making sure we're not going to hit the side of glass
                    M400                          ; Wait for move to finish
                    
                    G30 P0 X40 Y186 Z-99999       ; probe near leadscrew one
                    G30 P1 X300 Y290 Z-99999      ; probe near leadscrew two
                    G30 P2 X300 Y60 Z-99999 S3    ; probe near leadscrew three and calibrate.
                    G30 S-3                       ; Probe and set Z=0
                    G1 H2 Z20 F1000               ; Making sure we're not going to hit the side of glass
                    G29 S0                        ; Probe the bed and save height map to file
                    M402                          ; Retract probe
                    
                    M291 P"Probing mesh grid process finished !" R"Probing.." S1 T2
                    G1 X0 Y0 F10000
                    

                    Thanks.

                    Was this the file where you added the S0 to the G29 command?

                    Also you have a G30 S-3 which is not likely what you want - it does not set the Z=0 datum.

                    Also you did not set the XY position before executing the G30. Given that you are auto-leveling the bed you should position the probe to the center of the bed before executing the G30.

                    Just one other thing - the file mesh.g is intended to be used for mesh bed compensation (the G29 commands) - the file bed.g is intended to be used for bed leveling (auto or manual with the G30 commands).

                    G32 executes the bed.g file - G29 executes the mesh.g file.

                    If you want to stay consistent with the commands in the DWC you should stick with this convention.

                    You said you have (or had) a file mesh.g - will you post that please.

                    Frederick

                    Printers: a E3D MS/TC setup and a RatRig Hybrid. Using Duet 3 hardware running 3.4.6

                    Nuramoriundefined A Former User? 2 Replies Last reply Reply Quote 0
                    • Nuramoriundefined
                      Nuramori @fcwilt
                      last edited by Nuramori

                      @fcwilt said in I have found that G29 is NOT the same as G29 S0.:

                      @nuramori said in I have found that G29 is NOT the same as G29 S0.:

                      @fcwilt in my bed.g file. included below in case it's asked for....

                      ; bed.g
                      
                      M291 P"Probing mesh grid process started" R"Probing.." S1 T2
                      M561                          ; clear any bed transform
                      M557 X40:290 Y40:290 P6:6     ; Define mesh grid
                      G90                           ; absolute positioning
                      
                      G1 H2 Z20 F1000               ; Making sure we're not going to hit the side of glass
                      M400                          ; Wait for move to finish
                      
                      G30 P0 X40 Y186 Z-99999       ; probe near leadscrew one
                      G30 P1 X300 Y290 Z-99999      ; probe near leadscrew two
                      G30 P2 X300 Y60 Z-99999 S3    ; probe near leadscrew three and calibrate.
                      G30 S-3                       ; Probe and set Z=0
                      G1 H2 Z20 F1000               ; Making sure we're not going to hit the side of glass
                      G29 S0                        ; Probe the bed and save height map to file
                      M402                          ; Retract probe
                      
                      M291 P"Probing mesh grid process finished !" R"Probing.." S1 T2
                      G1 X0 Y0 F10000
                      

                      Thanks.

                      Was this the file where you added the S0 to the G29 command?

                      Also you have a G30 S-3 which is not likely what you want - it does not set the Z=0 datum.

                      Also you did not set the XY position before executing the G30. Given that you are auto-leveling the bed you should position the probe to the center of the bed before executing the G30.

                      Just one other thing - the file mesh.g is intended to be used for mesh bed compensation (the G29 commands) - the file bed.g is intended to be used for bed leveling (auto or manual with the G30 commands).

                      G32 executes the bed.g file - G29 executes the mesh.g file.

                      If you want to stay consistent with the commands in the DWC you should stick with this convention.

                      You said you have (or had) a file mesh.g - will you post that please.

                      Frederick

                      I'm aware - I also have a three independent z axis system I developed for the BLV cube, and implement the leveling here as well. The mesh.g file is a placeholder, as what I needed done I just put into the bed.g file (for now). To answer your first question, this is the place I have the G29 command (and the only place).

                      The comment for the G30 s-3 is a misnomer - I just haven't edited the comment to reflect the correction - way too many other distractions to clean up some things I guess.
                      Good point on the moving to the middle and probing. I do that for the z axis homing, and can repeat it so it stays in the same place.

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

                        @nuramori said in I have found that G29 is NOT the same as G29 S0.:

                        The mesh.g file is a placeholder

                        If mesh.g does not have the G29 commands needed to create the height map it will prevent G29 from working as intended.

                        If you only had G29 in your bed.g file then it would also not have done what you wanted which is why G29 S0 did work.

                        The comment for the G30 s-3 is a misnomer

                        If you wish to set the Z=0 datum, which is something you needed to do after bed leveling, you need to use just G30.

                        Printers: a E3D MS/TC setup and a RatRig Hybrid. Using Duet 3 hardware running 3.4.6

                        Nuramoriundefined 1 Reply Last reply Reply Quote 0
                        • Nuramoriundefined
                          Nuramori @fcwilt
                          last edited by Nuramori

                          @fcwilt thanks, that perhaps clears things up; though I would be wary of the semantics seeming to imply that not including S0 will result in a default behavior that is in fact not as expected. Could just be how I read it.

                          I corrected the comment to reflect what is happening with the G30 command (and used as intended)...

                          ; bed.g
                          
                          M291 P"Probing mesh grid process started" R"Probing.." S1 T2
                          M561                          ; clear any bed transform
                          M557 X40:290 Y40:290 P6:6     ; Define mesh grid
                          G90                           ; absolute positioning
                          
                          G1 H2 Z20 F1000               ; Making sure we're not going to hit the side of glass
                          M400                          ; Wait for move to finish
                          
                          G30 P0 X40 Y186 Z-99999       ; probe near leadscrew one
                          G30 P1 X300 Y290 Z-99999      ; probe near leadscrew two
                          G30 P2 X300 Y60 Z-99999 S3    ; probe near leadscrew three and calibrate.
                          
                          G1 X162.5 Y172.5 F16000       ; go to middle of the bed
                          G30 S-3                       ; Probe and set the trigger height
                          G1 H2 Z20 F1000               ; Making sure we're not going to hit the side of glass
                          G29 S0                        ; Probe the bed and save height map to file
                          M402                          ; Retract probe
                          
                          M291 P"Probing mesh grid process finished !" R"Probing.." S1 T2
                          G1 X0 Y0 F10000
                          

                          Thanks for the comments - they were helpful (as always).

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

                            @nuramori

                            Hi,

                            I see the G1 move to center which is good but I still see the G30 S-3 which is not what you want there.

                            Frederick

                            Printers: a E3D MS/TC setup and a RatRig Hybrid. Using Duet 3 hardware running 3.4.6

                            Nuramoriundefined 1 Reply Last reply Reply Quote 0
                            • Nuramoriundefined
                              Nuramori @fcwilt
                              last edited by

                              @fcwilt I’m not sure why you don’t think it belongs there. It’s setting the trigger height which works in conjunction with my offset that is used to define nozzle height in my config.g. Other than the active mesh, things are working perfectly.

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

                                @nuramori said in I have found that G29 is NOT the same as G29 S0.:

                                @fcwilt I’m not sure why you don’t think it belongs there. It’s setting the trigger height which works in conjunction with my offset that is used to define nozzle height in my config.g. Other than the active mesh, things are working perfectly.

                                Because you don't want to set the Z probe trigger height, that alters the value set by your G31 command.

                                You want to use the current trigger height setting to set the correct Z position at the moment the Z probe is triggered.

                                If you don't use G30 you are not setting the Z=0 datum which is what you want to do after leveling the bed.

                                Setting the Z=0 datum is something you also want to do that before creating or loading a height map.

                                Frederick

                                Printers: a E3D MS/TC setup and a RatRig Hybrid. Using Duet 3 hardware running 3.4.6

                                Nuramoriundefined 1 Reply Last reply Reply Quote 0
                                • Nuramoriundefined
                                  Nuramori @fcwilt
                                  last edited by Nuramori

                                  @fcwilt But I DO want to set the trigger height, and effectively update the value of the G31 that's in the config.g. I don't have to worry about any discrepancies - I already calibrated z (https://duet3d.dozuki.com/Wiki/Test_and_calibrate_the_Z_probe), so any variation due to the bed being hotter than before is compensated for with a new trigger height value.

                                  I've never had an issue with this process, and seems to be ideal to maintain the ideal trigger value.

                                  for reference/edification -

                                  ; Configuration file for Duet3 (firmware version 3.3 stable)
                                  ; executed by the firmware on start-up
                                  ; 
                                  ; --------------- Pin/connection Mapping Legend -------------------
                                  ; 0.out0      - Bed heater
                                  ; 0.out1
                                  ; 0.out2
                                  ; 0.out3
                                  ; 0.out4      - Radiator cooling fan - WC heatsink
                                  ; 0.out5
                                  ; 0.out6
                                  ; 0.out7
                                  ; 0.out8
                                  ; 0.out9      - Duet board cooling fan
                                  ; 0.out4.tach - Radiator cooling fan rpm wire - WC heatsink
                                  ; 0.out5.tach
                                  ; 0.out6.tach
                                  ; 0.io0.in
                                  ; 0.io1.in    - Emergency stop switch
                                  ; 0.io2.in    - Y max active low endstop switch
                                  ; 0.io3.in
                                  ; 0.io4.in
                                  ; 0.io5.in
                                  ; 0.io6.in
                                  ; 0.io7.in
                                  ; 0.io8.in
                                  ; 0.io0.out
                                  ; 0.io1.out
                                  ; 0.io2.out
                                  ; 0.io3.out
                                  ; 0.io4.out
                                  ; 0.io5.out
                                  ; 0.io6.out
                                  ; 0.io7.out
                                  ; 0.io8.out
                                  ; 0.servo, out10 (only on v0.5, not on v0.6)
                                  ; 0.pson
                                  ; 0.spi.cs0
                                  ; 0.spi.cs1
                                  ; 0.spi.cs2
                                  ; 0.spi.cs3
                                  ; 0.temp0      - Bed Thermistor
                                  ; 0.temp1
                                  ; 0.temp2
                                  ; 0.temp3      - Coolant Temp Sensor
                                  ; 0.mcu-temp   - MCU sensor
                                  ;
                                  ;----------Toolboard 1 (CAN ID#20)
                                  ; 20.0         - Accelerometer
                                  ; 20.out0      - Hotend Heater
                                  ; 20.out1      -
                                  ; 20.out2      - Parts cooler on printhead
                                  ; 20.out1.tach -
                                  ; 20.out2.tach -
                                  ; 20.io0.in    - Z probe type to bltouch current - Piezo future
                                  ; 20.io1.in    - X min active low endstop switch
                                  ; 20.io2.in    -
                                  ; 20.io3.in    -
                                  ; 20.io0.out   - GPIO port 0 on toolboard io0, servo mode - BLTouch Z-Probe
                                  ; 20.temp0     - Extruder Thermistor
                                  ; 20.temp1     -
                                  ; 20.button0   -
                                  ; 20.button1   -
                                  ;
                                  ; -----------------------------------------------------------------
                                  ;
                                  ; General preferences
                                  M81                               ; Turn on the Power (inverted for Meanwell)
                                  G4 P2000                          ; Hold your Horses.
                                  G90                               ; send absolute coordinates...
                                  M83                               ; ...but relative extruder moves
                                  G21                               ; Set units to Millimeters
                                  M550 P"DUET3"                     ; set printer name
                                  M575 P1 S1 B57600                 ; Set things up for the PanelDue
                                  
                                  G4 S6                             ; Wait for toolboard to start
                                  M584 X0.3 Y0.2 Z0.0:0.1:0.4 E20.0 ; set drive mapping to each axis
                                  M669 K1                           ; Select CoreXY mode - New format
                                  
                                  ; Network
                                  ; M552 S1                         ; enable network
                                  ; M586 P0 S1                      ; enable HTTP
                                  ; M586 P1 S0                      ; disable FTP
                                  ; M586 P2 S0                      ; disable Telnet
                                  
                                  ; Drives
                                  M569 P0.0 S0                    ; physical drive 0 goes backwards - Z Axis Left (1)
                                  M569 P0.1 S0                    ; physical drive 1 goes backwards - Z Axis Right Back (2)
                                  M569 P0.2 S0                    ; physical drive 2 goes backwards - Y Axis, activate Stealthchop
                                  M569 P0.3 S0                    ; physical drive 3 goes backwards - X Axis, activate Stealthchop
                                  M569 P0.4 S0                    ; physical drive 4 goes backwards - Z Axis Right Front (3)
                                  M569 P20.0 S1                   ; physical drive 5 goes forwards - Extruder 1
                                  
                                  ; Set up three Z-axis location
                                  M671 X-6:362:362 Y186:299:60 S5            ; Pivot Points at 1 - left, 2 - rear right and 3 - front right
                                  
                                  M92 X199 Y198 Z1585 E1299                  ; set steps per mm
                                  M350 X16 Y16 Z16 E16 I1                    ; configure micro-stepping with interpolation
                                  M566 X600.00 Y600.00 Z100.00 E240.00       ; set maximum instantaneous speed changes (mm/min)
                                  M203 X16000.00 Y16000.00 Z400.00 E1200.00  ; set maximum speeds (mm/min)
                                  M201 X4000.00 Y4000.00 Z400.00 E800.00     ; set accelerations (mm/s^2)
                                  M906 X800 Y800 Z800 E800 I30               ; set motor currents (mA) and motor idle factor in percent*100
                                  
                                  ; Set up Stealthcop Parameters
                                  ; M569 P0.0 V40 H5
                                  ; M569 P0.1 V40 H5
                                  ; M569 P0.2 V40 H5
                                  ; M569 P0.3 V40 H5
                                  ; M569 P0.4 V40 H5
                                  ; M569 P20.0 V40 H5
                                  ; M915 X Y Z E T1
                                  
                                  M84 S30                                    ; Set idle timeout
                                  
                                  ; Axis Limits
                                  M208 X0 Y0 Z0 S1                           ; set axis minima
                                  M208 X315 Y315 Z325 S0                     ; set axis maxima
                                  
                                  ; Endstops
                                  
                                  M574 X1 S1 P"20.io1.in"                    ; X min active high endstop switch
                                  M574 Y2 S1 P"0.io2.in"                     ; Y max active high endstop switch
                                  
                                  ; Z-Probe - BLTouch - *CURRENT*
                                  M574 Z1 S2                                 ; set endstops controlled by probe
                                  M558 P9 C"^20.io0.in" H5 F2000 T12000      ; set Z probe type to bltouch and the dive height + speeds (bltouch NEEDS pullup)
                                  G31 P100 X0 Y-20 Z3.85                     ; set Z probe trigger value, offset and trigger height - 0.40MM NOZZLE FIXED Kv1
                                  G30                                        ; Probe Z
                                  
                                  ; Configure Heaters and Sensors
                                  M308 S0 P"0.temp0" Y"thermistor" A"Bed Heat" T100000 B3950    ; Configure bed temperature sensor
                                  M950 H0 C"0.out0" T0                                          ; Define heater 0 (bed heater) - bed_heat pin and Temp Sensor 0 
                                  M143 H0 S120 A2                                               ; set temperature limit for heater 0 to 120c
                                  M140 H0                                                       ; Map heated bed to heater 0
                                  
                                  M308 S1 P"20.temp0" Y"thermistor" A"Mosquito" T500000 B4723 C1.196220e-7  ; Configure extruder 1 temperature sensor - Mosquito
                                  M950 H1 C"20.out0" T1                                                     ; Define heater 1 (hot-end E0) to use the "20.out0" pin and Temp Sensor 1
                                  
                                  M143 H1 S270 A2                                               ; set temperature limit for heater 1 to 270C
                                  
                                  M308 S2 P"mcu-temp" Y"mcu-temp" A"Duet Board"                 ; Configure MCU sensor
                                  M308 S3 P"temp3" Y"thermistor" T10000 B3988 A"Coolant"        ; Configure coolant sensor
                                  
                                  ; Configure Fans
                                  M950 F0 C"20.out2" Q100                 ; Define Fan_0 for use - Parts Cooler on Printhead - 5015 fan
                                  M950 F1 C"0.out9" Q25000                ; Define Fan_1 for use - Duet board cooling fan
                                  M950 F2 C"!0.out4+^0.out4.tach" Q25000  ; Define Fan_1 for use - Radiator cooling - WC heatsink. - PWM fan
                                  M950 S0 C"20.io0.out"                   ; Define GPIO port 0 on IO0, servo mode - BLTouch Z-Probe - *CURRENT*
                                  M950 J0 C"^!0.io1.in"                   ; Input 0 uses 0.io1.in pin, pullup enabled
                                  
                                  ; Fans
                                  M106 P0 S0                          ; set fan 0. Parts Cooler on Printhead
                                  M106 P1 T45:50 H2                   ; Set fan 1. Manages Duet board fan.
                                  M106 P2 T20:40 H3                   ; Set fan 1. Manages Radiator fan for water-cooled loop.
                                  
                                  ;Set PID values             
                                  M307 H0 B0 R0.720 C713.5 D2.13 S1.00               ; disable bang-bang mode for the bed heater and set PWM limit
                                  M307 H1 B0 R2.487 C249.5:190.7 D5.51 S1.00 V23.1   ; disable bang-bang mode for the extruder heater and set PWM limit
                                  
                                  ; Pressure Advance
                                  M572 D0 S0.05                             ; Set pressure advance to offset elasticity
                                  
                                  ; Dynamic Acceleration Adjustment and Non-linear
                                  M592 D0 A0.015 B0.0012 L0.2
                                  M593 P"daa" F21
                                  
                                  ; Set Movement Queue
                                  M595 P100
                                  
                                  ; Set up Accelerometer
                                  M955 P20.0 I12                      ; Accelerometer on toolboard, oriented counter clockwise 90 Enable for RRF 3.3 Stable
                                  
                                  ; Tools
                                  M563 P0 S"Printhead" D0 H1 F0       ; define tool 0. Fan 0 operates with an active hot-end
                                  G10 L1 P0 X0 Y0 Z0                  ; set tool 0 axis offsets - - - X15 Y18 - Bed 0,0
                                  G10 P0 R0 S0                        ; set active and standby temperatures to 0C
                                  
                                  ; Emergency Stop
                                  M574 S1 P"^!0.io1.in"               ; Define Emergency endstop - emergency stop switch condition
                                  M581 P0 S1 T0                       ; Define action to be taken with activation of emergency stop switch
                                  
                                  ; Miscellaneous
                                  T0                                  ; select first tool
                                  
                                  fcwiltundefined 1 Reply Last reply Reply Quote 0
                                  • fcwiltundefined
                                    fcwilt @Nuramori
                                    last edited by

                                    @nuramori

                                    It doesn't work the way you think it does but I guess I'm not going to be able to convince you.

                                    Having built 7 printers and now working on number 8 I thought I learned a thing or two along the way but perhaps not.

                                    Good luck.

                                    Printers: a E3D MS/TC setup and a RatRig Hybrid. Using Duet 3 hardware running 3.4.6

                                    Nuramoriundefined 1 Reply Last reply Reply Quote 0
                                    • Nuramoriundefined
                                      Nuramori @fcwilt
                                      last edited by Nuramori

                                      @fcwilt you can certainly convince me, I'm looking for what change you'd suggest and test it to compare to what behavoir I have now (which prints as I am expecting). Just saying 'that's not correct" isn't going to help me understand your perspective on WHAT is wrong as you see it, so I can understand the reasoning behind your comment. I'm not a novice - I've designed my own extruder and several other elements to this printer that is used by others, but I am very open to comments and constructive feedback, with more explanation.

                                      For instance, you said if I don't use g30 to set... if you look in the config.g, I in fact do use the command as part of the initial setup (line 128).

                                      Also... nothing happens until all the axis are homed - meaning that leveling nor mesh compensation can be done until the z axis is homed. In my z axis homing, I have G30 occuring (yes probably doubled up now that I see it), but G30 is done before anything happens. There are layers to the process, and just because it's not in the bed.g file doesn't mean I didn't accommodate it. It's just done elsewhere, in an appropriate place.

                                      ; homez.g
                                      ; called to home the Z axis
                                      ;
                                      ; generated by RepRapFirmware Configuration Tool on Tue Oct 09 2018 13:27:56 GMT+0300
                                      G91				            ; relative positioning
                                      
                                      ; Initiate tuning movement sequence for Stealthcop
                                      ; G1 H2 Z0.02 F1000
                                      ; G4 P50
                                      
                                      G1 H2 Z10 F1000	            ; Drop Z relative to current position
                                      G90				            ; absolute positioning
                                      G1 X162.5 Y172.5 F16000		; go to first probe point
                                      G30				            ; home Z by probing the bed
                                      
                                      ; Uncomment the following lines to lift Z after probing
                                      G91				            ; relative positioning
                                      G1 H2 Z10 F1000	            ; lower Z a bit more
                                      G90				            ; absolute positioning
                                      
                                      Phaedruxundefined fcwiltundefined 2 Replies Last reply Reply Quote 0
                                      • Phaedruxundefined
                                        Phaedrux Moderator @Nuramori
                                        last edited by

                                        @nuramori said in I have found that G29 is NOT the same as G29 S0.:

                                        in an appropriate place.

                                        The appropriateness of G30 in config.g is debatable. What happens if there is a reset mid print? Does probing in place with a print on the bed not cause problems?

                                        But the main thing is that Z0 is determined with the probe before loading/creating a mesh.

                                        I can't say I follow why you're re-setting the trigger height with G30 S-3 after the auto leveling instead of just resetting the Z0 position with a G30. The trigger height shouldn't have changed unless the distance between the nozzle and probe has changed. What does your resulting heightmap actually look like?

                                        Z-Bot CoreXY Build | Thingiverse Profile

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

                                          @nuramori

                                          First let us clarify one thing.

                                          I tested this and on a Duet 3 Mini 5+ running firmware 3.3.0 executing a G29 with no mesh.g file present probes the bed, creates the height map and enables mesh compensation.


                                          Now let's try to clarify setting the Z=0 datum.

                                          The Z probe Z trigger height setting from G31 tells the firmware what the Z axis position will be when the Z probe triggers.

                                          So let's say the Z trigger height setting is 5mm.

                                          Executing a G30 causes the firmware to move the Z probe toward the bed until the Z probe triggers.

                                          Since Z position is always in relation to the surface of the bed at the instant the firmware knows the Z position is 5mm****undefined.

                                          Knowing that the firmware can move to any other Z position - including Z=0.

                                          Thus the Z=0 datum has been set.


                                          The calibration procedure for determining the Z probe Z trigger height setting for G31 only needs to be done once unless something changes the Z axis relationship between the nozzle and the Z probe.

                                          Bed expansion, due to heating of the bed, may change the relationship of the bed to the frame, for a given Z axis position, but it does not change the relationship between the nozzle and the Z probe.

                                          Executing a G30 S-3 may or may not change the Z probe Z trigger height setting as determined by the calibration procedure. However it serves no purpose to do that since the setting determined by calibration should be sufficient.

                                          Even if you did a G30 S-3 it doesn't result in the Z=0 datum being set and that is what must be done as discussed below.


                                          Now there are three instances when setting the Z=0 datum is required:

                                          • after auto-leveling of the bed.
                                          • before creating a height map
                                          • before loading the height map

                                          The XY position used when setting the Z=0 datum should always be the same. Based on my experience the best place is the center of the bed.

                                          Some folks use the first probe point from the grid used to create the height map but that point may change if you change the grid settings or use different grid settings for different purposes, as some folks do.

                                          The center of the bed, on the other hand, is always the same, barring some physical change in the printer, and is independent of the grid settings.

                                          Frederick

                                          Printers: a E3D MS/TC setup and a RatRig Hybrid. Using Duet 3 hardware running 3.4.6

                                          Nuramoriundefined 1 Reply Last reply Reply Quote 1
                                          • Nuramoriundefined
                                            Nuramori @fcwilt
                                            last edited by Nuramori

                                            @fcwilt You keep mentioning z=0 datum, and I had stated repeatedly, that comment in the line item was a mistake (and I had fixed it so there's no misunderstanding), and it's NOT what I'm expecting, so if your narrative is still based on that, you're in error about my the intent of using G30 S-3, how I set things up, and why.

                                            With that said, I appreciate the rest, in that you took the time to be more illustrative of your review of my initial post (though this has gone a bit tangential to that), and parts of it were helpful.

                                            Your comments about G30 I understand. As I said, I initiate that in my homez.g file, so every time the printer is started up and made ready for printing, G30 is always run (with the probe at the center of the bed). I did delete the errant G30 in the config.g, and was an old oversight (@Phaedrux ).

                                            Not to be pedantic, but thermal coefficients affect all axis, so while perhaps minuscule, thermal expansion does happen on the Z axis as well, but that's a theoretical debate for another time. It's often suggested to not do certain things (even bed leveling) until the actual operative temperatures are reached.

                                            I'll note your last comment here, and you're right - probing the center is ideal, and that was where I had always probed for the z homing (with, again, G30) so it's done very early in the routine of getting the printer started. I do thank you for pointing out that in the bed.g file I didn't have it, and that was indeed helpful (I've since added it as you noted too).

                                            To the second to last section, are you suggesting performing a G30 three times? I am doing it twice, at the center of the bed (once at the beginning, when a required Z home is done, and then right after the autoleveling is done), but I do not do it for a third time after the entire bed is probed. I'm not clear what that would do for me.

                                            So that last item that seems to be where we are not exactly in agreement is the use of G30 S-3 and if it performs any benefit. I'll say it doesn't HURT, as I have never had to baby step to compensate, and the first layer of my prints have always been spot on, even after an accidental bed tilt when the printer was off, and it had to re-level the next time it was started. Perhaps redundant, but I feel that by performing a G30 S-3 removes any chance of a nozzle conflict with the bed for any reason, because it's reconfirmed at every print. (out of sight, out of mind). Call it a quality of life convenience, rather than a requirement.

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