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

    Any possibility to implement keep out area on Duet 2?

    Scheduled Pinned Locked Moved
    Firmware wishlist
    5
    18
    893
    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.
    • GeneRisiundefined
      GeneRisi
      last edited by GeneRisi

      With my e3d toolchanger, i would love to have keep out area implemented. I can’t justify upgrading the Duet boards when they work so well!

      Would removing one of the kinematic routines make the needed space available? I am willing to learn how to build a one-off firmware if that is the only solution.

      o_lampeundefined dc42undefined engikeneerundefined 4 Replies Last reply Reply Quote 0
      • Phaedruxundefined Phaedrux moved this topic from General Discussion
      • o_lampeundefined
        o_lampe @GeneRisi
        last edited by

        @GeneRisi I was wondering, if the Duet dev team could change the way kinematic models are implemented?
        Wouldn't it be nice to have a kinematics-folder on SD-card and load the required kinematic model at startup?

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

          @GeneRisi I've already removed several of the kinematic modules from the Duet 2 build. I don't think I can remove any more without impacting on Duet 2 users that we know are using the remaining kinematics. I'll review the amount of free flash memory available on Duet2 when the new input shaping code is finished.

          @o_lampe implementing dynamically-loadable modules is tricky, especially with modules that make calls to other parts of the main firmware. Loading them from the SD card at startup would require enough free RAM to hold them, which we don't have on Duet 2.

          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

          o_lampeundefined 1 Reply Last reply Reply Quote 0
          • o_lampeundefined
            o_lampe @dc42
            last edited by o_lampe

            @dc42 I thought of flashing the required module to ROM during the first startup? ( like it does during an FW-update)
            On later startups the FW would only check if the kinematic model has changed (which is rarely the case)

            Another option might be a SPI flash ROM extension board connected to the PanelDue port?
            But that would require extra work for the FW department and users could no longer use Panel Due.

            oliofundefined 1 Reply Last reply Reply Quote 0
            • oliofundefined
              oliof @o_lampe
              last edited by

              @o_lampe SPI Flash sounds iffy enough to keep working and debug that it's probably worth upgrading to Duet3 at that point.

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

              o_lampeundefined 1 Reply Last reply Reply Quote 1
              • o_lampeundefined
                o_lampe @oliof
                last edited by

                @oliof ESP32 and RP2040 modules have external (SPI?) flash. So I thought, it might not be too strange to mention.

                oliofundefined 1 Reply Last reply Reply Quote 0
                • oliofundefined
                  oliof @o_lampe
                  last edited by

                  @o_lampe yeah, but those are built for that. Adding this to a board that was released eight years ago is a different endeavor (and the SPI flash handling part will need it's own firmware space, development, debugging, maintenance, support ...).

                  I would rather the Duet team focusses on improving existing firmware and developing new features and hardware.

                  <>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 2
                  • engikeneerundefined
                    engikeneer @GeneRisi
                    last edited by

                    @GeneRisi said in Any possibility to implement keep out area on Duet 2?:

                    With my e3d toolchanger, i would love to have keep out area implemented. I can’t justify upgrading the Duet boards when they work so well!

                    Going back to your original question, the way I achieve this is that I change the machine limits in each of the toolchange macros, wipe macros etc. Takes a bit of setting up to make sure you set the limits up for all cases and switch between them properly, but seems to work okay. I have macros that I use to set the limits which I call from the toolchange macros etc so I can easily find and update the limits as necessary.

                    Its generally only suitable for defining a rectangular go-area, rather than specific no-go areas

                    E3D TC with D3Mini and Toolboards.
                    Home-built CoreXY, Duet Wifi, Chimera direct drive, 2x BMG, 300x300x300 build volume
                    i3 clone with a bunch of mods

                    1 Reply Last reply Reply Quote 2
                    • dc42undefined
                      dc42 administrators @GeneRisi
                      last edited by

                      @GeneRisi you could build the firmware yourself. In file src/Config/Pins_DuetNG.h you would enable SUPPORT_KEEPOUT_ZONES and disable one of the remaining kinematics classes to make space.

                      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

                      GeneRisiundefined 1 Reply Last reply Reply Quote 0
                      • GeneRisiundefined
                        GeneRisi @dc42
                        last edited by

                        @dc42 OK, that sounds interesting!

                        GeneRisiundefined 1 Reply Last reply Reply Quote 0
                        • GeneRisiundefined
                          GeneRisi @GeneRisi
                          last edited by

                          @dc42 I am trying to build the libraries but when I click on the hammer, it immediately jumps to

                          Configuring in: /Users/gene/Dev/RepRapFirmware/v3.5.1/FreeRTOS/src/build/default
                          cmake -G Unix Makefiles -DCMAKE_EXPORT_COMPILE_COMMANDS=ON /Users/gene/Dev/RepRapFirmware/v3.5.1/FreeRTOS/src
                          CMake Warning (dev) in CMakeLists.txt:
                            No project() command is present.  The top-level CMakeLists.txt file must
                            contain a literal, direct call to the project() command.  Add a line of
                            code such as
                          
                              project(ProjectName)
                          

                          I am not familiar with Eclipse. How do I build the libraries? Building CANlib woud be a great example for me. Thanks!
                          Gene

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

                            @GeneRisi I don't know why it it using cmake unless you have configured it that way. Eclipse uses a normal make program, not cmake.

                            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

                            GeneRisiundefined 1 Reply Last reply Reply Quote 0
                            • GeneRisiundefined
                              GeneRisi @dc42
                              last edited by GeneRisi

                              @dc42 I found the right invocation to build the individual projects. I needed to add the include path for MessageFormats.h to the RepRapFirmware project and when I did it built without errors. (on a MBP, M3) until it got to the last step

                              I found that instructions on building should also include instructions to install .NET SDK 6.x (x64 version only)

                              With my newfound success, I have a couple of questions:

                              1. How can I tell whether or not the binary will fit the constraints of the Duet 2 system?

                              2. Could MQTT also possibly fit in a custom DUET 2 build with only the basic kinematics included?

                              Thanks for making this possible!

                              Gene

                              GeneRisiundefined 1 Reply Last reply Reply Quote 0
                              • GeneRisiundefined
                                GeneRisi @o_lampe
                                last edited by GeneRisi

                                @o_lampe I think that's an interesting idea and would be useful, in my opinion, if the freed up space could be used for other features. For example, I am interested in the KEEP_OUT area function and MQTT on my Duet 2. Since my printer only uses one kinematic type, the others provide no additional benefit and the code space is wasted.

                                Does FreeRTOS support dynamic loading without alot of overhead?

                                Another approach would be to host firmware builds on a remote machine along with a mechanism to pick and choose from a set of features and have an automated build create the binary.

                                Gene

                                1 Reply Last reply Reply Quote 0
                                • GeneRisiundefined
                                  GeneRisi @GeneRisi
                                  last edited by

                                  @dc42 A configuration with most of the kinematic types not included and support for the 12864 LCD not included give a .bin file size of 491,676 bytes. How do I know if there is enough SRAM available for the MQTT stack?

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

                                    @GeneRisi said in Any possibility to implement keep out area on Duet 2?:

                                    @dc42 A configuration with most of the kinematic types not included and support for the 12864 LCD not included give a .bin file size of 491,676 bytes. How do I know if there is enough SRAM available for the MQTT stack?

                                    By enabling MQTT support and seeing how large the binary is. Also you will get an error from the linker if the flash memory size is exceeded.

                                    You could free up more flash space by disabling the code for whichever of Ethernet and WiFi your board doesn't have.

                                    However, both MQTT and keepout zone support require additional RAM as well as flash memory.

                                    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

                                    GeneRisiundefined 1 Reply Last reply Reply Quote 0
                                    • GeneRisiundefined
                                      GeneRisi @dc42
                                      last edited by

                                      @dc42 Will the linker tell me if I have exceeded the RAM memory available or is the allocation dynamic and I need to run the firmware to find out?

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

                                        @GeneRisi some of the RAM is allocated dynamically depending on your configuration; so the linker can't tell you that.

                                        When the machine has run for a while, M122 will tell you how much RAM is unused.

                                        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