Connecting TBS Crossfire radio to pixhawk 4 mini

Hi all,

I am very new to this and recently purchased a Holybro QAV250 Pixhawk 4 mini kit and a RadioMaster TX16S + Crossfire kit from banggood.

I got the crossfire in the hope I can use it for both control and telemetry over the single radio and also maybe at some point use the WiFi of the crossfire to access the telemetry on my laptop in mission control.

I am looking for someone with more experience that can let me know if what I plan to do is correct before I go soldering everything together so I don’t let out the magic smoke that all electronics run on.

What I need to do is connect the Crossfire Nano Rx to the Pixhawk 4 mini.

From everything I have read, I think I would like to use the CRSF protocol for this connection (not SBUS as I really want the telemetry)

I think the way to do this is to connect the nano rx to the telemetry port on the pixhawk. Or would you recommend a different port on the pixhawk mini?

Based on the docs at:

I tihnki this means joining the following pins:

  • Pixhawk Telem Pin 1 (+5V) to Pin 2 on rx nano (5V in)
  • Pixhawk Telem Pin 6 (GND) to Pin 1 on rx nano (GND)
  • Pixhawk Telem Pin 2 (TX +3.3V) to Pin 3 on rx nano (Ch. Out 2)
  • Pixhawk Telem Pin 3 (RX +3.3V) to Pin 4 on rx nano (Ch. Out 1)
  1. Is this going to be ok to run the radio power from the telemetry port?

  2. If I do the above, do I need to somehow power this RX module up before I connect it to the Pixhawk telemetry port and configure the Out1/Out2 to CSRF TX/RX or is it ok to wait until it is powered from the pixhawk?

  3. Finally, is there anything I need to do on the Pixhawk to configure it to use CSRF on the telemetry1 port or will this just work?

Thanks in advance for any help you can offer.

After connecting it all up, I was going to follow most of the instructions from this video (But not change the CSRF settings to SBUS):

For reference the items I purchased are:

Connect the RX Nano to Telem1 as described and set SERIAL1_PROTOCOL = 23 (RC in).

Power comes from Telem1 port.

1 Like

Great thanks. I appreciate the confirmation. Also I didn’t see the protocol so that will have saved me a bit of time debugging :slight_smile:

So I have wired it all up according to above. I have bound my radio to the receiver, updated the firmware in the receiver, and added telemetry on the radio and can see the radio is getting information correctly from the receiver. The radio says the receiver is configured with:

  • Output1 CRSF TX
  • Output2 CRSF RX

Which are the outputs I wired into the pixhawk telem1 port as per the above diagram. I don’t have anything attached to outputs 3,4,5,6 on the receiver as per the diagram above.

I then connected the pixhawk to mission planner using USB and updated the firmware on the Pixhawk (since it had no config for SERIAL1_PROTOCOL in the old PX4 firmware that was installed), setup the SERIAL1_PROTOCOL=23 using mission planner on the pixhawk. I can verify the sensors for GPS, accel etc on the pixhawk are all working in mission planner but I am getting nothing from the radio I think.

I don’t seem to get inputs from the radio to the Pixhawk (not seen in any motors moving or in calibration from within the mission control).

Is SERIAL1_PROTOCOL=23 RCIN correct or should I be using 29 (Crossfire VTX)?

I am very new to all this. It looks like the transmitter and receiver are connected. I don’t know how to debug/verify that the radio is actually sending signals through the receiver though (this will go on a quad copter but I haven’t configured that yet on the radio or really built the frame yet), and then I also don’t know if there is a way to debug what the pixhawk is actually receiving from the receiver.

In mavlink there dont appear to be any logs available from the pixhawk yet I can look at (I might be looking at the wrong logs).

Any suggestions or info that I can provide that would be helpful (I dont know what I dont know at this point in time)?


Have you created a model in the transmitter with which the first 4 channels are addressed?

Whether something arrives at the FC, you can see under Setup / Mandatory Hardware / Radio Calibration.

SERIAL1_PROTOCOL = 23 is correct, 29 would be for the control of a VTX (Video Transmitter).

Thanks again for the help. I believe that the model is setup correctly in the radio. I have used the template for a quad. Not really modified much.

It has Ali(1), Ele(2), Thr(3), Rud(4) and configured to use external radio.

As I move the sticks the radio shows values for these changing and the channels. Mission planner shows nothing going on in Radio Calibration panel at all. It just isn’t getting signals. I have tried a few things now:

  • Swapping TX/RX lines
  • Changing baud to 115200 instead of 57600 (Some docs they said 115200 baud for mavlink, so assumed maybe the same for CRSF V2)

I might try and just configure mavlink on that uart now instead of CRSF and see what happens. I need to find instructions for enabling rc over mavlink as the official docs have a link that doesn’t work

Is there some way I can debug the serial line from the Nano RX directly?

I just dont know how to get to a point of finding the problem.

I was thinking I have a FTDI cable somewhere I could hook up to the nano RX. But I am not sure what I will be looking for coming in on the serial line and if it is a protocol I will need to do some bi-directional comms to actually make it work.

I was looking a little at: cleanflight/crsf.c at master · cleanflight/cleanflight · GitHub

The docs there say it uses 420000 baud (which is not even one of the options in mission planner as it really is not a normal baud rate I have seen before, closest is 460800).

I am wondering if the next steps are to try and configure it for SBUS instead and see if that works first. Ideally I want to get to mavlink and permit RC over mavlink as this is going to be used on a boat once I actually get it going… But right now just trying to make the quad work out of the box.

Hi Brendon,

Did you get any further with the Crossfire Nano rc connection? I’ve just started setting mine up and appear to be in the same position as you.


I had planned to do more work on this before writing back my results but real-work has got in the way. But yes, I got a little bit further but I am now using RC over Mavlink and it is working instead of CSRF protocol and the next step is for me to work on CSRF again that I know the basics are working.

I contacted TBS support and got some help. But they were setting me up to RC over Mavlink. Which is now working for me I will describe that below for now.

First issue I had was I had wired my tx/rx backwards (I think the diagram above is correct but I messed up the wiring, though did try swapping). I solved this by using the SERIAL1_OPTIONS=8, which indicates to swap TX/RX (only works with certain Ardupilot boards).

Other settings that I needed to change for the Mavlink support were:

  • Baud rate = 115200
  • Serial protocol = 2 (Mavlink2)

They also asked me to update everything. I had already done the Ardupilot to 4.1.0, but I also updated the crossfire tx module to 6.10 (and then the RX module again).

After that I now have RC control and can see it in mission planner but haven’t got around to doing everything else yet.

I hope that is helpful.

I thought I’d add to this thread… Just because I had a similar problem.

I had everything working. Then I had my pixhawk 4 mini reset itself… A known problem apparently. After restarting and upgrading the firmware I lost communication with my crossfire. I spent several days trying to get it to work again… Resets and firmware updates, different receivers… Different firmwares… I was just about to order another pixhawk and thought I’d try one last time to go over the settings…

Now I can’t say for sure… Because I tried alot of things… But I believe it was possibly because I had more than one serial port set to rc in.

Just thought I’d share because it may help someone in the future.

I’m now up and running again and although frustrated… Very very happy :slight_smile:

Hi everyone!

I am currently having the same problem here… After trying everything that got posted on this one, and many other forums, MissionPlanner still won’t recognize my radio when plugged in thru Telem/Serial ports.
Everything works fine when it’s plugged in thru Sbus on RC IN.

I am running out of ideas of what to try next. Does anyone know of any other settings/wiring/etc. that might be the cause?

Thanks in advance!