Homing in U axis

  • I made an extra axis U which is for another tool which is parallel to the Z axis. But I want to home it like I home Z.

    I start with M584 Z2 U5

    For homing Z to a max endstop, this command works:
    G1 Z500 S1

    But when I try for the U axis, it doesn't work:
    G1 U500 S1

    and any following G1 U# movement commands either don't do anything, or behave weirdly (move in negative direction away from endstop until I manually touch the end stop.

    How to fix this?

    I tried just ignoring anything to do with U, and just use M584 to remap Z to the other axis. But it behaves the same way.

    Using firmware 1.20beta

  • administrators

    After you create the U axis with M584, you must configure the other U axis parameters, in particular the motor current (M906), steps/mm (M92), acceleration (M201), maximum speed (M203), jerk (M566), and most importantly the M208 axis limits and the M574 endstop type and position. I suspect you have omitted one of the last two.

    If U is the first additional axis you create, then the U endstop switch must be connected to the E0 endstop input, regardless of which motor output you are using for the U motor.

  • Moving the endstop to E0 fixed the homing of the U axis using G1 U### S1. Thanks!

    But now it won't move with G1 commands via DWC after it homes. It will move via panelDue though.

    When it homes to the endstop, that position should be U100 since it is a maxima that I want to home to. To set max and minima, I have in config:

    M208 X0 Y0 Z0 U0 S1; set minima
    M208 X100 Y100 Z100 U100 S0 ; set maxima

    It works for Z as expected… Does not work for U. When it works for Z, all I do in DWC is this:

    G1 Z-5; test a move downwards
    G1 Z200 S1 ; home to maxima upwards
    after it hits the maxima endstop, DWC updates the Z head position to 100

    Repeating the same for U does not update the head position. I can't update the U head position with G92 either. U head position does update when I move it prior to any attempt at homing.

    In the config.g file, everytime I do soemthing for Z, I do the corresponding thing for U as well (other than in G10). Any ideas?

  • Perhaps it might be something to do with me defining only one tool? I don't have anything for U with M563 or G10.

  • And also, later I want a V axis. Would its endstop go to E1's endstop position just like U's went to E0's?

  • administrators


    And also, later I want a V axis. Would its endstop go to E1's endstop position just like U's went to E0's?


    Regarding the U axis, did you remember to declare a high-end endstop switch in your M574 command?

  • Yes, its right after M584:
    M574 X1 Y1 Z2 U2 V2 S1 ;

  • After homing U with G1 U500 S1, the U position in DWC is 0 (but should be the maxima 100), and can't be changed with G92 (and never could anyway). And it won't move at all with G1 commands. But I can unfreeze it by trying G28 U - it fails because of no homeu.g file, but then I can suddenly do G1 U# again for movement

  • Here is my config file. See any glaring errors?

    ; General preferences
    M111 S0 ; Debugging off
    G21 ; Work in millimetres
    G90 ; Send absolute coordinates…
    M83 ; ...but relative extruder moves
    M555 P1 ; Set firmware compatibility to look like RepRapFirmare

    M208 X0 Y0 Z0 U0 V0 S1 ; Set axis minima
    M208 X100 Y100 Z100 U100 V100 S0 ; Set axis maxima

    ; Endstops
    ; M558, G31, M557 were here, removed because no z probe right now

    ; Drives
    M569 P0 S0 ; Drive 0 goes forwards
    M569 P1 S0 ; Drive 1 goes forwards
    M569 P2 S1 ; Drive 2 goes backwards
    M569 P3 S0 ; Drive 3 goes forwards
    M569 P5 S1 ; Drive 5 goes backwards

    M584 X0 Y2 Z1 U5 V6; remap Y and Z. Add U and V for the extra Z's ;
    M574 X1 Y1 Z2 U2 V2 S1 ; sets endstop high or low position.

    M350 X16 Y16 Z16 U16 V16 E16 I1 ; Configure microstepping with interpolation ;
    M92 X1600 Y1600 Z1600 U1600 V1600 E645 ; Set steps per mm ;
    M566 X900 Y900 Z12 U12 V12 E120 ; Set max instantaneous speed changes (mm/min) ;
    M203 X1200 Y1200 Z500 U500 V500 E1200 ; Set max speeds (mm/min) ...
    M201 X250 Y250 Z100 U100 V100 E250 ; Set accelerations (mm/s^2)
    M906 X1050 Y1050 Z1050 U1050 V1050 E800 I10 ; Set motor currents (mA) and motor idle factor in per cent
    M84 S2 ;

    ; Heaters
    M143 S260 ; Set maximum heater temperature to 260C
    M140 H-1 ; Disable heated bed
    M305 P1 T4500000 B5847.95 C0.00000005548428168 R4700 H0 L0; Set thermistor + ADC parameters for heater 1 ;

    ; Tools
    M563 P0 D0 H1 ; Define tool 0 ;
    ; M563 P1 Z3; testing if this will fix U homing. did not.
    G10 P0 X0 Y0 Z0 ; Set tool 0 axis offsets
    ; G10 P1 X0 Y0 U0 ; test. didn’t work
    G10 P0 R0 S0 ; Set initial tool 0 active and standby temperatures to 0C

    ; Network
    M550 Duet ; Set machine name
    M552 S1 ; Enable network

    ; Access point is configured manually via M587 by the user
    M586 P0 S1 ; Enable HTTP
    M586 P1 S0 ; Disable FTP
    M586 P2 S0 ; Disable Telnet

    ; Fans
    M106 P0 S1.0 I0 F500 T30 H0 ; sets fan 0 to speed 0.3 (out of 1.0), no inversion, 500 PWM hz,
    M106 P1 S1.0 I0 F500 T30 H1 ; thermostatic control triggered at 40C
    ;M106 P2 S1 I0 F500 H-1 ; Set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned off

    ; Custom settings

    M501 ; Use the override parameters (to retrieve PID parameters) ; nothing there except M307 commands

  • administrators

    The U axis doesn't exist until you create it in the M584 command, so the U parameter in the M208 commands is being ignored.

  • Excellent it works! You're the man.

  • I assumed that since I did everything for U as I did for Z that it should work. But Z exists by default, not U.


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