-
Notifications
You must be signed in to change notification settings - Fork 80
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[FR] Rework UI menu structure #121
Comments
Re: Print preparation / Temperature / Fan There are places where some might want fan control. For example, when PID tuning one might want to have the fan on ... at a certain speed ... so that the tuning results will reflect the operational environment. Whether that is "Print preparation" is certainly debatable. |
For the new menu order: Print preparation Could maybe expand on the LED settings too, must be some additional functionality to be added such as "turn off LED when print is finished" |
Use Case Analysis Example (WIP).pdf This is not a warship or a rocket, so the process may seem overly heavy for this exercise, but I think the principles are still valid and you may have a lighter equivalent methodology into which you might transfer any good ideas herein: My first-cut at the "User"/"Actor" list would likely include:
For the purposes of keeping this exercise reasonably simple, I imagine we expect to remain focused primarily on the first two actors, but I think it will help validate the structure if we cannot think of a problem with it when we occasionally scan down the rest of the Actors list. If "Pillars" are to be the basis for the UI structure, maybe it helps to correlate the "Pillars" with the "Use Cases". Since calibrating the esteps typically involves printing something (like a calibration cube), there may be some overlap between Use Cases at first. We could finesse that on subsequent "passes" by "slicing" the Use Cases into procedural building blocks, which are then chained into Use Case Workflows. Or we can try to skip a step and define an intuitively obvious set of building blocks based on our collective experience. Higher risk of bias-induced blindness but faster results. ("Fail quickly, fail often.") If we define the "Pillars" to be the procedural building blocks, we can imagine Actors 1 & 2 each trying to build their Use Case workflow(s) by "chaining" those blocks together in whatever sequence minimizes the number of blocks (equivalent to menu-changes) to execute their workflow. (Assumes the fewer menu changes the better, to complete a procedure.) e.g.: My first-cut at the Maker's Use Cases would be:
NOTES:
I recognize the above exercise can rapidly become a big job, but I hope it also suggests a useful framework for this discussion. The first 4 pillars suggested in the OP above are:
To my mind, "Settings" is the only pillar that does not correlate directly with a particular Use Case or Workflow. There are ao many nuanced layers of detail implicit within the scope of the other 3 "pillars", that I think you will need to elaborate and break them down a little to get to the real "juice". The goal, I suggest, is to make the logic of the menu system "self-evident" to someone with Maker experience and for it to be easy and intuitive to learn the scope and specific how-to's of the Maintainer role as we go along. Happy to engage further, if you would like... |
Thinking about "Pillars" suggests to me that it may also help to establish and document some basic design principles on which to base and validate all design decisions. e.g.: Example: For instance: Now we have introduced RED as a visual cue for the User to note that the displayed axis positions may not be correct. By virtue of using both RED and YELLOW in this UI design, we automatically cue our Users to understand and assume that - in this UI design - RED means WARNING, YELLOW means CAUTION and GREEN means OK. Society has encoded those meanings, and we would have a hard time persuading Users to interpret those three colours any differently. This is also one of the risks to using colour for coding information - "societal norms" tend to trigger unwarranted questions and assumptions in the minds of the users. Colours like CYAN and WHITE are "safer" colours to use, if we want to define our own meanings or if we just want to make some information easier to find on a crowded screen. RED, YELLOW and GREEN should really be reserved for exclusive use consistent with their traditional societal meanings. BECAUSE of the above, I recommend that:
Cheers. |
At the very least, Move should be under Control, or under both Prepare and Control. Some of these actions could fit under more than one category. |
Technically that is no issue. If we assign the correct VP we can just pop back to the old screen. |
I have taken the above analysis a bit further in the attached update. Here, I suggest that the legacy Home menu structure can be seen as following this basic workflow from bottom left to top left: Configure Printer; Level Bed; Prepare to Print; Print. |
Pushing this back to CF7 - will look at your workflow analysis when we're in more quiet water. |
I finally got around to reading this, sorry it took a while 😐 Page 3Yes, this seems pretty right.
I expect those users to have G29 in the start gcode, agree? Otherwise it would be users who regularly change their build surface. Page 4Preheat settings would move from "prepare" to "configure" I expect. Page 6I forgot for a moment that systems are also users 😅 Page 9Looks close to what I wrote in the start post - note that it is not necessary for a single page only to be reachable from a single location. The firmware remembers "history" of visited pages, so we can for instance put the probe settings in both menus. |
You can follow Creality's four button main screen or make a bold move to two buttons: Print and Setup :) But IMHO you should decide early on if the UI will be defined heavily by the fact that CR6 has a touchscreen and not a rotary dial. |
I am recommending that we design the UI to support the User workflows. The # of clicks to reach a function will be measured from where the User is, within the menu structure, when they want to activate that function. In my crude analyses, for instance, I see two main workflows: 1. Configuring the printer and 2. Printing. The "Configuring" workflow will occur in a variety of scenarios.
The "Printing" workflow will vary according to our personal preferences and habits, in which the printer is only one part of a larger "system".
Of course, the above are only a few of the scenarios one might imagine. It is not practical to try to design for every possible use case, but it would be helpful to identify a few key scenarios to help guide design trade-off decisions and test scripts, Number of clicks to reach a function is one useful design parameter, but it should be measured within the context of a workflow scenario. Some User needs can be met in more than one way, and not everything should be defined as a UI requirement. Users have options, like adopting a new workflow, using a different component, inserting other steps, etc.. No well-designed product can be all things to all people. I see logic in the current 4 button approach, if "Control" is changed to "Configure". I think "Control" may have been a poorly chosen translation, if each of the 4 labels is meant to be a verb. Moving the axes is obviously "Controlling" the machine, for instance, but it is not necessarily "Configuring" the machine, the way setting Steps/mm, Jerk & Acceleration would be. I am sure my analyses have been quite simplistic, though they are also probably overly wordy and "messy". e.g.: What other Workflows should be incorporated? |
There are quite a few display screens in the current firmware + I am not aware of any existing documentation of the Use Case Scenarios or Workflows to be supported. It will likely take me a few days to complete the attached WIP effort. I am hoping that the resulting models will prove helpful in more than one way. Here is Version 0.02, which documents the CF6 PRe4 UI support for these two (2) Workflows:
Early feedback is welcome, particularly if anyone thinks this work would be redundant or of particularly low value. |
In further support of this work, the attached PDF file offers a model of the current (CF6 Pre4) menu structure in a way that I hope makes it both easy & interesting for others to experiment with "affinity diagramming" the current screens. CAUTION - This work is very likely biased by my personal understanding of the current design. It is my hope that readers who experience "cognitive dissonance" when reviewing these models will be able to follow that "spark" to a better idea. |
Notes:
|
Do you find merit and value in the idea of grouping display screens according to a set of high-level abstractions, this way? I have had a lot of past success using this affinity mapping tool and experimenting with abstraction to highlight and expose patterns and anomalies. It is not an end in itself, though, just a throw-away tool, meant to facilitate brain-storming and mutual understanding during design reviews. I think these specific maps could also be used as a framework, to help clarify, communicate and crystallize the UX design philosophy ithis team chooses to “bake” into the UI. Since they presently need maintaining every time the screens are modified, they only help if they are used to guide and document the actual design discussions and decisions |
It definitely helps, but I don't think it is a document that needs to be maintained long term. It can however help get our thoughts in line for reorganizing the menu structure. |
Some users may appreciate being able to modify Screen Brightness and Screen Timeout settings during long print jobs. |
I don’t believe there is any real necessity to implement what you are asking, |
I like that the workflows of printing itself and the rest is separated. You don't want the user to touch the preheat of leveling options while printing for instance. |
Of course you are right but we might add a “printing default settings” entry in “Control” and make “Tune” land in “Control” |
I think that beside the "Misc" items there isn't much else one might want to during during printing ;) |
Since print jobs run from hours to days in duration, the thought was to allow access to the screen saver function for users who regret having turned off that auto dimming to be able to work with their screens but now wish they had remembered to turn it back on before starting their print. Based on personal experience. I still think Control should become Configure and Configure should be specifically what a user uses to set up their machine’s performance parameters. Tune now includes Movement Settings, which implies to me that a user may be adjusting the Configuration mid-print. That implies to me that you mean to support experimentation during printing. That in turn implies to me a wide variety of workflows I have not evaluated for features to which we restrict access when printing. |
I believe that Creality when they name it "Control" they meant "Control panel". As for the screensaver, I personally have set it to 5min timeout and forgot about it. |
It was such a non-effort, so I added it. |
Immediate solution to clear up some space on the crowded control screen - CR6Community/CR-6-touchscreen#46. The rest is for CF7. |
From my experience with UI design, colour should not be used as the only indicator of a problem. Many people are colour blind, especially red/green colour blind. Using red is particularly problematic because of this. If colour is used, it should be combined with an icon or text . |
That is a very good point. |
If consistency with Marlin LCD menu structures becomes relevant, this resource may be helpful: https://marlinfw.org/docs/features/lcd_menu.html A similar style of page for the CF6 menu tree might be a helpful resource for CF users and could easily be developed into a linked index into a growing library of supporting documentation, like user manual pages... |
The current UI menu structure - we inherited this from Creality - is quite unlogical and I often find myself lost when using the printer. We need to clean this up. I don't think the default MarlinUI is the best way to do it - we can do better than that.
Current UI:
I think a new menu structure would be leaning on four pillars:
The menu structure would be something like this for:
Calibration
Settings
Print preparation
The text was updated successfully, but these errors were encountered: