The right Z tower X motor always need to run M999
-
@jsinicro when using expansion boards, we recommend that you include command G4 S5 in config.g earlier than the first command that refers to a CAN-connected expansion board. This is to allow the expansion boards time to start up after power is applied before the main board tries to configure them. My guess is that you don't have that command in config.g, and the first command in config.g that refers to that expansion board is the M569 command to set the motor direction.
-
Post your full config and more details.
What's the reason for splitting the X into a U axis?
-
@phaedrux here's the config.g . The reason I split the 2nd X axis is so that eventually I can switch between tools to use different color filaments or different type of filament like for support that just melts in water... since they are independent Z and X axis. Maybe you are right I don't need to split them, I could just turn tool 1 on and tool 2 off and vice versa. I will try the G4 S5 see if that fixes it.
thx.; Configuration file for Duet 3 (firmware version 3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.2.3 on Sun Apr 18 2021 23:08:09 GMT-0400 (Eastern Daylight Time) ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"jsinicro_1" ; set printer name ; Network M551 P"tinisa1125" ; set password M552 P0.0.0.0 S1 ; enable network and acquire dynamic address via DHCP M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet ; Set Kinematics type and kinematics parameters M669 K0 ;X1:0:0 Y0:1:0 Z0:0:1 U1:0:0 ; ; Drives S = motor direction 0 is backwards/reversed direction based on motor orientation ; M569 P0.0 S1 ; physical drive 0.0 goes forwards z xxis 1 motor 1 M569 P0.1 S1 ; physical drive 0.1 goes forwards z axis 2 motor 1 M569 P0.2 S1 ; physical drive 0.2 goes forwards y axis 1 motor 1 M569 P0.3 S1 ; physical drive 0.3 goes forwards y axis 1 motor 2 M569 P0.4 S1 ; physical drive 0.4 goes forwards z axis 2 motor 2 M569 P0.5 S1 ; physical drive 0.5 goes forwards z axis 1 motor 2 M569 P1.0 S1 ; physical drive 1.0 goes forwards x axis 2 motor 1 M569 P1.1 S0 ; physical drive 1.1 goes forwards x axis 2 tool 1 motor M569 P3.0 S0 ; physical drive 3.0 goes forwards x axis 1 motor 1 M569 P3.1 S0 ; physical drive 3.1 goes forwards x axis 1 tool 2 motor ; mapping 2 motors on separate X axis and 2 motors each on 2 separate Z axis Y has just 2 motors ;M584 R0 S0 X1.0 U3.0 Y0.2:0.3 Z0.0:0.5:0.1:0.4 E1.1:3.1 P4 M584 R0 S0 X1.0 U3.0 Y0.2:0.3 Z0.0:0.5:0.1:0.4 E1.1:3.1 P4 M350 X16 Y16 Z16 U16 E16:16 I1 ; configure microstepping with interpolation M92 X80.00 Y395.72 Z400.00 U80.00 E840.99:840.99 ; set steps per mm M566 X300.00 Y300.00 Z60.00 U300.00 E120.00:120.00 ; set maximum instantaneous speed changes (mm/min) M203 X900.00 Y900.00 Z180.00 U900.00 E900.00:900.00 ; set maximum speeds (mm/min) M201 X150.00 Y200.00 Z20.00 U150.00 E150.00:150.00 ; set accelerations (mm/s^2) M906 X800 Y1200 Z1200 U800 E800:800 I30 ; set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout M671 X139.21:-120.26:139.21:-120.26 Y-101:-101:-101:-101 ; lead screws offsets from X0,Y0 homed nozzle position remember to dimention right tower later ; currently we are only using left tower which controller 1 and 4 where 4 is the back motor when facing power supply ; Axis Limits starting with Left tower M208 X20:520 Y20:520 Z0:500 ; set axis max/min ; Endstops M574 X1 S1 P"!1.io0.in" ; configure 2 active-low "!" in name endstop for low end on X M574 Y1 S1 P"!1.io1.in" ; Y M574 Z2 S1 P"!1.io3.in" ; Z M574 Z2 S1 P"!3.io3.in" ; Z M574 U1 S1 P"!3.io0.in" ; configure 2 active-low "!" in name endstop for low end on X ; Z-Probe M558 P9 C"^1.io4.in" X0 Y0 Z1 H20 F120 K0 T6000 ; disable Z probe but set dive height, probe speed and travel speed M950 S0 C"1.io4.out" G31 X42 Y0 Z0.75 K0 P25 M558 P9 C"^3.io4.in" U0 Y0 Z1 H20 F120 K1 T6000 ; disable Z probe but set dive height, probe speed and travel speed M950 S1 C"3.io4.out" G31 U-44 Y0 Z2.648 K1 P25 ; Heaters M308 S0 P"temp0" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin temp0 main board M950 H0 C"out0" T0 ; create bed heater output on out0 and map it to sensor 0 ; disable bang-bang mode for the bed heater and set PWM limit M307 H0 B0 R0.348 C629.5 D2.14 S1.00 ; pid tuning parameters M140 H0 ; map heated bed to heater 0 M143 H0 S120 ; set temperature limit for heater 0 to 120C M308 S1 P"1.temp0" Y"thermistor" T100000 B4138 ; configure sensor 1 as thermistor on pin and CAN #3.temp0 M950 H1 C"1.out0" T1 ; create nozzle heater output on 1.out0 and map it to sensor 1 M307 H1 B0 R2.209 C212.4 D5.61 S1.00 V24.2 ; pid tuning parameters M143 H1 S280 ; set temperature limit for heater 1 to 280C M308 S2 P"3.temp0" Y"thermistor" T100000 B4138 ; configure sensor 2 as thermistor on pin and CAN # 1.temp0 M950 H2 C"3.out0" T2 ; create nozzle heater output on 2.out0 and map it to sensor 2 M307 H2 B0 R2.248 C149.8 D4.97 S1.00 V24.3 ; pid tuning parameters M143 H2 S280 ; set temperature limit for heater 2 to 280C ; Fans ;M950 F0 C"1.out3" Q500 ; create fan 0 on pin 1.out3 and set its frequency ;M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off ;M950 F1 C"1.out4" Q500 ; create fan 1 on pin 2.out3 and set its frequency ;M106 P1 S1 H-1 ; set fan 1 value. Thermostatic control is turned off ;M950 F2 C"3.out3" Q500 ; create fan 2 on pin 1.out4 and set its frequency ;M106 P2 S1 H1-1 T45 ; set fan 2 value. Thermostatic control is turned off ;M950 F3 C"3.out4" Q500 ; create fan 3 on pin 2.out4 and set its frequency ;M106 P3 S1 H1-1 T45 ; set fan 3 value. Thermostatic control is turned off ; Tools M563 P0 S"Z2-Axis" 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 M563 P1 S"Z1-Axix" D1 H2 X3 ;F2 ; define tool 1 X3 maps X movements to the U axis G10 P1 U0 Y0 Z0 ; set tool 0 axis offsets G10 P1 R0 S0 ; set initial tool 1 active and standby temperatures to 0C ; Create a tool that prints 2 copies of the object using both carriages M563 P2 D0:1 H1:2 X0:3 ; tool 2 uses both extruders, hot end heaters, and maps X to both X and U G10 P2 X50 Y0 U-50 S0 R0 ; set tool offsets and temperatures M567 P2 E1:1 ; set mix ratio 100% on both extruders ; Fillament sensor M591 D0 P7 C"0.io5.in" L7 R50:200 E15 S0 ;Bigtree smart filament moniter v2 set to moniter between 55%-150% of 7 counts over a distance of 22mm M591 D1 P7 C"3.io5.in" L7 R50:200 E15 S0 ;Bigtree smart filament moniter v2 set to moniter between 55%-150% of 7 counts over a distance of 22mm M581 P"1.io5.in" T2 C0 M581 P"3.io5.in" T3 C0 ; Custom settings are not defined ; Miscellaneous M575 P1 S1 B57600 ; enable support for PanelDue M501 undefined
-
@jsinicro said in The right Z tower X motor always need to run M999:
@phaedrux here's the config.g . The reason I split the 2nd X axis is so that eventually I can switch between tools to use different color filaments or different type of filament like for support that just melts in water... since they are independent Z and X axis.
How do you get two Z towers able to raise/lower the X and U gantry separately?
Frederick
-
@fcwilt The macro switches between the two or joins them back:
Left Tower:; ; switchLeftTower.g ; called to home the Z axis ; G91 ;M18 X Z ; disable Z motors before reassigning them ;M350 X16 Z16 I1 ; Z reassign microstepping ;M906 X800 Z800 I30 ; Z reassing currents (mA) and motor idle factor in per cent ;T0 P0 ; Select Tool 1 and run tfree0 only to park T0 ;home X first ;G1 H2 Z1 F6000 ; lift Z relative to current position ;G1 H1 X-685 F1100 ; move quickly to X axis endstop and stop there (first pass) ;G1 H2 X10 F6000 ; go back a few mm ;G1 H1 X-685 F360 ; move slowly to X axis endstop once more (second pass) ;G1 H2 X10 F6000 ;G1 H2 Z1 F6000 ; lift Z relative to current position ;G1 H1 Y-705 F1100 ; move quickly to Y axis endstop and stop there (first pass) ;G1 H2 Y5 F6000 ; go back a few mm ;G1 H1 Y-705 F360 ; move slowly to Y axis endstop once more (second pass) ;G1 H2 Y5 F6000 ; go back a few mm M584 Z0.1:0.4 ; Split the 2 Z towers for independent control. this will move right tower only G1 H1 X0 Y250 Z1 F6000 ; lift Z relative to current position G30 K0 ; this will home and probe the left Z tower G90 Right Tower ; ; switchToRightTower.g ; called to home the Z axis ; G91 ;M18 X Z ; disable Z motors before reassigning them ;M350 X16 Z16 I1 ; Z reassign microstepping ;M906 X800 Z800 I30 ; Z reassing currents (mA) and motor idle factor in per cent ;T0 P0 ; Select Tool 1 and run tfree0 only to park T0 ;home X first ;G1 H2 Z1 F6000 ; lift Z relative to current position ;G1 H1 U-685 F1100 ; move quickly to X axis endstop and stop there (first pass) ;G1 H2 U10 F6000 ; go back a few mm ;G1 H1 U-685 F360 ; move slowly to X axis endstop once more (second pass) ;G1 H2 U10 F6000 ;G1 H2 Z1 F6000 ; lift Z relative to current position ;G1 H1 Y-705 F1100 ; move quickly to Y axis endstop and stop there (first pass) ;G1 H2 Y5 F6000 ; go back a few mm ;G1 H1 Y-705 F360 ; move slowly to Y axis endstop once more (second pass) ;G1 H2 Y5 F6000 ; go back a few mm M584 Z0.0:0.5 ; Split the 2 Z towers for independent control. this will move right tower only G1 H1 U0 Y250 Z1 F6000 ; lift Z relative to current position G30 K1 ; this will home and probe the left Z tower G90
-
I wonder if you can use M669 and M584 to create two independent "Z" axes with different letters, like Z and W.
Frederick
-
@dc42 : That worked, putting the G4 S5 fixed the issue, thankyou
-
@fcwilt There can only be one independent Z axis at a time, that's why I switch the motor config to go to one or another. Would be sweet if two independent Z and X axis could work at the same time on the same print, thus cutting the print time in 1/2.
-
@jsinicro said in The right Z tower X motor always need to run M999:
@fcwilt There can only be one independent Z axis at a time, that's why I switch the motor config to go to one or another. Would be sweet if two independent Z and X axis could work at the same time on the same print, thus cutting the print time in 1/2.
That may be supported by RRF in the future, but probably only on Duet 3 MB6HC. You would need a special slicer that can plan the concurrent printing, avoiding head collisions.
-
@dc42 That will be awesome, the slicing software would be interesting on how to handle that.