1. Got a question or need help troubleshooting? Post to the troubleshooting forum or Search the forums!

Full Graphics LCD Controller - Display Enhancements

Discussion in 'Mods and Upgrades' started by Ziggy, Feb 2, 2015.

  1. Ziggy

    Ziggy Moderator
    Staff Member

    Joined:
    Feb 20, 2013
    Messages:
    707
    Likes Received:
    530
    The RepRap Full Graphics LCD Controller has information screen space for three extruders when the Robo generally uses only one. To make better use of the screen space, the layout has been redesigned and a few useful features added.

    The redesigned information screen layout shows the new features.

    LCD 01.jpg

    SD Card Inserted : Shows if an SD Card is recognised (icon displayed) or not (icon outline only)

    SD Card % Complete : When printing from SD Card shows the percentage of the total gcode file which has been printed. This percentage is calculated as (Bytes Read)/(Total Filesize in Bytes) and is used as a rough indicator of the remaining gcode required to complete the print. The progress bar below is displayed using the same calculation method.

    Endstop Status: For X, Y and Z displays whether the physical endstop is triggered (white background) or not (no background). This information is useful mainly during startup/maintenance.

    Filament used : Displays in centimeters the total filament used since the extruder was reset (G92). This filament used value is derived from the extruder position and is very accurate (including if the flow rate is changed). Note that the extruder must be in absolute mode (G90, M82) which is the default.

    Estimated Time to Finish : The estimated time to finish (ETF)is displayed (and sent to a host PC) after the print has been in progress for over 5 minutes. The ETF overwrites the LCD message line and sends the ETF to a host PC every few minutes. The ETF is based on the filament used during the print time elapsed so far and the total filament required to complete the print.


    More details and the updated firmware files are in the attachments.

    As always suggestions for improvements very welcome.


    EDIT : I have just realised there is an issue with some slicers inserting "G92 E0" resets into the gcode at various points. For example Cura inserts a G92 E0 when the E value is over 10,000. Apparently this is being done to avoid rounding errors in the gcode.

    I have deleted the downloads as I need to make some changes to take account of the resets.
     
    #1 Ziggy, Feb 2, 2015
    Last edited by a moderator: Feb 7, 2015
  2. Mike Kelly

    Mike Kelly Volunteer

    Joined:
    Mar 11, 2013
    Messages:
    6,967
    Likes Received:
    2,276
    You do great work man
     
    2 people like this.
  3. drandolph

    drandolph Member

    Joined:
    Aug 15, 2014
    Messages:
    35
    Likes Received:
    24
    I got the follow error when I went to compile.

    ultralcd.cpp:33: error: initializer-string for array of chars is too long

    on this line
    char lcd_status_message[LCD_WIDTH+1] = WELCOME_MSG;
     
  4. Ziggy

    Ziggy Moderator
    Staff Member

    Joined:
    Feb 20, 2013
    Messages:
    707
    Likes Received:
    530
    drandolph,

    This error is because the CUSTOM_MENDEL_NAME you have defined for your RoBo in configuration.h is too long for the LCD display.

    The maximum length is 13 characters when you are compiling Marlin in English. The reason is that " ready." is added to the end of the custom name and the total length of the custom name + ready. has to fit across the LCD width. For other languages, the max custom name length may be a little longer or shorter depending on how "ready" translates to the other language.

    // Define this to set a custom name for your generic Mendel,
    #define CUSTOM_MENDEL_NAME "xxxxxxxxxxxxx" //robo
     
  5. drandolph

    drandolph Member

    Joined:
    Aug 15, 2014
    Messages:
    35
    Likes Received:
    24
    Doh!, I should have know that. Thank you. Now my next problem is that when I start a print from the computer it prompts me on the screen to "Change Filament" and starts buzzing and I can't get past that point. Thoughts?
     
  6. Ziggy

    Ziggy Moderator
    Staff Member

    Joined:
    Feb 20, 2013
    Messages:
    707
    Likes Received:
    530
    Doh! I have included the mod for triggering a filament change if there is a high on Pin 44. This mod was to support an external filament monitor.

    I will go back and mod the zip file. In the meantime you can either connect pin D44 (Ramps AUX-2) to ground or comment out this code in Marlin_main.cpp

    if (digitalRead(44) == HIGH) { // check filament monitor alarm pin
    if (FC_Flag == false) { // not already triggered ?
    enquecommand_P(PSTR("M600")); // trigger a filament change
    FC_Flag = true; //
    }
    } else FC_Flag = false; // reset for next alarm
     
    #6 Ziggy, Feb 3, 2015
    Last edited by a moderator: Feb 3, 2015
  7. drandolph

    drandolph Member

    Joined:
    Aug 15, 2014
    Messages:
    35
    Likes Received:
    24
    Perfect! Now it's all working for me. Thank you!
    Now for my notes and thoughts after reading your possible upgrades. These are in no way a criticism of your work, just my thoughts. What you have here is way better than the default and I love it.

    1. I like having the end stop notifications. That can help with troubleshooting problems.
    2. I like the idea of total filament needed but I would hate to give up end stops for that.
    2B. In my dream world I'd love to see current position where it is but during a print it switches to filament/total filament/flow rate
    3. If you have a second extruder and you toggle between the two then I'd love to see a 1/2 inside the icon to identify when one you're looking at.
    4. There is a slightly annoying problem that's always been there where when you use auto level you have to see "endstops hit: Z" in the status at the bottom during the whole print.
    5. I would love to see the file being printed in the status bar at the bottom.
    6. I would enjoy it if it beeped or played a little tune when it finished printing.
    7. It only shows status percentage if you print from SD. If there was anyway to do this while computer controlled that would be amazing but from I understand there is no way to do this unless you do some sort of gcode function for that. I'm thinking of when I use octoprint.
    8. I noticed that after a print finishes the clock still counts up but the percentage does reset to zero.
     
  8. Ziggy

    Ziggy Moderator
    Staff Member

    Joined:
    Feb 20, 2013
    Messages:
    707
    Likes Received:
    530
    The end stop notifications show what each Arduino end stop digital pin sees ie it is a hardware indicator which is what is needed when troubleshooting.

    The Z position is useful as an indicator of the layer being printed. But I agree the X and Y are not very useful and could be replaced during a print.

    This is what I had in mind when I mentioned cycling between extruder status displays as a future enhancement. This is very easy to do and can be extended to up to the number of extruders defined in configuration.h.

    This is a Marlin design "feature". The Time to Finish will overwrite this message or you can use an M117 in your start up gcode

    At one stage I considered cycling through a number of status message types on the bottom line of the LCD. Very easy to do - but I just put the idea aside while I got the time to finish function working to an acceptable level of accuracy.


    There is a gcode to do exactly that M300 - put it in your end gcode. Some 3D users have actually written gcode "music".

    This can't be done as the firmware does not know the total size of the file when printing from PC. The firmware would have to be told the file size using a gcode as I have done for the total filament.

    Another Marlin design "feature". It is actually quite difficult in Marlin to know when a print starts or finishes. You have to kinda infer the start or finish from other information - but it is still not always clear whether there is a print in progress or not.
     
  9. drandolph

    drandolph Member

    Joined:
    Aug 15, 2014
    Messages:
    35
    Likes Received:
    24
    Wow, I wasn't expecting that thorough of a response to my suggestions. Thank you for that and thanks for M300 and M112. It's way better than before.
     
  10. Ziggy

    Ziggy Moderator
    Staff Member

    Joined:
    Feb 20, 2013
    Messages:
    707
    Likes Received:
    530
    I have just realised there is an issue with some slicers inserting "G92 E0" resets into the gcode at various points. For example Cura inserts a G92 E0 when the E value is over 10,000. Apparently this is being done to avoid rounding errors in the gcode. However this makes it more difficult to keep track of the total amount of filament used.

    I have deleted the LCD display modification downloads as I need to make some changes to take account of the resets.
     
  11. Robb

    Robb Member

    Joined:
    May 14, 2014
    Messages:
    80
    Likes Received:
    7
    Ziggy,
    Do you have this file working yet? Would love to use some of your mods!!! They look great!!!
     
  12. AJinFLA

    AJinFLA New Member

    Joined:
    Feb 17, 2015
    Messages:
    28
    Likes Received:
    9
    Hey Zig. Just wanted to give you some public kodos on all your help lately. Without you and mark I would have had a robo yard sale by now. Your the best mate, thanks from all us noobs. AJ
     
  13. SmokinPuppy

    SmokinPuppy New Member

    Joined:
    Apr 22, 2015
    Messages:
    1
    Likes Received:
    0
    Hey @Ziggy,

    Great work! Where can I find these mod files? Or snippets?
     
    #13 SmokinPuppy, Apr 22, 2015
    Last edited: Apr 22, 2015
  14. karlos carbajo

    karlos carbajo New Member

    Joined:
    May 14, 2015
    Messages:
    1
    Likes Received:
    0
    hello
    great work, it´s just what i´m looking for over and over the web
    where can i download the files, please
    thanks
     
  15. Jacobvs

    Jacobvs New Member

    Joined:
    May 3, 2015
    Messages:
    14
    Likes Received:
    5
    @Ziggy
    It would be great if you could make a guide to changing our own software, that way people can add these features, without changing their own software (such as esteps, PID values, etc..). A guide would also help people learn how to edit their code, and maybe teach them enough code that they can write some improvements themselves :)
    I know it might be a bit more work, but making a guide, instead of just uploading your own files would be more helpful in the long run.
    Thanks,
    Jacob
     
  16. WheresWaldo

    WheresWaldo Volunteer ( ͠° ͟ʖ ͡°)
    Staff Member

    Joined:
    Feb 18, 2015
    Messages:
    5,905
    Likes Received:
    3,593
    Should be getting my printer today and won't have a graphics screen for a couple of weeks (budgetary concerns). But I noticed the dogm_lcd_implementation.h in Marlin 1.0.2 has a lot of changes that @Ziggy was trying to implement, including display of the correct number of extruders based on Configuration.h. I took the current Robo firmware from here and replaced the dogm files (all three but likely only needed the implementation file), then recompiled. No errors but I can't test. Has anyone else played with this?
     
  17. KTMDirtFace

    KTMDirtFace Well-Known Member

    Joined:
    May 18, 2015
    Messages:
    1,247
    Likes Received:
    461
    I don't think I have this exact screen I have this one http://www.amazon.com/gp/product/B00EYS5ELE/ref=oh_aui_detailpage_o05_s01?ie=UTF8&psc=1

    But ever seen this happen? it started doing it part way through 2 of my prints.. i let it go and it finished printing fine. then I unplugged it and replugged and havn't seen it since.

    EDIT: Again I probably posted this in the wrong section? sorry. also its doing it more frequently now..then the screen shuts off...print still goes fine but i can't stop it or do anything when it happens.

    [​IMG]
     
    #17 KTMDirtFace, May 23, 2015
    Last edited: May 23, 2015
  18. WheresWaldo

    WheresWaldo Volunteer ( ͠° ͟ʖ ͡°)
    Staff Member

    Joined:
    Feb 18, 2015
    Messages:
    5,905
    Likes Received:
    3,593
    This is an FYI about the current Robo/Marlin firmware fork and the Full Graphics LCD Smart Controller. If you replace dogm_lcd_implementation.h from 1.0.2 into the current Robo firmware. Recompile and upload. The Robo appears to work exactly as before with the exception that the display now only shows one extruder and removes the "1" designation as well. I did not read all the code to see what else has changed from 1.0.0.
     
    mark tomlinson likes this.
  19. ClaudKLyons

    ClaudKLyons New Member

    Joined:
    Jun 16, 2015
    Messages:
    3
    Likes Received:
    0
    This is what I had in mind when I mentioned cycling between extruder status displays as a future enhancement. This is very easy to do and can be extended to up to the number of extruders defined in configuration.
     
  20. Nick C.

    Nick C. Member

    Joined:
    Jun 16, 2015
    Messages:
    44
    Likes Received:
    2
    Hey does any one know where i can find these files?
     

Share This Page