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

    Help with M669 etc

    Scheduled Pinned Locked Moved
    General Discussion
    6
    34
    1.4k
    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.
    • luckyflyerundefined
      luckyflyer
      last edited by luckyflyer

      I have my core xy printer setup with (as I stand in front of the printer) the right rear motor going to drive 0 and the left motor going to drive 1, I realize this is reversed from norm but if I can keep it the way it is the wiring looks nicer but certainly can change it if necessary. Also I have my Y optical limit switch at the rear.

      M669 K1 ; select CoreXY mode

      My M569 config is,
      M569 P0.0 S1 ; physical drive 0.0 goes forwards
      M569 P0.1 S1 ; physical drive 0.1 goes forwards

      The M574 endstop config is,
      M574 X1 S1 P"!io1.in" ; configure active-low endstop for low end on X via pin io1.in
      M574 Y1 S1 P"!io2.in" ; configure active-low endstop for low end on Y via pin io2.in

      The above configuration works except that the prints are mirrored. I then tried with drive 0 going to the right motor and drive 1 going to the left and putting the y endstop at the front of the printer. It now homes at left front and the prints are normal, not mirrored. However I prefer home to be left rear. I'm pretty sure that this can be configured with the right combination of M669, M569 and M574. I have tried several combinations but have not got it to work. Can someone help me out with this?

      1 Reply Last reply Reply Quote 0
      • OwenDundefined
        OwenD
        last edited by

        Have you tried

        M569 P0.0 S0 ; physical drive 0.0 goes backwards
        M569 P0.1 S0 ; physical drive 0.1 goes backwards
        
        1 Reply Last reply Reply Quote 0
        • luckyflyerundefined
          luckyflyer
          last edited by

          Seems like I did I've tried many, I'll try again and get back.

          1 Reply Last reply Reply Quote 0
          • luckyflyerundefined
            luckyflyer
            last edited by

            That doesn't work, wants to home to the right front.

            1 Reply Last reply Reply Quote 0
            • luckyflyerundefined
              luckyflyer
              last edited by luckyflyer

              M669 is a tough command to fully understand because there is no explanation of what effects different coefficients have on movement for core xy.

              OwenDundefined 1 Reply Last reply Reply Quote 0
              • OwenDundefined
                OwenD @luckyflyer
                last edited by

                @luckyflyer
                I don't have a corexy but this seems to cover it well
                Step by step CoreXY firmware setup

                1 Reply Last reply Reply Quote 0
                • Danalundefined
                  Danal
                  last edited by

                  I am not certain, because I have no way to test this, but I believe this would work for you:

                  Set it up as though everything were wired to defaults. Then in your M584 (mine looks like this):

                  ; Axis to driver mapping
                  M584 X0 Y1 U2 Z3:4:5        ; X and Y for CoreXY.  U for toolchanger lock. Z for bed
                  M584 E1.0:1.1:2.0:2.1       ; Extruders for four tools. 
                  

                  Tell it what drivers X and Y are actually plugged into, like this:

                  ; Axis to driver mapping
                  M584 X1 Y0 U2 Z3:4:5        ; X and Y for CoreXY.  U for toolchanger lock. Z for bed
                  M584 E1.0:1.1:2.0:2.1       ; Extruders for four tools. 
                  

                  Delta / Kossel printer fanatic

                  1 Reply Last reply Reply Quote 0
                  • luckyflyerundefined
                    luckyflyer
                    last edited by luckyflyer

                    I did use M584 to address the wiring issue that I mentioned above. So if I'm not mistaken on a core xy Y is right rear and X is left rear, correct

                    Danalundefined 1 Reply Last reply Reply Quote 0
                    • luckyflyerundefined
                      luckyflyer
                      last edited by

                      I've put it back to home left front, not my first choice but prints normally. I do think it possible to configure the way I would like, I just don't know how to do it.

                      Danalundefined 1 Reply Last reply Reply Quote 0
                      • Danalundefined
                        Danal @luckyflyer
                        last edited by

                        @luckyflyer said in Help with M669 etc:

                        I did use M584 to address the wiring issue that I mentioned above. So if I'm not mistaken on a core xy Y is right rear and X is left rear, correct

                        Correct, at least for mine where I have rotated (but not mirrored) 0,0 to back right.

                        Delta / Kossel printer fanatic

                        1 Reply Last reply Reply Quote 0
                        • Danalundefined
                          Danal @luckyflyer
                          last edited by

                          @luckyflyer said in Help with M669 etc:

                          I've put it back to home left front, not my first choice but prints normally. I do think it possible to configure the way I would like, I just don't know how to do it.

                          What does your M584 look like now?

                          Delta / Kossel printer fanatic

                          1 Reply Last reply Reply Quote 0
                          • Nuramoriundefined
                            Nuramori
                            last edited by

                            It sounds like what you want, is how I have mine running, which is a BLV cube (CoreXY variant). It has the y endstop at the left rear. 0,0 is still at the front left. Does this match your intent? If so I can share my config.g file.

                            luckyflyerundefined 1 Reply Last reply Reply Quote 0
                            • luckyflyerundefined
                              luckyflyer
                              last edited by

                              Current m584,
                              M584 X0.1 Y0.0 Z0.2 E0.3

                              1 Reply Last reply Reply Quote 0
                              • luckyflyerundefined
                                luckyflyer @Nuramori
                                last edited by

                                @Nuramori said in Help with M669 etc:

                                It sounds like what you want, is how I have mine running, which is a BLV cube (CoreXY variant). It has the y endstop at the left rear. 0,0 is still at the front left. Does this match your intent? If so I can share my config.g file.

                                So when you home does you h.e. move to the left front? I would like for my h.e. to home to the left rear, if yours does that then yes I would like to see your config.g.

                                1 Reply Last reply Reply Quote 0
                                • Nuramoriundefined
                                  Nuramori
                                  last edited by

                                  When I perform homing on the axis’, the x homes to the left edge, the y homes to the rear where the endstop is.

                                  1 Reply Last reply Reply Quote 0
                                  • Nuramoriundefined
                                    Nuramori
                                    last edited by Nuramori

                                    Here's my config.g file. I am using a toolboard, so there's a bit more than usual complexity I suppose, but I think where you're going to find what you're looking for is the section for "ENDSTOPS", where the y endstop is defined by the maximum position rather than the min. 0 on the y axis is then defined by the combination of the maxima y position and set distance to zero (in my case, 320). To reiterate, my x endstop is located on the left edge, and my y endstop is located at the left rear.

                                    ; Configuration file for Duet3 (firmware version 3.01 RC11)
                                    ; executed by the firmware on start-up
                                    ;
                                    ; --------------- Pin/connection Mapping Legend -------------------
                                    ; 0.out0      - Bed heater
                                    ; 0.out1
                                    ; 0.out2
                                    ; 0.out3
                                    ; 0.out4      - Radiator cooling fan - WC heatsink
                                    ; 0.out5
                                    ; 0.out6
                                    ; 0.out7
                                    ; 0.out8
                                    ; 0.out9      - Duet board cooling fan
                                    ; 0.out4.tach - Radiator cooling fan rpm wire - WC heatsink
                                    ; 0.out5.tach
                                    ; 0.out6.tach
                                    ; 0.io0.in
                                    ; 0.io1.in    - Emergency stop switch
                                    ; 0.io2.in    - Y max active low endstop switch
                                    ; 0.io3.in
                                    ; 0.io4.in
                                    ; 0.io5.in
                                    ; 0.io6.in
                                    ; 0.io7.in
                                    ; 0.io8.in
                                    ; 0.io0.out
                                    ; 0.io1.out
                                    ; 0.io2.out
                                    ; 0.io3.out
                                    ; 0.io4.out
                                    ; 0.io5.out
                                    ; 0.io6.out
                                    ; 0.io7.out
                                    ; 0.io8.out
                                    ; 0.servo, out10 (only on v0.5, not on v0.6)
                                    ; 0.pson
                                    ; 0.spi.cs0
                                    ; 0.spi.cs1
                                    ; 0.spi.cs2
                                    ; 0.spi.cs3
                                    ; 0.temp0      - Bed Thermistor
                                    ; 0.temp1
                                    ; 0.temp2
                                    ; 0.temp3      - Coolant Temp Sensor
                                    ; 0.mcu-temp   - MCU sensor
                                    ;
                                    ;----------Toolboard 1 (CAN ID#20)
                                    ; 20.out0      - Hotend Heater
                                    ; 20.out1
                                    ; 20.out2      - Parts cooler on printhead
                                    ; 20.out1.tach
                                    ; 20.out2.tach
                                    ; 20.io0.in    - Z probe type to bltouch current - Piezo future
                                    ; 20.io1.in    - X min active low endstop switch
                                    ; 20.io0.out   - GPIO port 0 on toolboard io0, servo mode - BLTouch Z-Probe
                                    ; 20.temp0     - Extruder Thermistor
                                    ; 20.temp1
                                    ; 20.button0
                                    ; 20.button1
                                    ;
                                    ; -----------------------------------------------------------------
                                    ;
                                    ; General preferences
                                    
                                    G4 P2000                          ; Hold your Horses.
                                    G90                               ; send absolute coordinates...
                                    M83                               ; ...but relative extruder moves
                                    G21                               ; Set units to Millimeters
                                    M550 P"DUET3"                     ; set printer name
                                    M575 P1 S1 B57600                 ; Set things up for the PanelDue
                                    M575 P1 S1 B57600                 ; Set things up for the PanelDue
                                    
                                    M584 X0.3 Y0.2 Z0.0:0.1:0.4 E20.0 ; set drive mapping to each axis
                                    M669 K1                           ; Select CoreXY mode - New format
                                    
                                    ; Network
                                    M552 S1                           ; enable network
                                    ; M552 P192.168.3.120             ; Static IP Address
                                    M586 P0 S1                        ; enable HTTP
                                    M586 P1 S0                        ; disable FTP
                                    M586 P2 S0                        ; disable Telnet
                                    
                                    ; Drives
                                    M569 P0.0 S0                      ; physical drive 0 goes backwards - Z Axis Left (1)
                                    M569 P0.1 S0                      ; physical drive 1 goes backwards - Z Axis Right Back (2)
                                    M569 P0.2 S0 D3                   ; physical drive 2 goes backwards - Y Axis, activate Stealthchop
                                    M569 P0.3 S0 D3                   ; physical drive 3 goes backwards - X Axis, activate Stealthchop
                                    M569 P0.4 S0                      ; physical drive 4 goes backwards - Z Axis Right Front (3)
                                    M569 P20.0 S1 D3                  ; physical drive 5 goes forwards - Extruder 1
                                    
                                    ; Set up three Z-axis location
                                    M671 X-42.5:390.9:390.9 Y172.5:291.5:49.5 S5 ; leadscrews at 1 - left, 2 - rear right and 3 - front right
                                    
                                    M92 X199.27 Y199.27 Z397.23 E2700          ; set steps per mm
                                    M350 X16 Y16 Z16 E16 I1                    ; configure micro-stepping with interpolation
                                    M566 X800.00 Y800.00 Z400.00 E240.00       ; set maximum instantaneous speed changes (mm/min)
                                    M203 X12000.00 Y12000.00 Z2500.00 E1200.00 ; set maximum speeds (mm/min)
                                    M201 X6000.00 Y6000.00 Z800.00 E800.00     ; set accelerations (mm/s^2)
                                    M906 X1000 Y1000 Z1000 E800 I30            ; set motor currents (mA) and motor idle factor in percent*100
                                    
                                    M84 S30                                    ; Set idle timeout
                                    
                                    ; Axis Limits
                                    M208 X0 Y0 Z0 S1                           ; set axis minima
                                    M208 X320 Y320 Z350 S0                     ; set axis maxima
                                    
                                    ; Endstops
                                    
                                    M574 X1 S1 P"20.io1.in"                    ; X min active high endstop switch
                                    M574 Y2 S1 P"0.io2.in"                     ; Y max active high endstop switch
                                    
                                    ; Z-Probe - BLTouch - *CURRENT*
                                    M574 Z1 S2                                 ; set endstops controlled by probe
                                    M558 P9 C"^20.io0.in" H5 F2000 T12000      ; set Z probe type to bltouch and the dive height + speeds (bltouch NEEDS pullup)
                                    ; G31 P100 X28.5 Y-5 Z2.65                 ; set Z probe trigger value, offset and trigger height - 0.25MM NOZZLE
                                    G31 P100 X-29.99 Y1.04 Z0.55               ; set Z probe trigger value, offset and trigger height - 0.40MM NOZZLE
                                    
                                    ; Z-Probe - PIEZO - *FUTURE*
                                    ; M574 Z1 S2                               ; set endstops controlled by probe
                                    ; M558 P8 C"20.io0.in" H10 F2000 T20000    ; set Z probe type to PIEZO and the dive height + speeds
                                    ; G31 P100 X0 Y0 Z-0.1                     ; set Z probe trigger value, offset and trigger height
                                    
                                    G30                                        ; Probe Z
                                    
                                    ; Configure Heaters and Sensors
                                    M308 S0 P"0.temp0" Y"thermistor" T100000 B3950          ; Configure bed temperature sensor
                                    M950 H0 C"0.out0" T0                                    ; Define heater 0 (bed heater) - bed_heat pin and Temp Sensor 0 
                                    M143 H0 S120 A2                                         ; set temperature limit for heater 0 to 120c
                                    M140 H0                                                 ; Map heated bed to heater 0
                                    
                                    M308 S1 P"20.temp0" Y"thermistor" T100000 B3950         ; Configure extruder 1 temperature sensor
                                    M950 H1 C"20.out0" T1                                   ; Define heater 1 (hot-end E0) to use the "20.out0" pin and Temp Sensor 1
                                    M143 H1 S265 A2                                         ; set temperature limit for heater 1 to 265C
                                    
                                    M308 S2 P"mcu-temp" Y"mcu-temp" A"Duet Board"           ; Configure MCU sensor
                                    M308 S3 P"temp3" Y"thermistor" T10000 B3988 A"Coolant"  ; Configure coolant sensor
                                    
                                    ; Configure Fans
                                    M950 F0 C"20.out2" Q100                 ; Define Fan_0 for use - Parts Cooler on Printhead - 4010 fan
                                    M950 F1 C"!0.out4+^0.out4.tach" Q25000  ; Define Fan_1 for use - Radiator cooling - WC heatsink. - PWM fan
                                    M950 F2 C"0.out9" Q25000                ; Define Fan_2 for use - Duet board cooling fan
                                    M950 S0 C"20.io0.out"                   ; Define GPIO port 0 on IO0, servo mode - BLTouch Z-Probe - *CURRENT*
                                    M950 J0 C"^!0.io1.in"                   ; Input 0 uses 0.io1.in pin, pullup enabled
                                    
                                    ; Fans
                                    M106 P0 S0                          ; set fan 0. Parts Cooler on Printhead
                                    M106 P1 T25:40 H2                   ; Set fan 1. Manages Radiator fan for water-cooled loop.
                                    M106 P2 T35:45 H2                   ; Set fan 2. Manages Duet board fan.
                                    
                                    ;Set PID values
                                    M307 H0 A289.6 C634.8 D0.9 V23.3 B0 ; disable bang-bang mode for the bed heater and set PWM limit
                                    M307 H1 A561.8 C236.5 D5.8 V23.3 B0 ; disable bang-bang mode for the extruder heater and set PWM limit
                                    
                                    ; Pressure Advance
                                    M572 D0 S0.3                        ; Set pressure advance to offset elasticity
                                    
                                    ; Tools
                                    M563 P0 S"Extruder 1" D0 H1 F0      ; define tool 0. Fan 0 operates with an active hot-end
                                    G10 P0 X0 Y0 Z0 R0 S0               ; set tool 0 axis offsets active and standby temperatures to 0C
                                    
                                    ; Emergency Stop
                                    M574 S1 P"^!0.io1.in"               ; Define Emergency endstop - emergency stop switch condition
                                    M581 P0 S1 T0                       ; Define action to be taken with activation of emergency stop switch
                                    
                                    ; Miscellaneous
                                    T0                                  ; select first tool
                                    
                                    1 Reply Last reply Reply Quote 0
                                    • luckyflyerundefined
                                      luckyflyer
                                      last edited by

                                      Thanks I appreciate that.

                                      1 Reply Last reply Reply Quote 0
                                      • luckyflyerundefined
                                        luckyflyer
                                        last edited by

                                        Getting late here, I'll check it out tomorrow.

                                        Nuramoriundefined 1 Reply Last reply Reply Quote 0
                                        • Nuramoriundefined
                                          Nuramori @luckyflyer
                                          last edited by Nuramori

                                          @luckyflyer said in Help with M669 etc:

                                          Getting late here, I'll check it out tomorrow.

                                          Sure. Pay special attention in mine the value of the y endstop configuration. It’s a “Y2” not Y1 as in yours. That is telling the duet that the y endstop is a MAX position for the Cartesian coordinate layout. It will still HOME at the endstop at the back - I think you’re mistaking homing as also being 0,0, but it doesn’t have to be.

                                          1 Reply Last reply Reply Quote 0
                                          • dc42undefined
                                            dc42 administrators
                                            last edited by dc42

                                            @luckyflyer said in Help with M669 etc:

                                            The above configuration works except that the prints are mirrored. I then tried with drive 0 going to the right motor and drive 1 going to the left and putting the y endstop at the front of the printer. It now homes at left front and the prints are normal, not mirrored. However I prefer home to be left rear. I'm pretty sure that this can be configured with the right combination of M669, M569 and M574. I have tried several combinations but have not got it to work. Can someone help me out with this?

                                            You need to swap the X and Y motor connections over, either physically (as you already tried) or in the M584 command, so that Ymin is towards you and Ymax is away from you. Then change your M574 Y command and homey.g file to home to max Y instead of min Y. Also change homeall.g to home Y to max.

                                            Duet WiFi hardware designer and firmware engineer
                                            Please do not ask me for Duet support via PM or email, use the forum
                                            http://www.escher3d.com, https://miscsolutions.wordpress.com

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