Solved Printer moves wrong Z direction while printing
-
First layer prints okay, but as it moves to second layer, it moves down instead of up. For example, my Z0 is 2.80, then it will change to layer 2.50 for the second layer. It homes fine with G28. Delta printer.
; Configuration file for Duet 3 (firmware version 3.3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.3.10 on Wed Jun 15 2022 16:15:51 GMT+0200 (Central European Summer Time) ; General preferences M575 P1 S1 B57600 ; enable support for PanelDue G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"Duet 3" ; set printer name M665 R272 L503 B173 H361.30 ; Set delta radius, diagonal rod length, printable radius and homed height M666 X0.618 Y-0.625 Z0.007 A0.08 B0.05 ; put your endstop adjustments here, or let auto calibration find them ;M579 X1.0 Y1.0 Z1.0 ; XYZ scaling factor ; Drives M569 P0.0 S1 ; physical drive 0.0 goes forwards X M569 P0.1 S1 ; physical drive 0.1 goes forwards Y M569 P0.2 S1 ; physical drive 0.2 goes forwards Z M569 P0.3 S0 ; physical drive 0.3 goes forwards E M584 X0.0 Y0.1 Z0.2 E0.3 ; set drive mapping M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation M92 X80.00 Y80.00 Z80.00 E690.00 ; set steps per mm M566 X1000.00 Y1000.00 Z1000.00 E600.00 ; set maximum instantaneous speed changes (mm/min) M203 X18000.00 Y18000.00 Z18000.00 E6000.00 ; set maximum speeds (mm/min) M201 X3000.00 Y3000.00 Z3000.00 E6000 ; set accelerations (mm/s^2) M906 X800 Y800 Z800 E850 I30 ; set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout ; Axis Limits M208 Z2.83 S1 ; set minimum Z ; Endstops M574 X2 S1 P"io1.in" ; configure switch-type (e.g. microswitch) endstop for high end on X via pin io1.in M574 Y2 S1 P"io2.in" ; configure switch-type (e.g. microswitch) endstop for high end on Y via pin io2.in M574 Z2 S1 P"io3.in" ; configure switch-type (e.g. microswitch) endstop for high end on Z via pin io3.in ; Z-Probe M558 P5 R0.4 C"io4.in+io4.out" H5 F1200 T6000 ; set Z probe type to effector and the dive height + speeds M558 H30 ;*** Remove this line after delta calibration has been done and new delta parameters have been saved G31 P500 X0 Y0 Z2.5 ; set Z probe trigger value, offset and trigger height M557 R128 S20 ; define mesh grid ; Heaters M308 S0 P"temp1" Y"thermistor" T118000 B3950 M950 H0 C"out1" T0 ; create bed heater output on out1 and map it to sensor 0 M307 H0 B0 S1.00 ; disable bang-bang mode for the bed heater and set PWM limit M140 H0 ; map heated bed to heater 0 M143 H0 S120 ; set temperature limit for heater 0 to 120C M308 S1 P"temp0" Y"pt1000" ; configure sensor 1 as PT1000 on pin temp0 M950 H1 C"out2" T1 ; create nozzle heater output on out2 and map it to sensor 1 M307 H1 B1 S1.00 ; disable bang-bang mode for heater and set PWM limit M143 H1 S450 ; set temperature limit for heater 1 to 450C ; Fans M950 F0 C"out5" Q500 ; create fan 0 on pin out5 and set its frequency M106 P0 S0 H1 T45 ; set fan 0 value. Thermostatic control is turned on M950 F1 C"out6" Q10 ; create fan 1 on pin out6 and set its frequency M106 P1 S0.5 H-1 ; set fan 1 value. Thermostatic control is turned off ; Tools T0 M563 P0 S"DragonHF" 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 ; Custom settings are not defined ; Miscellaneous M501 ; load saved parameters from non-volatile memory M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss
M122
M122 === Diagnostics === RepRapFirmware for Duet 3 MB6HC version 3.4.1 (2022-06-01 21:09:01) running on Duet 3 MB6HC v1.01 or later (SBC mode) Board ID: 08DJM-9P63L-DJ3S0-7JKF0-3S86T-TAJR8 Used output buffers: 1 of 40 (12 max) === RTOS === Static ram: 151000 Dynamic ram: 64296 of which 96 recycled Never used RAM 135136, free system stack 146 words Tasks: SBC(ready,0.5%,468) HEAT(notifyWait,0.0%,321) Move(notifyWait,0.0%,267) CanReceiv(notifyWait,0.0%,944) CanSender(notifyWait,0.0%,356) CanClock(delaying,0.0%,333) TMC(notifyWait,7.9%,58) MAIN(running,91.5%,1231) IDLE(ready,0.0%,30), total 100.0% Owned mutexes: HTTP(MAIN) === Platform === Last reset 00:27:42 ago, cause: power up Last software reset at 2022-06-21 15:03, reason: User, Platform spinning, available RAM 135136, slot 1 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 146 MCU temperature: min 28.7, current 40.2, max 43.6 Supply voltage: min 23.9, current 24.0, max 24.0, under voltage events: 0, over voltage events: 0, power good: yes 12V rail voltage: min 12.2, current 12.2, max 12.3, under voltage events: 0 Heap OK, handles allocated/used 0/0, heap memory allocated/used/recyclable 0/0/0, gc cycles 0 Events: 0 queued, 0 completed Driver 0: standstill, SG min 0, mspos 392, reads 30884, writes 27 timeouts 0 Driver 1: standstill, SG min 0, mspos 728, reads 30884, writes 27 timeouts 0 Driver 2: standstill, SG min 0, mspos 920, reads 30884, writes 27 timeouts 0 Driver 3: standstill, SG min 0, mspos 8, reads 30897, writes 14 timeouts 0 Driver 4: standstill, SG min 0, mspos 8, reads 30900, writes 11 timeouts 0 Driver 5: standstill, SG min 0, mspos 8, reads 30901, writes 11 timeouts 0 Date/time: 2022-06-21 15:50:16 Slowest loop: 26.79ms; 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 6, maxWait 155440ms, bed compensation in use: none, comp offset 0.000 === MainDDARing === Scheduled moves 19, completed 19, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 9], 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 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 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 14874, received 0, lost 0, boc 0 Longest wait 0ms for reply type 0, peak Tx sync delay 0, free buffers 50 (min 50), ts 8315/0/0 Tx timeouts 0,0,8314,0,0,6558 last cancelled message type 30 dest 127 === SBC interface === Transfer state: 5, failed transfers: 0, checksum errors: 0 RX/TX seq numbers: 64950/64950 SPI underruns 0, overruns 0 State: 5, disconnects: 0, timeouts: 0 total, 0 by SBC, IAP RAM available 0x2b880 Buffer RX/TX: 0/0-0, open files: 0 === Duet Control Server === Duet Control Server v3.4.1 Code buffer space: 4096 Configured SPI speed: 8000000Hz, TfrRdy pin glitches: 0 Full transfers per second: 12.94, max time between full transfers: 56.8ms, max pin wait times: 54.3ms/7.3ms Codes per second: 0.02 Maximum length of RX/TX data transfers: 3040/792
-
Prior to trying to print did you verify that each axis moves in the correct direction when jogging via the DWC?
Did you verify that the slicer is configured to match your printer when it comes to axis size and origin?
Frederick
-
@velvia I assume that if you command a positive Z move from DWC, the nozzle moves away from the bed, and a negative Z move moves the nozzle closer to the bed?
If you're using a Smart Effector, the probe is triggered when the nozzle touches the bed surface. That should be Z0. So you shouldn't have any trigger height set, ie in this line:
G31 P500 X0 Y0 Z2.5 ; set Z probe trigger value, offset and trigger height
Z parameter should be 0, or very close.
See https://docs.duet3d.com/User_manual/Tuning/Delta_calibration#measuring-the-trigger-heightSee if that helps. If it still goes the wrong way, post your Z homing macro, and the first 100 lines of a gcode file that causes the issue.
Ian
-
@fcwilt I assume so, since the first layer goes down just fine.
@droftarts thank you for clarifying this. This has been confusing me. I've been using that guide, but didn't understand how to use it. Will try again now.
Edit: Okay, followed the guide and updated G31, but my Z0 is still 2.70 above the bed.
-
; homedelta.g ; called to home all towers on a delta printer ; ; generated by RepRapFirmware Configuration Tool v3.3.10 on Wed Jun 15 2022 16:15:51 GMT+0200 (Central European Summer Time) G91 ; relative positioning ;*** Slow homing has been configured. Change F180 to F1800 below when your configuration is working G1 H1 X390 Y390 Z390 F3500 ; move all towers to the high end stopping at the endstops (first pass) G1 H2 X-5 Y-5 Z-5 F1000 ; go down a few mm ;*** Slow homing has been configured. Change F180 to F360 below when your configuration is working G1 H1 X10 Y10 Z10 F360 ; move all towers up once more (second pass) G1 Z-10 F3000 ; move down a few mm so that the nozzle can be centred G90 ; absolute positioning G1 X0 Y0 F3000 ; move X+Y to the centre
benchy gcode
; generated by PrusaSlicer 2.4.2+win64 on 2022-06-21 at 13:04:38 UTC ; ; external perimeters extrusion width = 0.45mm ; perimeters extrusion width = 0.45mm ; infill extrusion width = 0.45mm ; solid infill extrusion width = 0.45mm ; top infill extrusion width = 0.40mm ; first layer extrusion width = 0.42mm M201 X9000 Y9000 Z500 E10000 ; sets maximum accelerations, mm/sec^2 M203 X12000 Y12000 Z12000 E7200 ; sets maximum feedrates, mm / min M204 P1500 T1500 ; sets acceleration (P, T), mm/sec^2 M566 X600.00 Y600.00 Z12.00 E150.00 ; sets the jerk limits, mm/min ;TYPE:Custom G28 ; home all axes G92 E0.0 M104 S160 ; preheat extruder to no ooze temp M140 S105 ; set bed temp M190 S105 ; wait for bed temp G1 X168.1 Y36.6 Z2.80 ; set nozzle into bed to prevent oozing M104 S250 ; set extruder temp M109 S250 ; wait for extruder temp G1 X122.6 Y118.6 E20 F800 ; purge intro line G1 Z1 M117 Printing... G21 ; set units to millimeters G90 ; use absolute coordinates M82 ; use absolute distances for extrusion G92 E0 M107 ;LAYER_CHANGE ;Z:0.35 ;HEIGHT:0.35 G1 E-2 F2400 G92 E0 G1 Z.35 F12000 G1 X-.287 Y18.794 G1 E2 F3600 M204 P1500 ;TYPE:Skirt/Brim ;WIDTH:0.42 G1 F1500 G1 X-1.96 Y18.769 E2.08395 G1 X-24.918 Y17.361 E3.23828 G1 X-26.134 Y17.226 E3.29969 G1 X-27.756 Y16.855 E3.38323 G1 X-29.54 Y16.168 E3.47912 G1 X-30.721 Y15.523 E3.54669 G1 X-31.706 Y14.847 E3.60664 G1 X-32.963 Y13.748 E3.69042 G1 X-34.181 Y12.328 E3.78433 G1 X-35.115 Y10.844 E3.87231 G1 X-35.726 Y9.518 E3.94557 G1 X-36.304 Y7.613 E4.04549 G1 X-36.591 Y5.323 E4.16133 G1 X-36.599 Y-4.906 E4.67469 G1 X-36.546 Y-6.043 E4.73179 G1 X-36.304 Y-7.613 E4.81153 G1 X-36.048 Y-8.594 E4.86242 G1 X-35.55 Y-9.946 E4.93472 G1 X-35.136 Y-10.806 E4.98261 G1 X-34.255 Y-12.225 E5.06644 G1 X-32.856 Y-13.853 E5.17415 G1 X-31.1 Y-15.28 E5.28769 G1 X-29.536 Y-16.17 E5.37802 G1 X-27.91 Y-16.809 E5.46569 G1 X-26.036 Y-17.241 E5.56222 G1 X-1.489 Y-18.797 E6.7966 G1 X.342 Y-18.841 E6.88849 G1 X1.985 Y-18.77 E6.97104 G1 X3.718 Y-18.58 E7.05856 G1 X5.339 Y-18.292 E7.14116 G1 X7.007 Y-17.882 E7.22738 G1 X8.447 Y-17.432 E7.3031 G1 X10.107 Y-16.793 E7.39236 G1 X11.654 Y-16.072 E7.47802 G1 X13.063 Y-15.302 E7.5586 G1 X14.527 Y-14.375 E7.64557 G1 X15.788 Y-13.457 E7.72382 G1 X17.073 Y-12.392 E7.80759 G1 X18.284 Y-11.249 E7.89113 G1 X19.442 Y-10.001 E7.97661 G1 X20.412 Y-8.814 E8.05353 G1 X21.385 Y-7.461 E8.13718 G1 X22.261 Y-6.054 E8.22037 G1 X22.762 Y-5.097 E8.27458 G1 X23.232 Y-3.944 E8.33706 G1 X23.572 Y-2.779 E8.39796 G1 X23.798 Y-1.56 E8.46017 G1 X23.887 Y-.569 E8.51011 G1 X23.863 Y.928 E8.58526 G1 X23.53 Y2.95 E8.68807 G1 X23.194 Y4.052 E8.7459 G1 X22.798 Y5.022 E8.79849 G1 X21.64 Y7.073 E8.91671 G1 X19.959 Y9.387 E9.06024 G1 X17.962 Y11.567 E9.20862 G1 X16.31 Y13.042 E9.31976 G1 X14.427 Y14.444 E9.43757 G1 X12.436 Y15.66 E9.55466 G1 X10.222 Y16.744 E9.67833 G1 X7.939 Y17.602 E9.80076 G1 X5.757 Y18.2 E9.91433 G1 X3.529 Y18.606 E10.02794 G1 X1.205 Y18.817 E10.14509 G1 X-.197 Y18.796 E10.21544 G1 X-.191 Y18.457 F12000 G1 F1500 G1 X-1.94 Y18.424 E10.30323 G1 X-26.015 Y16.896 E11.51388 G1 X-27.66 Y16.524 E11.59852 G1 X-29.393 Y15.856 E11.69172 G1 X-30.539 Y15.23 E11.7573 G1 X-31.495 Y14.574 E11.81549 G1 X-32.721 Y13.503 E11.89715 G1 X-33.902 Y12.125 E11.98822 G1 X-34.81 Y10.684 E12.07374 G1 X-35.562 Y8.97 E12.16764 G1 X-35.968 Y7.538 E12.24237 G1 X-36.246 Y5.31 E12.35506 G1 X-36.254 Y-4.906 E12.86775 G1 X-36.202 Y-6.014 E12.92341 G1 X-35.968 Y-7.538 E13.00078 G1 X-35.717 Y-8.495 E13.05043 G1 X-35.234 Y-9.807 E13.1206 G1 X-34.83 Y-10.646 E13.16733 G1 X-33.976 Y-12.023 E13.24865 G1 X-32.614 Y-13.607 E13.35348 G1 X-30.909 Y-14.992 E13.46373 G1 X-29.389 Y-15.858 E13.55154 G1 X-27.806 Y-16.48 E13.6369 G1 X-25.987 Y-16.9 E13.73059 G1 X-1.468 Y-18.453 E14.96355 G1 X.34 Y-18.496 E15.0543 G1 X1.961 Y-18.426 E15.13576 G1 X3.671 Y-18.238 E15.22206 G1 X5.267 Y-17.954 E15.30341 G1 X6.916 Y-17.549 E15.38863 G1 X8.336 Y-17.105 E15.46333 G1 X9.973 Y-16.475 E15.55132 G1 X11.5 Y-15.764 E15.6359 G1 X12.886 Y-15.007 E15.71516 G1 X14.334 Y-14.089 E15.80118 G1 X15.577 Y-13.184 E15.87836 G1 X16.844 Y-12.134 E15.96093 G1 X18.04 Y-11.005 E16.04348 G1 X19.181 Y-9.776 E16.12761 G1 X20.137 Y-8.605 E16.20351 G1 X21.099 Y-7.267 E16.28622 G1 X21.963 Y-5.88 E16.36824 G1 X22.451 Y-4.95 E16.42093 G1 X22.907 Y-3.829 E16.48164 G1 X23.237 Y-2.698 E16.5408 G1 X23.456 Y-1.516 E16.6011 G1 X23.543 Y-.552 E16.64969 G1 X23.52 Y.9 E16.72254 G1 X23.203 Y2.839 E16.82115 G1 X22.894 Y3.865 E16.87492 G1 X22.457 Y4.937 E16.93303 G1 X21.264 Y7.018 E17.05342 G1 X19.454 Y9.456 E17.20582 G1 X17.579 Y11.458 E17.34346 G1 X15.807 Y13.005 E17.46152 G1 X14.087 Y14.256 E17.56822 G1 X12.003 Y15.501 E17.69009 G1 X9.857 Y16.524 E17.80937 G1 X7.835 Y17.273 E17.91761 G1 X5.521 Y17.9 E18.03794 G1 X3.321 Y18.286 E18.15001 G1 X1.026 Y18.479 E18.26561 G1 X-.101 Y18.458 E18.32216 G1 E16.32216 F2400 G92 E0 G1 X-.002 Y-.956 F12000 G1 E2 F3600
-
@velvia said in Printer moves wrong Z direction while printing:
@fcwilt I assume so, since the first layer goes down just fine.
@droftarts thank you for clarifying this. This has been confusing me. I've been using that guide, but didn't understand how to use it. Will try again now.
Edit: Okay, followed the guide and updated G31, but my Z0 is still 2.70 above the bed.
What does your G31 command look like now?
Frederick
-
G31 P500 X0 Y0 Z-0.415
-
@velvia said in Printer moves wrong Z direction while printing:
G31 P500 X0 Y0 Z-0.415
Does the Z axis min setting (in M208) allow the Z axis to move to -0.415?
If you move to X0 Y0 and execute a G30 does it appear to work correctly?
Frederick
-
@fcwilt
No, because it will ram the bed if it does. I do it manually and test with a piece of paper. The nozzle starts grabbing the paper at 2.70. -
@velvia you have your Z limit set oddly:
M208 Z2.83 S1
Set it to
Z-0.5
. This allows the nozzle to go slightly below the bed surface, enough to activate the probe.Ian
-
@velvia said in Printer moves wrong Z direction while printing:
@fcwilt
No, because it will ram the bed if it does. I do it manually and test with a piece of paper. The nozzle starts grabbing the paper at 2.70.Unless you can execute a G30 to set the Z=0 Datum that 2.70 number has no meaning.
The number simply tells you that the Z position established when homing is too high by 2.70.
The point of the G30 is to get the Z=0 logical position to be in sync with the physical position.
Frederick
-
@fcwilt @droftarts Yes exactly. Was able to fix by doing another delta calibration (and saving it) after doing the steps you both mentioned. Z0 is now correct. Will try to do another print now.
-
@fcwilt @droftarts
Thanks for all the help! -
-