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

    Moving extruders to mirror XY movements for diamond hotend

    Scheduled Pinned Locked Moved
    General Discussion
    6
    23
    2.1k
    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.
    • appjawsundefined
      appjaws
      last edited by

      My machine is a modified D-Bot coreXY.
      I am toying with the idea of connecting 2 other motors to operate a second XY system above the current hotend carriage, that will hold 3 extruders feeding the diamond hotend.
      I have a duet wifi with due5 expansion board so I think I have enough controllers.
      If I connect both X motors in series and both Y motors in series then both carriages will move at the same time and by the same amount. The problem will be how to adjust in the X or Y direction if the motors go out of sync.
      The other option is to connect the hotend carriage and the extruder carriage motors to separate controllers but then I'm not sure how I would keep them in sync.

      The object is to keep the filament tubing as short as possible between the extruder and the diamond hotend and keep the weight of the hotend carriage as light as possible.
      Eventually I want to fit a 5 way diamond hotend which will need 5 extruders.

      Any advice/comments will be useful
      Paul

      appjaws - Core XYUV Duet Ethernet Duex5
      firmware 3.5.0-rc.4 Web Interface 3.5.0-rc.4
      Ormerod 1-converted to laser engraver, Duet wifi
      OpenSCAD version 2024.03.18
      Simplify3D 5.1.2

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

        Hi Paul,

        This is exactly what I've done, although in my case I now have 5 extruders. You don't need connect both motors in series, you can map them so that the Duet "thinks" it's a single gantry driven by two motors.

        So the drives section of my config.g looks like this:

        M584 X0:3 Y1:4 Z2 E5:6:7:8:9 ; drive mapping

        M569 P0 S0 ; Drive 0 goes backwards - Lower left XY
        M569 P1 S0 ; Drive 1 goes forwards - 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 forwards - 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

        To get around the issue of adjusting the extruder carriage to line up with the hot end carriage, I just made it a little larger in X and Y. You'll need to do this in any case as the extruder mount is likely to be larger than the Diamond. It's enough to line the gantries by eye before you turn on the power. Once energised, they will stay in sync and unless you move one or other when power is turned off, they will still stay in sync.

        I added a section to my blog which you can see here https://somei3deas.wordpress.com/my-corexy-printer-build/5-colour-upgrade/

        If you are going to the TCT show, I will be there with my printer as a guest of the Duet team. Just introduce yourself and I'll talk you through what I've done as well as showing you the actual beast in operation (hopefully it'll survive the journey).

        Keep an eye on my blog. I'll be adding a post about what I've discovered so far with the 5 colour. And /or PM/email me. Just be aware that I have a lot going on in my life right now so my responses may be a little delayed. You need to be wary of the 5 colour - I've discovered a few potential pit falls.

        HTH

        Edit, the comments after the M569 commands are incorrect. I had to change motor direction when upgrading the firmware and forgot to change the comments. The "S" parameters are correct but the comments don't match the true motor direction.

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

        1 Reply Last reply Reply Quote 0
        • 3dmntbighkerundefined
          3dmntbighker
          last edited by

          I can't recall where I saw it recently, but I saw a CoreXY where his extruder gantry followed the hot end gantry "passively". Interesting idea if you can make it work.

          Scratch built CoreXY with Maestro
          Heavily modified Ender 3 with Maestro
          MPCNC work in progress with Duet WiFi

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

            @3dmntbighker:

            I can't recall where I saw it recently, but I saw a CoreXY where his extruder gantry followed the hot end gantry "passively". Interesting idea if you can make it work.

            That may well have been my previous version. There is video of it here https://www.youtube.com/watch?v=5RptHCX7z0o&t=23s.

            It was reasonably successful and I liked the fact that for short zigzag infill moves, the extruder gantry remained more or less stationary as the Bowden tubes allowed some degree of decoupling. It was when I added two extra extruders that the mass of the extruders exceeded the mass of the hot end gantry so decided that it ought to be driven rather than be passively dragged around.

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

            1 Reply Last reply Reply Quote 0
            • fmaundefined
              fma
              last edited by

              I will follow your next blog post about the Diamond full color, as I plan to use one…

              BTW, does anyone try to make a passive hanging extruder on a CoreXY, like it is done on Delta? With just springs?

              Frédéric

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

                @fma:

                …...............................................
                BTW, does anyone try to make a passive hanging extruder on a CoreXY, like it is done on Delta? With just springs?

                Yes, I did that too even earlier than the passive carriage. You can see it on this video https://www.youtube.com/watch?v=ZLwHOcH_UFk. I didn't use springs though. Instead I had a weight and pulley arrangement. It kind of worked but at the extreme corners of the bed, it needed to drag the extruders a long way so had to pull up the weight which negated much of the weight saving (but only for very large items that filled the build plate). The Bowden tubes used to twist a lot too but in fairness, I didn't see any noticeable print artefacts from that. It's certainly the cheapest and easiest method of having short Bowden tubes on a large printer.

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

                1 Reply Last reply Reply Quote 0
                • fmaundefined
                  fma
                  last edited by

                  Nice! Thanks for the link. I may try this solution…

                  Frédéric

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

                    @Frederic. Here is a little tip if you want to try that method. For the counter weight, I printed a container then added lead shot which I bought from a place that sells Scuba diving gear. They sell it loose by the Kg and it was the cheapest source I could find. It's an easy way to get exactly the weight that you need for a counter balance. HTH

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

                    1 Reply Last reply Reply Quote 0
                    • fmaundefined
                      fma
                      last edited by

                      What if the extruders where resting on the main carriage, with a system allowing lateral (small) moves? I'm thinking of a flexible part, like a glass fiber rod, anchored on both side. This way, when the carriage moves, it pulls the extruders, but all fast accelerations are absorbed by the glass fiber rod.

                      This would also require some damping system, to avoid oscillation (which can mess up if in resonance); 3 chock absorbers (without the springs) from RC car models, mounted like a inverted pyramid, may do the work.

                      Frédéric

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

                        @fma:

                        What if the extruders where resting on the main carriage, with a system allowing lateral (small) moves? I'm thinking of a flexible part, like a glass fiber rod, anchored on both side. This way, when the carriage moves, it pulls the extruders, but all fast accelerations are absorbed by the glass fiber rod.

                        This would also require some damping system, to avoid oscillation (which can mess up if in resonance); 3 chock absorbers (without the springs) from RC car models, mounted like a inverted pyramid, may do the work.

                        That's exactly the lines I've been think on regarding the driven system that I have now. It works well enough but I now have in the order of 4 kg of moving mass which is all about a metre above the floor. So unless the printer feet are perfectly levelled and the floor is very rigid, the printer tends to rock when doing small zigzag moves. I was thinking along the lines of connecting the belts to the extruder carriage via springs or some such. The thought being that it would give some degree of decoupling such that the extruder carriage didn't have to exactly mimic every tiny movement of the hot end. Short zigzag moves would be absorbed by the springs and flex in the Bowden tubes. I do wonder how the system would then react to large fast non-print moves though. I can see belts coming off pulleys if the spring tension isn't sufficient and all sort of potential inertia related effects. It won't be difficult to lash up something to test the theory though. It's my list of things to try next - a list which is getting very long indeed.

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

                        1 Reply Last reply Reply Quote 0
                        • fmaundefined
                          fma
                          last edited by

                          4kg! I guess it is for the Diamond full colors… Well, it can't be handled by the main carriage as I was suggesting.

                          Frédéric

                          1 Reply Last reply Reply Quote 0
                          • fmaundefined
                            fma
                            last edited by

                            As you have a second XY carriage for the extruders, I'm wondering if a software approach couldn't be use…

                            For example, it could detect zizag moves, and decide not to move at all, as the PTFE tubes can handle the difference. In fact, moves should only start when the difference between hotend carriage and extruders carriage becomes too high for the PTFE tubing. This way, low accelerations could be used, to avoid shaking the machine. And smaller motors could be used.

                            Maybe a second path planner, based on the first one, but doing some average?

                            Frédéric

                            1 Reply Last reply Reply Quote 0
                            • fmaundefined
                              fma
                              last edited by

                              Mmm, this could even be done at the G-Code level, by parsing the G-Code file, doing the average of XY moves, computing UV moves, and inserting needed new G-Codes. Nice work for a Python script 😉

                              Frédéric

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

                                Frederic,

                                The calcs go something like this for my machine which uses twin 2020 open build V slot rails for the moving X carraiage(s).

                                Diamond 5 colour assembly on mount 600 gms (X)
                                Y carriages and X rails 848 gms (Y)

                                So for the hot end only its about 600gms in X and 1448gms in Y that has to be moved.

                                For the extruder carriage (5 off titans plus motors plus mounts and vslot wheels etc) it's an additional 1540 gms in X
                                Plus the rails and carriages at around 1,000 gms makes Y 2540.

                                Hence a total mass in Y of just over 4,000 gms (in X it's only 1,600).

                                As for your idea - you'd have to separate the two gantries and control each one individually in both X and Y. Currently I just map the drives so that the duet considers the whole thing to be a single XY gantry. I know the Duet can have extra X axes, but I don't believe it can have extra Y axes. Not sure on that. In any case, the firmware would have to essentially be able to run 2 gcode files concurrently - one for each gantry. I doubt very much if David is likely to want to spend time developing that, given that it's a pretty crazy idea that might not work 🙂

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

                                1 Reply Last reply Reply Quote 0
                                • fmaundefined
                                  fma
                                  last edited by

                                  Yeah, I can understand it would be a lot of work to do this in the firmware to implement another path planner…

                                  But working on the G-Code file is totally transparent for the Duet. Here is how I see things; tell me if I miss something important:

                                  1. define 2 more axes, U and V, with their own settings (accell, speed, jerk...);
                                  2. parse the G-Code file and build a smooth trajectory for UV axes;
                                  3. insert UV drive G-Codes in original G-Code file.

                                  Point 2 requires some maths: the smooth trajectory may be build using minimum square root from, say, the next 10 XY moves, taking into account the relative positions allowed by PTFE.

                                  For point 3, I think there are different cases: for short zizags in the same zone, UV moves can be inserted between XY moves. But for long moves, it may require to split XY moves in several shorters moves to include the UV moves. Don't know if this can lead to troubles for the path planner...

                                  This may be a little tricky, but interesting! And valuable if it works.

                                  Frédéric

                                  1 Reply Last reply Reply Quote 0
                                  • fmaundefined
                                    fma
                                    last edited by

                                    Mmm, I think I missed an important thing: it is not possible to do G1 Uxxx Vxxx!!! Only XYZE is allowed…

                                    Frédéric

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

                                      Yes. Actually I think we'd need G1 Xnnn Ynnn Unnn Vnnn Ennn which could be a bit tricky 🙂

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

                                      1 Reply Last reply Reply Quote 0
                                      • fmaundefined
                                        fma
                                        last edited by

                                        I agree. But if the script splits the XY moves, it could be possible to alternate G1 Xnnn Ynnn Ennn and G1 Unnn Vnnn…

                                        David, would it be very complicated to implement G0/1 UVABC? A basic implementation, without look ahead, just with inter-axes synchronisation, totally disconnected from XYZE path planner?

                                        Frédéric

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

                                          @fma:

                                          Mmm, I think I missed an important thing: it is not possible to do G1 Uxxx Vxxx!!! Only XYZE is allowed…

                                          You should already be able to do G1 Uxxx Vxxx moved if you have created U and V axes and have not hidden them. IDEX printers use G1 Uxxx moves in the tool change and homing files.

                                          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
                                          • fmaundefined
                                            fma
                                            last edited by

                                            But are the UV axes linked as XYZ are, to move in straight line? How are G1 UV commands queued, and when are they executed, regarding the XYZ path planner? If we add G1 UV commands between hotend moves, are they going to mess up the print?

                                            Frédéric

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