I’m probably not going to do that. NarsilM worked that way, using a big global menu for config options, and it was a design style I specifically avoided in Anduril.
Instead, I’ve tried to map config options to button presses (or sometimes small menus) inside of the modes they configure. I try to keep each mode and its config options as close together as possible, and avoid menus when possible… especially long or nested menus. Like, Bistro had 8 menu options and they didn’t change over time… and even that was hard for people to remember which option was which. With Anduril there are like ~30 to ~60 options at the moment, depending on the version and specific build target, and the set has changed dozens of times over the years… so it would be extremely difficult for the user if those were all kept in one big nested menu.
Ideally, each mode’s primary option can be adjusted simply by holding the button while that mode is active. Other options use progressively longer inputs, with the most-often-used having the shortest inputs. Menus are used only for things which didn’t fit into a more convenient input, typically for settings the user likely won’t need to change after the initial setup is done.
For menus, it also tries to keep the contents pretty consistent across different builds and versions, so the user won’t have to remember a bunch of different variations. This is much easier when the menus are small and context sensitive.
A big global menu’s use looks something like this…
- Exit the mode you want to configure. Click to turn off.
- Press the menu shortcut.
- Wait for the Xth blink to select an option group.
- Wait for the Yth blink to select an option. (and maybe again to select the Zth blink for a sub-option)
- Click N times to enter a value, then wait a few seconds.
- Press the mode shortcut to return to the mode you configured.
The user would be expected to refer to the manual during configuration, and keep a specific version of the manual around for each light, since the menu order and contents would probably change pretty frequently.
What Anduril does instead is a little shorter…
- While in the mode you want to configure, press the menu shortcut.
- Wait for the Yth blink to select an option.
- Click N times to enter a value, then wait a few seconds.
People still use a manual here, but not as often, and the menu contents are generally more stable.
It would be better to have an interface which doesn’t need a manual at all, but it’s limited by having only one pixel and one button. A genuinely intuitive interface would probably require connecting the light to a computer or phone, to get an actual screen with widgets to click on.
If lights ever get upgraded to a MCU with more power, particularly with USB support built in, I’d like to add support for XAP, the QMK keyboard firmware’s protocol for configuration from a host computer. Or something similar. Then you could just plug it in and use a standard application to configure stuff. But that’s not happening in Anduril 2. That’s more of a “maybe in Anduril 3” sort of thing for the more distant future… and it would be a complete rewrite with zero backward compatibility.