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

    PanelDue Firmware 3.5.0-rc3 released

    Scheduled Pinned Locked Moved
    PanelDue
    6
    21
    758
    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.
    • Aitorundefined
      Aitor @mfs12
      last edited by

      Good morning @mfs12

      I'm not sure if this should be posted in a separate thread, so please let me know for future reference.

      I've been analyzing the new M291 commands with the PanelDue5i. In the case of S7, it doesn't work properly unless quotes "" are added. For example, "name" is valid, but if written without quotes, it will be blocked.

      This is the code I used:

      M291 S7 R"S7" P"Solicitar un valor de cadena. L es el número mínimo de caracteres (predeterminado 1), H es el número máximo de caracteres (L2 H50)" L2 H50 F"Nombre"
      M400
      M291 S2 R"Respuesta input" P{input}
      M400
      

      Best regards, Aitor

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

        @Aitor the general rule is that string parameters in GCode commands must always be enclosed in quotes, except for some older commands that take just a string parameter without a parameter letter, such as M32.

        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

        Aitorundefined 1 Reply Last reply Reply Quote 0
        • Aitorundefined
          Aitor @dc42
          last edited by

          Good morning @dc42,

          I understand what you're saying. That's why I tried adding quotes before writing, but I noticed that in the case of Duet Web Control it wasn't necessary, as I understand that it adds them automatically. I think it would be very helpful and make it easier to use if PanelDue worked the same way, adding quotes internally.

          Best regards, Aitor

          mfs12undefined dc42undefined 2 Replies Last reply Reply Quote 0
          • mfs12undefined
            mfs12 @Aitor
            last edited by

            @Aitor please refer to the gcode dictionary. This is the specification. This is paneldue's truth.

            Visit me on github at https://github.com/mfs12/

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

              @Aitor can you give an example of a M291 command that you can send from DWC without using double quotes around one or more of the parameters?

              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
              • Aitorundefined
                Aitor @mfs12
                last edited by Aitor

                Sorry, @mfs12. I haven't found any information about it in the Gcode dictionary (M291) section.

                In my initial tests, I used the web interface and then tried to perform the same tests on PanelDue. However, I found that it didn't work because I wasn't using quotation marks to enter the text. Then, when I used them, the M291 command started working correctly.

                My suggestion is that, in the case of requesting M291 S7, PanelDue automatically adds the necessary quotation marks to enter the text. In my opinion, this would improve its usability and be more intuitive for users. What do you think?

                @dc42, maybe I'm not explaining myself well or not understanding correctly. I'm attaching a series of images where it shows that when running the code below, in DWC I can send text without using quotation marks.

                Captura1.JPG
                Captura2.JPG

                M291 S7 R"S7" P"Solicitar un valor de cadena. L es el número mínimo de caracteres (predeterminado 1), H es el número máximo de caracteres (L2 H50)" L2 H50
                M400
                M291 S2 R"Respuesta input" P{input}
                M400
                

                However, if I use the same code in PanelDue, it doesn't work correctly if I don't use the quotation marks (In order for it to work, I have to write "hello" in Panel Due, unlike DWC which allows me to not use quotes and write hello, for the code to execute correctly.). Could you clarify if this is an expected behavior or if there is any problem with my configuration? I would appreciate any help you can provide.

                1 Reply Last reply Reply Quote 0
                • mikeabuilderundefined
                  mikeabuilder
                  last edited by mikeabuilder

                  I agree with @Aitor, there is discrepant behavior with M291 S7. @dc42 - the issue Aitor is describing is not with an M291 parameter, but with the user input. When entering a text string on PanelDue, the first and last characters entered must be a quotation mark. These are then stripped and the value of input is the string minus the quotation marks. This make the maximum user input string only 8 characters on PanelDue. However, if the "string" consists of numerals, the quote characters are not needed.

                  @mfs12, I've found these additional small issues with M291 S7.

                  • If the user enters a string that exceeds the max allowed length, they get a message telling them this and allowing them to re-enter the string (and no "OK" button is shown) - all GOOD. If they then enter a string of the proper length, the "OK" button is shown (and works) but the length error message is still displayed.

                  • I think the S7 handler is not resetting the max string length properly. If I create an M291 S7 without the H (max length) parameter, it defaults not to 10, but to the value last used. If my first M291 S7 has an H=3 and my second has no H parameter, the second uses H=3. If the first M291 command after a power-on has no H parameter, the max defaults to 0 and I get into a deadlock where any string I enter returns a length error message with "min length(0) < length < max length(0)". I must power cycle to recover.

                  Overall, I'm super-happy with the PanelDue support of M291 higher modes. I've got startup and filament load/unload macro sets built that help novice users through those workflows. Your continuing efforts are really appreciated.

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

                    @mikeabuilder said in PanelDue Firmware 3.5.0-rc3 released:

                    agree with @Aitor, there is discrepant behavior with M291 S7. @dc42 - the issue Aitor is describing is not with an M291 parameter, but with the user input. When entering a text string on PanelDue, the first and last characters entered must be a quotation mark.

                    Thanks for the clarification. It should not be necessary to use quotation marks when entering the response to a M291 prompt.

                    @mfs12, please correct this.

                    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
                    • OwenDundefined
                      OwenD
                      last edited by

                      In addition to the information given above regarding M291 on PD, there are a couple of other things I've noticed.
                      The first is that if an error occurs such as entering an incorrect data type or length on PanelDue, any popups on other connected devices (DWC) are not closed.
                      And the other more trivial thing is the error messages such as
                      warningText.printf("out of range %ld <= value <= %ld"
                      Should probably read
                      warningText.printf("out of range %ld >= value <= %ld"

                      mfs12undefined 1 Reply Last reply Reply Quote 0
                      • mfs12undefined
                        mfs12 @OwenD
                        last edited by

                        @OwenD not sure... i wanted to write

                        min limit is smaller or equal than value, value is smaller or equal than max value.

                        min <= value <= max...

                        Visit me on github at https://github.com/mfs12/

                        OwenDundefined 1 Reply Last reply Reply Quote 0
                        • OwenDundefined
                          OwenD @mfs12
                          last edited by

                          @mfs12 I see what you mean.
                          I was expecting a message something like.
                          warningText.printf("out of range: value must be >= %ld and <= %ld"
                          As I said, a trivial matter really.
                          Thanks for your efforts on the extended functionality 👍

                          mfs12undefined 1 Reply Last reply Reply Quote 1
                          • mfs12undefined
                            mfs12 @OwenD
                            last edited by

                            new release available

                            https://forum.duet3d.com/topic/32309/paneldue-firmware-3-5-0-rc4-released

                            Visit me on github at https://github.com/mfs12/

                            1 Reply Last reply Reply Quote 0
                            • mfs12undefined mfs12 locked this topic
                            • First post
                              Last post
                            Unless otherwise noted, all forum content is licensed under CC-BY-SA