Odd Z homing issue

  • I have a home designed and built printer. It has a build volume of 400x400x400mm. It uses dual lead screws for the Z axis. When I tell it to home Z, the bed drops to the bottom to engage dual z stops. The problem I have is the the right side lags behind the left. It takes a couple seconds for the right side to catch up to the left side to engage the right side limit switch. During normal Z movement, there is no lag. I can start at the bottom, command it to go to Z0, and it goes up evenly. If I then command it to go back down to Z400, it goes down evenly. If I put a digital level on the bed during these transits, the angle stays the same. It only happens when homing. I've verified that the power, steps, max speed, accel, and jerk are all the same settings for the Z and U axis. The lead screws are free. Without power, the bed will settle to the bottom on its own so its not a binding issue. Thoughts?

  • Moderator

    Firmware version? Can you post your config and homing files?

  • Duet Wifi Firmware version 2.02(RTOS) (2018-12-24b1)


    ; Configuration file for Duet WiFi

    ; Communication and general
    M111 S0 ; Debug off
    M550 PDarthVader ; Machine name (can be anything you like)
    M551 PXXXX ; Machine password (currently not used)
    M552 S1 ; Enable WiFi
    M555 P2 ; Set output to look like Marlin
    M575 P1 B57600 S1 ; Set auxiliary serial port baud rate and require checksum (for PanelDue)

    ; Axis and motor configuration
    M584 X0 Y1 Z2:3 E4 P3 ; Dual Z Homing
    M671 X-60:460 Y200:200 S10 ; leadscrews offset for leveling
    M569 P0 S0 ; Drive 0 goes forwards (change to S0 to reverse it)X Axis
    M569 P1 S1 ; Drive 1 goes backwards Y Axis
    M569 P2 S0 ; Drive 2 goes forwards Z Axis
    M569 P3 S0 ; Drive 3 goes forwards
    M569 P4 S0 ; Drive 4 goes forwards
    M350 X16 Y16 Z16 E16 I1 ; set 16x microstepping with interpolation

    ; Endstops
    M574 X1 Y2 Z1 S1 ; set homing switch configuration (Y homing switch only, at low end, active high)

    M906 X800 Y800 Z1275 U1275 E600 ; Set motor currents (mA)

    M143 S300 ; Set max temp

    ; Motion
    M564 H0 ; 1/9/19 If you want to allow axis movement prior to homing
    M201 X2000 Y2000 Z100 U100 E1000 ; Accelerations (mm/s^2) - test
    M203 X180000 Y180000 Z240000 U240000 E3600 ; Maximum speeds (mm/min)
    M566 X900 Y900 Z30 U30 E1200 ; Maximum jerk speeds mm/minute - Current 1/9/19

    ; Homing
    M208 X390 Y380 Z400.5 ; set axis maxima and high homing switch positions (adjust to suit your machine)
    M208 X0 Y0 Z-0.5 S1 ; set axis minima and low homing switch positions (adjust to make X=0 and Y=0 the edges of the bed)

    M92 X80.48 Y80.48 Z398.6975 U398.6975 ; set axis steps/mm
    M92 E389.5 ; set extruder 0 and 1 steps/mm
    G21 ; Work in millimetres
    G90 ; Send absolute coordinates...
    M83 ; ...but relative extruder moves

    ; Pressure Advance
    M572 D0 S0.1

    ; Mesh Compensation
    G29 S1

    ; Thermistors
    M305 P0 T100000 B4550 C0 R4700 ; Set thermistor + ADC parameters for heater 0
    M305 P1 B4725 C7.06e-8 ; Regular E3Dv6 Thermistor - Set thermistor + ADC parameters for heater 1
    ; M305 P1 X200 ; PT100
    M570 H1 P20 T60 ; Hot end 1. Persist 5. Temp variance 15.

    ; Fans
    M106 P1 T35 H1 ; thermostatic mode for fan 1 - turns on at 35C

    ; Tool definitions
    M563 P0 D0 H1 ; Define tool 0
    G10 P0 S0 R0 ; Set tool 0 operating and standby temperatures

    ; Z probe and compensation definition
    M307 H3 A-1 C-1 D-1
    M557 X40:360 Y40:360 S100 ; probe from X=40 to 360, Y=40 to 360mm with a mesh spacing of 80mm
    M558 P9 X0 Y0 Z1 H15 F300 T5000

    G31 X17 Y-27 Z1.2 P25 ; More Z = closer

    M208 S1 Z-0.2 ; set minimum Z
    T0 ; select first hot end

    ; Configure heater fault detection
    M570 H1 P10 T15

  • Homeall.g

    ; homeall.g
    ; called to home all axes
    ; generated by RepRapFirmware Configuration Tool on Thu Apr 13 2017 15:10:04 GMT-0700 (MST)

    ; Relative positioning

    ; Lift Z
    G1 Z5 F6000 S2

    ; Course home X and Y
    G1 X-235 Y215 F3600 S1

    ; Move away from the endstops
    G1 X5 Y-5 F6000

    ; Fine home X and Y
    G1 X-500 F2500 S1
    G1 Y500 F2500 S1

    ; Dual Z Homing
    M584 Z2 U3
    G1 S1 Z500 U500
    M584 Z2:3 U9

    ; Absolute positioning

    ; Tell the firmware where we are
    G92 Z400.5

    G0 Z390

  • @speedydad Here are a few random thoughts that might or might not have bearing.

    You don't actually reference the U axes in the original drive mapping in your config.g but you do end up mapping it to drive 9 at the ed of your home all. I'm not sure but it might confuse the firmware when later in config.g you set accelerations, speeds, motor currents etc, if no drive has been mapped to that axis. So maybe try adding "U9" to your first M584 in config.g.

    You haven't set micro stepping for the U axis. AFAIK the default is 16x with interpolation so it should be OK but to be safe, add "U16" to your M350 command. If nothing else, it will serve as a reminder if ever you change it in the future.

    This is not really related to the motion issue you describe but you say you engage dual Z stops yet I don't see an end stop configured for the U axis in your M574. But then I'm a little confused by the G1 S1 Z500 U500 because that will stop when either end stop triggers but not both. For individual homing, I'd have thought you then need to add separate G1 moves for both Z and U. At least, that's what I do with my CoreXYUV. That is home X and U together, then X then U individually to their own individual end stops.

    Anyway, moving on ... In your original M584 in config.g, you set the number of visible axes to 3 using P3. Which will be X Y and Z. So I think when you re-map the drives using M584 Z2 U3, the U axis might still be hidden and that does more than just hide it from the display. Therefore,I think you need to add M584 P4 to the start of your home all, then set it back to P3 at the end.


Log in to reply