Re: Looking to add physical buttons to select what the Knobster will control.
Posted: Mon Sep 28, 2020 4:53 pm
My Pleasure Keith and Jph,
Thanks for pointing out the code tag.
I have also updated the code with many bug fixes. This instrument is still in the prototyping phase and I have many other ideas to implement this further.
My ideas are as follows
1) get the menu navigation into a JSON string structure to allow for custom menu navigation definitions. It would be a jagged array containing main categories and subpages to each main page. Im likely going to invers how i have it now so that Outer changes main page and inner changes sub page. this would stay consistent with how a GPS dail encoder works.
2) get the command pages to be defined with a JSON array as opposed to functions. Each page would have 5 commands as it is now Out-l, out-r, in-l, in-r, and button with maybe a 6th option with a long press definition. then you have the hold functions which intent to reserve for menu navigation but nothing says you can't define more functions on it if that what you desire.
2.1) Add a long button press event as to allow for an additional function to be defined on the control.
3) Add a visual element on the panel that would print out the current functions assigned commands. This will help you remember what was defined on the command page. Unlikely to help in VR unless we figure out a way to display it within a VR session. Worst case scenario, you forget what was programmed, you lift the headset and take a peek. Jph, im not wired into VR yet for MSFS, but, I will have the reverb G2 as soon as it's out. I have the Vive for X-Plane but dont care to dust that off. I'm more or less preparing. Maybe an audio readback on the menu via a long press could also be feasible.
4) Define other prefix structures to grant functionality based on different simulators as there is no reason we can get this strategy to work with other sims.
5) Define a quick navigation option on the Reset menu. There reset menu is the starting node. With the 5 native options, you can navigate to any of the main menus quickly.
6) create a mechanism that will dynamically set a different profile for the current aircraft being flown. See the button and switch strategy below for more context. That strategy uses a visual queue of where the button is as to be able to determine its location within this knobster strategy.
As for the strategy for buttons and switches, Im likely going to wire into physical buttons as the ideal, but it could be implemented with the Knobster as follows.
Im going to base the button assignments based on a visual queue from the cocktpit. For example lets take the autopilot buttons on the G1000. would would have the pages defined as follows
This profile would be ideal for a button pannel that toggle a function
Autopilot1
In-L=AP, In-R=FD
Out-L=HDG, Out-R=ALT
Autopilot2
In-L=NAV, In-R=VNV
Out-L=APR, Out-R=BC
Autopilot3
In-L=VS, In-R=UP
Out-L=FLC, Out-R=DN
Notice the pattern matches the location of the buttons in the cockpit, making it easy to remember where things are in the menu structure.
As for a switch panel, you can only divide each page with two switches instead of 4 buttons per page like the top example.
If we have switch 1 through 8 defined
SwitchPanel1
In-L=SW1-off, In-R=SW1-on
Out-L=SW2-off, Out-R=SW2-on
SwitchPanel2
In-L=SW3-off, In-R=SW4-on
Out-L=SW4-off, Out-R=SW4-on
SwitchPanel3
In-L=SW5-off, In-R=SW5-on
Out-L=SW6-off, Out-R=SW6-on
SwitchPanel4
In-L=SW7-off, In-R=SW7-on
Out-L=SW8-off, Out-R=SW8-on
So if i have a switch panel with eight switches and the pito-heat is the 8th switch, I would need to get to SwitchPannel4 and use the out-r as the switch. You could always also write logic that would toggle the options and get your switch panel down to 2 pages of 4 commands. The main takeaway is if you can see the switch panel, the definition should match in a way that would let you determine how to get the function based on its sequence or pattern in the cockpit.
One I pull this together, I will undoubtedly look into submitting it for use by others. I think im going to call it "One Knobster to rule them all."
Thanks for pointing out the code tag.
I have also updated the code with many bug fixes. This instrument is still in the prototyping phase and I have many other ideas to implement this further.
My ideas are as follows
1) get the menu navigation into a JSON string structure to allow for custom menu navigation definitions. It would be a jagged array containing main categories and subpages to each main page. Im likely going to invers how i have it now so that Outer changes main page and inner changes sub page. this would stay consistent with how a GPS dail encoder works.
2) get the command pages to be defined with a JSON array as opposed to functions. Each page would have 5 commands as it is now Out-l, out-r, in-l, in-r, and button with maybe a 6th option with a long press definition. then you have the hold functions which intent to reserve for menu navigation but nothing says you can't define more functions on it if that what you desire.
2.1) Add a long button press event as to allow for an additional function to be defined on the control.
3) Add a visual element on the panel that would print out the current functions assigned commands. This will help you remember what was defined on the command page. Unlikely to help in VR unless we figure out a way to display it within a VR session. Worst case scenario, you forget what was programmed, you lift the headset and take a peek. Jph, im not wired into VR yet for MSFS, but, I will have the reverb G2 as soon as it's out. I have the Vive for X-Plane but dont care to dust that off. I'm more or less preparing. Maybe an audio readback on the menu via a long press could also be feasible.
4) Define other prefix structures to grant functionality based on different simulators as there is no reason we can get this strategy to work with other sims.
5) Define a quick navigation option on the Reset menu. There reset menu is the starting node. With the 5 native options, you can navigate to any of the main menus quickly.
6) create a mechanism that will dynamically set a different profile for the current aircraft being flown. See the button and switch strategy below for more context. That strategy uses a visual queue of where the button is as to be able to determine its location within this knobster strategy.
As for the strategy for buttons and switches, Im likely going to wire into physical buttons as the ideal, but it could be implemented with the Knobster as follows.
Im going to base the button assignments based on a visual queue from the cocktpit. For example lets take the autopilot buttons on the G1000. would would have the pages defined as follows
This profile would be ideal for a button pannel that toggle a function
Autopilot1
In-L=AP, In-R=FD
Out-L=HDG, Out-R=ALT
Autopilot2
In-L=NAV, In-R=VNV
Out-L=APR, Out-R=BC
Autopilot3
In-L=VS, In-R=UP
Out-L=FLC, Out-R=DN
Notice the pattern matches the location of the buttons in the cockpit, making it easy to remember where things are in the menu structure.
As for a switch panel, you can only divide each page with two switches instead of 4 buttons per page like the top example.
If we have switch 1 through 8 defined
SwitchPanel1
In-L=SW1-off, In-R=SW1-on
Out-L=SW2-off, Out-R=SW2-on
SwitchPanel2
In-L=SW3-off, In-R=SW4-on
Out-L=SW4-off, Out-R=SW4-on
SwitchPanel3
In-L=SW5-off, In-R=SW5-on
Out-L=SW6-off, Out-R=SW6-on
SwitchPanel4
In-L=SW7-off, In-R=SW7-on
Out-L=SW8-off, Out-R=SW8-on
So if i have a switch panel with eight switches and the pito-heat is the 8th switch, I would need to get to SwitchPannel4 and use the out-r as the switch. You could always also write logic that would toggle the options and get your switch panel down to 2 pages of 4 commands. The main takeaway is if you can see the switch panel, the definition should match in a way that would let you determine how to get the function based on its sequence or pattern in the cockpit.
One I pull this together, I will undoubtedly look into submitting it for use by others. I think im going to call it "One Knobster to rule them all."