When I pause during a print, printer does not home correctly
-
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.
-
@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
-
@Feynman137 post your pause.g and resume.g files as well
-
@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
-
Ah never mind I don't see how the pause/resume could've caused a problem.
-
@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. -
@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) -
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?
-
@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:
@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
-
@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) -
@OwenD This is quite an interesting idea
-
@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.
-
@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.