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

    Proposal for flexible endstop configuration in RRF 2.03

    Scheduled Pinned Locked Moved
    Firmware wishlist
    7
    13
    1.4k
    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.
    • dc42undefined
      dc42 administrators
      last edited by dc42

      I have written a short document on how I plan to add support in RRF 2.03 for endstop input reassignment, multiple endstops on a single axis, and extruder endstops. It's at https://docs.google.com/document/d/1E7RLCyaxH9IflqbGQo9mC3M-KeY1I1aMh3PE07kcbgY/edit?usp=sharing. Please post any feedback on it in this thread.

      EDIT: document updated at 12:50

      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

      deckingmanundefined Catalin_ROundefined 2 Replies Last reply Reply Quote 0
      • resamundefined
        resam
        last edited by

        I hope this is not too far off-topic, but regarding backward-compatibility of G-/M-codes:
        Whats the plan for the future for config files? At some point there were discussions about moving to a human-readable key-value style configuration system.

        3 out of 6 listed objects would be immediately solved if the "one and only" configuration format for the future would be key-value style...

        But I suppose you plan a more gradual upgrade and want to keep both config systems in parallel use?

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

          We may or may not support key-value style configuration after we have finished implementing the object model. It may come only to Duet 3.

          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 @dc42
            last edited by

            @dc42 May I suggest that if and when this is implemented, a table is included in the Wiki for M574 with the physical end stop labels in the left hand column and the "P" value in the right hand column. Basically to make it easier to see that end stop labelled "E0" is referred to by P3, etc. I guess its a pity that the end stops (and drives) are physically labelled as they are on the boards but hindsight is always 20:20. ☺

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

            1 Reply Last reply Reply Quote 1
            • Catalin_ROundefined
              Catalin_RO @dc42
              last edited by

              @dc42 The suggested approach, while achievable with current firmware if we ignore the endstops remapping part, will clearly allow anyone to configure proper axis alignment with much simpler macros. Thus I'm totally for the improvement as there are quite a few questions on the forum on this matter.

              Still related, it is not unusual to have Z0 for the top of the axis in CNCs, with negative values when lowering the spindle. With the homing switch installed on top, would the firmware move the Z-axis up? When I tried this, about 9 months ago, the firmware tried homing away from 0, no matter what.

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

                @catalin_ro said in Proposal for flexible endstop configuration in RRF 2.03:

                @dc42 The suggested approach, while achievable with current firmware if we ignore the endstops remapping part, will clearly allow anyone to configure proper axis alignment with much simpler macros. Thus I'm totally for the improvement as there are quite a few questions on the forum on this matter.

                Still related, it is not unusual to have Z0 for the top of the axis in CNCs, with negative values when lowering the spindle. With the homing switch installed on top, would the firmware move the Z-axis up? When I tried this, about 9 months ago, the firmware tried homing away from 0, no matter what.

                Thanks for your feedback.

                If you are homing Z using an endstop switch, the direction of movement while Z homing is determined by the direction you put in your G1 S1 Z commands in homeall.g and homez.g. Positive Z will home to increasing Z value, which is up in your example. Remember to use G91 to select relative motion before the G1 S1 Z command, and to set the M208 upper and lower limits correctly.

                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
                • BPisLifeundefined
                  BPisLife
                  last edited by

                  I guess my only comment would be to make sure the endstop numbers match the motor controller numbers. It looks like you do, but I figured I would mention it.

                  Another thing for future duet boards (off topic) is to label the motor controllers in silkscreen not only what their default setting (as it is now, ie y motor, x motor) but by their motor number (MC 0, 1, 2, etc). It sometimes gets confusing when you aren’t wiring all the time (last time was months ago) and having to remember motor numbers aren’t in order of their position on the board.

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

                    The Duet 3 prototypes have the motor outputs numbered. The "endstop inputs" are 5-pin connectors supporting general purpose low-speed I/O and are likewise numbered. The heater and fan outputs are interchangeable (subject to rated current) so they are also numbered.

                    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
                    • gtj0undefined
                      gtj0
                      last edited by

                      I think you've got the bases covered. The only situation not explicitly mentioned (unless I missed it) was having both min and max endstops on an X/Y axis. For example, my M584 looks like this... M584 X0:3 Y1:4 Z5:6:7 E2 P3 Based on what I read I think my Z axis is covered with being able to use 3 independent Zmax endstops and having each motor stop when the endstop assigned to it is triggered (coarse bed leveling). For the X/Y axes, can I have both a min and a max?

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

                        @dc42 I still have the dynamic force gantry installed (but disabled) on my coreXYUV printer. It was largely a waste of time because the vibrations it cancels out don't actually have a negative effect on print quality. However, it does stabilise the printer and stops it rocking about when I print at higher speeds so (as it's there) I might as well use it. What was stopping me was that I never found a way to home this additional (coreXY) gantry. Will this new proposal allow me to do that?

                        Currently I split the axes, home X then home U then Y then V then re-combine the axes into X and Y. So what I would envisage would be carry out the above procedure but before combining axes map the third gantry motors to (say) XY and also map the third set of end stops. Then repeat XY homing (with those end stops and motors) and finally combine all 3 pairs of motors to XY. Would that work? Or would I use some other procedure?

                        The third gantry is completely independent of the other two - i.e there are no Bowden tubes coupling this gantry to the others unlike the XY UV gantries.

                        Hope that makes sense.

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

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

                          @deckingman, the new generalised Cartesian kinematics supported by my current internal build should already support homing your additional axes. You would configure them as W and A axes (or A and B) for the purposes of homing them independently of X and Y and use the first 2 endstop inputs on the DueX5.

                          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
                          • brunofportoundefined
                            brunofporto
                            last edited by

                            Maybe it is already possible, but I do not know how to... I would like to MEASURE my axis. I use sensorless homing. And set the size of the printing area. Would be possible to just measure the travel length of an axis using sensorless homing?

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

                              @brunofporto said in Proposal for flexible endstop configuration in RRF 2.03:

                              Maybe it is already possible, but I do not know how to... I would like to MEASURE my axis. I use sensorless homing. And set the size of the printing area. Would be possible to just measure the travel length of an axis using sensorless homing?

                              That's already possible, if you can get stall detection to work reliably at both ends of the axis (it's probably easier to get a hard stall when the motor is pulling the carriage towards it, so that the length of belt under tension at the point of stall is small). Home to one end using a G1 S1 move, then measure the position of the other end using a G1 S3 move.

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