Core XY with dual gantries using a duet wifi
-
The gantries are still 2040 they are not changed at all from the original design and yes they are tiered. Its the frame that needs to be 2080 as the double set of belts need to be stacked to pass each other. So this mass does not matter, except the printer's frame at 780mm(Y)x550mm(X)x760mm high is already getting big and heavy. I am trying to see if I can get 2060 to work by having steppers at opposite ends but I suspect not. I am drawing it up in Fusion360 and have the original in front of me….
-
Ah OK. Out of interest, what is the range of movement on each of the 3 axes for that frame size?
-
this is what i mean
https://www.youtube.com/watch?v=3UE9jU6RDP8
(the video is of a early "dry run")
have been running this for 2 weeks now
works grate and no extra mass also make it posible to add more tools -
Any updates on this?
Long term I'm thinking the project at work would be best served by adaptive slicing with a large nozzle for solid infill and a small nozzle for detail. While calibration is easier if the two nozzles are on one head I don't like the idea of a second nozzle dragging over the print. Perhaps I'm just being over cautious there.
-
Does the duetwifi support 2 completely separate XY - UV gantries yet?
I have the mechanical / structural bit done just sorted the belt alignments a bit.
https://www.thingiverse.com/thing:2557431
So I am now starting on the mechanical parts and other small stuff to support the cabling to the hotend.
If not yet I guess I can jsut run one gantry for now.
-
Yes it does, and has done so for about a year AFAIR.
-
…............and here is video of my Duet powered CoreXYUV homing. https://www.youtube.com/watch?v=ILRsEt4ExYM. Slightly different configuration as my axes are stacked one above the other but you get the idea.
-
My ones are stacked but by using 2080 and not 2 lots of 2040s…OMG that's huge is all I can say.
-
Could I see your config.g please?
-
Could I see your config.g please?
Here it is but you need to be aware of a couple of things because the printer configuration is probably a bit different to yours.
Basically I use Diamond hot ends which have have multiple inputs (3 or 5) and so I have 5 E3D Titan extruders. Because I wanted to keep the Bowden tubes tubes, the extruders are mounted on their own XY gantry which sits above the hot end gantry. For normal printing, the upper and lower motors are mapped together so as far as the Duet is concerned, it acts like a singly CoreXY with the U and V axes hidden. However, when the printer is turned off, it is possible to move each gantry independently so it would be easy for one to be offset from the other. For that reason, each gantry needs to be homed individually so that they are both correctly positioned in relation to each other. The way it works is that the upper motors are mapped to U and V for homing, then re-mapped to X and Y for printing and the U and V axes are hidden. I've included my homeall.g as well to illustrate.
Oh, and it's a Duet Ethernet, not WiFi.
; ******************* 5 TOOLCONFIGURATION ***********************
; General preferences
M111 S0 ; Debugging off
G21 ; Work in millimetres
G90 ; Send absolute coordinates…
M83 ; ...but relative extruder moves; Network
M550 PTallCoreXY ; Set machine name
M551 Preprap ; Machine password (used for FTP)
M540 P0xBE:0xEF:0xDE:0xAD:0xFE:0xED ;MAC addressM552 S1 ;Turn networking on
M552 P0.0.0.0; acquire dynamic address via DHCP (or put IP address here )
;M552 P192.168.1.14 ;IP Address
;M554 P192.168.1.255 ;Gateway
;M553 P255.255.255.0 ; NetmaskM555 P2 ; Set firmware compatibility to look like Marlin
M669 K8 ; Select CoreXYUV mode
; Endstops
M574 Z0 S0 ; Define active low and unused microswitches
M574 X1 Y1 S1 ; Define active high microswitches
M574 U1 V1 S1 ; active high switches for when temporary U and V axes are employed during homing the upper XY
M558 P1 X0 Y0 Z1 F180 T6000 I0 ; use this for metrol Switch
;M558 P1 X0 Y0 Z1 H5 F240 T6000 ; Set Z probe type to modulated, the axes for which it is used and the probe + travel speeds
;G31 P500 X0 Y0 Z2.2 ; Set Z probe trigger value, offset and trigger height.
G31 P700 X0 Y0 Z-0.5; Use this for Metrol switch. Use less negative to move closer to bed, more to move further away.; Drives
M584 X0:3 Y1:4 Z2 U10 V11 E5:6:7:8:9 P3; U and V are additional axes only for homing. Made invisible by using P3
;M584 X0:3 Y1:4 Z2 E5:6:7:8:9
M569 P0 S0 ; Drive 0 goes backwards - Lower left XY
M569 P1 S0 ; Drive 1 goes backwards - Lower Right XY
M569 P2 S1 ; Drive 2 goes forwards - Z
M569 P3 S0 ; Drive 3 goes backwards - Upper left XY
M569 P4 S0 ; Drive 4 goes backwards - Upper right XY
M569 P5 S0 ; Drive 5 goes backwards - Extruder 0
M569 P6 S0 ; Drive 6 goes backwards - Extruder 1
M569 P7 S0 ; Drive 7 goes backwards - Extruder 2
M569 P8 S0 ; Drive 8 goes backwards - Extruder 3
M569 P9 S0 ; Drive 9 goes backwards - Extruder 4;M350 X16 X16 X16 X16 X16 X16 I0 ; Configure microstepping without interpolation - this is what the configuator generated and is wrong
M350 X16 Y16 U16 V16 Z16 E16:16:16:16:16 I1; Configure XYUVZ and 3 extruders microstepping with interpolation
M92 X80 Y80 U80 V80 Z3200 E393:397:403:400:401 ; Set steps per mm
M566 X600 Y600 U600 V600 Z100 E600:600:600:600:600 ; Set maximum instantaneous speed changes (mm/min)
M203 X50000 Y35000 U50000 V35000 Z600 E1800:1800:1800:1800:1800 ; Set maximum speeds (mm/min)
M201 X1000 Y1000 U1000 V1000 Z100 E1000:1000:1000:1000:1000 ; Set accelerations (mm/s^2)
M204 P500 T1000; set print accel to 500, non print to 1000
M906 X1800 Y1800 U1800 V1800 Z1800 E600:600:600:600:600 I20 ; Set motor currents (mA) and motor idle factor in per cent
M84 S30 ; Set idle timeout;axis limits - must come after U ad V have been defined
M208 X0 Y0 U0 V0 Z0 S1 ; Set axis minima
M208 X360 Y364 U360 V364 Z760 S0 ; Set axis maxima; Heaters
M143 S280 ; Set maximum hot end heater temperature to 280C
M143 H0 S100 ; Set max bed temp to 100 deg C
M570 S420 ; Set maximum heating time to 420 secs (7 minutes)
M570 H1 P30 T10 ; set time anomoly to 30 secs and temp deiviation to 10 degrees
;M305 P0 T100000 B3988 C0 R4700 L0 H0 ; Set thermistor + ADC parameters for heater 0
M305 P1 T100000 B4725 C7.06e-8 R4700 L0 H0 ; Set thermistor + ADC parameters for heater 1 Hot end
M305 P0 X200 ; Set Bed to use PT 100 (1st channel is 200)
;M305 P1 X201 ;Set Hot end to use PT 100 (2nd channel is 201)
M305 P103 X2 S"Duet\Duex" T100000 B4725 R4700; Set thermistor + ADC parameters for heater 2 - this is used to measure stepper chip temperature on Duet
M305 P104 X3 S"Z Stepper" T100000 B3950 R4700; Set thermistor + ADC parameters for heater 3 - this is used to measure stepper chip temperature on Duex5
M305 P105 X4 S"LeftLowerXYStepper" T100000 B3950 R4700; Set thermistor + ADC parameters for heater 4 - this is used to measure left XY stepper temperature
M305 P106 X5 S"RightLowerXYStepper" T100000 B3950 R4700; Set thermistor + ADC parameters for heater 5 - this is used to measure right XY stepper temperature
M305 P107 X6 S"LeftUpperXYStepper" T100000 B3950 R4700; Set thermistor + ADC parameters for heater 6- this is used to measure right XY stepper temperature
M305 P108 X7 S"RightUpperXYStepper" T100000 B3950 R4700; Set thermistor + ADC parameters for heater 7 - this is used to measure right XY stepper temperature; use the following with 0.5mm diamond hot end and new heater cartridge
;M307 H1 A645.7 C190.4 D6.4 S1.00 B0; Diamond 5 colour with 80W heater. NB COULD REACH 647 degC ! ! Auto tune 270717
;M307 H1 A350.4 C194.8 D5.2 S0.6 ; Diamond 5 colour 80W heater PWM set to 0.6 - no warning at this.
;M307 H1 A339.4 C192.1 D4.0 S1.00 B0 ; Diamond 5 colour 40W heater tuned 17-08-17
M307 H1 A241.6 C163.8 D4.4 S1.00; Diamond 5 colour 40W heater 60mm 27cfm fan;M307 H0 A198.7 C1205.5 D30 B0; Derived from auto tune 14/09/16 M303 H0 P0.5 S140
; dead time was calculated at 4.8 seconds but gves a slow heater fault error.
M307 H0 A283.6 C2745.9 D16.4 S1.00 B0 ; Auto tuned 17-08-2017 M303 H0 S60; Tools
M563 P0 D0:1:2:3:4 H1 ; Define tool 0
G10 P0 X0 Y0 ; Set tool 0 axis offsets
G10 P0 R0 S0 ; Set initial tool 0 active and standby temperatures to 0C
M568 P0 S1 ; Enable mixing for tool 0
M567 P0 E1.00:0.00:0.00:0.00:0.00 ; Set mixing ratios for tool 0
M563 P1 D0:1:2:3:4 H1 ; Define tool 1
G10 P1 X0 Y0 ; Set tool 1 axis offsets
G10 P1 R0 S0 ; Set initial tool 1 active and standby temperatures to 0C
M568 P1 S1 ; Enable mixing for tool 1
M567 P1 E0.00:1.00:0.00:0.00:0.00 ; Set mixing ratios for tool 1
M563 P2 D0:1:2:3:4 H1 ; Define tool 2
G10 P2 X0 Y0 ; Set tool 2 axis offsets
G10 P2 R0 S0 ; Set initial tool 2 active and standby temperatures to 0C
M568 P2 S1 ; Enable mixing for tool 2
M567 P2 E0.00:0.00:1.00:0.00:0.00 ; Set mixing ratios for tool 2
M563 P3 D0:1:2:3:4 H1 ; Define tool 3
G10 P3 X0 Y0 ; Set tool 3 axis offsets
G10 P3 R0 S0 ; Set initial tool 3 active and standby temperatures to 0C
M568 P3 S1 ; Enable mixing for tool 3
M567 P3 E0.00:0.00:0.00:1.00:0.00 ; Set mixing ratios for tool 3
M563 P4 D0:1:2:3:4 H1 ; Define tool 4
G10 P4 X0 Y0 ; Set tool 3 axis offsets
G10 P4 R0 S0 ; Set initial tool 3 active and standby temperatures to 0C
M568 P4 S1 ; Enable mixing for tool 3
M567 P4 E0.00:0.00:0.00:0.00:1.00 ; Set mixing ratios for tool 4
M563 P5 D0:1:2:3:4 H1 ; Define tool 5
G10 P5 X0 Y0 ; Set tool 3 axis offsets
G10 P5 R0 S0 ; Set initial tool 3 active and standby temperatures to 0C
M568 P5 S1 ; Enable mixing for tool 3
M567 P5 E0.20:0.20:0.20:0.20:0.20 ; Set mixing ratios for tool 5M912 P0 S-9.1 ; calibration for cpu temperature reading
T0 ; Select tool0
; Fans
M106 P0 S0.0 I0 F10 H-1 ; Set print cooling fan (3) value, PWM signal inversion (off)and frequency (10 hz). Thermostatic control is turned off
M106 P1 S255 I0 L125 F250 H1 T60:140; Set hot end fan (1) value, PWM signal inversion(off) and frequency. Thermostatic control is turned on
M106 P2 S255 I0 F250 H103 T40:50; Set fan 2 value (Duet and Duex fans), PWM signal inversion and frequency. Thermostatic control is turned on (P106 virtual)
M106 P3 S255 I0 F250 H104 T40:50; Set fan 3 (Z Stepper fan) to work thermostatically on P104 virtual temp
M106 P4 S255 I0 F250 H105 T40:50; Set fan 4 (Left XY stepper fan) to work thermostatically on P105 virtual temp
M106 P5 S255 I0 F250 H106 T40:50; Set fan 5 (Right XY stepper fan) to work thermostatically on P106 virtual temp
M106 P6 S127 I0 F250 H107 T40:50; Set fan 6 (Left Upper XY stepper fan) to work thermostatically on P107 virtual temp
M106 P7 S127 I0 F250 H108 T40:50; Set fan 7 (Right XY stepper fan) to work thermostatically on P108 virtual temp; Custom settings
M207 S5.0 R0 F4800 T3600 ;set firmware retraction S=amount in mm, F=Feed rate mm/min(/60 to get mm/sec), R = additional length, Z = additional Z lift in mm
M572 D0 S0.00 ; set pressure advance coefficient
M572 D1 S0.00
M572 D2 S0.00
M572 D3 S0.00
M572 D4 S0.00; Emergency stops
M581 E2 S1 T0 C0 ; E0 is emergency stop button, S1 = rising edge, T0 is emergency stop like M112, C0 means any time
M581 E3 S1 T0 C0 ; E1 is axes limits; homeall.g
; called to home all axes; start by warming the hot end so that any oozed filament is molten
TO; select a tool - any one will do
M104 S140; heat to 140 but don't waitM584 X0 U3 Y1 V4 P5; temporarily map drives to U and V axes - have to map both axes even though only U is being used due to both motors being employed per axis
M906 X400 U400 Y400 V400 Z1200 ; reduce motor currents
G91 ; set to use relative coordinates
G1 Z5 F600 ; move bed down 5 mm
G1 X-380 U-380 Y-380 V-380 F4800 S1; move all 4 axes fairly quickly until one or other triggers a switch
G1 X-380 U-380 F4800 S1; now move just X and U fairly quickly left until one or other triggers a switch
G1 X-380 S1; course home X
G1 U-380 S1; course home UG1 X10 U10 F600 ; Go back a few mm
G1 X-380 U-380 F360 S1; Move slowly to X and U axis endstops once more and stop when one triggers
G1 X-380 F360 S1 ; fine home X
G1 U-380 F360 S1 ; fine home UG1 Y-380 V-380 F4800 S1; now move Y and V fairly quickly left until one or other triggers a switch
G1 Y-380 S1; course home Y
G1 V-380 S1; course home VG1 Y10 V10 F600; Go back a few mm
G1 Y-380 V-380 F360 S1; Move slowly to Y and V axis endstops once more and stop when one triggers
G1 Y-380 F360 S1 ; fine home Y
G1 V-380 F360 S1 ; fine home V;M584 X0:3 Y1:4 ; put motor mapping back to normal so that X uses drives 0 and 3, Y uses 1 and 4
M584 X0:3 Y1:4 Z2 U10 V11 E5:6:7:8:9 P3;G90; set to absolute coordinates
G1 X180 Y180 F12000; move to more or less the centre of the bed
M109 S140 ; continue heating bed to 140 but this time wait
G30 ; Home Z
G91 ;relative
G1 Z5 F300; Lower bed 5mm
G90 ; back to absoluteM906 X1800 U1800 Y1800 V1800 Z1800 ; set motor currents back to defaults
M104 S0; set hot end temp back to zero