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

Increase maximum number of axii to 30?

Scheduled Pinned Locked Moved Unsolved
Firmware wishlist
7
36
1.6k
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 @Thorpydo
    last edited by o_lampe 24 Jan 2023, 08:10

    @Thorpydo said in Increase maximum number of axii to 30?:

    What all would be required to drive multiple main boards from a SBC with RealTimeClock?
    This approach seams like it could be a good solution.

    That's actually a far fetch.
    We only discussed briefly if it would be possible to control several Duets from one SBC. Such a solution doesn't exist yet, but I remember vaguely that it should be possible.
    Now you want to control the Duets in sync which is another step forward.
    You'd have to send the gcode to all Duets and include a common start signal (hardware trigger or time signal)
    Each Duet has a code buffer "the planner" which sends a signal to the SBC when running empty (maybe there is even an object model variable?).
    That's the point where synchronization could take place.
    If the Duets drift apart, the slowest Duet will be the last to ask for new gcode.
    One way to sync it, would be to slightly increase the acceleration of the slowest. Since we are talking about fractions of milliseconds difference, this is the smoothest way IMHO.
    It's all grey theory, increasing the number of axes might be easier?

    1 Reply Last reply Reply Quote 0
    • undefined
      Thorpydo
      last edited by 25 Jan 2023, 15:28

      Okay, I see.

      Perhaps then, we can determine a strategy and all sections of code that would be need to be modified to increase the maximum number of axes past 30.

      For reference, the same topic has been discussed previously in these threads:
      https://forum.duet3d.com/topic/16023/maximum-number-of-axis
      https://forum.duet3d.com/topic/26493/axis-limitations

      In reviewing the previous discussions, lowercase letters were added to give additional axes. Since the software is not able to differentiate between upper and lower case, a single parenthesis is used to signify lower case, '.

      In the same discussion, DC42 suggests that Q could be used in the same way as '.
      "because currently letter Q isn't used in any commands that accept axis letters."

      So, perhaps a simple approach could be to use both ' and Q, instead of just '.
      This approach would yield 32 unique drive letters:
      X,Y,Z,U,V,W,A,B,C,D
      abcdefghijkl ('A, 'B, 'C, 'D, 'E, 'F, 'G, 'H, 'I, 'J, 'K, 'L)
      QX, QY, QZ, QU, QV, QW, QA, QB, QC, QD

      Can we simply replicate the same code that is used for ' to also work with Q?
      Are there any potential 'gotchas' or problems with the suggested solution?

      undefined 2 Replies Last reply 25 Jan 2023, 15:59 Reply Quote 0
      • undefined
        dc42 administrators @Thorpydo
        last edited by 25 Jan 2023, 15:59

        @Thorpydo using Q as a prefix character would break modularity somewhat, by making the interpretation of letter Q context sensitive.

        What I may do instead is to add an M-code to turn case sensitivity of GCode commands on/off so that lowercase axis letters can be used without the leading quote character.

        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 27 Jan 2023, 22:06 Reply Quote 0
        • undefined
          dc42 administrators @Thorpydo
          last edited by dc42 26 Jan 2023, 14:58

          @Thorpydo I have experimentally increased the maximum number of axes to 32 30 in 3.5beta2 for the MB6HC and MB6XD. Lowercase letters a thru z can be used as axis names. The maximum axes plus extruders is also 32.

          On other boards the limitation of 15 axes and lowercase letters a-d only remains.

          This change is experimental because it has a significant effect on memory usage and it may also impact performance.

          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 26 Jan 2023, 15:50 Reply Quote 2
          • undefined
            T3P3Tony administrators @dc42
            last edited by 26 Jan 2023, 15:50

            @dc42 is there a gcode to allow the use of the lower case characters or is it still prefacing with the single quote?

            www.duet3d.com

            undefined 1 Reply Last reply 26 Jan 2023, 18:47 Reply Quote 0
            • undefined
              dc42 administrators @T3P3Tony
              last edited by 26 Jan 2023, 18:47

              @T3P3Tony it's still prefixing with single quote for now.

              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
                Thorpydo @dc42
                last edited by 27 Jan 2023, 22:06

                @dc42
                That's wonderful to hear David!
                I really appreciate your support in accommodating this feature so promptly.
                I understand the change is still experimental and performance might be impacted.

                I still have some work to do with the slicer and hardware, but will report back when I have some meaningful results and can comment on any performance impact.

                Thank you! You guys rock!

                undefined 1 Reply Last reply 28 Jan 2023, 08:53 Reply Quote 0
                • undefined
                  o_lampe @Thorpydo
                  last edited by 28 Jan 2023, 08:53

                  @Thorpydo said in Increase maximum number of axii to 30?:

                  will report back when I have some meaningful results

                  Video, or it didn't happen 😉
                  We want to see this beast running. I have no idea what 29 axes will do simultaneously...

                  undefined 1 Reply Last reply 31 Jan 2023, 21:37 Reply Quote 1
                  • undefined
                    Thorpydo @o_lampe
                    last edited by 31 Jan 2023, 21:37

                    @o_lampe Hah! You and me both!

                    @dc42 I'd like to make sure I understand the appropriate letters to be used.
                    My understanding is not adding up:
                    all lower case letters are available; 26 letters.
                    X,Y,Z,U,V,W,A,B,C,D uppercase letters are available; 10 letters.
                    It seems this nomenclature allows for 36 letters which doesn't jive with your comments of 30/32.

                    I would like to use:
                    For extruders:
                    A,B,C,D
                    For motion:
                    X,Y,Z,U,V,W,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,t

                    Will this letter assignment be acceptable?

                    undefined 1 Reply Last reply 1 Feb 2023, 08:02 Reply Quote 0
                    • undefined
                      o_lampe @Thorpydo
                      last edited by o_lampe 2 Jan 2023, 08:05 1 Feb 2023, 08:02

                      @Thorpydo You don't have to assign multiple letters to extruders. They are just E0, E1, E2 a.s.o.
                      The letter "E" is the only drive letter, that allows different config values for steps/mm, motor current, acceleration a.s.o.

                      Regarding the max axes number of 32: my best guess is that it's related to the bus width of the PWM registers or such.
                      Using more than 32 would mean twice the workload and memory-use I guess.

                      undefined 1 Reply Last reply 1 Feb 2023, 23:26 Reply Quote 0
                      • undefined
                        Thorpydo @o_lampe
                        last edited by 1 Feb 2023, 23:26

                        @o_lampe Ahh, gotcha. Okay.

                        My modified understanding:

                        For extruders:
                        E1, E2, E3, E4
                        For motion:
                        X,Y,Z,U,V,W,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,t
                        (motion could use other lower case letters or A,B,C,D, but total number of axes cannot exceed 32 30 based on some internal limit)

                        Thanks for clarifying!

                        undefined 1 Reply Last reply 2 Feb 2023, 08:51 Reply Quote 1
                        • undefined
                          o_lampe @Thorpydo
                          last edited by 2 Feb 2023, 08:51

                          @Thorpydo said in Increase maximum number of axii to 30?:

                          E1, E2, E3, E4

                          The internal extruder count starts with E0. Most slicers do the same.
                          @dc42 When a tool has more than one extruder, the only way of controlling them is via mixing ratio, right now?
                          Is there any change planned?
                          New nomenclatur could be

                          G1 Xn Yn E0.3:0.0:-0.5:0.8    ; first extruder moves 0.3mm second does nothing, third retracts 0.5mm a.s.o
                          
                          undefined 1 Reply Last reply 2 Feb 2023, 09:43 Reply Quote 0
                          • undefined
                            deckingman @o_lampe
                            last edited by 2 Feb 2023, 09:43

                            @o_lampe said in Increase maximum number of axii to 30?:

                            ............... @dc42 When a tool has more than one extruder, the only way of controlling them is via mixing ratio, right now?
                            Is there any change planned?
                            New nomenclatur could be

                            G1 Xn Yn E0.3:0.0:-0.5:0.8    ; first extruder moves 0.3mm second does nothing, third retracts 0.5mm a.s.o
                            

                            I'd need to check but I'm 99% sure that the mixing ratio will only be applied if a G1 move contains a single En command. So I'm almost certain that your example of moving multiple extruders does already work.

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

                            undefined 1 Reply Last reply 2 Feb 2023, 09:50 Reply Quote 1
                            • undefined
                              o_lampe @deckingman
                              last edited by o_lampe 2 Feb 2023, 09:51 2 Feb 2023, 09:50

                              @deckingman That would be cool, but I never stumbled across an FDM-printer with more than one nozzle per tool.
                              Maybe a burger-bot? To apply ketchup, mostard and special sauce in one move?

                              undefined 1 Reply Last reply 2 Feb 2023, 17:14 Reply Quote 0
                              • undefined
                                deckingman @o_lampe
                                last edited by deckingman 2 Feb 2023, 17:15 2 Feb 2023, 17:14

                                @o_lampe said in Increase maximum number of axii to 30?:

                                @deckingman That would be cool, but I never stumbled across an FDM-printer with more than one nozzle per tool.
                                Maybe a burger-bot? To apply ketchup, mostard and special sauce in one move?

                                Not sure I understand. I thought we were talking about tools with multiple extruders but a single nozzle. With such a set up (i.e. multiple inputs but a single output), then a G1 En command will move each extruder by whatever the mixing ratio is set to in order to extrude "n" mm of filament in total. However if the G1 command is in the format En1:En2:En3 then each extruder will move by those n1, n2 and n3 values. (At least I'm 99% sure it does).

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

                                undefined undefined 2 Replies Last reply 2 Feb 2023, 21:33 Reply Quote 1
                                • undefined
                                  Thorpydo @deckingman
                                  last edited by 2 Feb 2023, 21:33

                                  @lampe
                                  Okay, thanks, I now understand nomenclature should be E0,E1,E2,E3.

                                  What is the definition for a tool, as defined by the firmware?
                                  Is the tool considered the XYZ motion system or is the tool considered something that can be attached or interchanged to the motion system?

                                  @deckingman
                                  It's great to hear that there shouldn't be further issues here; that moving multiple extruders already does work.

                                  For this application, I don't want any mixing ratio applied.
                                  I believe I want 4 tools, each with its own nozzle.

                                  "... if the G1 command is in the format En1:En2:En3 then each extruder will move by those n1, n2 and n3 values ..."
                                  Great, this is the desired output.
                                  As I understand, Gcode output should be G1 Xn Yn En0:En1:En2:En3

                                  undefined 1 Reply Last reply 3 Feb 2023, 08:46 Reply Quote 0
                                  • undefined
                                    o_lampe @Thorpydo
                                    last edited by 3 Feb 2023, 08:46

                                    @Thorpydo If you want to have all extruders work at the same time, you have to define one tool with 4 heaters, 4 drivers for extruders, all axis' drivers, all hotend- and partcooling-fans.
                                    But there is of course no slicer right now able to control all the axes at once. You'd have to write your own script for that.

                                    undefined 1 Reply Last reply 3 Feb 2023, 15:52 Reply Quote 0
                                    • undefined
                                      o_lampe @deckingman
                                      last edited by 3 Feb 2023, 08:53

                                      @deckingman said in Increase maximum number of axii to 30?:

                                      I thought we were talking about tools with multiple extruders but a single nozzle.

                                      Until now, we don't know what the thread starter is planning to do. But I doubt, he needs a motion system with 25? axes to move only one nozzle?

                                      1 Reply Last reply Reply Quote 0
                                      • undefined
                                        Thorpydo @o_lampe
                                        last edited by Thorpydo 2 Mar 2023, 15:57 3 Feb 2023, 15:52

                                        @o_lampe
                                        I might not have made it clear before:
                                        All motion systems and all extruders moving at the same time. Multiple extruders, moving independently, extruding at the same time. Four heaters, four extruders, four filaments being driven, etc. (all at the same time)
                                        I understand there is currently no slicer available to be able to control what I am asking.
                                        Writing the slicer is part of my scope of work. I am writing the slicer and that's why I need to understand explicitly the proper way to communicate with RRF and command with Gcode, all four extruders, and all motion axes, simultaneously.

                                        It's still not clear to me if format should be:
                                        G1 Xn Yn En0:En1:En2:En3
                                        Or:
                                        G1 Xn Yn En0:n1:n2:n3
                                        (where n0, n1, n2, n3 represent feeding material in mm/s)

                                        Based on your input, it sounds like the later?
                                        G1 Xn Yn En0:n1:n2:n3

                                        undefined 1 Reply Last reply 3 Feb 2023, 16:27 Reply Quote 0
                                        • undefined
                                          droftarts administrators @Thorpydo
                                          last edited by 3 Feb 2023, 16:27

                                          @Thorpydo See https://docs.duet3d.com/en/User_manual/Reference/Gcodes#examples
                                          Example there is:

                                          G1 E10:10:5:0:0 F300 ; with a tool that has 5 extruder drives, extrude 10mm on drive 0, 10mm on drive 1, 5mm on drive 2 and 0mm on drive 3 and 4.
                                          

                                          Ian

                                          Bed-slinger - Mini5+ WiFi/1LC | RRP Fisher v1 - D2 WiFi | Polargraph - D2 WiFi | TronXY X5S - 6HC/Roto | CNC router - 6HC | Tractus3D T1250 - D2 Eth

                                          undefined 1 Reply Last reply 3 Feb 2023, 19:29 Reply Quote 0
                                          18 out of 36
                                          • First post
                                            18/36
                                            Last post
                                          Unless otherwise noted, all forum content is licensed under CC-BY-SA