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.

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.