Connect Any Transmitter to FPV Simulators via Flight Controller

You can use any radio transmitter (TX) to play FPV simulators wirelessly thanks to the latest feature in Betaflight 3.4. All you need is a flight controller and a receiver. I will show you how to set it up in this tutorial.

Check out my other Betaflight tutorials.

Play FPV Sims Wirelessly!

Since Betaflight V3.4, you can turn your flight controller into a joystick (HID device) when you plug it into your computer. With the commands coming in from the radio receiver (RX), you can play FPV simulators without connecting your radio to the computer!

Nice picture i know. It was late at night, this would do for now ;-)

The best part is that it supports all radios, even the ones you couldn’t connect to the computer directly, such as the Flysky i6 or Turnigy 9X.


Another good thing is the wireless connection, you are no longer constrained by the USB cable, and you can finally lay back and play!

You Need an F4 or F7 FC and Radio Receiver

Only F4 and F7 flight controllers support this feature currently. F1 and F3 FC cannot do it because they don’t have enough memory to store the additional code. (This article explains the differences between F1, F3, F4 and F7 FC)

You can also just use your drone for this.

But if you want a dedicated FC and RX setup just for playing simulators, these are the cheapest parts I could find:

Flash Betaflight 3.4 or Newer

Flash the latest Betaflight to your flight controller (3.4 or newer). Check out this guide if you have trouble flashing firmware on FC, it could be a driver issue.

Connect and Setup Receiver

Connect the RX to FC, and set it up in Betaflight as you would normally do for a quad, here is a guide on how to setup SBUS. All RX protocols are supported: PPM, SBUS, PWM, iBUS, DSMX, Crossfire

In this example, I am using the Frsky XM (SBUS) with Kakute F4 V2 AIO FC:

Is the Receiver Powered on?

Some flight controllers don’t power on the RX with USB connection, so you might have to plug in the LiPo battery in order to power the receiver.

If you are doing this on a quad with LiPo connected, it’s best to disconnect your VTX and other components to avoid overheating. And make sure props are removed just in case.


Once you’ve confirmed the RX is working in Receiver tab (channels are responding to the stick movements), you can go the CLI, and enter:

set usb_hid_cdc = on

Select Joystick in Sim

Once it’s setup properly, your flight controller will appear as a joystick, and you can select it in the simulator. You will also need to go through the calibration process for the first time in the simulator.

Turn It Off When You Finish

If you are doing this on a quad, it’s best to turn off USB_HID_CDC before your next flight, just in case.

set usb_hid_cdc = off

Is There Any Latency?

There is no noticeable latency when playing sims through the flight controller.

34 thoughts on “Connect Any Transmitter to FPV Simulators via Flight Controller

  1. Mike

    Hi, thanks for the article!
    I tried this with a Crazybee F4 Pro v2.1 – FS version – and found it just “kind of” works. I have really sluggish response in the Windows USB-Gamepad settings as well as in the sim Liftoff. Stick inputs lag a good second behind.

    Do you how to improve that, or where to look for the problem/possible solutions?

  2. b00zled

    Since you can also use a F1 development board to connect, couldn’t a F3 flight controller be used as long as it didn’t utilize the Betaflight 3.4 feature? I’m guessing someone would have to rewrite the firmware from the dev board to be compatible with the F3 chip, but i’d bet that’s not too difficult.

    I only ask because i’m sure EVERYONE has one or more spare F3 boards laying around now (as I do) that the next generation(s) are so widely used.

  3. Jeroen Coolen

    I enabled the HID in BF on my Matek F 405 ctr. Now BF will not recognize it to reset the HID and fly my quad.
    Please HELP!!

    1. Jeroen Coolen

      Turns out I needed to mess about in Zadig assigning different drivers to my FC.
      Betalfight recognized my fc and I was able to reset the HID settings.

      Happy flying!

    2. Oscar Post author

      Similar issue was raised on Github, see if the suggestions fix your problem:

  4. Dvschafer

    I’m running into problem with the channel order where ch2 is made Pitch and is forced high at center position and no variable control dropping to 0 at down position.
    Compared to running with a wired USB connection where I get:

    Using the FC in USB mode I get:
    2=P not working correctly
    3=No Control assignment

    I’,m playing FPVFreerider using the Frsky XSRF40 (built in RX) with a Taranis X-Lite. I’ve tried all Betaflight 3.4.X builds.
    Anyone have any ideas on whats going on?

  5. jan demant


    I use omnibus f4 v2 pro and xm, works like a charm. Omnibus powers the rx , so no battery needed.

    Ty for tutorial Oscar.

  6. Alan Jones

    Hi Oscar,

    I too, have done the CLI command and now the system doesn’t see my FC.

    My matek F4 show up as other in device manager in Windows7. I assume I just need drivers so it can see the comms port.

    I will try it on ubuntu and see if it detects it.


      1. Hypurr

        Just posted on IntoFPV about this and added a comment to Github on your thread. Ran into the same issue. Here’s my post:

        Found a bug in this feature. Bardwell said I should report it to Github and I found a thread there already on it so I added my experience to it. There is a possible solution but I won’t be able to try it until tonight. Here’s the scenario.

        I used a FPVModel XRacer F4 that runs OBF4 firmware and a XM RX. The FC powers the RX through the USB so no battery is needed. Once I bound the RX and configured the FC I used the usb_hid_cdc command to change the FC to game port mode. It worked perfectly in Velocidrone but once done the PC sees the FC as a game controller and not a comm port, so you can’t reconnect with BF to turn the command off. I had to use the bootloader so I could re-flash the FC to reset it to connect. This wiped out the configuration, of course. Luckily I’m using a dedicated FC without much to configure so no big deal, but if you use one of your quads with a highly configured FC you may lose your settings. I would make a DIFF file before trying this so if it happens to you you can load your settings quickly. I’ll let you know if the solution worked.

  7. Chris Geier

    yeah I cant reconnect to betaflight after playing games all night.. Impulse driver fixer wont recognize my flight controller now.

    1. Alan Jones

      Same issue on Windows 7.

      I have booted up Ubuntu and it recognises the virtual comms port.

      Have grant full permissions I have switch HID off and F.C. is working again.

      Hope this helps

      1. Alan Jones

        I have raised issue on Github,

        driver link is

        It now works on Windows 7, the port changes when HID is enabled.

  8. james brandon stitzel

    Perfect solution for me! I have several old fc’s laying around that won’t fly, but still power up with usb! Grabbed an old f411 mini and an xm, now I can play with no more cables across the living room! AND I can play in my workshop if I stream liftoff to the laptop I have there, but the lag kinda sucks with steam streaming. Going to find another solution for that. But this works great with no noticeable lag just in the game! Thanks Oscar!

  9. Frank

    Hey Oscar,
    after “set usb_hid_cdc = on” + save
    i can use my fc as controller


    i cant anymore connect to betaflight-configurator :-(

    1. Oscar Post author

      I don’t have this issue. Have you accidentally turn off MSP on VCP?
      Try flashing the firmware again and see what happens.

      1. Frank

        Hey Oscar i dont turn anything
        1 Flashed BF 3.4 -> LUX4OSD Target
        set RX2 Receiver
        set usb_hid_cdc = on + save in cli

        maybe a bug ? feature? :-)

    2. Chris Geier

      omg I just did this last night. and now i cant connect back to betaflight. ugh.. did you figure it out?

    3. Jeroen

      Hi I have the same issue, I am running a Matek F405 CTR. Flightcontroller seems to function normal otherwise I also get a readout of my PID and Filters in Lua script. But Betaflight no longer recognizes the FC.
      I also tried using the Impulse RC Driver fixer but it does not see the FC, therefore it does not start fixing stuff.

      Is there any other option other than trying to re-flash my FC with new firmware?

  10. Ryan

    Been a while since I tried this, but Velocidrone had an issue (not sure about other simulators, didn’t get round to trying them) – I think something like the Throttle channel not being used by betaflight by default, and some transmitter channel mixing was needed to get it working properly.
    Did you try Velocidrone? Did you have any issues with missing channels on Windows?

    It was mentioned in the article, but I just want to reiterate for anyone new: probably not a a good idea to use your full quad for this, or if you do, disconnect the VTX so it doesn’t overheat.

    1. Ryan

      I was slightly mistaken, it wasn’t Throttle that was missing on windows, but Yaw:
      Can be made to work with some TX channel fiddling.

  11. Paul

    Hi, great news, I love it. Currently I’m using a similar solution connection my Flysky receiver to an Arduino and use UnoJoy as an controller. But I like this new solution more.
    I wish you could make it available for F1 targets since I have old FCs available which would be perfect for this job. I mean memory is only an issue if I want to go fly AND simulate with the same firmware build. So please just remove all the features I need for a flying a quad.

    1. Kristófer

      Hi Paul
      Can you share the Arduino code, I have a bunch of them lying around and would like to try this


Leave a Reply

Your email address will not be published. Required fields are marked *

For prompt technical support, please use our forum I check blog comments weekly.