VTX power table from source code does not include my vtx’s available power

It’s the first time for me using an analogue vtx.

In the other post I have managed to get my vtx controlled by fc, with the help from andy. But I still can’t get the fc to correctly set its power level. After reading the source code (I’m not sure if I’m understanding the source code correctly), I found that my vtx is not in the power table from code. I’m thinking if I need to modify the code and compile my own firmware or is there still some setting I didn’t get right.

Foxeer reaper infinity 5w vtx, IRC Tramp protocol. I have set half-duplex on the uart and I can control its frequency and band, and by changing band using buttons on my vtx, fc parameter do get updated.

However, I have set max_power to 5000 but when I change vtx_power to 5000, it always reset itself back to 1000. OSD shows 800mw when vtx_power is 1000 and vtx light shows itself at 5000. Changing vtx_power parameter does not cause vtx to change power level based on the light from it.

When using a 6-pos channel(1000-2000pwm) osd shows it only switches between 0-25-400. But 25 and 400 isn’t even an option for my vtx.


Hi!
Have you found a solution to this problem?
I think your problem is the same as mine.

I have a fix for this if you are willing to try it

Will try it once I get back, currently on a trip. It will be nice if you could build a copter firmware for MatekH743-bdshot for me.

arducopter.zip (1016.7 KB)

Tested, power could be controlled but the VTX_POWER doesn’t match the power level of the vtx. 25 → 50, 50 → 500, 150 → 1w, 300 → 2.5w, and 600 → 5w

Yes this is expected. It turns out that Tramp IRC lies about power levels - everyone just uses the standard ones but then implement different levels in the VTX. So what you are seeing is correct behaviour and there is no way to figure out what the actual power levels are - we would have to use a static table.