IRC Tramp VTx support in ArduPilot

I can see that CRSF and SmartAudio support is included now in AP, but don’t see anything relating to IRC Tramp support (which is used to control Matek VTXs over a uart). I originally raised a feature request in Github for this (https://github.com/ArduPilot/ardupilot/issues/9565) and it was closed recently with @andyp1per suggesting that it had been implemented now. If this is implemented, can anyone please advise how to set it up as its not covered in the documentation?
Cheers, Paul

Sorry, no - I thought that issue was requesting tramp or smart audio - SA is done, tramp is not

No worries, I’ll swap out the VTx for a SA one. Slightly different question - is there a way using FrSky s.port, with maybe yaapu solution to control the VTx parameters in AP using an available LUA script?

I’m going to reply to my own question here to serve as potential future help for others who find this post looking for a similar solution.
Yaapu (Alex) has developed a very cool (and very understated) lua script called FrSkyLuaGCS which is a Tools script for OpenTx 2.2.4 (or newer), customisable to allow adjustment of any AP parameters. So if you are using FrSky Tx/Rx with passthrough protocol configured on your Rx smartport connection (SERIALn_PROTOCOL=10 in AP), then using the Yaapu scripts you can create a custom script page specific to VTx parameter configuration. This is the custom page I wrote for my AKK X2 VTx named plane_params_4.lua:

local description = "Plane VTX"

local parameters = {
  {"VTX_BAND",{"Band A","Band B","Band E","Band F","RaceBand",},{0,1,2,3,4,}},
  {"VTX_CHANNEL",{"Ch1","Ch2","Ch3","Ch4","Ch5","Ch6","Ch7","Ch8",},{0,1,2,3,4,5,6,7,}},
  {"VTX_POWER",{"25mW","200mW","500mW","800mW",},{25,200,500,800,}},
}
return { list = parameters,description = description}

Saying all this, I am having considerable issues getting the AKK-X2 VTx to respond to the smartaudio commands sent by Ardupilot 4.1.0 (Plane in my case). The VTx occasionally works perfectly in response to the VTX_… parameter changes, but this is very occasional. In the most cases where I was testing power changes, the VTx would just not respond. In one test session it responded a bit too well - The VTx was set to the 500mW setting by Ardupilot VTX_POWER=500, and I could not get it to change to any other value using either the OSD settings screen (which is still a bit buggy I have found generally), or with the button on the VTx itself. It was locked to that power setting, and no matter what I changed the VTX_POWER parameter to, it would not budge. The OSD settings screen would display VTX+POWER=500 and if I changed away from this figure, it would immediately jump back to 500.

I still think the smartaudio code needs some work. I’d really like to hear from someone who has it working perfectly with their VTx.

I’m afraid that actually the answer here is that all on the non-TBS smart audio implementations need some work. I have found that these can be very poor and I only test on TBS gear - so the flakiness you are seeing is likely down to a poor SA implementation on the VTX side. Yes, it probably works in betaflight, but that’s part of the problem - vendors only test against betaflight and their bitbang implementation is very forgiving of protocol errors. That said there are some SA improvements I am planning but I doubt these will help the particular issue you are seeing.

Andy, which TBS VTx would you recommend? I’m looking for something which can go to 800mw if poss. Cheers

The Unify Pro32 HV is a great VTX and goes to 1000mw

1 Like

I agree, that looks really nice and some great reviews. Unfortunately unavailable at the moment from all UK suppliers, and a few in Europe I checked.
I did some more testing tonight with my AKK-X2 (non ultimate version). I get better results (at least I think I do - could be placebo) when I set VTX_OPTIONS (BIT 4). But I still see anomalies getting unreliable response from the AKK board when I change vtx_power value. Its as if the VTx board stops listening for smart audio commands on occasion, and if you changed a value in this down time then it doesn’t pick up on it. You can change the value to something else a minute later and it works again. I haven’t found a specific pattern to it sadly. Problem I have is that the VTx will be buried in the foam with only heatsync protruding, so no easy access to the led display or button.

SA specifies 2 stop bits - the behaviour you describe is the same behaviour I saw when using a VTX that did not use 2 stop bits.

Gosh yes I see that! Maybe next stop TBS in HK

This one looks pretty good: TBS Unify Pro Race 2 VTX HV 5.8GHz (MMCX) | HobbyRC UK

I managed to order a Unify Pro32 HV finally so looking forward to finally have this working. 3rd time lucky!
First time I purchased a Matek unit that only supports tramp, and asked for tramp and smart audio to be supported, but only sa was implemented, so I bought the akk vtx which supports smartaudio, and even that wasn’t fully supported, so here goes with the 3rd vtx! It’s been an expensive experiment, and if this doesn’t work, Ill be a tad miffed!

@andyp1per Received the Unify Pro32 HV VTx today and I now have it hooked up to the Matek f765wse, and I can already see huge improvements such as being able to now fully adjust the VTx Power, which is awesome. I have some questions, but first to share my config:

  1. I have VTX_OPTIONS = 8 (unlock)
  2. I have VTX_MAX_POWER = 1000 (I assumed this is correct for this VTx)
  3. I have the smartaudio wire connected to SERIAL5 with:
    SERIAL5_PROTOCOL=37
    SERIAL5_BAUD=4
    SERIAL5_OPTIONS=68 (this is for Half-Duplex and Tx_Pull-down) - is the Txpull-down option required for this VTx? It certainly seems to work.
  4. RC5_OPTION=94 (for Tx Power control via a slider - I have this using S1 pot on My Taranis)

The Unify Pro32 has the latest firmware and then some - it came with a FW version newer than the latest available version in Agent X. I set the port to smartaudio mode also in Agent X. I manually followed the unlock procedure using the button also.

So some observations and questions:

  • I can use the S1 Pot to change the Power value - seems to work fine initially. I actually set it in the OpenTx channel 5 mixer with a weight of 50%, which allows me to select 25mW on the lowest and 1000mW on highest, whilst avoiding Pit mode (which is slightly below the -50 value). Strangely though, if I power up with the pot cranked to minimum, the OSD shows the power value as 25mW but with the value flashing, which suggests that its not actually set to 25mW at that moment, and the VTx gets crazy hot which also suggests its not on a low power value, but moving the pot CW selects 100mW and this then displays solid to show it is locked in, and I can then crank it back down and 25mW which also then displays solid, confirming selection.

    The weird issue though is that after a minute or so with the pot sending the -50 value (1244uS), the VTx image starts flickering in the goggles then stops transmitting, as it somehow jumps to pit mode, and if I then turn my pot CW, it comes back alive with the minimum selectable power value as 100mW. crank it CCW again and into Pit mode it goes - never seeing 25mW again! If I power off the VTx, then after a few minutes power it back on, it starts working again. I’m thinking thermal cut off, as I recall an over temp setting in Agent X - this thing gets ridiculously hot - can’t hold a finger on it, even on 25mW. This thing should definitely be designed with a heat sync!

  • I can use the crossfire lua script provided with OpenTx to choose the ArduPlane V4.1.5 menu, and from there adjust the VTX_POWER parameter just fine (I added this parameter in advance through the OSD parameter screens using the sticks) - I must say, using this method to change the power is far from easy as having to scroll through the numbers inc/dec by 1 at a time is tedious. Would be really nice if there were some way of setting discrete values in AP parameters, so we could just scroll through valid values.

  • Using the OSD parameters screen (screen 5), where I have VTX_POWER as a displayed item, does not allow me to change VTX_POWER value using the pitch/roll stick. I stick down to select the parameter, then right to make the 100 (mW) value flash. Stick up/down at that point should allow me to change the value but it fails to do this. It tries to move away from the initial value then jumps back as soon as you let go of the stick. Something definitely fishy there :slight_smile:

Thanks -

  • TX pull down is not necessary
  • Minimum power should actually be pitmode (flashing orange on the VTX) which is why the display disappears. I probably should make this configurable
  • Nice thought about the VTX_POWER in OSD menu, its definitely possible to make this discrete - I’ll take a look over the Christmas period I hope.

cheers Andy. Have a great Christmas!

The only 1.3G vtx readily available on the market right now, Matek vtx, has Tramp protocol instead of smartaudio. And since most long range pilots tend to use Arduplane, any chance for Tramp support in Ardupilot please?

3 Likes