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

Beta testers for multiple motion system support

Scheduled Pinned Locked Moved
Beta Firmware
21
70
6.5k
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.
  • undefined
    o_lampe @bot
    last edited by 1 Apr 2022, 07:11

    @bot
    I thought from the beginning, that such a project can only be done with a slicer-dev in coop.

    Interleaving the two objects has it's charm, but there is also the problem with unequal path length (or path print duration to be exact).
    You'd have to chop (straight) path' into equal portions to make sure, both nozzles are finished at the same time.
    A waiting tool at the end of a layer is one thing, but a waiting tool at the end of every path is another.

    It would be cool, if you could slow down the nozzle of the object with the slightly smaller layer-area, to make them both fotofinish the layer.

    undefined undefined 2 Replies Last reply 1 Apr 2022, 07:31 Reply Quote 0
    • undefined
      dc42 administrators @o_lampe
      last edited by 1 Apr 2022, 07:31

      @o_lampe when printing multiple objects, it should only be necessary for the two motion systems to synchronise at the end of each layer and again after the Z move, provided the objects are separate sufficiently for there to be no risk of collision of the two tool heads.

      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
      • undefined
        bot @o_lampe
        last edited by 1 Apr 2022, 15:11

        @o_lampe Yes, certainly it would be nice to have the speeds of moves automatically adjust, if requested. However, I'm still trying to ort out a way to use the time estimates in such a way. So, for now, I'm going to try and get a quick-and-dirty test build up, so testers can have a bit of help. It doesn't seem, to me, like there is an easy way to interleave two object g-codes, besides with a slicer or script. But, if there was a script or method to easily achieve the quick-and-dirty interleave, I could focus more time and effort on the coordinated timing, etc., and skip the mvp... it's up to the testers really, which they would prefer.

        *not actually a robot

        undefined undefined 2 Replies Last reply 1 Apr 2022, 15:35 Reply Quote 0
        • undefined
          dc42 administrators @bot
          last edited by 1 Apr 2022, 15:35

          Unfortunately I don't have a test build ready yet, and I now have to stop working on this feature. I will return to it later this month.

          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 1
          • undefined
            T3P3Tony administrators @bot
            last edited by 1 Apr 2022, 17:00

            @bot @dc42 Is there an "optimal" amount of interleaving?

            At one extreme having a line addressed to one motions, followed by a line addressed to the other motion stream, then back to the first does not appear good due to the overhead of switching the addressing and also because frequently the motion systems would not be that closely synchronised - one may be doing long moves and the other short ones.

            At the other extreme it would be a layer at a time.

            If both motion streams are reading the SD card file independently then presumably there is quite a lot of flexibility in this?

            www.duet3d.com

            undefined undefined 2 Replies Last reply 1 Apr 2022, 19:21 Reply Quote 1
            • undefined
              bot @T3P3Tony
              last edited by 1 Apr 2022, 19:21

              @t3p3tony This is a good point. An idea that just came to mind is to use the approximate length of the move queue. iirc, about 40-60 moves? Or perhaps, half the move queue? There might be some logic behind the number of lines to send to each system. I'm open to ideas. Perhaps I will make it configurable at first, by the user.

              *not actually a robot

              1 Reply Last reply Reply Quote 0
              • undefined
                dc42 administrators @T3P3Tony
                last edited by 1 Apr 2022, 19:29

                @t3p3tony I suggest around 10 to 30 commands before switching to the other stream. This keeps the overhead of reading and processing M597 commands reasonable low, without having very large blocks for the other GCode processor to skip over which could cause stuttering.

                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 1
                • undefined
                  o_lampe
                  last edited by 2 Apr 2022, 06:37

                  For me it's obvious, that in the future the SBC will play a major role in this.
                  I know, it's not in the scope yet, but why not start the project with that in mind?

                  If we had a way to merge two gcode files into one SBC-stream, we would also overcome the RAM limitations of Duet2.
                  I'm sure the Klipper guys would go that way. I already regret mentioning that, sorry.

                  undefined 1 Reply Last reply 3 Apr 2022, 21:15 Reply Quote 0
                  • undefined
                    oliof
                    last edited by oliof 4 Feb 2022, 12:56 2 Apr 2022, 12:55

                    I don't see a single threaded non-realtime process (and I don't even want to start consider multiple threads or processes...) being reliably able to emit interleaving gcode that requires cooperation. So I am not sure the SBC will be a help here.

                    <>RatRig V-Minion Fly Super5Pro RRF<> V-Core 3.1 IDEX k*****r <> RatRig V-Minion SKR 2 Marlin<>

                    undefined 1 Reply Last reply 3 Apr 2022, 06:30 Reply Quote 0
                    • undefined
                      o_lampe @oliof
                      last edited by 3 Apr 2022, 06:30

                      @oliof
                      You think of a real-time process, but I believe the pre-processing can take place in such short time, that it's done before the bed is heated.

                      I've seen it on my K40 laser: the controller is dumb with no memory. A raster-file or vector-graphics are fully controlled by the PC or a RasPi400 in my case. Although it's written in python, which only uses one CPU-core, it's fast ( upto 500mm/s raster engraving) and reliable.

                      undefined 1 Reply Last reply 3 Apr 2022, 12:42 Reply Quote 0
                      • undefined
                        oliof @o_lampe
                        last edited by 3 Apr 2022, 12:42

                        @o_lampe slight deviations are not a problem as long as you have a single tool. Coordinated moves from independent streams are another story.

                        <>RatRig V-Minion Fly Super5Pro RRF<> V-Core 3.1 IDEX k*****r <> RatRig V-Minion SKR 2 Marlin<>

                        1 Reply Last reply Reply Quote 0
                        • undefined
                          dc42 administrators @o_lampe
                          last edited by 3 Apr 2022, 21:15

                          @o_lampe we are already planning to use one SBC controlling multiple Duets to implement larger numbers of concurrent motion systems. For example, one SBC controlling two or three Duets, each of which controls two or three motion systems.

                          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 2
                          • undefined
                            wiego
                            last edited by 9 May 2022, 12:41

                            @dc42 I have built the latest 3.5-dev RRF. M596 is accepted. But I can't get asynchronous motion running. It doesn't start the second (P1) motion system and waits forever.
                            What I am trying to do is simply running X and Y asynchronously.

                            Could you please provide an example?

                            undefined 1 Reply Last reply 9 May 2022, 15:46 Reply Quote 0
                            • undefined
                              dc42 administrators @wiego
                              last edited by 9 May 2022, 15:46

                              @wiego unfortunately I had to pause work on multiple motion system support due to other pressing work. The current state is that multiple motion systems won't work in SBC mode, but might work in standalone mode. However, pause and resume will not work because the changes have not been completed.

                              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

                              undefined 1 Reply Last reply 28 Jun 2022, 08:35 Reply Quote 0
                              • undefined
                                Hoops40 @dc42
                                last edited by 28 Jun 2022, 08:35

                                @dc42 was wonder if there is a way to implement a trigger function. This might allow independent z axis.
                                I'm not a programmer so probably asking a stupid question.
                                Thinking if each head has trigger for layer completion to tell the system to send next line of commands to specific head.
                                Mechanical or digital not sure which would be best.
                                Sorry if it's a stupid question.

                                1 Reply Last reply Reply Quote 0
                                • undefined oliof referenced this topic 1 Jul 2022, 09:33
                                • slaughter2kundefined
                                  slaughter2k
                                  last edited by slaughter2k 7 Jan 2022, 10:51 1 Jul 2022, 10:50

                                  @dc42 just to let you know: I am new to Duet3d but not new to mechanics and 3d printing --> I have already built a corexy multi gantry system, will purchase the latest duet 3 board with extension to 11 drivers and install the latest 3.5 beta for testing. It is definitively aimed to run in SBC mode as the printer has to download and start print jobs via firebase cloud triggered via API.
                                  Side comment: I raised a question in the general thread regarding "is it possible to let reprap run a complete separate stepper motor in parallel to the print job". If'd get this solved in addition, my dreams coming true 😄
                                  01.JPG

                                  undefined 1 Reply Last reply 1 Jul 2022, 11:07 Reply Quote 0
                                  • undefined
                                    dc42 administrators @slaughter2k
                                    last edited by dc42 7 Jan 2022, 12:57 1 Jul 2022, 11:07

                                    I've updated the preliminary documentation on multiple motion systems at https://docs.duet3d.com/en/User_manual/RepRapFirmware/Multiple_motion_systems.

                                    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
                                    • slaughter2kundefined
                                      slaughter2k
                                      last edited by 1 Jul 2022, 12:38

                                      is there a special login / permission needed to see this beta documentation? Or are we talking about this one https://docs.duet3d.com/en/User_manual/RepRapFirmware/Multiple_motion_systems

                                      I am currently studying this

                                      undefined 1 Reply Last reply 1 Jul 2022, 12:57 Reply Quote 0
                                      • undefined
                                        dc42 administrators @slaughter2k
                                        last edited by dc42 7 Jan 2022, 12:58 1 Jul 2022, 12:57

                                        @slaughter2k I'm sorry, I accidentally gave the URL of that page that allows editing. Your link is correct.

                                        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
                                        • slaughter2kundefined
                                          slaughter2k
                                          last edited by 1 Jul 2022, 13:16

                                          no issue...
                                          "one" thing I don't fully understand yet from the documentation:
                                          "For command streams that originate from file, each motion system uses a separate GCode processor..."
                                          --> Is my understanding correct that ...from file... means that the gcode has to be stored on SD card?

                                          undefined 1 Reply Last reply 1 Jul 2022, 13:31 Reply Quote 0
                                          • First post
                                            Last post
                                          Unless otherwise noted, all forum content is licensed under CC-BY-SA