Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    INITIAL HOMING BLUES

    Scheduled Pinned Locked Moved
    My Duet controlled machine
    5
    25
    704
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • fcwiltundefined
      fcwilt @swrightlast
      last edited by fcwilt

      @swrightlast

      Where a printer homes is not tied to where 0,0 is.

      On my FT-5, facing the machine, the X axis endstop is on the right, the Y axis endstop is at the rear.

      In most cases you want these to be the axis maxima.

      This allows 0,0 to at the left-front corner of the bed, which is quite common though some folks (like me) prefer to have 0,0 be at the center of the bed.

      So don't assume that the endstop switch locations automatically define position 0,0.

      Frederick

      Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

      swrightlastundefined 1 Reply Last reply Reply Quote 0
      • Phaedruxundefined
        Phaedrux Moderator
        last edited by

        left_right_hand.gif

        Slicers use a right hand coordinate system, with 0,0,0 being front left. Y+ extends back from there, X+ goes to the right, and Z+ goes up. Setting up the firmware to use the same coordinates makes sure your parts come out oriented the same way as they are shown in the slicer and not rotated or worse, mirrored.

        The endstop positions can be at the low end (near the 0 points) or they can be at the high end (near the opposite end of 0). That's controlled by the endstop definition and the direction of homing moves in the homing macros.

        https://duet3d.dozuki.com/Wiki/Gcode#Section_M574_Set_endstop_configuration

        Additionally, motor direction for coreXY printers is important.

        https://duet3d.dozuki.com/Wiki/ConfiguringRepRapFirmwareCoreXYPrinter
        Note the movement section to check for proper motor directionality. Also note the examples of the homing files.

        This is an excellent write up as well. https://drmrehorst.blogspot.com/2017/08/setting-up-3d-printers-origin.html

        So just to reiterate, the 0,0,0 point should be at the front left of the printer. Where the printer homes to is completely independent.

        If you post your config.g and homing files we can suggest what to change. But we will need to ensure first that your motor directions are correct. Then it's just a matter of setting the correct endstop position in config.g and setting the correct movement direction in the homing files.

        Z-Bot CoreXY Build | Thingiverse Profile

        swrightlastundefined 3 Replies Last reply Reply Quote 1
        • swrightlastundefined
          swrightlast @fcwilt
          last edited by

          @fcwilt said in INITIAL HOMING BLUES:

          On my FT-5, facing the machine, the X axis endstop is on the right, the Y axis is at the rear.

          On my FT-5, facing the machine, the X axis endstop is on the right, the Y axis is at the rear. I said home right rear, 0,0 because thats what my gridded bed shows, with front right, 0,300, and front left 300, 300.

          swrightlastundefined Phaedruxundefined 2 Replies Last reply Reply Quote 0
          • swrightlastundefined
            swrightlast @Phaedrux
            last edited by

            @P; Configuration file for Duet WiFi (firmware version 2.03)
            ; executed by the firmware on start-up
            ;
            ; generated by RepRapFirmware Configuration Tool v2.0.4 on Mon Sep 16 2019 10:02:48 GMT-0700 (Pacific Daylight Time)

            ; General preferences
            G90 ; send absolute coordinates...
            M83 ; ...but relative extruder moves
            M550 P"My Printer" ; set printer name

            M667 S1 ; select CoreXY mode

            ; Network
            M552 S1 ; enable network
            M586 P0 S1 ; enable HTTP
            M586 P1 S0 ; disable FTP
            M586 P2 S0 ; disable Telnet

            ; Drives
            M569 P0 S0 ; physical drive 0 goes forwards
            M569 P1 S1 ; physical drive 1 goes forwards
            M569 P2 S0 ; physical drive 2 goes forwards
            M569 P3 S1 ; physical drive 3 goes forwards
            M584 X0 Y1 Z2 E3 ; set drive mapping
            M350 X64 Y64 Z64 E32 I1 ; configure microstepping with interpolation
            M92 X80.00 Y80.00 Z4000.00 E412.53 ; set steps per mm
            M566 X900.00 Y900.00 Z12.00 E120.00 ; set maximum instantaneous speed changes (mm/min)
            M203 X6000.00 Y6000.00 Z180.00 E1200.00 ; set maximum speeds (mm/min)
            M201 X500.00 Y500.00 Z20.00 E250.00 ; set accelerations (mm/s^2)
            M906 X800 Y800 Z800 E800 I30 ; set motor currents (mA) and motor idle factor in per cent
            M84 S30 ; Set idle timeout

            ; Axis Limits
            M208 X0 Y0 Z0 S0 ; set axis minima
            M208 X300 Y300 Z380 S0 ; set axis maxima

            ; Endstops

            M574 X1 Y1 Z0 S0 ; set active low endstops

            ; Z-Probe
            M558 P0 H5 F120 T6000 ; disable Z probe but set dive height, probe speed and travel speed
            M557 X15:215 Y15:195 S20 ; define mesh grid

            ; Heaters
            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 B4138 R4700 ; set thermistor + ADC parameters for heater 1
            M143 H1 S280 ; set temperature limit for heater 1 to 280C

            ; Fans
            M106 P0 S0 I0 F500 H-1 ; set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
            M106 P1 S1 I0 F500 H-1 ; set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned off

            ; Tools
            M563 P0 D0 H1 F0 ; 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

            ; Custom settings are not defined

            haedrux ; Configuration file for Duet WiFi (firmware version 2.03)
            ; executed by the firmware on start-up
            ;
            ; generated by RepRapFirmware Configuration Tool v2.0.4 on Mon Sep 16 2019 10:02:48 GMT-0700 (Pacific Daylight Time)

            ; General preferences
            G90 ; send absolute coordinates...
            M83 ; ...but relative extruder moves
            M550 P"My Printer" ; set printer name

            M667 S1 ; select CoreXY mode

            ; Network
            M552 S1 ; enable network
            M586 P0 S1 ; enable HTTP
            M586 P1 S0 ; disable FTP
            M586 P2 S0 ; disable Telnet

            ; Drives
            M569 P0 S0 ; physical drive 0 goes forwards
            M569 P1 S1 ; physical drive 1 goes forwards
            M569 P2 S0 ; physical drive 2 goes forwards
            M569 P3 S1 ; physical drive 3 goes forwards
            M584 X0 Y1 Z2 E3 ; set drive mapping
            M350 X64 Y64 Z64 E32 I1 ; configure microstepping with interpolation
            M92 X80.00 Y80.00 Z4000.00 E412.53 ; set steps per mm
            M566 X900.00 Y900.00 Z12.00 E120.00 ; set maximum instantaneous speed changes (mm/min)
            M203 X6000.00 Y6000.00 Z180.00 E1200.00 ; set maximum speeds (mm/min)
            M201 X500.00 Y500.00 Z20.00 E250.00 ; set accelerations (mm/s^2)
            M906 X800 Y800 Z800 E800 I30 ; set motor currents (mA) and motor idle factor in per cent
            M84 S30 ; Set idle timeout

            ; Axis Limits
            M208 X0 Y0 Z0 S0 ; set axis minima
            M208 X300 Y300 Z380 S0 ; set axis maxima

            ; Endstops

            M574 X1 Y1 Z0 S0 ; set active low endstops

            ; Z-Probe
            M558 P0 H5 F120 T6000 ; disable Z probe but set dive height, probe speed and travel speed
            M557 X15:215 Y15:195 S20 ; define mesh grid

            ; Heaters
            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 B4138 R4700 ; set thermistor + ADC parameters for heater 1
            M143 H1 S280 ; set temperature limit for heater 1 to 280C

            ; Fans
            M106 P0 S0 I0 F500 H-1 ; set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
            M106 P1 S1 I0 F500 H-1 ; set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned off

            ; Tools
            M563 P0 D0 H1 F0 ; 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

            ; Custom settings are not defined

            Phaedruxundefined 1 Reply Last reply Reply Quote 0
            • swrightlastundefined
              swrightlast @Phaedrux
              last edited by

              ; homex.g
              ; called to home the X axis
              ;
              ; generated by RepRapFirmware Configuration Tool v2 on Sun Aug 25 2019 14:27:06 GMT-0700 (Pacific Daylight Time)
              G91 ; relative positioning
              G1 Z5 F6000 S2 ; lift Z relative to current position
              G1 S1 X-305 F1800 ; move quickly to X axis endstop and stop there (first pass)
              G1 X5 F6000 ; go back a few mm
              G1 S1 X-305 F360 ; move slowly to X axis endstop once more (second pass)
              G1 Z-5 F6000 S2 ; lower Z again
              G90 ; absolute positioning

              Phaedrux ; homex.g
              ; called to home the X axis
              ;
              ; generated by RepRapFirmware Configuration Tool v2 on Sun Aug 25 2019 14:27:06 GMT-0700 (Pacific Daylight Time)
              G91 ; relative positioning
              G1 Z5 F6000 S2 ; lift Z relative to current position
              G1 S1 X-305 F1800 ; move quickly to X axis endstop and stop there (first pass)
              G1 X5 F6000 ; go back a few mm
              G1 S1 X-305 F360 ; move slowly to X axis endstop once more (second pass)
              G1 Z-5 F6000 S2 ; lower Z again
              G90 ; absolute positioning

              1 Reply Last reply Reply Quote 0
              • swrightlastundefined
                swrightlast @Phaedrux
                last edited by

                ; homex.g
                ; called to home the X axis
                ;
                ; generated by RepRapFirmware Configuration Tool v2 on Sun Aug 25 2019 14:27:06 GMT-0700 (Pacific Daylight Time)
                G91 ; relative positioning
                G1 Z5 F6000 S2 ; lift Z relative to current position
                G1 S1 X-305 F1800 ; move quickly to X axis endstop and stop there (first pass)
                G1 X5 F6000 ; go back a few mm
                G1 S1 X-305 F360 ; move slowly to X axis endstop once more (second pass)
                G1 Z-5 F6000 S2 ; lower Z again
                G90 ; absolute positioning

                @Phaedrux ; homey.g
                ; called to home the Y axis
                ;
                ; generated by RepRapFirmware Configuration Tool v2 on Sun Aug 25 2019 14:27:06 GMT-0700 (Pacific Daylight Time)
                G91 ; relative positioning
                G1 Z5 F6000 S2 ; lift Z relative to current position
                G1 S1 Y-305 F1800 ; move quickly to Y axis endstop and stop there (first pass)
                G1 Y5 F6000 ; go back a few mm
                G1 S1 Y-305 F360 ; move slowly to Y axis endstop once more (second pass)
                G1 Z-5 F6000 S2 ; lower Z again
                G90 ; absolute positioning

                1 Reply Last reply Reply Quote 0
                • swrightlastundefined
                  swrightlast @swrightlast
                  last edited by

                  ; homey.g
                  ; called to home the Y axis
                  ;
                  ; generated by RepRapFirmware Configuration Tool v2 on Sun Aug 25 2019 14:27:06 GMT-0700 (Pacific Daylight Time)
                  G91 ; relative positioning
                  G1 Z5 F6000 S2 ; lift Z relative to current position
                  G1 S1 Y-305 F1800 ; move quickly to Y axis endstop and stop there (first pass)
                  G1 Y5 F6000 ; go back a few mm
                  G1 S1 Y-305 F360 ; move slowly to Y axis endstop once more (second pass)
                  G1 Z-5 F6000 S2 ; lower Z again
                  G90 ; absolute positioning

                  @swrightlast ; homez.g
                  ; called to home the Z axis
                  ;
                  ; generated by RepRapFirmware Configuration Tool v2 on Sun Aug 25 2019 14:27:07 GMT-0700 (Pacific Daylight Time)
                  G91 ; relative positioning
                  G1 Z5 F6000 S2 ; lift Z relative to current position
                  G90 ; absolute positioning
                  G1 X15 Y15 F6000 ; go to first probe point
                  G30 ; home Z by probing the bed

                  ; Uncomment the following lines to lift Z after probing
                  ;G91 ; relative positioning
                  ;G1 S2 Z5 F100 ; lift Z relative to current position
                  ;G90 ; absolute positioning

                  1 Reply Last reply Reply Quote 0
                  • Phaedruxundefined
                    Phaedrux Moderator @swrightlast
                    last edited by

                    @swrightlast said in INITIAL HOMING BLUES:

                    I said home right rear, 0,0 because thats what my gridded bed shows, with front right, 0,300, and front left 300, 300.

                    This orientation can be maintained if you wish. Just note that parts printed will be rotated 180 degrees from the preview in the slicer. Provided of course that we get the rest of the config setup.

                    Were you able to perform this test yet?

                    For a CoreXY or H-Bot machine, RepRapFirmware assumes that the motor connected to the X motor output moves the head in the +X and +Y directions when it runs forwards, and that the Y motor moves the head in +X and -Y directions when it runs forwards. [Note: firmware 1.18 and earlier assumes that the motor connected to the Y motor output moves the head in the -X and +Y directions when it runs forwards].

                    So you can start with these M569 commands in config.g:

                    M569 P0 S0 ; X motor runs forwards
                    M569 P1 S0 ; Y motor runs forwards
                    Then test for the correct X motor movement by sending these commands from the console:

                    G91
                    G1 S2 X10 F3000

                    If the head moves diagonally in the +X and +Y directions, all is well. If it moves in the -X and -Y directions, change the S parameter to S1 in the M569 P0 command. If it moves towards +X and -Y, or towards -X and +Y, turn the power off and swap the X and Y motor connections.

                    When you have the X motor moving correctly, test the Y motor by sending from the console:

                    G91
                    G1 S2 Y10 F3000

                    For firmware 1.19 and later: If the head moves diagonally in the +X and -Y directions, all is well. If it moves in the -X and +Y directions, change the S parameter in the M569 P1 command to S1.

                    Important: make sure that you have chosen a right-hand axis system. That is, looking down on the printer the +Y direction should be 90 degrees anticlockwise from the +X direction. If instead it is 90 degrees clockwise, you have a left-hand axis system, which will give you mirror-image prints.

                    Z-Bot CoreXY Build | Thingiverse Profile

                    1 Reply Last reply Reply Quote 0
                    • Phaedruxundefined
                      Phaedrux Moderator @swrightlast
                      last edited by

                      @swrightlast said in INITIAL HOMING BLUES:

                      M574 X1 Y1 Z0 S0 ; set active low endstops

                      So this says that you have the endstops on the low end, which according to your bed decals is correct. And you use active low endstop switches.

                      If you wanted to change this to a right hand coordinate system with 0,0 in the front left, you'd need to change it to be M574 X2 Y2 Z0 S0 which tells it that the switches are located at the high end of travel.

                      G1 S1 X-305 F1800 ; move quickly to X axis endstop and stop there (first pass)
                      G1 X5 F6000 ; go back a few mm
                      G1 S1 X-305 F360 ; move slowly to X axis endstop once more (second pass)

                      This is correct movement direction for low end endstop position. Same for your homey commands.

                      If you wanted to change to a right hand coordinate system, the directions of the movements would have to be reversed. Ex:

                      G1 S1 X305
                      G1 X-5
                      G1 S1 X305
                      

                      So this leaves just my previous question about testing for correct motor direction movement. The test as described above assumes a right hand coordinate system. So I'm interested to see what you report.

                      When you tell it to home X, which direction does the print head move? It should be moving to the right as it's currently configured.

                      Z-Bot CoreXY Build | Thingiverse Profile

                      swrightlastundefined 1 Reply Last reply Reply Quote 2
                      • swrightlastundefined
                        swrightlast @Phaedrux
                        last edited by

                        @Phaedrux When homing x, it moves toward the front in the y direction.

                        1 Reply Last reply Reply Quote 0
                        • Phaedruxundefined
                          Phaedrux Moderator
                          last edited by

                          Please do the motor direction test I posted above.

                          Z-Bot CoreXY Build | Thingiverse Profile

                          1 Reply Last reply Reply Quote 0
                          • First post
                            Last post
                          Unless otherwise noted, all forum content is licensed under CC-BY-SA