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

    Core XY with dual gantries using a duet wifi

    Scheduled Pinned Locked Moved
    Duet Hardware and wiring
    8
    40
    6.3k
    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.
    • gzcwnkundefined
      gzcwnk
      last edited by

      I drew up the original top end in Fusion360 and the only way I can see to make it work is to swap out the 2040 rail for 2080 and the gantries will be tiered slightly, otherwise you just cant get the belts to pass through each other! No biggee and not that hard to print either.

      1 Reply Last reply Reply Quote 0
      • gzcwnkundefined
        gzcwnk
        last edited by

        @MrBlom:

        hello
        it will be only a lite extra mass
        it will only carry one extruder at the time
        the extra mass will be the center "item" where the belts are connected

        check this video
        https://www.youtube.com/watch?v=FiTmRHkiEUg

        You are doing this on a Prusa i3 type printer? in effect the Z moves slowly so mass isnt an issue so for this design architecture having 2 hotends might be OK as Y is the bed.

        Extra mass hardly seems small as it would be in the order of 300~500grammes, hardly small unless using a bowden which isnt any good for flexibles.

        For a core XY on the other hand I am moving X and Y and rapidly not just X. Everything I read says keep mass so low I just dont see the point of putting 2 complete moving hotends on Y's gantry as Y's mass is then increased which is what I wish to avoid.

        With 2 gantries I avoid carrying the 2nd hotend's mass around when I dont need it. In terms of complexity I need 2 more stepper motors and 2 sets of belts and idlers in the order of $30US. I will need to print 4 parts at about 7hours each part. Then the 2080 rail but since I need to buy more 2040 anyway its only a marginal cost to upgrade to the 2080 for me, I can then cut up the 2040 I have for where I am short.

        1 Reply Last reply Reply Quote 0
        • deckingmanundefined
          deckingman
          last edited by

          Just a thought but 2080 is twice the weight of 2040. Can you not tier the gantries by changing the mount and still use 2040? I still can't picture how this is going to work so maybe you can't but it was just a thought..

          Ian
          https://somei3deas.wordpress.com/
          https://www.youtube.com/@deckingman

          1 Reply Last reply Reply Quote 0
          • gzcwnkundefined
            gzcwnk
            last edited by

            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….

            1 Reply Last reply Reply Quote 0
            • deckingmanundefined
              deckingman
              last edited by

              Ah OK. Out of interest, what is the range of movement on each of the 3 axes for that frame size?

              Ian
              https://somei3deas.wordpress.com/
              https://www.youtube.com/@deckingman

              1 Reply Last reply Reply Quote 0
              • MrBlomundefined
                MrBlom
                last edited by

                @gzcwnk

                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

                1 Reply Last reply Reply Quote 0
                • DocTruckerundefined
                  DocTrucker
                  last edited by

                  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.

                  Running 3 P3Steel with Duet 2. Duet 3 on the shelf looking for a suitable machine. One first generation Duet in a Logo/Turtle style robot!

                  1 Reply Last reply Reply Quote 0
                  • gzcwnkundefined
                    gzcwnk
                    last edited by

                    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.

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

                      Yes it does, and has done so for about a year AFAIR.

                      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

                      1 Reply Last reply Reply Quote 0
                      • deckingmanundefined
                        deckingman
                        last edited by

                        …............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.

                        Ian
                        https://somei3deas.wordpress.com/
                        https://www.youtube.com/@deckingman

                        1 Reply Last reply Reply Quote 0
                        • gzcwnkundefined
                          gzcwnk
                          last edited by

                          My ones are stacked but by using 2080 and not 2 lots of 2040s…OMG that's huge is all I can say.

                          1 Reply Last reply Reply Quote 0
                          • gzcwnkundefined
                            gzcwnk
                            last edited by

                            Could I see your config.g please?

                            1 Reply Last reply Reply Quote 0
                            • deckingmanundefined
                              deckingman
                              last edited by

                              @gzcwnk:

                              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 address

                              M552 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 ; Netmask

                              M555 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 5

                              M912 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 wait

                              M584 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 U

                              G1 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 U

                              G1 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 V

                              G1 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 absolute

                              M906 X1800 U1800 Y1800 V1800 Z1800 ; set motor currents back to defaults

                              M104 S0; set hot end temp back to zero


                              Ian
                              https://somei3deas.wordpress.com/
                              https://www.youtube.com/@deckingman

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