PanelDue Firmware 3.5.0-rc3 released
-
@mfs12 I'm not sure myself, wouldn't be a bad thing to have one though? I bet it's more sausagefingers out there
😅
-
In my experience, the normal accidental "Print Again" happens after things have cooled a bit and the reheating of things gives me a clue that the fat finger struck again.
I find the same struggle when selecting macros from the big list. In my own macros (and I have a lot of them), I always have a blocking M291 at the beginning with something like "Did you really want to <fill in bad thing here>?" I learned this after accidentally setting off a macro that ran the printer in big, fast circles when I was only trying to clear the log file.
-
if you like such a confirmation feature, probably best to start a separate thread for that.
And probably something you would rather implement in RRF and not PD.
-
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
-
@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.
-
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
-
@Aitor please refer to the gcode dictionary. This is the specification. This is paneldue's truth.
-
@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?
-
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.
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.
-
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.
-
-
@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.
-
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"
-
@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...
-
@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 -
new release available
https://forum.duet3d.com/topic/32309/paneldue-firmware-3-5-0-rc4-released
-