• 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
    oozeBot @dc42
    last edited by 20 Aug 2022, 18:00

    @dc42 good call. Sorry to semi-hijack this thread, but can you please take a look at the following snippet? It works from daemon.g, but it is pausing the print when the C axis is moved. I thought this would be out of process from the job?

    Hopefully I'm doing something wrong.. If not, would this scenario be supported by the update for multiple motion systems?

    var rawExtrusion = 0
    if job.rawExtrusion == null
    	set global.spoolPosition = 0
    else
    	set var.rawExtrusion = job.rawExtrusion
    	
    if var.rawExtrusion > global.spoolPosition + 100
    	G1 C{var.rawExtrusion - global.spoolPosition} F1000
    	set global.spoolPosition = var.rawExtrusion
    	G92 C0
    
    undefined 1 Reply Last reply 24 Aug 2022, 13:10 Reply Quote 0
    • undefined
      zruncho @dc42
      last edited by 21 Aug 2022, 01:57

      @dc42

      I don't have the modern Duet boards to make use of this code, but it's still exciting to hear that this is coming along.

      Today I released a complete open-source Dual-Gantry CoreXY printer called Dueling Zero, w/configs, STLs, videos, CAD, docs, diagrams, the whole nine yards. The GitHub repo includes a sample RRF config for XY motion, which "just worked"... it was nice.

      https://github.com/zruncho3d/DuelingZero/

      6937f23b-d691-40a5-8e69-2c6021fd5ae3-image.png

      Curious what you (and others on this thread) think. In particular, the section on collision detection and avoidance in a shared workspace is general for any firmware.

      https://github.com/zruncho3d/DuelingZero/blob/main/SOFTWARE.md

      undefined 1 Reply Last reply 21 Aug 2022, 18:47 Reply Quote 1
      • undefined
        dc42 administrators @zruncho
        last edited by dc42 21 Aug 2022, 18:47

        @zruncho the RRF 3.5-dev branch now includes basic collision avoidance. See https://reprap.org/wiki/G-code#M597:_Collision_avoidance. Currently this is limited to checking for a minimum separation between one pair of axes, which is sufficient for IDEXY machines; but I have implemented it in a manner that allows it to be easily extended in future.

        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 21 Aug 2022, 22:40 Reply Quote 1
        • undefined
          zruncho @dc42
          last edited by 21 Aug 2022, 22:40

          @dc42 said in Beta testers for multiple motion system support:

          https://reprap.org/wiki/G-code#M597:_Collision_avoidance

          If I understand the G-code description, though, this seems like more of a "collision detect & then abort" than proactive avoidance?

          "If this is not the case, the job will be aborted prior to starting the first move that would cause the conflict."

          Still useful though! If I had this it would have avoided a few head crashes.

          BTW, have you seen any other Dual Gantry machines printing? The Links section at the bottom of the README links to every bit of prior art I could find - mostly gantry renders for post (here), or one commercial model, the Essentium HD 280i.

          https://github.com/zruncho3d/DuelingZero#links

          undefined 1 Reply Last reply 24 Aug 2022, 13:11 Reply Quote 0
          • undefined
            dc42 administrators @oozeBot
            last edited by 24 Aug 2022, 13:10

            @oozebot said in Beta testers for multiple motion system support:

            @dc42 good call. Sorry to semi-hijack this thread, but can you please take a look at the following snippet? It works from daemon.g, but it is pausing the print when the C axis is moved. I thought this would be out of process from the job?

            There is only a single motion system in the current RRF, so the C axis movement has to be inserted into that queue.

            Furthermore, the G92 C0 command will wait until all pending movement has been completed and there is no movement before it executes. You may get better results if you can rewrite that code without using G92 C0, but there will still be slight pauses.

            Hopefully I'm doing something wrong.. If not, would this scenario be supported by the update for multiple motion systems?

            Yes.

            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
              dc42 administrators @zruncho
              last edited by 24 Aug 2022, 13:11

              @zruncho said in Beta testers for multiple motion system support:

              If I understand the G-code description, though, this seems like more of a "collision detect & then abort" than proactive avoidance?

              Correct. It's up to the slicer to do proactive avoidance. The collision detection is there as a backup.

              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
                o_lampe
                last edited by 31 Aug 2022, 06:20

                @dc42 With a dual gcode stream, would it be possible to run a "colour-splicer" machine?
                The idea is to use a single Bowden tube hotend and feed it with filament cutoffs of different colours.
                The cutoff length would be calculated by checking the gcode for tool changes. (the toolchange macros are basically for cutting off the current filament and feed forward the next colour)
                The "length of the Bowden tube X extrusion speed " would determine the time it takes before colour "X" reaches the nozzle and the second gcode stream would do the motion planning with a fixed delay between splicing and extruding.

                1 Reply Last reply Reply Quote 0
                • undefined
                  misan
                  last edited by 6 Sept 2022, 09:22

                  I considered this a while ago for CNC machining: https://fightpc.blogspot.com/2017/10/getting-work-done-faster-on-cnc-machine.html

                  More than going for a self-scheduling system handling collisions, I went for a simpler system where both heads will swipe space from "left to right" keeping a safe distance. But I never went beyond the concept. In my case, each head could have a different Z height.

                  undefined 1 Reply Last reply 1 Nov 2022, 23:33 Reply Quote 0
                  • undefined o_lampe referenced this topic 1 Nov 2022, 20:17
                  • undefined
                    dc42 administrators @misan
                    last edited by 1 Nov 2022, 23:33

                    I finally got time today to work on this again. Here's an example of multiple motion systems in operation. https://www.dropbox.com/s/v18lgomkg44ald9/20221101_223148.mp4?dl=0

                    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 undefined 2 Replies Last reply 5 Jan 2023, 19:59 Reply Quote 6
                    • undefined
                      Hoops40 @dc42
                      last edited by 5 Jan 2023, 19:59

                      @dc42 any updates? Also was wondering if there is capability in independent z axis as well?

                      undefined 1 Reply Last reply 5 Jan 2023, 20:56 Reply Quote 0
                      • undefined
                        jay_s_uk @Hoops40
                        last edited by 5 Jan 2023, 20:56

                        @Hoops40 RRF3.5b1 has been released with support for multi motion systems. I don't believe there is currently independent Z axis support

                        Owns various duet boards and is the main wiki maintainer for the Teamgloomy LPC/STM32 port of RRF. Assume I'm running whatever the latest beta/stable build is

                        undefined 1 Reply Last reply 20 Jan 2023, 22:56 Reply Quote 1
                        • undefined
                          Hoops40 @jay_s_uk
                          last edited by 20 Jan 2023, 22:56

                          @jay_s_uk OK thank you.

                          1 Reply Last reply Reply Quote 0
                          • undefined
                            Aurimas @dc42
                            last edited by 18 Aug 2023, 03:25

                            @dc42 could you please share a sample file of how the file looks?
                            is it something like

                            M596 P1
                            G1 X50 Y75 E2
                            M400
                            M596 P0
                            G1 U85 W9 E3
                            M400

                            ?
                            I cannot figure it out from the manual.
                            sorry for a silly question.

                            Australian design and build large scale 3d printers
                            https://aurarum.com.au

                            undefined 1 Reply Last reply 11 Sept 2023, 14:05 Reply Quote 0
                            • undefined
                              dc42 administrators @Aurimas
                              last edited by 11 Sept 2023, 14:05

                              @Aurimas like that but without the M400 commands. Also you can have a block of G1 commands after each M596 command rather than just one.

                              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
                              • First post
                                Last post
                              Unless otherwise noted, all forum content is licensed under CC-BY-SA