Help with M669 etc
-
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 forwardsThe 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.inThe 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?
-
Have you tried
M569 P0.0 S0 ; physical drive 0.0 goes backwards M569 P0.1 S0 ; physical drive 0.1 goes backwards
-
Seems like I did I've tried many, I'll try again and get back.
-
That doesn't work, wants to home to the right front.
-
M669 is a tough command to fully understand because there is no explanation of what effects different coefficients have on movement for core xy.
-
@luckyflyer
I don't have a corexy but this seems to cover it well
Step by step CoreXY firmware setup -
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.
-
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
-
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.
-
@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.
-
@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?
-
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.
-
Current m584,
M584 X0.1 Y0.0 Z0.2 E0.3 -
@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.
-
When I perform homing on the axis’, the x homes to the left edge, the y homes to the rear where the endstop is.
-
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
-
Thanks I appreciate that.
-
Getting late here, I'll check it out tomorrow.
-
@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.
-
@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.