One really useful thing about the LCD is that you can control it without being near a computer/phone.
It would be useful to make the LCD capable of doing everything, including doing bed screws adjust through purely the LCD. But this could be expanded to allow any menus and dialogs to be triggered through gcode e.g. filament load detected/runs out. It should ideally run gcode based on the user input conditions.
I think it would be best to write the dialogs in the config file. Here are some examples of a possible config section for a useful scenario - filament loading, feel free to make any suggestions.
This could be one for detecting filament loads, first by selecting the temperature and then performing a load routine followed by confirming load is successful
First, filament sensor triggered runs this gcode:
DISPLAY_DIALOG dialog=filament_load_detected
Which refers to a config section:
[display_dialog filament_load_detected]
heading: Fil. load detected
options: Load PLA, Load ABS
gcodes: ; gcode actions depending on the input, starting with the first option
preheat_pla
load_filament, ;
preheat_abs
load_filament
The load_filament macro could also make use of a dialog:
[gcode_macro load_filament]
gcode:
; whatever your load gcode is...
DISPLAY_DIALOG dialog=load_filament_dialog
[display_dialog load_filament_dialog]
heading: Filament load
options: Filament loaded, Filament not loaded, Colour not correct
gcodes:
M84,
for loaded
load_filament,
for not loaded
; extrude some more
to purge old colour
DISPLAY_DIALOG dialog=load_filament_dialog
The most common screen has 4 lines of text, it should be possible to display it in such a way on the screen:
Heading
>Option 1
Option 2
Option 3
and if any more options, it could scroll like the existing menus do, but keeping the heading visible.
I see this feature useful in other scenarios too, for example with filament runouts or requiring the user’s attention before starting prints if the enclosure door opens… the possibilities are endless if all it takes is a config section and an extended gcode.
If any developer is interested to work on it, feel free to use my plan, but if no one decides to work on it chances are that I’ll do so (once I get an idea of where to start!)