Passthrough telemetry over CRSF (crossfire)

Will the script ever be able to use mavlink and rc over mavlink?

TBS just released a big update to increase the speed and stability of mavlink.

nope, my script can only use CRSF, but thereā€™s a fork of my script here that requires a custom version of OpenTX by @olliw42 that can handle mavlink as native telemetry source, perhaps check it out.

Thanks Alex sounds like I just wire another 2 ports up

1 Like

@Alex, I cannot get the data on my yaapu screen but I am receiving the data when using a custom screen layout and I have full RC control.

Hardware:
Crossfire nano
Matek F765-Wing
RadioMaster T16

FW:
Yaapu 1.9.b
4.1.0 dev

Parameters:
Serial7 = 23
Baud rate = 57
Serial7_option = 0
RC_Option = I tried 1, 8, 256, 256+8ā€¦ etc. (Sorry but this instruction is bit confusing to my small brain ā€œset RC_OPTIONS bit 8 = 1 (add 256 to your current RC_OPTIONS value)ā€
RSSI_Type = 3

Nothing seems to bring Yaapu screen comes alive. But on the custom screen I am receiving everything except voltage and current readout.

Hi Riz, how did you wire/configure it to your nano RX? You need to use CRSF tx/rx, once you have RC + standard CRSF telemetry working (ROLL, PITCH, FLTM, CURR, etc) check your RC_OPTIONS value and add 256 to whatever it was, if for instance your RC_OPTIONS was 0 then 0+256=256 set it to 256, if it was 8 then 8+256=264 set it to 264.

Hi getting the message that CRSF is on a non-dma serial port using the matek F765. Which ports are DMA?

Currently have
GPS TX2/RX2 (serial 3)
CF NANO TX4/RX4 (Serial 6)
DJI MSP TX8/RX8 (Serial 5)

connect with MAVProxy to your flighcontroller and enter
ftp get @SYS/uarts.txt -
and as Andy said look for the *

@Alex,
At the moment I have the following wire mapping:
Rx6 = CH out1
Tx6 = Ch out2
Ground = Ground
Voltage = Voltage

On the crossfire RC transmitter setting:
Op mode = Normal
Bluetooth = MAV Emu

Nano setting:
Output map output1 = CRSF Tx
Output 2 = CRSF Rx
Output 3 = MavL. Rx
Output 4 = MavL. Tx
Output 5 = BST SCL
Output 6 = BST SDA

Under Channel map (below output map) all Dst. Ch1 to Ch8 are 1-to-1

Thanks Alex I have this image for the Matek F765 it seems the only serial 2 is a DMA port.

So the new layout would be

GPS TX2/RX2 (serial 3)
CF NANO TX1/RX1 (Serial 2)
DJI MSP TX8/RX8 (Serial 5)

What baud should I set for the Crossfire Serial?
We are getting a no Rc Receiver in the script messages
Is the matek board/arduplane expecting the receiver on serial 6 still? we set that to -1 for serial protocol.

Hi, the baudrate is automatic no need to specify it.
What do you mean by ā€œWe are getting a no Rc Receiver in the script messagesā€, itā€™s reported by my script or you see it in mavproxy?

Here is a pic after boot.

Layout as follows

GPS TX2/RX2 (serial 3)
CF NANO TX1/RX1 (Serial 2)
DJI MSP TX8/RX8 (Serial 5)

Control link and telem working

That is plane right? That message is under investigation, check here Message - No RC Receiver.

Also please update to the latest beta of my widget https://github.com/yaapu/FrskyTelemetryScript/releases/tag/Horus-Widget-1.9.5-beta1

Hi. Im have many freezes with crossfire script when opening ardupilot in device list to change pids over crsf. Some time have freeze, many time im have only one first pid. Some time im have all parameters. Where problem?
arducopter 4.1 b5

Hi @Evgen_Stenkin - yeah there are some problems here that we havenā€™t been able to nail down, it appears to be related to the CRSF FW version. For instance tracer is much worse for me in the respect. I donā€™t think its an AP problem - more a TBS problem. Generally if you wait the parameters will eventually appear.

If - I would not write :slight_smile:
it is very rare that you need to wait - most of the time the script either hangs - just a blank screen and everything (need restart script), or just shows one parameter first - and how long you wait, others will not appear. At the same time, when you just need to wait, three dots appear on the left on all lines - as if the AP replied that there are many parameters, but when there is only one parameter, then it is either immediately shown without waiting, or one line with three dots appears and one will come out anyway the first parameter and nothing else.
Crossfire FW - 4.11
Iā€™m think this is some issue maybe in lua script -

  1. why script think that AP send only one parameter
  2. why script hangs or freeze - itā€™s not clear at all
    But requests to the crossfire receiver (or tx or wifi) do not create such problems - only to the AP - maybe something is wrong in AP logic?

do not have any thoughts what could it be?

p.s. maybe problem in long device name (or some symbols) for AP version sent by AP?
in script this place try load all fields from the received data:

local function fieldGetString(data, offset)
  local result = ""
  while data[offset] ~= 0 do
    result = result .. string.char(data[offset])
    offset = offset + 1
  end
  offset = offset + 1
  return result, offset
end

local function parseDeviceInfoMessage(data)
  local offset
  deviceId = data[2]
  deviceName, offset = fieldGetString(data, 3)
  local fields_count = data[offset+12]
  for i=1, fields_count do
    fields[i] = { name=nil }
  end
end

I know there are some issues with the script - TBS recommends using Agent Lite https://www.team-blacksheep.com/products/prod:agentx these days and I did some work with them to support AP properly, so you should try that in the first instance.

Yes, but we were not talking about using a computer for configuration - we are only talking about the incorrect operation of the script and the AP.

How iā€™m can debug what AP sends or recieving in param mode? Using USB is it possible?
Betaflight have such functional - need test crossfire with BF - if BF havent this problems - this is 100% AP bugs.

You misunderstand. Agent Lite is a LUA script that runs on your TX - try it.

Oh sorry thanks. Yes this is more better - than default in opentx.
TBS have app for android - iā€™m try using this app and have problems as in default script - iā€™m think need litle tweak AP logics for thisā€¦ imho.

As im say problem in device name - iā€™m edit AP version to const string and problems go out!

In AP_CRSF_Telem.cpp -

// write out the name with version, max width is 60 - 18 = the meaning of life
//int32_t n = strlen(fwver.fw_string);
int32_t n = strlen("Ardupilot");
//strncpy((char*)_telem.ext.info.payload, fwver.fw_short_string, 41);
strncpy((char*)_telem.ext.info.payload, "Ardupilot", 41);

For working default script - need fix this or make changes to opentx scripts, anroid app and so on - which is easier? :wink: