Nozzle's Z-coordinate Up & Down when moving across X-axis?



  • I am using an FLSUN QQ-S Pro Delta printer w/ a Duet 2 Wifi board & a BLTouch, and whenever I attempt to move the nozzle across the X-axis, Z goes up when X+50, and down when X-50... But going from Y-50 and Y+50 has no issues. Any inputs appreciated!

    config.g file:
    G29 S1 ; enables mesh leveling
    ; General preferences
    G90 ; send absolute coordinates...
    M83 ; ...but relative extruder moves
    M550 P"Duet1" ; set printer name
    M665 R142.212 L280.5 B120.0 H368.28300 X0 Y0 Z0 ; Set delta radius, diagonal rod length, printable radius and homed height
    M666 X0 Y0 Z0 A+0.00 B+0.00 ; put your endstop adjustments here, or let auto calibration find them
    ; Network
    M551 P"d00rst0p" ; set password
    M552 S1 ; enable network
    M586 P0 S1 ; enable HTTP
    M586 P1 S1 ; enable FTP
    M586 P2 S1 ; enable Telnet

    ; Drives
    M569 P0 S0 ; physical drive 0 goes backwards
    M569 P1 S0 ; physical drive 1 goes backwards
    M569 P2 S0 ; physical drive 2 goes backwards
    M569 P3 S1 ; physical drive 3 goes forwards
    M584 X0 Y1 Z2 E3 ; set drive mapping
    M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation
    M92 X101.50 Y101.50 Z101.50 E540.00 ; set steps per mm
    M566 X1200.00 Y1200.00 Z1200.00 E1200.00 ; set maximum instantaneous speed changes (mm/min)
    M203 X18000.00 Y18000.00 Z18000.00 E1200.00 ; set maximum speeds (mm/min)
    M201 X1000.00 Y1000.00 Z1000.00 E1000.00 ; set accelerations (mm/s^2)
    M906 X600 Y600 Z600 E800 I30 ; set motor currents (mA) and motor idle factor in per cent
    M84 S30 ; Set idle timeout

    M221 S73 D0 ; sets extrusion factor of extruder to 73 percent

    ; Axis Limits
    M208 Z0 S1 ; set minimum Z

    ; Endstops
    M574 X2 S1 P"xstop" ; configure active-high endstop for high end on X via pin xstop
    M574 Y2 S1 P"ystop" ; configure active-high endstop for high end on Y via pin ystop
    M574 Z2 S1 P"zstop" ; configure active-high endstop for high end on Z via pin zstop

    ; Z-Probe
    M950 S0 C"exp.heater3" ; create servo pin 0 for BLTouch
    M558 P9 C"zprobe.in+zprobe.mod" H5 F600 T1500 ; set Z probe type to bltouch and the dive height + speeds(diveheight=H probingspeed=F meshbedspeed=T)
    G31 P25 X0 Y45.5 Z2.5 ; set Z probe trigger value, offset and trigger height
    M557 R85 S20 ; define mesh grid

    ; Heaters
    M308 S0 P"bedtemp" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin bedtemp
    M950 H0 C"bedheat" T0 ; create bed heater output on bedheat and map it to sensor 0
    M143 H0 S120 ; set temperature limit for heater 0 to 120C
    M307 H0 A12.4 C33.7 B1 D3.1 S1 ; enable bang-bang mode for the bed heater and set PWM limit
    M140 H0 ; map heated bed to heater 0
    M308 S1 P"e0temp" Y"thermistor" T100000 B4138 ; configure sensor 1 as thermistor on pin e0temp
    M950 H1 C"e0heat" T1 ; create nozzle heater output on e0heat and map it to sensor 1
    M143 H1 S280 ; set temperature limit for heater 1 to 280C
    M307 H1 A340 B0 C140 D5.5 S1.00 ; disable bang-bang mode for heater and set PWM limit

    M501

    ; Fans
    M950 F0 C"fan0" Q500 ; create fan 0 on pin fan0 and set its frequency
    M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned on

    ; Tools
    M563 P0 F0 S"Side Fans" ; define tool 0, uses extruder drive 0, heater1 and fan0
    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 P2 H1 S"J-head Heater";

    M563 P1 D0 S"Extruder" ; creates tool 1 with extruder titled extrusion
    T1

    ; Custom settings are not defined
    M302 ;yes
    ; Miscellaneous
    M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss

    bed.g file:
    M561 ; clear any bed transform
    G28 ; home all towers
    ; Probe the bed at 3 peripheral and 3 halfway points, and perform 6-factor auto compensation
    ; Before running this, you should have set up your Z-probe trigger height to suit your build, in the G31 command in config.g.
    G30 P0 X0 Y109.9 H0 Z-99999
    G30 P1 X92.5 Y-64.95 H0 Z-99999
    G30 P2 X-92.5 Y-64.95 H0 Z-99999
    G30 P3 X0 Y64.9 H0 Z-99999
    G30 P4 X56.21 Y-32.45 H0 Z-99999
    G30 P5 X-56.21 Y-32.45 H0 Z-99999
    G30 P6 X0 Y0 H0 Z-99999 S6
    ; Use S-1 for measurements only, without calculations. Use S4 for endstop heights and Z-height only. Use S6 for full 6 factors
    ; If your Z probe has significantly different trigger heights depending on XY position, adjust the H parameters in the G30 commands accordingly. The value of each H parameter should be (trigger height at that XY position) - (trigger height at centre of bed)


  • Moderator

    @Ubelherz said in Nozzle's Z-coordinate Up & Down when moving across X-axis?:

    G29 S1 ; enables mesh leveling

    First off, don't load the heightmap at boot up. Only load it after you've used the z probe to define where Z0 is. Loading it at startup can lead to some unintended z offsets. A good place to load it is in the slicer start gcode after Z0 has been defined by the probe using G30.

    So for a delta...

    G28 to home the towers
    G32 to auto calibrate
    G30 at the center of the bed
    G29 S1 to load the heightmap

    This also means that you may need to redo the heightmap.

    Also, moving the Z axis depending on bed position sounds a lot like the effects of mesh compensation. What does your heightmap look like? Does it match to how the nozzle is moving?



  • This is currently how it looks

    0adfbc58-a606-405f-a814-aca0ec505447-image.png

    It does in fact match up with the way the nozzle is moving*


Log in to reply