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

    When I pause during a print, printer does not home correctly

    Scheduled Pinned Locked Moved
    General Discussion
    4
    14
    1.1k
    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.
    • jens55undefined
      jens55
      last edited by jens55

      Check your config.g file for your maximum axis positions. The print head is attempting to go past it's physical limit which causes the axis stepper to loose position. When the printhead returns to the previous position it is at the wrong position.
      Also, if your homing moves are not recognizing the home switch you have either a defective home switch or more issues with your config.g file.
      Oh, the printer homeing after you paused the print seems wrong/odd.
      You might want to post which printer you have, your config.g and all you homeing routines.

      There is of course also the possibility that you are attempting to print too fast for your hardware and steps are lost in the process.

      Feynman137undefined 1 Reply Last reply Reply Quote 0
      • Feynman137undefined
        Feynman137 @jens55
        last edited by Feynman137

        @jens55 thank you for your reply. I have posted the files below for this coreXY printer. But when I pause the print, I don't see the print bed move down as instructed in all the homing files, so is it really homing?

        Printing is very slow maybe 30mm/s

        ; Configuration file for Duet 3 (firmware version 3)
        ; executed by the firmware on start-up
        ;
        ; generated by RepRapFirmware Configuration Tool v3.2.3 on Wed Jun 23 2021 23:47:21 GMT-0400 (Eastern Daylight Time)
        
        ; General preferences
        G90                                             ; send absolute coordinates...
        M83                                             ; ...but relative extruder moves
        M550 P"Duet 3"                                  ; set printer name
        M669 K1                                         ; select CoreXY mode
        
        ; Drives
        M569 P0.0 S1                                    ; physical drive 0.0 goes forwards
        M569 P0.1 S1                                    ; physical drive 0.1 goes forwards
        M569 P0.2 S1									; physical drive 0.2 goes forwards
        M569 P0.3 S1									; physical drive 0.3 goes forwards
        M569 P0.4 S1									; physical drive 0.4 goes forwards
        M569 P0.5 S1									; physical drive 0.5 goes forwards                                			
        M569 P1.1 S0                                    ; physical drive 1.1 goes backwards
        M569 P1.2 S1                                    ; physical drive 1.2 goes forwards
        M584 X0.0 Y0.1 Z0.2:0.3:0.4:0.5 E1.1:1.2        ; set drive mapping
        M671 X674.55:674.55:-115.1:-115.1 Y-17.17:526.47:526.47:-17.17 S1 			; leadscrews at (xf,yi) (xf,yf) (xi,yf) (xi,yi)
        M350 X16 Y16 Z16 E16:16 I1                      ; configure microstepping with interpolation
        M92 X40.00 Y40.00 Z1200.00 E837:837        ; set steps per mm
        M566 X900.00 Y900.00 Z150.00 E120.00:120.00      ; set maximum instantaneous speed changes (mm/min)
        M203 X6000.00 Y6000.00 Z300.00 E1200.00:1200.00 ; set maximum speeds (mm/min)
        M201 X500.00 Y500.00 Z10.00 E250.00:250.00      ; set accelerations (mm/s^2)
        M906 X1500 Y1500 Z1500 E800:800 I30             ; set motor currents (mA) and motor idle factor in per cent
        M84 S30                                         ; Set idle timeout
        
        ; Axis Limits
        M208 X0 Y0 Z-2 S1                              ; set axis minima
        M208 X550 Y500 Z451 S0                          ; set axis maxima
        
        ; Endstops
        M574 X1 S1 P"!io4.in"                           ; configure active-low endstop for low end on X via pin !io1.in
        M574 Y1 S1 P"!io2.in"                           ; configure active-low endstop for low end on Y via pin !io5.in
        M574 Z2 S1 P"!io3.in"                           ; configure active-low endstop for low end on Z via pin !io3.in
        
        ; Z-Probe
        M950 S0 C"io7.out"                              ; create servo pin 0 for BLTouch
        M558 P9 C"^io7.in" H2 F100:50 T3000                ; set Z probe type to bltouch and the dive height + speeds
        G31 X-23.9 Y28.2 Z4.5                          ; set Z probe trigger value, offset and trigger height
        M557 X50:550 Y50:450 S50:100                        ; define mesh grid
        
        ; Heaters
        M308 S0 P"1.temp0" Y"thermistor" T100000 B4138  ; configure sensor 0 as thermistor on expansion board pin 1.temp0
        M950 H0 C"1.out0" T0                            ; create nozzle heater output on 1.out0 and map it to sensor 0
        M307 H0 R1.567 K0.235:0.000 D5.97 E1.35 S1.00 B0 V24.0; disable bang-bang mode for heater  and set PWM limit
        M143 H0 S280                                    ; set temperature limit for heater 0 to 280C
        
        M308 S1 P"1.temp1" Y"thermistor" T100000 B4138  ; configure sensor 2 as thermistor on expansion board pin 1.temp1
        M950 H1 C"1.out1" T1                            ; create nozzle heater output on 1.out2 and map it to sensor 1
        M307 H1 B0 S1.00                                ; disable bang-bang mode for heater  and set PWM limit
        M143 H1 S280                                    ; set temperature limit for heater 1 to 280C
        
        ; bed heater0
        M308 S2 P"0.temp0" Y"thermistor" T100000 B4138    ; configure sensor 2 as thermistor on mainboard pin temp0
        M950 H2 C"0.out9" T2                            ; create bed heater output on 1.out0 and map it to sensor 2
        M140 P0 H2                                         ;assign H2 to bed heater0
        M307 H2 B0 S10.00                                ; disable bang-bang mode for the bed heater and set PWM limit
        M143 H2 S120                                     ;set temperature limit for heater 0 to 120C 
        
        ; bed heater1
        M308 S3 P"0.temp1" Y"thermistor" T100000 B4138    ; configure sensor 3 as thermistor on mainboard pin temp1
        M950 H3 C"0.out6" T3                             ; create bed heater output on 1.out0 and map it to sensor 3
        M140 P1 H3                                         ;assign H2 to bed heater0
        M307 H3 B0 S10.00                                ; disable bang-bang mode for the bed heater and set PWM limit
        M143 H3 S120                                     ;set temperature limit for heater 0 to 120C
        
        ; bed heater2
        M308 S4 P"0.temp2" Y"thermistor" T100000 B4138    ; configure sensor 4 as thermistor on mainboard pin temp2
        M950 H4 C"0.out5" T4                             ; create bed heater output on 1.out0 and map it to sensor 4
        M140 P2 H4                                          ;assign H2 to bed heater0
        M307 H4 B0 S10.00                                ; disable bang-bang mode for the bed heater and set PWM limit
        M143 H4 S120                                     ;set temperature limit for heater 0 to 120C
        
        ; bed heater3
        M308 S5 P"0.temp3" Y"thermistor" T100000 B4138    ; configure sensor 5 as thermistor on mainboard pin temp3
        M950 H5 C"0.out4" T5                             ; create bed heater output on 1.out0 and map it to sensor 5
        M140 P3 H5                                      ;assign H2 to bed heater0
        M307 H5 B0 S10.00                                ; disable bang-bang mode for the bed heater and set PWM limit
        M143 H5 S120                                     ;set temperature limit for heater 0 to 120C
        
        
        
        ; Fans
        M950 F0 C"1.out7" Q500                          ; create fan 0 on pin 1.out7 and set its frequency
        M106 P0 S255 H-1                                  ; set fan 0 value. Thermostatic control is turned off
        M950 F1 C"1.out8" Q500                          ; create fan 1 on pin 1.out8 and set its frequency
        M106 P1 S0 H-1                                  ; set fan 1 value. Thermostatic control is turned off
        M950 F2 C"0.out7" Q500                          ; create fan 2 on pin 1.out7 and set its frequency
        M106 P2 S255 H-1                                  ; set fan 0 value. Thermostatic control is turned off
        M950 F3 C"0.out8" Q500                          ; create fan 3 on pin 1.out8 and set its frequency
        M106 P3 S255 H-1                                  ; set fan 1 value. Thermostatic control is turned off
        
        ; Tools
        M563 P0 S"left extruder" D0 H0 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
        ;M563 P1 S"right extruder" D1 H1 F1                define tool 1
        ;G10 P1 X-47.8 Y0 Z0                        ; set tool 1 axis offsets
        G10 P0 R0 S0                                    ; set initial tool 0 active and standby temperatures to 0C
        
        ; Custom settings are not defined
        
        ; Miscellaneous
        M575 P1 S1 B57600                               ; enable support for PanelDue
        
        
        ; homex.g
        ; called to home the X axis
        ;
        ; generated by RepRapFirmware Configuration Tool v3.2.3 on Wed Jun 23 2021 23:47:22 GMT-0400 (Eastern Daylight Time)
        G91               ; relative positioning
        G1 H2 Z2 F6000    ; lower Z relative to current position
        G1 H1 X-700 F1800 ; move quickly to X axis endstop and stop there (first pass)
        G1 X5 F6000       ; go back a few mm
        G1 H1 X-700 F360  ; move slowly to X axis endstop once more (second pass)
        G1 H2 Z-2 F6000   ; lift Z
        G90               ; absolute positioning
        
        
        ; homey.g
        ; called to home the Y axis
        ;
        ; generated by RepRapFirmware Configuration Tool v3.2.3 on Wed Jun 23 2021 23:47:22 GMT-0400 (Eastern Daylight Time)
        G91               ; relative positioning
        G1 H2 Z2 F6000    ; lower Z relative to current position
        G1 H1 Y-700 F1800 ; move quickly to Y axis endstop and stop there (first pass)
        G1 Y5 F6000       ; go back a few mm
        G1 H1 Y-700 F360  ; move slowly to Y axis endstop once more (second pass)
        G1 H2 Z-2 F6000   ; lift Z again
        G90               ; absolute positioning
        
        ; homeall.g
        ; called to home all axes
        ;
        ; generated by RepRapFirmware Configuration Tool v3.2.3 on Wed Jun 23 2021 23:47:22 GMT-0400 (Eastern Daylight Time)
        G91                     ; relative positioning
        G1 H2 Z7 F300          ; lower Z relative to current position
        G1 H1 X-640 Y-545 F1800 ; move quickly to X or Y endstop and stop there (first pass)
        G1 H1 X-640             ; home X axis
        G1 H1 Y-545             ; home Y axis
        G1 X5 Y5 F6000          ; go back a few mm
        G1 H1 X-640 F1000        ; move slowly to X axis endstop once more (second pass)
        G1 H1 Y-545				; then move slowly to Y axis endstop
        G1 X5					;move x axis
        G92 X0					;compensate to keep BL touch on plate
        G1 Y35					;move y from unprintable region
        G92 Y0             		;compensate to keep BL touch on plate
        G1 X275	F1800			;move x to center of build plate
        G1 Y250	F1800			;move y to center of build plate
        M558 F100				;adjust zprobing speed
        G30
        G1 Z5 F100				;move build plate down slowly for second pass
        M558 F10				;adjust zprobing speed to slow
        G30 	
        G1 H2 Z10 F300          ; lower Z relative to current position
        
        1 Reply Last reply Reply Quote 0
        • OwenDundefined
          OwenD @Feynman137
          last edited by OwenD

          @Feynman137 post your pause.g and resume.g files as well

          Feynman137undefined 1 Reply Last reply Reply Quote 0
          • Feynman137undefined
            Feynman137 @OwenD
            last edited by Feynman137

            @OwenD Dang I bet this is what it is. I have never edited these!! Also I home using homeall and this is the one I've kept up to date. You can see that it hits the switch then moves several mm and calls this home but this isn't done in home x and home y

            ; pause.g
            ; called when a print from SD card is paused
            ;
            ; generated by RepRapFirmware Configuration Tool v3.2.3 on Wed Jun 23 2021 23:47:22 GMT-0400 (Eastern Daylight Time)
            M83            ; relative extruder moves
            G1 E-10 F3600  ; retract 10mm of filament
            G91            ; relative positioning
            G1 Z5 F360     ; lift Z by 5mm
            G90            ; absolute positioning
            G1 X0 Y0 F6000 ; go to X=0 Y=0
            
            
            ; resume.g
            ; called before a print from SD card is resumed
            ;
            ; generated by RepRapFirmware Configuration Tool v3.2.3 on Wed Jun 23 2021 23:47:22 GMT-0400 (Eastern Daylight Time)
            G1 R1 X0 Y0 Z5 F6000 ; go to 5mm above position of the last print move
            G1 R1 X0 Y0          ; go back to the last print move
            M83                  ; relative extruder moves
            G1 E10 F3600         ; extrude 10mm of filament
            
            
            Feynman137undefined OwenDundefined jens55undefined 3 Replies Last reply Reply Quote 0
            • Feynman137undefined
              Feynman137 @Feynman137
              last edited by

              Ah never mind I don't see how the pause/resume could've caused a problem.

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

                @Feynman137
                When you pause it runs pause.g
                It won't home unless you tell it to do so.
                For example by putting G28 X Y in there.
                In your pause.g you have it set to move to X0 Y0
                That should not cause the carriage to crash if you normally home to axis minima and the machine has not skipped any steps.

                1 Reply Last reply Reply Quote 1
                • jens55undefined
                  jens55 @Feynman137
                  last edited by jens55

                  @Feynman137, I still haven't seen you mention what the printer is, especially the x and y size.
                  As a matter of semantics - you mentioned 'the printer homes' a few times. 'Homeing' and going to the home position (as in your pause.g) is something completely different and could confuses the issue for some people (ie me)

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

                    G1 X5					;move x axis
                    G92 X0					;compensate to keep BL touch on plate
                    G1 Y35					;move y from unprintable region
                    G92 Y0             		;compensate to keep BL touch on plate
                    

                    Your homeall.g is a little weird. You're homing to the switch, and then moving away from it and then calling that X0 Y0.

                    When you run pause.g it is telling it to go to x0 y0, is that in a safe space, or not? If you change that X0 Y0 to a known safe non-zero location does it still happen?

                    What firmware version? For good measure can you send M122 and M98 P"config.g" and post the results?

                    Do you have a bed.g or anything else that gets run before a print? Can you share your slicer start gcode?

                    Z-Bot CoreXY Build | Thingiverse Profile

                    Feynman137undefined 1 Reply Last reply Reply Quote 0
                    • Feynman137undefined
                      Feynman137 @Phaedrux
                      last edited by

                      @OwenD I see now that it is not actually homing like you said but attempting to move to X0 Y0

                      @jens55 I did not mention the details of the printer like max sizes etc because the config.g for the printer is posted above. But the printer looks like this:

                      CoreXY3.jpg coreXY2.jpg coreXY1.jpg

                      @Phaedrux you are correct the homing file is hitting the limit switch then moving away from it just slightly. There is an unprintable region due to the dual nozzles and bed clips etc.

                      The X0 and Y0 should be a safe place after the homing has been completed.

                      Slicer start gcode:

                      M106 S127 ;turn on extruder fan
                      M140 P0 S{material_bed_temperature} ;heated beds
                      M140 P1 S{material_bed_temperature}
                      M140 P2 S{material_bed_temperature}
                      M140 P3 S{material_bed_temperature}
                      
                      
                      G28 ; home
                      G30 P0 X529.725 Y29.65 Z-99999 ; probe near a leadscrew
                      G30 P1 X529.725 Y479.65 Z-99999 ; probe near a leadscrew
                      G30 P2 X29.725 Y479.65 Z-99999 ; probe near a leadscrew
                      G30 P3 X29.725 Y29.65 Z-99999 S4 ; probe near a leadscrew and calibrate 4 motors
                      
                      ; bed.g
                      ; called to perform automatic bed compensation via G32
                      ;
                      ; generated by RepRapFirmware Configuration Tool v3.2.3 on Wed Jun 23 2021 23:47:21 GMT-0400 (Eastern Daylight Time)
                      M561 ; clear any bed transform
                      G29  ; probe the bed and enable compensation
                      
                      

                      The M122 response is below. I was afraid to run the other command because I am in the middle of printing

                      M122
                      === Diagnostics ===
                      RepRapFirmware for Duet 3 MB6HC version 3.4.2 (2022-09-13 15:17:43) running on Duet 3 MB6HC v1.01 (SBC mode)
                      Board ID: 08DJM-956BA-NA3TN-6J1FJ-3SN6K-198AU
                      Used output buffers: 1 of 40 (14 max)
                      === RTOS ===
                      Static ram: 152664
                      Dynamic ram: 67408 of which 0 recycled
                      Never used RAM 127456, free system stack 112 words
                      Tasks: SBC(ready,99.8%,438) HEAT(notifyWait,2.8%,322) Move(notifyWait,56.2%,238) CanReceiv(notifyWait,3.3%,772) CanSender(notifyWait,0.2%,328) CanClock(delaying,0.8%,339) TMC(notifyWait,174.9%,57) MAIN(running,180.3%,923) IDLE(ready,0.3%,30), total 518.6%
                      Owned mutexes: HTTP(MAIN)
                      === Platform ===
                      Last reset 107:20:19 ago, cause: power up
                      Last software reset at 2022-12-31 12:45, reason: User, Platform spinning, available RAM 130672, slot 0
                      Software reset code 0x0000 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00400000 BFAR 0x00000000 SP 0x00000000 Task SBC Freestk 0 n/a
                      Error status: 0x00
                      Aux0 errors 0,0,0
                      Step timer max interval 136
                      MCU temperature: min 11.4, current 18.7, max 21.7
                      Supply voltage: min 23.8, 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.2, max 12.2, under voltage events: 0
                      Heap OK, handles allocated/used 99/0, heap memory allocated/used/recyclable 2048/12/12, gc cycles 0
                      Events: 0 queued, 0 completed
                      Driver 0: standstill, SG min 0, mspos 648, reads 25674, writes 41 timeouts 0
                      Driver 1: standstill, SG min 0, mspos 744, reads 25674, writes 41 timeouts 0
                      Driver 2: standstill, SG min 0, mspos 712, reads 25666, writes 49 timeouts 0
                      Driver 3: standstill, SG min 0, mspos 760, reads 25666, writes 49 timeouts 0
                      Driver 4: standstill, SG min 0, mspos 8, reads 25666, writes 49 timeouts 0
                      Driver 5: standstill, SG min 0, mspos 872, reads 25666, writes 49 timeouts 0
                      Date/time: 2023-01-05 00:06:25
                      Slowest loop: 65.97ms; fastest: 0.03ms
                      === Storage ===
                      Free file entries: 10
                      SD card 0 not detected, interface speed: 37.5MBytes/sec
                      SD card longest read time 0.0ms, write time 0.0ms, max retries 0
                      === Move ===
                      DMs created 125, segments created 12, maxWait 72177277ms, bed compensation in use: mesh, comp offset -0.396
                      === MainDDARing ===
                      Scheduled moves 4379, completed 4379, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 42], CDDA state -1
                      === AuxDDARing ===
                      Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
                      === Heat ===
                      Bed heaters 2 3 4 5 -1 -1 -1 -1 -1 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0
                      Heater 0 is on, I-accum = 0.0
                      Heater 2 is on, I-accum = 0.0
                      Heater 3 is on, I-accum = 0.0
                      Heater 4 is on, I-accum = 0.0
                      Heater 5 is on, I-accum = 0.0
                      === GCodes ===
                      Segments left: 0
                      Movement lock held by null
                      HTTP* is doing "M122" 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 3764111, received 7728772, lost 0, boc 0
                      Longest wait 1ms for reply type 6042, peak Tx sync delay 395, free buffers 50 (min 46), ts 1932100/1932099/0
                      Tx timeouts 0,0,0,0,0,0
                      === SBC interface ===
                      Transfer state: 5, failed transfers: 0, checksum errors: 0
                      RX/TX seq numbers: 21157/20032
                      SPI underruns 0, overruns 0
                      State: 5, disconnects: 0, timeouts: 0 total, 0 by SBC, IAP RAM available 0x2b1c8
                      Buffer RX/TX: 0/0-0, open files: 0
                      === Duet Control Server ===
                      Duet Control Server v3.4.2
                      File /opt/dsf/sd/gcodes/CFFFP_base3ii.gcode is selected, paused
                      Code buffer space: 4096
                      Configured SPI speed: 8000000Hz, TfrRdy pin glitches: 1
                      Full transfers per second: 38.72, max time between full transfers: 88.0ms, max pin wait times: 3758.8ms/9.1ms
                      Codes per second: 0.81
                      Maximum length of RX/TX data transfers: 3480/1636
                      
                      
                      OwenDundefined jens55undefined Phaedruxundefined 3 Replies Last reply Reply Quote 0
                      • OwenDundefined
                        OwenD @Feynman137
                        last edited by

                        @Feynman137 said in When I pause during a print, printer does not home correctly:

                        the homing file is hitting the limit switch then moving away from it just slightly. There is an unprintable region due to the dual nozzles and bed clips etc.
                        The X0 and Y0 should be a safe place after the homing has been completed.

                        You could just set your axis minima as a negative number in M208
                        M208 X-5:550 Y-35:500 Z-2:451 (Not sure why you have a negative Z minima)

                        Feynman137undefined 1 Reply Last reply Reply Quote 0
                        • Feynman137undefined
                          Feynman137 @OwenD
                          last edited by

                          @OwenD This is quite an interesting idea

                          1 Reply Last reply Reply Quote 0
                          • jens55undefined
                            jens55 @Feynman137
                            last edited by

                            @Feynman137 said in When I pause during a print, printer does not home correctly:

                            @jens55 I did not mention the details of the printer like max sizes etc because the config.g for the printer is posted above. But the printer looks like this:

                            I was trying to determine if your config.g settings for axis length were reasonable. I was thinking that if you allowed an axis to move for a maximum of 550 mm but the actual physical axis was only 500 mm, then you would see issues like you described. Your axis maxima are 550 and 500 which I thought was odd as most off the shelf printers seem to be square ... but then your printer is custom and could be any size.

                            Anyway, my limited knowledge is exhausted so I will bow out of this discussion and let smarter people help you.

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

                              @Feynman137 said in When I pause during a print, printer does not home correctly:

                              @Phaedrux you are correct the homing file is hitting the limit switch then moving away from it just slightly. There is an unprintable region due to the dual nozzles and bed clips etc.
                              The X0 and Y0 should be a safe place after the homing has been completed.

                              When you do that, the axis maxima is also shifted over. That would explain it if it were crashing into the high end of travel, but not why it would crash into the limit switch on the low end.

                              It's safer to use the method mentioned by OwenD to use an altered minima instead.

                              Perhaps a video of the problem in action would be helpful.

                              @OwenD said in When I pause during a print, printer does not home correctly:

                              (Not sure why you have a negative Z minima)

                              A slightly negative z minima allows you to baby step lower than z0.

                              Z-Bot CoreXY Build | Thingiverse Profile

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