When I pause during a print, printer does not home correctly
-
@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.