hd-zero/hdzero-vtx

With LP_MODE on, VTX menu shows 25mw

Opened this issue · 11 comments

evilC commented
  1. ELRS LUA script set to Pwr lvl 2 and LP mode off. VTX currently at 200mw power
  2. Enter VTX menu (Sticks down and together)
  3. Enable LP Mode
  4. At this point, the menu shows Power: 200, LP Mode: ON
  5. Exit VTX menu
  6. Enter VTX menu
  7. ERROR: Menu shows Power: 25, LP Mode ON

ie it appears to the user that when they arm, power will not be set to 200
When you do arm, it does go to 200mw

Fix: In the VTX menu, it should not show the CURRENT VTX power, it should show the power level that it WILL go to when you arm.

Hello evilC,
What you are describing sounds like the normal Betaflight/Inav low power disarm feature. Are you sure that has been turned off in your flight controller software and have you verified the flight controller is really commanding 200mw at the time the VTX menu is reporting 25mw?

evilC commented

I am not saying that it really has commanded 25mw when it should be 200, I am saying that the UI kind of appears to say that it is.
ie it's more of a UX issue than a functional issue.
If you set it up to be 200mw on arm, and LP mode on, when you save and go back into the menu, it APPEARS as if you have set LP mode on and to only go to 25mw on arm, because power level is showing 25.
With LP mode on, it appears to be impossible what the CURRENT setting is, because the UI is incapable of showing that.
In an ideal world, rather than just having one value which shows current power is, there should be two settings: One to show current power level, and one to show what it will go to on arm. Either that, or it should show something like 25 (200) to reflect that it is currently on 25, but will go to 200 on arm.
I checked and BF low power disarm was indeed on. I switched it off and the issue persists.

Ahh, I think I understand your explanation perfectly.

The problem is that multiple systems are able to command the desired output power value. As a result the desired output power level from any one device is useless and only the "current" resulting output power value is available. So, the VTX is only able to determine the current power output value and the default listing of available choices for output power values.

Does that make sense?
-p

I suggest enabling VTX power as an OSD element in your flight control software to build confidence in what is happening.

evilC commented

Not wholly.
When you go into the menu and enable LP mode, then set the power level to 200, the menu shows:
POWER: 200
LP MODE: ON

This gives the user all the information that they need - power will be at 25mw when disarmed, and be raised to 200mw on arm.

If you save and exit the menu, then re-enter the menu, it now reads:
POWER: 25
LP MODE: ON

Nothing has changed. it still appears to go to 200mw on arm, but the menu is now giving spurious information. I suspect that what is going on is that when you ENTER the menu, the POWER line is showing what it is currently transmitting at, not what it will change to upon arm.

evilC commented

[CORRECTION]
If you save and exit the menu, then re-enter the menu, it reads:
POWER: 200
LP MODE: ON

If you save and exit the menu, arm and dis-arm, then re-enter the menu, it reads:
POWER: 25
LP MODE: ON

If you exit the menu, the OSD element would read like R1:25, and when you arm it would read like R1:200
So clearly it is still in 25/200 mode as desired, but as soon as you arm for the first time, the menu no longer shows what the armed power level will be

Yes, This is occurring because the VTX is only aware of the current value and the potential list of values. And I do not see a way to implement a feature able to show the current power level VS desired power level. At least not without removing all the external control functions (eg: remove Smart Audio, Tramp, and MSP-VTX).

Sure, You can set a value and it will change but then it is being changed again and we can not guarantee what the resulting value of a change will be. The best place to turn for a feature that shows the desired value vs current value would be in the flight control software since it allows for an OSD that is available during "normal" use and it has it's own desired value. However, here too you run into the same problem... You can add more complexity and OSD clutter to attempt to track a desired value from a particular device but that still does not mean it will be the resulting power value at any point in time.

evilC commented

Yes, This is occurring because the VTX is only aware of the current value and the potential list of values.

So how come if I exit the menu, then re-enter it without arming, it (correctly) shows 200, even though the current value is 25?

The current output power value will remain current until a new output power is set.

@evilC #151
Please test this.

evilC commented

@ligenxxxx apologies for the delay, I missed this. I just flashed it and will hopefully get to test this weekend, weather permitting.
I have certainly had reason to suspect lately that, as you mentioned in the PR, it was not always setting 200mw

@ligenxxxx
I tested on Whoop Lite and my mate tested on his unlocked Freestyle v2. Both on LowBand
We only got 4 or 5 packs in each today, but it seems fine