OSD based menus for tuning, features, etc

Hi developers, I have a question before I put in an enhancement request. In my mind the single biggest feature that makes inav attractive over ardupilot is the interactive OSD menu system. It is so convenient to be able to take off, fly a moment, land, change a setting, and take off again without having to bring out a laptop/tablet. Once a menu system is setup it would be trivial to add features to it, and with hardware with OSDs built in getting more and more popular I think it is a good path to pursue.

I think the logical way to implement this would be stick gestures, but I have read a couple times there are safety concerns with stick gestures on ardupilot since it uses throttle/yaw to arm.

I would like to work on/solicit help building an OSD menu system for ardupilot. I want to set some baseline rules and outline functionality before I post an enhancement or ask for people to help me spend time on it. If I were to start with stick gestures, is that doomed to never be implemented into master? I’ve thought about just using a dedicated RC channel to enable this menu but 90% of the time it would be a wasted channel(you couldn’t use it if the vehicle was armed).

My thought would be in the arming check file, add a parameter like “menu in use” so arming checks would fail if a menu is active, and even better arming requests aren’t even accepted while in a menu. To enter the menu there just needs to be a mutually exclusive window for throttle and entering a menu. i.e. throttle 0-15% for arm, throttle 40-60% for entering menu. If you require the throttle to always be above the arming window while menus are active, I don’t see any reason why this couldn’t be implemented in a safe manner. Of course osd menus could be disabled permanently by anyone who didn’t want them active.

Things I would definitely want in a menu system:
-PID values
-flight modes
-feature settings (smart audio vtx control in particular)

List of topics/requests for this kind of thing:

i‘d like to add that i‘ve been using the OSD param screen PR by @andyp1per for quite while on all my setups now, as it‘s an awesome addition i really don‘t want to miss anymore. thanks again andy, great job!