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

    G30 during G28 issue

    Scheduled Pinned Locked Moved Unsolved
    My Duet controlled machine
    5
    17
    200
    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.
    • Leonard03undefined
      Leonard03 @Phaedrux
      last edited by

      @Phaedrux Thank you for the replay

      @Phaedrux said in G30 during G28 issue:

      You also have a z endstop?

      Yes, is there, so why not use it 😄 When homing Z I lower the gantry until that switch is triggered and then do a G30 in the center of the bed.

      @Phaedrux said in G30 during G28 issue:

      Please post your full config.g

      This is my full config, but it uses some additional macros

      ; Configuration file for Duet WiFi (firmware version 3.5)
      ; executed by the firmware on start-up
      ;
      ; generated by RepRapFirmware Configuration Tool v3.2.0 on Tue Dec 29 2020 16:23:44 GMT+0200 (Eastern European Standard Time)
      
      global MMUmode = true										; enable or disable Multi Material Unit
      
      if global.MMUmode = true
      	global spoolJoin = false								; enable or disable the SpoolJoin feature of the Multi Material Unit
      	global useCutter = true									; enable or disable the CUT feature of the Multi Material Unit
      
      	global statusBondtech = 0
      	global statusFinda = 0
      	global currentSlot = {null, null}						; [0]last loaded slot, [1]last tool temperature
      	global loadNext = false
      	global pause = false
      	global tcBlock = false
      	global counter = {0,0,0}								; [0]extruder count, [1]fails, [2]total attempts
      	
      global errQueue = {null,null}								; first two elements are reserved
      
      ; General preferences
      G90															; send absolute coordinates...
      M83															; ...but relative extruder moves
      
      if global.MMUmode = false
      	M550 P"Creality CR-10L"									; set printer name
      else
      	M550 P"Creality CR-10L+MMU3"
      
      ; Network
      M552 S1														; enable network
      M586 P0 S1													; enable HTTP
      M586 P1 S0													; enable FTP
      M586 P2 S0													; disable Telnet
      
      ; Drives
      M569 P0 S1													; physical drive 0 goes forwards (X)
      M569 P1 S1													; physical drive 1 goes forwards (Y)
      M569 P2 S0													; physical drive 2 goes backwards (Z1)
      M569 P3 S0													; physical drive 3 goes forwards (E)
      M569 P4 S0													; physical drive 4 goes backwards (Z2)
      
      if global.MMUmode = true
      	M569 P5 S1												; physical drive 3 goes forwards (U)
      	M569 P6 S0												; physical drive 3 goes backwards (V)
      	M569 P7 S1												; physical drive 3 goes backwards (W)
      
      M584 X0														; set drive mapping for X axis
      M584 Y1														; set drive mapping for Y axis
      M584 Z2:4													; set drive mapping for Z axis (dual independent)
      if global.MMUmode = true
      	M584 E3:3:3:3:3											; set drive mapping for virtual extruders
      	M584 U5													; set drive mapping for U axis (MMU selector)
      	M584 V6													; set drive mapping for V axis (MMU pulley)
      	M584 W7 R1 S1											; set drive mapping for W axis (MMU idler)
      else
      	M584 E3													; set drive mapping for extruder
      
      M350 X16 Y16 Z16 E16 I1										; configure microstepping with interpolation
      if global.MMUmode = true
      	M350 U16 V16 W16 I1
      
      M92 X80.00 Y80.00 Z400.00 E415.00							; set steps per mm
      if global.MMUmode = true
      	M92 U400 V167.13 W8.89
      
      M566 X600.00 Y600.00 Z24.00 E3000.00						; set maximum instantaneous speed changes (mm/min)
      if global.MMUmode = true
      	M566 U60 V240 W6
      
      M203 X18000.00 Y18000.00 Z1200.00 E7200.00					; set maximum speeds (mm/min)
      if global.MMUmode = true
      	M203 U2700 V5700 W18000
      
      M201 X3000.00 Y3000.00 Z100.00 E3000.00						; set accelerations (mm/s^2)
      if global.MMUmode = true
      	M201 U200 V800 W1000
      
      M201.1 X500 Y500 Z50 E500									; set reduced acceleration for special move types (mm/s^2)
      if global.MMUmode = true
      	M201.1 U100 V400 W500
      
      M906 X1000 Y1000 Z800 E600 I40								; set motor currents (mA) and motor idle factor in per cent
      if global.MMUmode = true
      	M906 U700 V700 W700
      
      if global.MMUmode = true									; set idle timeout
      	M906 T60
      else
      	M906 T30
      
      ; Axis Limits
      M208 X4 Y-2 Z0 S1											; set axis minima
      if global.MMUmode = true
      	M208 U0 V-1000 W0 S1
      
      M208 X315 Y308 Z400 S0										; set axis maxima
      if global.MMUmode = true
      	M208 U75 V1000 W225 S0
      
      
      ; Endstops
      M574 X1 S1 P"^xstop"										; configure active-high endstop for low end on X via pin xstop
      M574 Y1 S1 P"^ystop"										; configure active-high endstop for low end on Y via pin ystop
      M574 Z1 S1 P"^zstop"										; configure active-high endstop for low end on Z via pin zstop
      if global.MMUmode = true
      	M574 U2 S3
      	M574 V2 S3
      	M574 W1 S3
      
      ; Z-Probe
      M950 S0 C"!exp.heater7"										; create servo pin 0 for BLTouch
      M558 P9 C"^zprobe.in" H4:2 F240:120 T9000 A20 S0.01			; set Z probe type to bltouch and the dive height + speeds S0.005
      G31 P500 X-27.4 Y-28.6 Z2.00								; set Z probe trigger value, offset and trigger height
      M557 X8.0:285.0 Y21.6:279.4 P10								; define mesh grid
      
      ; Heaters
      M308 S0 P"bedtemp" Y"thermistor" T100000 B4092				; configure sensor 0 as thermistor on pin bedtemp
      M950 H0 C"bedheat" T0										; create bed heater output on bedheat and map it to sensor 0
      M307 H0 B1 S1.00											; enable bang-bang mode for the bed heater and set PWM limit
      M140 H0														; map heated bed to heater 0
      M143 H0 S110												; set temperature limit for heater 0 to 110C
      
      M308 S1 P"spi.cs1" Y"rtd-max31865"							; configure sensor 1 as thermocouple via CS pin spi.cs1
      ;M308 S1 P"e0temp" Y"thermistor" T100000 B4725 C7.060000e-8	; E3D V6 thermistor (Semitec 104-GT2)
      M950 H1 C"e0heat" T1										; create nozzle heater output on e0heat and map it to sensor 1
      M307 H1 B0 S1.00											; disable bang-bang mode for heater and set PWM limit
      M143 H1 S400												; set temperature limit for heater 1 to 400C
      
      ; Fans
      M950 F0 C"fan0" Q10000										; create fan 0 on pin fan0 and set its frequency
      M106 P0 S0 H-1 L0.3 C"Tool"									; set fan 0 value. Thermostatic control is turned off
      M950 F1 C"fan1+^exp.pb6" Q25000								; create fan 1 on pin fan1 and set its frequency
      M106 P1 S1 H1 T45 C"Heatsink"								; set fan 1 value. Thermostatic control is turned on
      
      ; Tools
      if global.MMUmode = false
      	M563 P0 D0 H1 F0										; define tool 0
      	G10 P0 X0 Y0 Z0											; set tool 0 axis offsets
      	M568 P0 R0 S0 A0										; set initial tool 0 active and standby temperatures to 0C
      
      elif global.MMUmode = true
      	M563 P0 S"Slot 1" D0 H1 F0										; define tool 0
      	G10 P0 X0 Y0 Z0											; set tool 0 axis offsets
      	M568 P0 R0 S0 A0										; set initial tool 0 active and standby temperatures to 0C
      
      	M563 P1 S"Slot 2" D1 H1 F0										; define tool 1
      	G10 P1 X0 Y0 Z0											; set tool 1 axis offsets
      	M568 P1 R0 S0 A0										; set initial tool 1 active and standby temperatures to 0C
      
      	M563 P2 S"Slot 3" D2 H1 F0										; define tool 2
      	G10 P2 X0 Y0 Z0											; set tool 2 axis offsets
      	M568 P2 R0 S0 A0										; set initial tool 2 active and standby temperatures to 0C
      
      	M563 P3 S"Slot 4" D3 H1 F0										; define tool 3
      	G10 P3 X0 Y0 Z0											; set tool 3 axis offsets
      	M568 P3 R0 S0 A0										; set initial tool 3 active and standby temperatures to 0C
      
      	M563 P4 S"Slot 5" D4 H1 F0										; define tool 4
      	G10 P4 X0 Y0 Z0											; set tool 4 axis offsets
      	M568 P4 R0 S0 A0										; set initial tool 4 active and standby temperatures to 0C
      
      ; Custom settings
      M81 C"pson"													; ATX in stadby mode at boot
      
      M308 S2 Y"mcu-temp" A"MCU"									; MCU temperature sensor (sensor 2)
      M912 P0 S-7.2												; set temperature monitor adjustment (MCU)
      
      M308 S3 Y"drivers" A"SD Duet"								; duet drivers temperature sensors (sensor 3)
      
      if global.MMUmode = true									; duet drivers temperature sensors, only when MMU is used (sensor 4)
      	M308 S4 Y"drivers-duex" A"SD DueX"
      
      M308 S5 P"e1temp" Y"thermistor" T100000 B4092 A"Ambient"	; Ambient teperature sensor (sensor 5)
      
      M307 H0 R0.135 C783.5 D0.39 S1.00 V12.2						; set the process parameters (bed 60degC)
      M307 H1 R1.757 K0.275:0.139 D6.31 E1.35 S1.00 B0 V12.2		; set the process parameters (hotend 210degC)
      
      M207 S0.8 F1800												; set retract length (PLA)
      M404 N1.75													; set filament width
      
      if global.MMUmode = false
      	M591 D0 P2 C"^e0stop" S0								; filament monitor connected to E0 endstop (Drive 0), not enabled
      
      M950 J1 C"^e1stop"											; Input 1 uses e2stop pin, pullup enabled (EmergencyStop button)
      M581 P1 T0 S1 R0											; external trigger 1, trigger occurs on the active-to-inactive edge, trigger at any time
      
      M950 J2 C"^duex.e3stop"										; Input 1 uses e2stop pin, pullup enabled (power feedback for UPS)
      M581 P2 T2 S1 R1											; external trigger 1, trigger occurs on the inactive-to-active edge, trigger at any time (UPS Backup power)
      M581 P2 T3 S0 R2											; external trigger 1, trigger occurs on the active-to-inactive edge, trigger only when not printing from SD card (AC back, resume prompt)
      
      M593 P"ZVD" F30.1 S0.05										; use MZV input shaping to cancel ringing at 26.35Hz, damping factor 0.1, minimum acceleration 20mm/s^2
      
      ;M204 P600 T800												; set printing and travel accelerations (mm/s^2) - original Creality CR-10S
      ;M204 P1000 T2000											; set printing and travel accelerations (mm/s^2) - Artillery SW-X2, https://github.com/MarlinFirmware/Configurations/tree/import-2.1.x/config/examples/Artillery/Sidewinder%20X2
      M204 P1250 T1250											; Prusa MK4
      ;M204 P1500 T2000
      
      M671 X-25:334 Y0:0 S2.5 F1.6								; adjusting screws at front left, back left, back right and front right. Thread pitch M4 corse: 0.7mm
      
      M556 S100 X0.69												; axis skew compensation, diagonal method
      
      if global.MMUmode = true
      	M98 P"0:/sys/MMU Control/settingsPrinter.g"
      	M98 P"0:/sys/MMU Control/settingsDefaultFilament.g"
      	M98 P"0:/sys/MMU Control/currentSlot.g"
      	M98 P"0:/sys/MMU Control/currentSlotReset.g"
      
      ; Miscellaneous
      M575 P1 S1 B115200											; enable support for PanelDue
      M501														; load saved parameters from non-volatile memory
      

      This is the full SD card: https://drive.google.com/drive/folders/1OcTPiUw0RlYuLT-Skopb6It37nG4u9Io?usp=drive_link

      @Phaedrux said in G30 during G28 issue:

      M98 P"config.g"

      This is failing short because of global variables defined at startup..

      M98 P"config.g"
      Error: in file macro line 6 column 17: meta command: variable 'MMUmode' already exists
      
      davidjryanundefined fcwiltundefined 2 Replies Last reply Reply Quote 0
      • davidjryanundefined
        davidjryan @Leonard03
        last edited by davidjryan

        @Leonard03
        I don't have an answer for your original issue, but...

        If you want to get your config.g to run with M98 without the error after startup, you can use the exists() function to check if the global already exists and use the result to skip defining the globals again.
        https://docs.duet3d.com/User_manual/Reference/Gcode_meta_commands
        cc65484c-dac3-4d05-a0c9-3e5a9e1d6313-image.png

        So this,

        global MMUmode = true					; enable or disable Multi Material Unit
         
        if global.MMUmode = true
        	global spoolJoin = false			; enable or disable the SpoolJoin feature of the Multi Material Unit
        	global useCutter = true				; enable or disable the CUT feature of the Multi Material Unit
         
        	global statusBondtech = 0
        	global statusFinda = 0
        	global currentSlot = {null, null}		; [0]last loaded slot, [1]last tool temperature
        	global loadNext = false
        	global pause = false
        	global tcBlock = false
        	global counter = {0,0,0}			; [0]extruder count, [1]fails, [2]total attempts
        	
        global errQueue = {null,null}
        

        becomes this,

        if !exists(global.MMUmode)
                global MMUmode = true
        
        if global.MMUmode = true
                global spoolJoin = false			; enable or disable the SpoolJoin feature of the Multi Material Unit
                global useCutter = true				; enable or disable the CUT feature of the Multi Material Unit
                 
                global statusBondtech = 0
                global statusFinda = 0
                global currentSlot = {null, null}		; [0]last loaded slot, [1]last tool temperature
                global loadNext = false
                global pause = false
                global tcBlock = false
                global counter = {0,0,0}			; [0]extruder count, [1]fails, [2]total attempts
                	
        if !exists(global.errQueue)
                global errQueue = {null,null}
        

        Then just change the true to false on line 2 to achieve the mode your desire between reboots.

        You only need to check MMUmode because if MMUmode doesn't exist, then none of the globals can exist because MMUmode is used to create all of the other globals.

        Leonard03undefined 1 Reply Last reply Reply Quote 1
        • Leonard03undefined
          Leonard03 @davidjryan
          last edited by

          @davidjryan Thank you for the suggestion. I might modify all the startup in the near future. I'm still thinking about M505 to split my printer in two separate configurations. Anyway, you gave me a very good idea. Is way easy at least for now to comment out all global variables and macros that create them. So, the response is this:
          @Phaedrux

          M98 P"config.g"
          HTTP is enabled on port 80
          FTP is disabled
          TELNET is disabled
          
          fcwiltundefined 1 Reply Last reply Reply Quote 0
          • fcwiltundefined
            fcwilt @Leonard03
            last edited by

            @Leonard03 said in G30 during G28 issue:

            Yes, is there, so why not use it 😄 When homing Z I lower the gantry until that switch is triggered and then do a G30 in the center of the bed.

            Using it makes perfect sense.

            What is odd, at least to me, is that your homing code is written as if there is not a Z end-stop. Those G1 H2 Z# commands are not needed if you simply home Z first and leave it at a safe position for then homing X and Y.

            Now is is just my personal preference but I forgo the minor optimizations that can be done in homeALL.g by just invoking the individual homing routines:

            M98 P"homeZ.G"
            M98 P"homeX.G"
            M98 P"homeY.G"
            

            One other minor difference is that I don't set the Z=0 Datum during homing but only:

            • when creating a height map
            • when loading a height map
            • when starting a print

            Doing this ensures that any possible variations due to thermal changes are taken into account.

            As to the original issue I am still stumped - something is being overlooked I imageine.

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

              @Leonard03

              One thing to remember is the some errors in config.g can cause the processing of config.g to be cut short.

              I dealt with this by tracing the processing of config.g to make sure that it ran to completion:

              At the start of config.g I have this local variable declared:

              var trace = "config_trace.txt"
              

              Then I create the first line of the file:

              echo >{var.trace} "trace begun"
              

              Then I add additional lines as seem appropriate at appropriate locations:

              echo >>{var.trace} "network config"
              
              echo >>{var.trace} "motor config"
              

              Finally at the end of config.g I have this:

              echo >>{var.trace} "trace done"
              

              It's not much work and can save time in the long run.

              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

              Leonard03undefined 1 Reply Last reply Reply Quote 0
              • dc42undefined
                dc42 administrators @Leonard03
                last edited by dc42

                @Leonard03 did you ever test this system using RRF 3.6.0-rc.2; and if so, did that have the same issue?

                I made a change to the way G30 probe coordinates are calculated between rc.2 and rc.3. It's possible that this change may have introduced a fault that is specific to Duet 2 boards.

                Duet WiFi hardware designer and firmware engineer
                Please do not ask me for Duet support via PM or email, use the forum
                http://www.escher3d.com, https://miscsolutions.wordpress.com

                Leonard03undefined 1 Reply Last reply Reply Quote 0
                • Leonard03undefined
                  Leonard03 @fcwilt
                  last edited by

                  @fcwilt Thank you for the extensive response. I will try to answer your ideas an questions in order 😄 so:

                  @fcwilt said in G30 during G28 issue:

                  Those G1 H2 Z# commands are not needed if you simply home Z first and leave it at a safe position for then homing X and Y.

                  Homez.g I tried to keep it as simple as possible. Most of the time I don't use individual homing files, and every time I home XY and after Z and if MMU is enabled W V and U in that order.
                  I use the H2 parameter in home X and Y only because it allow movement of Z.

                  @fcwilt said in G30 during G28 issue:

                  Now is is just my personal preference but I forgo the minor optimizations that can be done in homeALL.g by just invoking the individual homing routines:

                  I use this approach only for the MMU part (UV and W) The only reason I don't use this for main axis is because I like the motion of both X and Y during homing, in tandem 😄 Running both as separate M98 calls will separate that motion, that I don't like. Aesthetics, only reason :)) Ah, and I set the Z offset only during a print using G28 because the homez.g I can use it for another thing: rough leveling the bed after disassembly. After that I use the BL touch for more accurate Z0.
                  Before any print and before bed tramming (G32) and mesh (G29) yes, i use the sensor. for anything else, the switch is good enough (another example is NonLinear Extrusion calibration. Extruding in mid air)

                  @fcwilt said in G30 during G28 issue:

                  As to the original issue I am still stumped - something is being overlooked I imageine.

                  I am pretty sure that is the case..😵

                  @fcwilt said in G30 during G28 issue:

                  One thing to remember is the some errors in config.g can cause the processing of config.g to be cut short.

                  Very good point! And I have a dumb answer to this :)) Apart of the last command regarding the config-override.g.. If my config.g gets in trouble, I know it because the PanelDue will remain not connected :)) So.. if PanelDue is is not connecting, I know that I messed something up in the config 😄

                  @dc42 said in G30 during G28 issue:

                  did you ever test this system using RRF 3.6.0-rc.2; and if so, did that have the same issue?

                  Thank you for your replay. I tried rc.2 now with the same result... Sadly I don't know when this behavior started. I will try with rc.1 as well and report back

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

                    @Leonard03

                    Thanks for the reply.

                    Since you have a Z end-stop homing Z first means you have no need to use G1 H2 commands.

                    Why not use the simplest code possible?

                    I understand it may be satisfying in some sense to optimize homing by coding homeALL.g discretely but that again makes the code more complicated. Also it means if you find a flaw in homing X or Y you have to makes changes in multiple places.

                    In any case it's your printer to configure as you please, just offering advice based on many years of programming experience and several years for using Duet hardware.

                    Now back to the original issue.

                    If you don't set the Z=0 Datum in the homing code, it all homes correctly?

                    When you set the Z=0 Datum in some separate code is the X position the same before and after executing the code?

                    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

                    Leonard03undefined 1 Reply Last reply Reply Quote 0
                    • Leonard03undefined
                      Leonard03 @dc42
                      last edited by Leonard03

                      @dc42 Found when! Tried now old binaries that I have saved.
                      This particular issue occurred between 3.6.0-beta.2+4 (2024-12-01 18:14:39) and 3.6.0-beta.2+5 (2025-01-04 14:18:24).
                      In +4 version the X axis homes in the same location regardless of the G30. In the +5 version.. well.. is the present topic. I also have the .map files for them if they help you in any way 🙂

                      1 Reply Last reply Reply Quote 0
                      • Leonard03undefined
                        Leonard03 @fcwilt
                        last edited by Leonard03

                        @fcwilt Now, back on the 3.6.0-rc.3 😄
                        You pointed out some very interesting things, I admit!

                        @fcwilt said in G30 during G28 issue:

                        Since you have a Z end-stop homing Z first means you have no need to use G1 H2 commands.

                        Now looking at that particular macro.. I wonder the same.. Why?

                        @fcwilt said in G30 during G28 issue:

                        Why not use the simplest code possible?

                        For those two points, I don't have an answer, just an excuse :)) This macro most likely is the original generated by the RRF configurator for the version 3.2. So is quite old. But if it is not broken, don't fix it 😄 This is the excuse. But now I'm releasing that it makes no sense now.
                        This part, done. Removed the line that contained the G1 H2 command from homez.g.

                        @fcwilt said in G30 during G28 issue:

                        just offering advice based on many years of programming experience and several years for using Duet hardware.

                        Thank you very much for this, I really appreciate this ^_^

                        @fcwilt said in G30 during G28 issue:

                        f you don't set the Z=0 Datum in the homing code, it all homes correctly?

                        Let me see if I understand the question correctly:
                        You are referring to the G92 Z0 command, right?
                        I use it in both homez and homeall.

                        • Removing it from homez.g: no change, so another line deleted
                        • Removing it from homeall.g: no change, so another line deleted as well 😄
                          The original issue is still present, sadly..
                          As for this

                        @fcwilt said in G30 during G28 issue:

                        When you set the Z=0 Datum in some separate code is the X position the same before and after executing the code?

                        I don't understand your question, I apologize. Plese give me a little more details so I can try out 🙂

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

                          @Leonard03 said in G30 during G28 issue:

                          I don't understand your question, I apologize. Plese give me a little more details so I can try out 🙂

                          Let's assume the current Machine Position is X=20 Y=20.

                          To verify this you will need to check in the Object Model as the DWC user interface shows User Position, not Machine Position.

                          Then execute the G30 at that position.

                          Then check the Machine Position to see if it has changed.

                          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

                          Leonard03undefined 1 Reply Last reply Reply Quote 0
                          • Leonard03undefined
                            Leonard03 @fcwilt
                            last edited by Leonard03

                            @fcwilt Right, got the point!
                            I've made this little macro:

                            ; printer is homed using G28 X Y Z prior to executing this macro
                            
                            G90
                            G1 Z10 F600 ; space for the BLTouch pin to extend
                            
                            echo "User " ^ move.axes[0].letter ^ " position is: ", move.axes[0].userPosition
                            echo "Machine " ^ move.axes[0].letter ^ " position is: ", move.axes[0].machinePosition
                            echo "User " ^ move.axes[1].letter ^ " position is: ", move.axes[1].userPosition
                            echo "Machine " ^ move.axes[1].letter ^ " position is: ", move.axes[1].machinePosition
                            

                            This is the result after G28 X Y Z:

                            User X position is:  4.739
                            Machine X position is:  4.739
                            User Y position is:  -2.000
                            Machine Y position is:  -2.000
                            

                            Now, moving the nozzle 100mm in X and Y, so, G1 X100 Y100 F2400

                            User X position is:  100.000
                            Machine X position is:  99.997
                            User Y position is:  100.000
                            Machine Y position is:  100.000
                            

                            G30 and the result:

                            User X position is:  99.285
                            Machine X position is:  99.285
                            User Y position is:  100.000
                            Machine Y position is:  100.000
                            

                            Not exactly, but they seems to be pretty close. The physical position is way bigger

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

                              @Leonard03

                              Good job.

                              Very strange.

                              I'm wondering at this point if there is a problem in the firmware.

                              If I was using RC firmware (which I never do) I would resort to the last stable version prior to the RC version and see if the problem goes away.

                              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

                              Leonard03undefined 1 Reply Last reply Reply Quote 0
                              • Leonard03undefined
                                Leonard03 @fcwilt
                                last edited by

                                @fcwilt Thank you ^_^
                                Digging deeper, I got something:

                                @Leonard03 said in G30 during G28 issue:

                                This particular issue occurred between 3.6.0-beta.2+4 (2024-12-01 18:14:39) and 3.6.0-beta.2+5 (2025-01-04 14:18:24).

                                I feel really sorry... Looking at commits on GitHub between those dates, there were many and substantial changes in RRF.. I feel sorry because only now I came across this bug (?) after so much time 😞

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

                                  @Leonard03 said in G30 during G28 issue:

                                  I feel really sorry... Looking at commits on GitHub between those dates, there were many and substantial changes in RRF.. I feel sorry because only now I came across this bug (?) after so much time 😞

                                  There was a time when I would install beta or rc firmware - but no longer - I have things to print.

                                  So I am still using 3.5.4.

                                  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