Home for UVW is not setting a zero



  • Hello all,
    I've got a delta with UVW and they are not homing correctly. I've had it homing correctly when using stall detection, but it was not as reliable as I'd have liked so I installed optical switches. I've setup the optical endstops in the config.g and updated the homeu homev homew and homeall to behave exactly as the delta towers home but for some reason it sets some random home as U=837.33 V=1024.38 and W=677.77. I'm pretty lost as to why this would happen. 0 should be the max and -180mm is the min. Obviously bad things happen when I ask for a U toolchange. Any ideas?

    homeu.g
    ; Homing file for the U axis of the Toolchanger
    M400 ; make sure everything has stopped
    G91 ; Use relative positioning
    M913 U100 ; Power U axis
    G1 S1 U200 F5000 ; Up to find home
    G90 ; Back to absolute
    M400 ; Make sure everything has stopped
    M913 U50 ; Keep the motor cool


  • administrators

    You may be the first person to add additional axes to a delta, so you may have found a firmware bug. Please post your config.g file.

    What sort of axes are UVW? Can you post a photo?

    Are you homing U, V and W separately from the XYZ towers?



  • Hi David,
    I can't post any photos just yet but the UVW are all belt driven linear axis. I can message a direct photo to you David if that would help with debug. All three UVW are identical with home switches at the top of the machine in the Z axis and the travel is in the negative direction by 180mm. I'm homing together but I've got U, V, and W home files separate as well. If I home seperately UVW from delta(comment out the homing sequence in homedelta.g) it shows -2 on all UVW right after the home but if I command a move to -180 it adds those weird values and crashes things.

    Homedelta.g:
    ; Homing file for Kolossal Carbon with UVW
    M400 ; make sure everything has stopped before we make changes
    M913 U100 V100 W100 ;Make sure UVW are powered
    G21 ;Metric Units
    G91 ;Relative positioning
    G1 S1 U200 V200 W200 F4000 ;Find UVW home
    G1 U-2 V-2 W-2 ;Park UVW 2mm lower
    G1 S1 X700 Y700 Z700 F4000 ;Find endstops
    G1 S2 X-3 Y-3 Z-3 ;Effector down 3mm
    G1 S1 X6 Y6 Z6 F250 ;Move carriages slowly up 6mm to endstops
    G1 Z-10 F4000 ;Park Effector 10mm lower
    M913 U50 V50 W50 ;Depower the UVW motors
    G90 ;Back to absolute positioning

    config.g:
    ; Configuration for Kolossal Carbon Duet WiFi (firmware version 2.0)

    ;--------------- Communication and general ---------------------------------------------
    M111 S0 ;Debug off
    M550 PGodzilla ;Machine name (can be anything you like)
    M551 P******** ;Machine password (used for FTP)
    M555 P2 ;Set output to look like Marlin
    M575 P1 B57600 S1 ;Set auxiliary serial port baud rate and require checksum (for PanelDue)

    ;--------------- Network ---------------------------------------------
    M552 S1 ;Enable network

    ;--------------- DELTA ---------------------------------------------
    ;M453 P4 R5000
    M451
    M665 L365.961 R151.90 H346.6 B160 X1.1 Y.4 Z0.7
    M666 X.3 Y.2 Z-.7 A0.00 B0.

    ;--------------- Drive Maping and Axis Direction THIS MUST COME BEFORE THE MOTION CONTROL SECTION---------------------------------------------
    M584 X0 Y1 Z2 E3:4:5 U6 V7 W8 ;Maps Motor Drives
    M569 P0 S0 ;X Drive 0 Clockwise positive
    M569 P1 S1 ;Y Drive 1 Counterclockwise positive
    M569 P2 S1 ;Z Drive 2 Counterclockwise positive
    M569 P3 S0 ;E0 Clockwise positive
    M569 P4 S0 ;E1 Clockwise positive
    M569 P5 S0 ;E2 Clockwise positive
    M569 P6 S0 ;U Counterclockwise positive
    M569 P7 S1 ;V Clockwise positive
    M569 P8 S1 ;W Clockwise positive
    ;M569 P5 R1 T2.5:2.5:5:5 ; External driver 5 requires an active high enable, 2.5us minimum step pulse, 2.5us minimum step interval, 5us DIR setup time and on hold time

    ;--------------- Endstops ---------------------------------------------
    M574 X2 Y2 Z2 S1 ;Set endstop configuration (all endstops at high end, active high)
    M574 U2 V2 W2 S1

    ;--------------- Motion Control ---------------------------------------------
    M92 X80.3 Y80.3 Z80.3 ;Set axis steps/mm
    M92 E2550:2550:2550 ;Set extruder steps/mm
    M92 U80.3 V80.3 W80.3 ;Set UVW steps/mm
    M350 X16 Y16 Z16 E16:16:16 U16 V16 W16 I1 ;Set Microstepping Mode
    M906 X1000 Y1000 Z1000 I50 ;Set Axis currents (mA)
    M906 E1500:1500:1500 ;Set Extruder currents (mA)
    M906 U1000 V1000 W1000 ;Set UVW currents (mA)
    M201 X4000 Y4000 Z4000 ;Accelerations Axis (mm/s^2)
    M201 E700:700:700:700 ;Accelerations Extruder(mm/s^2)
    M201 U2000 V2000 W2000 ;Accelerations UVWmm/s^2)
    M203 X20000 Y20000 Z20000 ;Maximum speeds Axis (mm/min)
    M203 E2500:2500:2500 ;Maximum speeds Extruder (mm/min)
    M203 U10000 V10000 W10000 ;Maximum speeds UVW (mm/min)
    M566 X300 Y300 Z300 E70:70:70 U50 V50 W50 ;Maximum instant speed changes
    G21 ;Work in millimetres
    G90 ;Send absolute coordinates...
    M83 ;Relative extruder moves

    ;--------------- UVW Specifics ---------------------------------------------
    M208 U0.01 V0.01 W0.01 S0 ;Sets UVW axis maximum(S0) or mininum(S1)
    M208 U-200 V-200 W-200 S1

    There's more about tool definitions but that hasn't effected anything.


  • administrators

    I have checked the code and found that Function LinearDeltaKinematics::OnHomingSwitchTriggered doesn't take account of additional axes. This probably accounts for the behaviour. I will fix this in the next 2.01 beta release. Meanwhile, you may be able to work around the problem by adding a G92 U0.01 V0.01 W0.01 command after the G1 S1 UVW command to tell the firmware the correct positions of the UVW axes when they have just been homed.



  • Thank you so much. The G92 works in the homedelta.g file. I had tried that in the individual home files but it wouldn't hold the value when I used G28. Facepalm.
    David, your responsiveness to issues and helpfulness on the forum is unparalleled. Thank you.
    Jake


Locked
 

Looks like your connection to Duet3D was lost, please wait while we try to reconnect.