Don't understand why my printer can't print level

  • I do all sorts of things to test before I print. For example, I'll manually jog the nozzle to just above the bed and manually jog the head around X & Y positions and the head is always at the same elevation above the bed by eye. I have no compensation turned on, bed leveling or mesh, just none. But when I print, the nozzle is always too far from the bed on the right side. I have twin Z lead screws, one left, one right. I can home, zero, home, zero and the bed moves reliably. Given all of the manual movements work reliably, why might my nozzle not track correctly when printing?

    I've also tried using auto-leveling via G32 and it seems to adjust the bed, but I still get the same results.

    Duet2Wifi, duex5

    start g-code

    G1 X200 Y200 F2000 ; move to near center
    G1 Z75 F1750 ; move bed up faster than the line below
    G1 Z40 F1750 ; move to probe Z height
    M109 S[first_layer_temperature_0]
    M190 S[bed_temperature]
    ;Intro Line Near Right
    G1 X0 Y300 Z20 F2000 ; move to left front edge
    G1 X0 Y300 Z.3 E20 F3000
    G92 E0 ; zero extruder
    G1 Y275 E35 F750 ; intro line
    G1 Y250 F3000 ; ooze it out buddy
    G1 Y225 F5000 ; wipe off the ooze
    G1 Z.1
    G1 Y250 Z0 F7500 ; scrape off the crap
    G1 Y175 F7500
    G1 Y150 F15000
    G1 Y125 Z5 F15000
    G92 E0 ;zero extruder
    M117 Ready to Print

  • administrators

    Please post your config.g file.

  • @dc42

    M929 P"log.txt" S1
    ; Configuration file for Duet WiFi (firmware version 1.21)
    ; executed by the firmware on start-up
    ; generated by RepRapFirmware Configuration Tool v2 on Fri Feb 08 2019 11:05:47 GMT-0800 (Pacific Standard Time)
    M667 S1; CoreXY mode
    M584 X0 Y1 Z5:6 E3:4 P3
    M671 X-59.5:370 Y175:175 S2
    ; General preferences
    G90                                                  ; Send absolute coordinates...
    M83                                                  ; ...but relative extruder moves
    ; Drives
    M569 P0 S0                                           ; Drive 0 goes backwards
    M569 P1 S0                                           ; Drive 1 goes backwards
    M569 P2 S0                                           ; Drive 2 goes backwards
    M569 P3 S1                                           ; Drive 3 goes forwards
    M569 P4 S0                                           ; Drive 4 goes backwards
    M92 X159.864275 Y159.864275 Z400:400 E185.6         ; Set steps per mm
    M350 X64 Y64 
    M350 E256                         ; Configure microstepping without interpolation
    M350 Z16:16 I256
    M566 X400 Y400.00 Z150.00:150.00 E500.00:500.00      ; Set maximum instantaneous speed changes - jerk (mm/min)
    M203 X48000.00 Y48000.00 Z1200.00:1200.00 E6000.00:6000.00   ; Set maximum speeds (mm/min)
    M201 X500.00 Y500.00 Z150.00:150.00  E10000.00:10000.00        ; Set accelerations (mm/s^2)
    M906 X1800.00 Y1800.00 E2200.00:2200.00 I60  ; Set motor currents (mA) and motor idle factor in per cent
    M906 Z1200.00:1200.00
    M84 S30                                              ; Set idle timeout
    ; Axis Limits
    M208 X0:278 Y0:355 Z0:329.9
    ; Endstops
    M574 X2 Z2 S1; Set x end-stops types (S1 is active high, applied to X) optical
    M574 Y2 S0 ; Set y end-stops types (S0 is active low, applied to Y) mechanical
    ;M915 Z S-20 F0 H200 R1; stall detection
    ; Z-Probe
    M558 P4 I1 H5.0 F60 T24000  ; Set Z probe type -- Enable LIMIT SWITCH
    ;M558 P1 H1.2 F300 T12000 B0 ; IR sensor
    ;M558 P10 ; stall detection
    G31 P500 X18.04 Y57.626 Z4.80                           ; Set Z probe (limit switch) trigger value, offset
    M556 S50 X0 Y0 Z0                                    ; Set orthogonal axis compensation parameters
    M557 X-30:357 Y0:320 S16                            ; Define mesh grid
    ; Heaters
    M307 H0 B0 S1.00                                     ; Disable bang-bang mode for the bed heater and set PWM limit
    M305 P0 T100000 B4138 R4700                          ; Set thermistor + ADC parameters for heater 0
    M143 H0 S120                                         ; Set temperature limit for heater 0 to 120C
    ;M305 P1 T100000 B4388 C7.060000e-8 R4700                                    ; Set thermistor + ADC parameters for heater 1
    ;M305 P1 T10000 B3435  C7.060000e-8 R4700 
    M305 P1 T100000 B4700
    M143 H1 S285                                         ; Set temperature limit for heater 1 to 500C
    ;M305 P1 T100000 B4388 C7.060000e-8 R4700                                      ; Set thermistor + ADC parameters for heater 2
    ;M305 P2 T10000 B3435  C7.060000e-8 R4700 
    M305 P2 T100000 B4700
    M143 H2 S285                                         ; Set temperature limit for heater 2 to 500C
    ; Fans
    M106 P0 S0 I0 F500 H-1                               ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
    M106 P1 S0 I0 F500 H1 T100:180 X255 B0                             ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on
    M106 P2 S0 I0 F500 H2 T100:180 X255 B0                            ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on
    ; Tools
    M563 P0 S"Left" D0 H1                                ; 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" D1 H2                               ; Define tool 1
    G10 P1 X34 Y0 Z0                                     ; Set tool 1 axis offsets
    G10 P1 R0 S0                                         ; Set initial tool 1 active and standby temperatures to 0C
    ; Automatic power saving
    M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000"   ; Set voltage thresholds and actions to run on power loss
    ; Custom settings are not configured
    ; Miscellaneous
    M501                                                 ; Load saved parameters from non-volatile memory
    M302 P1 ; allow cold extrude retract
    M572 D0:1 S0.1

  • @gnydick said in Don't understand why my printer can't print level:

    M350 Z16:16 I256

    It looks like you're trying to use interpolation here but the switch to enable it is I1 and disabled I0. I don't think I256 will register as anything.

    I doubt that will have an impact on your original problem, but it's worth noting.

    Your start script has a lot of Z movement. I understand the purpose, but perhaps try temporarily removing the Z moves other than homing and moving to the first layer height. If it works properly, then you can surmise that there is some play or backlash or positioning error in your Z axis.

    Since you have 2 Z motors there is a good chance they will get out of sync every time they are powered down, so using independent lead screw leveling to relevel the bed (requires a probe) before each print is a good idea. If you've already done this, how much correction is applied? If you run it multiple times in a row does the correction get less and less?

    Can you post a video of the Z axis while going through homing and printing the first layer?

  • @phaedrux the leveling does get less and less on consecutive runs. It really is almost immeasurable on the second run.

    I do have a macro I run to try to induce problems that hops the axis up and down and nothing gets out of whack.

    All really good ideas though.

  • i would suggest investing in a z probe.

    0.1mm can mean the difference between first layer sticking and not. And you can not see 0.1mm by eye.

  • @veti I have a probe, I use that too 😉

  • can you post the output of the mesh bed leveling?

  • Welp, I just modified my machine to have 3 lead screws instead of two, and everything's peach now. Don't know how that even made a difference considering the problem was left<->right leveling and my lead screws are on the sides, but, that fixed it.

  • Maybe there was some binding or misalignment that is now resolved?

Log in to reply