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

    [RRF3.3b2] Possibly incorrect behavior when homing Z

    Scheduled Pinned Locked Moved Unsolved
    Beta Firmware
    6
    20
    950
    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.
    • pkosundefined
      pkos
      last edited by

      3.3b2 introduce the great option to have two speeds for probing Z that get defined in M558.

      There is a behavior that I (and a couple others) are seeing that while not harmful is a touch annoying 😉

      Here's the process.

      Take the gantry up to a bigger height (say 100-150mm).
      Turn on the printer, home XY then home Z.
      The gantry will be lowered until the sensor (whatever it might be) triggers and sets the first 0 reading.
      Then - the gantry raises back to whatever it was before (if it was 100mm - it goes there, if 150mm - it goes that high and so on) and then drops down at the second speed (usually much lower) to probe again.

      I would expect the height to which the gantry raises on the second probe is the one defined in M558 - not the distance the gantry had to travel for the first reading.

      I see this behavior on Duet 3 6HC, but I know this also happens on Duet 2 Wifi.

      Did I miss something with the setup?

      Here's my code just in case.

      Probe definition in config.g:

      ; Z microswitch
      M558 K1 P8 C"io3.in" I1 H2 F350:60 T18000 A10 S0.01 R0.2 ; set Z probe type to switch and the dive height + speeds
      G31 K1 P500 X0 Y25 Z-0.16                           ; set Z probe trigger value, offset and trigger height
      

      Home.z (very simple):

      G91               	; relative positioning
      G1 H2 Z10 F6000    	; lift Z relative to current position
      G90				  	; absolute positioning
      G1 X207 Y304 F6000	; move above the endstop switch
      G30 K1 Z-99999
      

      Voron 2.4 (Duet 3 6HC + 3HC standalone), Voron SW (Duet 3 mini 5+ standalone), Voron Trident (Duet 3 mini 5+ standalone), Voron 0.1

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

        Can you post your full config.g as well as the results of sending M122 and M98 P"config.g"?

        Z-Bot CoreXY Build | Thingiverse Profile

        pkosundefined 2 Replies Last reply Reply Quote 0
        • pkosundefined
          pkos @Phaedrux
          last edited by pkos

          @phaedrux Sure thing.

          m122
          === Diagnostics ===
          RepRapFirmware for Duet 3 MB6HC version 3.3beta2 running on Duet 3 MB6HC v0.6 or 1.0 (standalone mode)
          Board ID: 08DJM-956L2-G43S4-6JKDA-3SJ6T-1B6GH
          Used output buffers: 3 of 40 (22 max)
          === RTOS ===
          Static ram: 148476
          Dynamic ram: 94096 of which 176 recycled
          Never used RAM 108588, free system stack 114 words
          Tasks: NETWORK(ready,236) ETHERNET(notifyWait,117) SENSORS(delaying,17) HEAT(delaying,303) CanReceiv(notifyWait,798) CanSender(notifyWait,372) CanClock(delaying,348) TMC(notifyWait,58) MAIN(running,648) IDLE(ready,19)
          Owned mutexes:
          === Platform ===
          Last reset 00:36:00 ago, cause: power up
          Last software reset at 2021-04-07 20:35, reason: User, GCodes spinning, available RAM 108916, slot 2
          Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00400000 BFAR 0x00000000 SP 0x00000000 Task MAIN Freestk 0 n/a
          Error status: 0x00
          Aux0 errors 0,0,0
          Aux1 errors 0,0,0
          MCU temperature: min 21.7, current 45.1, max 45.5
          Supply voltage: min 23.9, current 24.0, max 24.1, under voltage events: 0, over voltage events: 0, power good: yes
          12V rail voltage: min 12.1, current 12.1, max 12.2, under voltage events: 0
          Heap OK, handles allocated/used 99/2, heap memory allocated/used/recyclable 2048/460/434, gc cycles 0
          Driver 0: position 20080, standstill, reads 55662, writes 37 timeouts 0, SG min/max 0/1023
          Driver 1: position -19920, standstill, reads 55662, writes 37 timeouts 0, SG min/max 0/1023
          Driver 2: position 1279, standstill, reads 55663, writes 37 timeouts 0, SG min/max 0/1023
          Driver 3: position 0, standstill, reads 55663, writes 37 timeouts 0, SG min/max 0/1023
          Driver 4: position 0, standstill, reads 55675, writes 25 timeouts 0, SG min/max 0/1023
          Driver 5: position 0, standstill, reads 55675, writes 25 timeouts 0, SG min/max 0/762
          Date/time: 2021-04-08 13:12:35
          Slowest loop: 46.79ms; fastest: 0.06ms
          === Storage ===
          Free file entries: 10
          SD card 0 detected, interface speed: 25.0MBytes/sec
          SD card longest read time 3.4ms, write time 5.1ms, max retries 0
          === Move ===
          DMs created 125, maxWait 104850ms, bed compensation in use: mesh, comp offset 0.000
          === MainDDARing ===
          Scheduled moves 23736, completed moves 23736, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 1], CDDA state -1
          === AuxDDARing ===
          Scheduled moves 0, completed moves 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
          === Heat ===
          Bed heaters = 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamberHeaters = -1 -1 -1 -1
          Heater 0 is on, I-accum = 0.1
          Heater 1 is on, I-accum = 0.6
          === GCodes ===
          Segments left: 0
          Movement lock held by null
          HTTP is idle in state(s) 0
          Telnet is idle in state(s) 0
          File is idle in state(s) 0
          USB is idle in state(s) 0
          Aux is idle in state(s) 0
          Trigger is idle in state(s) 0
          Queue is idle in state(s) 0
          LCD is idle in state(s) 0
          SBC is idle in state(s) 0
          Daemon is idle in state(s) 0
          Aux2 is idle in state(s) 0
          Autopause is idle in state(s) 0
          Code queue is empty.
          === CAN ===
          Messages queued 40348, send timeouts 0, received 8635, lost 0, longest wait 1ms for reply type 6042, peak Tx sync delay 503, free buffers 49 (min 48)
          === Network ===
          Slowest loop: 27.85ms; fastest: 0.02ms
          Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0), 0 sessions Telnet(0), 0 sessions
          HTTP sessions: 1 of 8
          - Ethernet -
          State: active
          Error counts: 0 0 1 0 0
          Socket states: 2 2 2 2 2 0 0 0
          

          config.g

          ; Configuration file for Duet 3 (firmware version 3)
          ; executed by the firmware on start-up
          ;
          ; generated by RepRapFirmware Configuration Tool v3.1.3 on Sun Jul 12 2020 20:53:52 GMT+0200 (Central European Summer Time)
          
          ; General preferences
          G90                                            	    ; send absolute coordinates...
          M83                                                 ; ...but relative extruder moves
          M550 P"Voron 2"                                   	; set printer name
          M669 K1                                            	; select CoreXY mode
          
          ; Network
          M552 P0.0.0.0 S1                                   	; enable network and acquire dynamic address via DHCP
          M586 P0 S1                                          ; enable HTTP
          M586 P1 S0                                         	; disable FTP
          M586 P2 T1 S0                                        	; disable Telnet
          
          ; Wait a bit so boards can sync up
          G4 S5
          
          ; Drives for XY
          M569 P0.4 S1                                       	; A motor 
          M569 P0.5 S1                                       	; B motor
          
          ; Drives for Z
          M569 P0.0 S0                                       	; Front left 
          M569 P0.1 S1                                       	; Back left
          M569 P0.2 S0                                       	; Back right
          M569 P0.3 S1                                       	; Front right
          
          ; Drive for extruder 
          M569 P2.0 S0                                       	; 
          
          ; Drive mappings 
          M584 X0.4 Y0.5 Z0.0:0.1:0.2:0.3 E2.0               	; set drive mapping
          
          ; General drive config like speeds, accel, jerk, etc
          M350 X16 Y16 Z16:16:16:16 E16 I1                   	; configure microstepping with interpolation
          M92 X80.00 Y80.00 Z400.00 E410.00         			; set steps per mm
          M566 X600.00 Y600.00 Z60.00 E8000.00       			; set maximum instantaneous speed changes (mm/min)
          M203 X18000.00 Y18000.00 Z3000 E15000		       	; set maximum speeds (mm/min)
          M201 X1500.00 Y1500.00 Z350.00 E1800.00    			; set accelerations (mm/s^2)
          M204 P1500 T2000									; set printing acceleration and travel acceleration
          M906 X1200 Y1200 Z1200 E600 I60                		; set motor currents (mA) and motor idle factor in per cent
          M84 S30  
          
          ; Axis Limits
          M208 X1 Y0 Z0 S1                                   	; set axis minima
          M208 X301 Y305 Z300 S0                             	; set axis maxima
          
          ; Endstops
          M574 X2 S1 P"!io1.in"                               ; X Hall effect endstop
          M574 Y2 S1 P"!io2.in"                               ; Y Hall effect endstop
          ; M574 Z1 S1 P"io3.in"                                ; Z microswitch endstop
          M574 Z0 P"nil" 										; No endstop
          
          ; Z microswitch
          M558 K1 P8 C"io3.in" I1 H2 F350:60 T18000 A10 S0.01 R0.2 ; set Z probe type to switch and the dive height + speeds
          G31 K1 P500 X0 Y25 Z-0.16                           ; set Z probe trigger value, offset and trigger height
          
          ; Z-Probe
          M558 K0 P8 C"io4.in" I1 H5 F350:120 T18000 A5 S0.01 R0.2  ; set Z probe type to switch and the dive height + speeds
          G31 K0 P500 X0 Y25 Z1                               ; set Z probe trigger value, offset and trigger height
          
          M671 X354:354:-53:-53 Y0:370:370:0 S20        	 	; Define Z belts locations (Front_Left, Back_Left, Back_Right, Front_Right)
          M557 X15:285 Y25:275 S40                           	; define mesh grid
          
          
          ; Hotbed
          M308 S0 P"temp0" Y"thermistor" T100000 B4138       	; Thermistor
          M950 H0 C"out0" T0                                 	; Heater
          M307 H0 R0.799 C380.0 D4.51 S0.60 V24.0					; Heater 0 model for 3.x
          ; M307 H0 A157.8 C632 D1.4 V24.0 S0.6 B0			   	; Heater 0 model: gain 157.8, time constant 632.0, dead time 1.4, max PWM 0.60, calibration voltage 24.0, mode PID
          M140 H0                                            	; Map heated bed to heater 0
          M143 H0 S120                                       	; Set temperature limit for heater 0 to 120C
          M570 H0 T3											; Start screaming if temp falls 3C below set temp. 
          
          ; Hotend
          M308 S1 P"temp1" Y"thermistor" T100000 B4138       	; Thermistor
          M950 H1 C"out1" T1                                 	; Heater
          
          ; Mosquitto
          ; M307 H1 R3.110 C160.8 D8.11 S1.00 V24.0
          ; M307 H1 A593.7 C180.4 D7.6 V24.0 B0				   	; Heater 1 model: gain 593.7, time constant 180.4, dead time 7.6, max PWM 1.00, calibration voltage 24.0, mode PID
          
          ; Mosquitto HF
          ; M307 H1 A408.1 C161.3 D4.8 V24.0 B0				   	; Heater 1 model: gain 408.1, time constant 161.3, dead time 4.8, max PWM 1.00, calibration voltage 24.0, mode PID
          M307 H1 R2.479 C178.2 D6.92 S1.00 V24.0
          
          ; DHT22 sensor
          M308 S10 P"0.spi.cs1" Y"dht22"       A"Chamber Temp"    ; Temperature (connected to cs0 port on the temp daughterboard slot
          M308 S11 P"S10.1"     Y"dhthumidity" A"Chamber Hum[%]"  ; Humidity
          
          ; Main fans
          M950 F0 C"2.out6" Q500                             	; Part cooling fan
          M106 P0 S0 H-1 C"Part Fan"                        	; Default off; thermostatic control off 
          M950 F1 C"out7" Q500                           	   	; Hotend cooling fan
          ;M106 P1 S1 H-1                                     	; Default off; thermostatic control off 
          M106 P1 S1 H1 T45 C"Hotend Fan"                    	; Default on; thermistatic control on above 45C
          
          ; Aux fans (option to control daughter board fans based on main board temp sensor coming in RRF3.3, for now has to be manual)
          M950 F2 C"out8" Q500                              ; Electronics compartment fan 1
          M106 P2 S1 H0 T45 C"Electronics Fan 1"				; Default off; thermistatic control on above 45C 
          M950 F3 C"out9" Q500                              ; Electronics compartment fan 2
          M106 P3 S1 H0 T45 C"Electronics Fan 2"				; Default off; thermistatic control on above 45C 
          
          M950 F4 C"!out4+out4.tach"							; Noctua exhaust filter fan
          M106 P4 S0 H-1 C"Exhaust Fan"						; Default off 
          
          ; Tools
          M563 P0 D0 H1 F0                                   	; define tool 0
          G10 P0 X0 Y0 Z0                                    	; set tool 0 axis offsets
          G10 P0 R0 S0                                       	; set initial tool 0 active and standby temperatures to 0C
          
          ; Push buttons and their config
          M950 J5 C"io5.in" 									; Left button - light
          M581 P5 T5 											; when button pushed, execute trigger5.g
          
          M950 J6 C"io7.in"  									; Left button - heat up
          M950 F5 C"io6.out"									; configure the relay as fan
          M106 F5 S0 H-1 C"Light"
          M581 P6 T6											; When pushed - trigger relay switch on io6.out
          
          ; Custom settings are not defined
          M593 F37.3											; DAA 
          
          ; Miscellaneous
          M911 S22 R23 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" 	; set voltage thresholds and actions to run on power loss
          M575 P1 S1 B57600                            		; enable support for PanelDue
          
          ; Prepare global vars for print macros
          global bed_temp = 0
          global hotend_temp = 0
          
          m98 P"config.g"
          HTTP is enabled on port 80
          FTP is disabled
          TELNET is disabled
          

          Voron 2.4 (Duet 3 6HC + 3HC standalone), Voron SW (Duet 3 mini 5+ standalone), Voron Trident (Duet 3 mini 5+ standalone), Voron 0.1

          OwenDundefined 1 Reply Last reply Reply Quote 0
          • OwenDundefined
            OwenD @pkos
            last edited by

            @pkos
            I have a Duet 2 Wifi and run RRF 3.3b2
            It works as expected for me.
            Move to Z100
            Run G30 K0
            It does a fast probe then only raises to the dive height before doing the subsequent probes at the slower speed.

            ; Z-Probe
            M950 S0 C"exp.heater3"                                      ; create servo pin 0 for BLTouch
            M558 P9 C"^zprobe.in" H6 F600:180 K0 T2400 A10 S0.03 R0.5 B0         ; set Z probe type to bltouch and the dive height + speeds
            G31 P500 X27 Y-2 Z0.48                                  	; set Z probe trigger value, offset and trigger height
            
            pkosundefined 1 Reply Last reply Reply Quote 0
            • pkosundefined
              pkos @OwenD
              last edited by pkos

              @owend

              Just to be clear.

              You take the gantry to 100.

              You turn the printer off completely.
              You turn the printer on and Home z - and then it also just raises a tiny bit even though the first probe needed a drop fo 100?

              The switched off printer is the key here. If it's already homed, the problem does not exist.

              This is a problem for me, since I often have prints running and the printer shuts itself off completely after it cools down.

              So then, when I want to print again, the gantry is often quite high and it takes a long time to get it to home again.

              Voron 2.4 (Duet 3 6HC + 3HC standalone), Voron SW (Duet 3 mini 5+ standalone), Voron Trident (Duet 3 mini 5+ standalone), Voron 0.1

              fulgundefined OwenDundefined 2 Replies Last reply Reply Quote 0
              • fulgundefined
                fulg @pkos
                last edited by

                @pkos My printer is down at the moment but as far as I remember this works for me? Granted I did not run 3.3b2 for long, but the first trigger of the probe should establish Z=0 (you should see the "Home Z" button turn blue in DWC as soon as the probe is triggered), then the gantry rises by the dive height and the 2nd probe occurs...

                VORON V2 CoreXY + Duet3 Mini5+ Ethernet v1.0 with Mini2+ expansion, VORON V0 CoreXY + Duet2 Maestro

                pkosundefined 1 Reply Last reply Reply Quote 0
                • pkosundefined
                  pkos @fulg
                  last edited by

                  They say a picture tells a thousand words.

                  This is what I see.

                  https://www.youtube.com/watch?v=0EZ7CqDl-Io

                  The key to make this happen is set double speeds for probing.
                  So in my case it's F350:60

                  Voron 2.4 (Duet 3 6HC + 3HC standalone), Voron SW (Duet 3 mini 5+ standalone), Voron Trident (Duet 3 mini 5+ standalone), Voron 0.1

                  fulgundefined 1 Reply Last reply Reply Quote 0
                  • fulgundefined
                    fulg @pkos
                    last edited by

                    @pkos Ok, I can reproduce this here on my VORON Zero if I replace the Z endstop with a Z probe connected to the same spot (so I can use G30 Z-99999 in my homing sequence instead of G1 H1 Z-125).

                    When using a single probing speed, Z=0 is established on the first probe, so the move to the dive height is small.

                    When using dual probing speeds, Z=0 is not established until after the second probe, so the move to the dive height is "power up position + dive height".

                    VORON V2 CoreXY + Duet3 Mini5+ Ethernet v1.0 with Mini2+ expansion, VORON V0 CoreXY + Duet2 Maestro

                    1 Reply Last reply Reply Quote 1
                    • OwenDundefined
                      OwenD @pkos
                      last edited by

                      @pkos said in [RRF3.3b2] Possibly incorrect behavior when homing Z:

                      @owend

                      Just to be clear.

                      You take the gantry to 100.

                      You turn the printer off completely.
                      You turn the printer on and Home z - and then it also just raises a tiny bit even though the first probe needed a drop fo 100?

                      The switched off printer is the key here. If it's already homed, the problem does not exist.

                      You could be right. I didn't turn the printer off.

                      1 Reply Last reply Reply Quote 0
                      • pkosundefined
                        pkos @Phaedrux
                        last edited by

                        @phaedrux Just checking in - is this possibly something that can be checked seeing as how others are now confirming the issue?

                        Voron 2.4 (Duet 3 6HC + 3HC standalone), Voron SW (Duet 3 mini 5+ standalone), Voron Trident (Duet 3 mini 5+ standalone), Voron 0.1

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

                          Yes I've asked @DC42 to comment when he gets a chance.

                          Z-Bot CoreXY Build | Thingiverse Profile

                          pkosundefined 1 Reply Last reply Reply Quote 0
                          • pkosundefined
                            pkos @Phaedrux
                            last edited by

                            @phaedrux FYI - checked with 3.3b3 - behavior still there.

                            Voron 2.4 (Duet 3 6HC + 3HC standalone), Voron SW (Duet 3 mini 5+ standalone), Voron Trident (Duet 3 mini 5+ standalone), Voron 0.1

                            1 Reply Last reply Reply Quote 1
                            • sebkritikelundefined
                              sebkritikel
                              last edited by

                              I can verify this behavior as well
                              Duet2 Wifi +Duex5
                              Duet Web Control 3.3.0-b3
                              RepRapFirmware for Duet 2 WiFi/Ethernet 3.3beta3 (2021-04-22)

                              Large(ish?) IDEX - 6HC, 1HCL
                              Stratasys Dimension 1200es to 6HC Conversion

                              dc42undefined 1 Reply Last reply Reply Quote 1
                              • dc42undefined
                                dc42 administrators @sebkritikel
                                last edited by dc42

                                I've tried and failed to reproduce this behaviour. However, I have found a bug:

                                • If I set M558 F1000:300 A1 (or I don't specify the A parameter in the original M558 command), then homing Z using G30 probes just once and then reports "Homing failed".
                                • If I set M558 F1000:300 A2, then homing Z works. It probes once at the fast speed, moves up to the dive height (even if I started at a much greater height with Z not homed), then probes twice at the slow speed.

                                My G30 command to home Z has no parameters.

                                @pkps and @fulg, does the issue still occur if you remove the Z-99999 parameter from the G30 command?

                                @pkos and @sebkritikel, what A parameter are you using?

                                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

                                pkosundefined sebkritikelundefined 2 Replies Last reply Reply Quote 0
                                • pkosundefined
                                  pkos @dc42
                                  last edited by

                                  @dc42 I am using A10.

                                  Just in case, my config is at the top.

                                  I am not sure if you need the whole config.g or if the things up there are enough.

                                  Voron 2.4 (Duet 3 6HC + 3HC standalone), Voron SW (Duet 3 mini 5+ standalone), Voron Trident (Duet 3 mini 5+ standalone), Voron 0.1

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

                                    @pkos, I just found a way to reproduce the issue you saw:

                                    • Send Z to +50
                                    • Send G92 Z0
                                    • Send M18 Z to flag Z as not homed
                                    • Send G30 (after setting M558 A2 to avoid the other bug)

                                    I am about to test the fix.

                                    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

                                    pkosundefined 1 Reply Last reply Reply Quote 0
                                    • pkosundefined
                                      pkos @dc42
                                      last edited by

                                      @dc42 Nice. I saw that M18 would also trigger this, but couldn't always reproduce it (so didn't want to waste your time with it).
                                      For the time being, I just removed M18 from my end gcode 😉

                                      Awesome you found it.

                                      Voron 2.4 (Duet 3 6HC + 3HC standalone), Voron SW (Duet 3 mini 5+ standalone), Voron Trident (Duet 3 mini 5+ standalone), Voron 0.1

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

                                        The fix is working and will be in 3.3RC1.

                                        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

                                        pkosundefined 1 Reply Last reply Reply Quote 1
                                        • pkosundefined
                                          pkos @dc42
                                          last edited by

                                          @dc42 Awesome. Can't wait 🙂 Thank you.

                                          Voron 2.4 (Duet 3 6HC + 3HC standalone), Voron SW (Duet 3 mini 5+ standalone), Voron Trident (Duet 3 mini 5+ standalone), Voron 0.1

                                          1 Reply Last reply Reply Quote 0
                                          • sebkritikelundefined
                                            sebkritikel @dc42
                                            last edited by

                                            @dc42 said in [RRF3.3b2] Possibly incorrect behavior when homing Z:

                                            @pkos and @sebkritikel, what A parameter are you using?

                                            For posterity:
                                            M558 P9 C"^zprobe.in" H5 F1000:200 A8 R0.75 T6000 S.02

                                            Large(ish?) IDEX - 6HC, 1HCL
                                            Stratasys Dimension 1200es to 6HC Conversion

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