Here’s how I’ve been thinking about this. Mobile-first isn’t always my first choice, but in this case has been helpful to have screen size constraints to break the problem down.
So far I’ve come up with these groupings:
Configure:
Frame Size (Width, Height)
Calibration Grid Size (Width, Height)
Calibration Grid Size (Sample Points)
Motor Settings (retraction, calibration force).
Units - might be single default, or multiple options (jog, frame size, calibration size, etc.)
Move:
X, Y jog arrows
Move to home
Define Home (x,y)
Z jog arrows / UI
Define Z Home
Jog Amount (X,Y)
Jog Amount Z
(other functions I’d like to see here would be things like trace without Z, move to / “show” corners and or extents of g-code)
Prepare/Load:
Retract All / Extend All
Apply Tension / release tension
Upload file
Choose File
Cut:
start/stop/pause/alarm
I think all of these benefit from having some sort of preview associated.
I think you could group some of them together differently - like prepare and cut, etc.
I suppose file management could be its own thing. It’s choose a file from a list of stored files, upload a new file, or manage files.
I think the preview area is a natural place to have the load file button(s). If no g-code is loaded, put a “Load File” button in the middle of the window. pressing it brings up the option to choose a local file, or upload a new one. If a file is loaded, its name is shown at the top of the preview area, with a load file button next to it, etc.