Duet Maestro & 12864 LCD button display glitches



  • Since the menu system in the reprap firmware is highly configurable, I tried to take advantage of it to design something for my Duet Maestro that goes beyond a standard Marlin "linear" menu structure to perform quickly some basic operations on the printer.

    The board is a Duet Maestro with firmware 2.02RC3 (stock firmware)

    The menu files can be dowloaded here :
    lhttps://www.dropbox.com/s/vf29z27rrmx2fmy/menu.zip?dl=0

    The menus use several buttons on one line. The menu works fine however I have several display glitches :
    *Buttons appear and disappear when you move from one to the other (see the video below)
    *When the printer change its "status" (printing/not printing/paused) the menu may not display the buttons that correspond to that status (through the button V argument)
    *The last eight pixels of the horizontal line (which is an image) seems not being displayed (minor issue)

    The video in this tweet illustrate this :
    https://twitter.com/Greg191134/status/1060312518659358720t


  • administrators

    Thanks, I will look into this later today.



  • it happens for me too when my 12864 is initalised (which happens 1 out of 20 times after boot)

    text R0 C0 F0 T"Menu 1 "
    button T"Back" A"return"
    text F0 T" "
    button T"Next" A"menu" L"menu2"
    button R10 C0 T"Select file to print" A"menu" L"listFiles"
    button R20 C0 T"Preheat" A"menu" L"preheat"


  • administrators

    @veti said in Duet Maestro & 12864 LCD button display glitches:

    it happens for me too when my 12864 is initalised (which happens 1 out of 20 times after boot)

    What is "it" ?



  • when you cycle around the buttons the next button disappears sometimes.


  • administrators

    @greg3d said in Duet Maestro & 12864 LCD button display glitches:

    *Buttons appear and disappear when you move from one to the other (see the video below)

    Fixed in my latest build.

    *When the printer change its "status" (printing/not printing/paused) the menu may not display the buttons that correspond to that status (through the button V argument)

    Believed fixed, subject to testing. Was there a particular sequence of operations that wasn't working?

    *The last eight pixels of the horizontal line (which is an image) seems not being displayed (minor issue)

    Fixed in my latest build.

    The fixes will be in 2.02RC4 which is now postponed until at least Monday. Other changes I have made are that all types of menu item can now have conditional visibility (V parameter), and text and button items can have explicit widths (W parameter).



  • @dc42 This sounds great David, thanks a lot for looking at the issue so quickly. I believe issue 1 (button appear/disappear) and 2 (visibility vs printer status) are linked. I will anyway let you know if the issue is still there.

    May you also evaluate increasing the size of the buffer for the menu if this has no negative impact on other things? With the current buffer size, a menu like the "grid" in my menu to move axis will create a buffer overflow if I put 6 buttons for all the 3 axis.

    In any case the current system is already very powerful and your latest additions described in your post will make it even better


  • administrators

    I've increased the size of the buffer. Also i corrected a bug whereby "menu" in the command was being replaced by the filename, when it should have been "#0" that was replaced. I've changed your "move" menu to the following:

    button R0 C0 F0 T" BACK " A"return"
    button C32 T" HOME " A"G28"
    ;button C64 T" PRINT " A"listFiles"
    ;button C96 T" TUNE " A"tune"
    image R11 C0 L"hline.img"
    text R14 C1 F0 T"X"
    button C11 T"-50 " A"M120 G91 G1 X-50 F6000 M121"
    button C32 T"-10 " A"M120 G91 G1 X-10 F6000 M121"
    button C50 T" -1 " A"M120 G91 G1 X-1 F6000 M121"
    button C69 T"+1 " A"M120 G91 G1 X1 F6000 M121"
    button C87 T"+10 " A"M120 G91 G1 X10 F6000 M121"
    button C108 T"+50 " A"M120 G91 G1 X50 F6000 M121"
    text R26 C1 F0 T"Y"
    button C11 T"-50 " A"M98 P#0" L"/menu/Ym50.g"
    button C32 T"-10 " A"M98 P#0" L"/menu/Ym10.g"
    button C50 T" -1 " A"M98 P#0" L"/menu/Ym1.g"
    button C69 T"+1 " A"M98 P#0" L"/menu/Yp1.g"
    button C87 T"+10 " A"M98 P#0" L"/menu/Yp10.g"
    button C108 T"+50 " A"M98 P#0" L"/menu/Yp50.g"
    text R38 C1 F0 T"Z"
    button C11 T"-50 " A"M98 P#0" L"/menu/Zm50.g"
    button C32 T"-10 " A"M98 P#0" L"/menu/Zm10.g"
    button C50 T" -1 " A"M98 P#0" L"/menu/Zm1.g"
    button C69 T"+1 " A"M98 P#0" L"/menu/Zp1.g"
    button C87 T"+10 " A"M98 P#0" L"/menu/Zp10.g"
    button C108 T"+50" A"M98 P#0" L"/menu/Zp50.g"
    image R51 C0 L"hline.img"
    text R52 C5 F1 T"X "
    value N510 W25
    text T" Y "
    value N511 W25
    text T" Z "
    value N512 D2 W30
    

    For the X movement commands I've put all the commands in the command string, to save the need for a macro file. You could do the same for Y and Z.

    Do you think the buttons would look better if the firmware centred the text in them automatically when a width has been specified?



  • @dc42 That's right, I forgot to mention about the #0 /menu issue, thanks for noticing that too! Thanks also for increasing buffer size, this will give even more freedom in menu creation.

    Regarding menu button text alignment when a width is specified, both centered and right aligned would make sense for me. Centered would be perfect for text buttons (ex: buttons in top menu bar), right align for array of numbers (ex: temperatures, movements)

    To avoid the addition of a new option, right aligned could be triggered by a negative width while centered is the default.

    If just one option can be reasonably implemented, centered would have my preference. Personal opinion only for sure, others may have different views


 

Looks like your connection to Duet3D was lost, please wait while we try to reconnect.