Passthrough telemetry over CRSF (crossfire)

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:

Is there a version available for the Nirvana and or FlySkynv 14?

The firmware name was already shortened because of script issues, but I do notice a bug - please can you put it back to how it was but change line 770 to:

    int32_t n = strlen(fwver.fw_short_string);

and see if that works

Oh - i’m cant see this moment - yes - in code we have
strlen(fwver.fw_string);
but need
strlen(fwver.fw_short_string);

Ok - later i’m test this and reply you, thanks!

Yes this fix problems!
Good :slight_smile:

Thanks, the fix should make it into the next beta.

@Alex,
I have been struggling to get Yaapu working with CRSF Nano. Could you please look at my settings and advice.
One thing I should point out that hex file or hex+bl files won’t allow me to upload the firmware, so I updated the F765 FC using .apj file. That should not matter, correct?

Here are my settings laid out on a single slide.

I have full RC control but limited telemetry such as GPS, Flight mode, RSS, pitch.
The battery voltage is fleshing 0 to 99%