Connect Any Transmitter to FPV Simulators via Flight Controller

You can use any radio transmitter (TX) wirelessly with FPV simulators such as AccuRC, Liftoff, Velocidrone and DRL thanks to the latest feature in Betaflight 3.4. I will show you how to set it up in this tutorial.

Check out my other Betaflight tutorials.

Why Setup Flight Controller as Joystick

Betaflight 3.4 can turn your flight controller into a joystick (HID device) when you plug in the USB cable. With the commands coming in from the radio receiver (RX), you can play FPV simulators with it!

The best part is that you can now use any transmitter you want for the simulators, even if they don’t have a USB port. For example the cheap old Flysky i6 or Turnigy 9X! Access to sims is not an excuse to buy a Taranis anymore.

Another good thing is the wireless connection, you are no longer constrained by the USB cable when playing.

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

You need F4 or F7 FC and RX

Only F4 and F7 FC support this feature currently. It’s not supported in F1 and F3 FC because they don’t have enough memory to store the additional codes. (This article digs much deeper into the differences between F3, F4 and F7 FC)

You can set it up on one of your quads. But if you want a dedicated FC and RX setup just for playing simulators, these are the cheapest ones I can find:

You can even recycle broken FC :)

Flash Betaflight 3.4

Flash Betaflight 3.4 on your FC. Because 3.4 is not yet an official release, you need to download the firmware file and load it from local in the configurator’s firmware flasher: https://github.com/betaflight/betaflight/releases

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 LiPo battery 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.

Enable USB_HID_CDC in CLI

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
save

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.

Turn it off before flying

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

set usb_hid_cdc = off
save

Is there any delay or problem?

I feel like the delay is about the same as connecting the Taranis via USB. I really can’t tell the difference. But I do randomly get a glitch (disconnection) like once every 10 minutes. Not a biggie though it usually comes back within a second.

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

  1. 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:
    1=T
    2=Y
    3=P
    4=R,

    Using the FC in USB mode I get:
    1=Y
    2=P not working correctly
    3=No Control assignment
    4=R
    5=T

    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?

    Reply
  2. jan demant

    Excellent.

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

    Ty for tutorial Oscar.

    Reply
  3. 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.

    Cheers
    Al

    Reply
      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.

  4. Chris Geier

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

    Reply
    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

      Reply
      1. Alan Jones

        I have raised issue on Github, github.com/betaflight/betaflight/issues/6179

        driver link is zippyshare.com/v/2YhFKOJT/file.html

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

  5. 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!

    Reply
  6. Frank

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

    BUT

    i cant anymore connect to betaflight-configurator :-(

    Reply
    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.

      Reply
      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?

      Reply
  7. 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.

    Reply
    1. Ryan

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

      Reply
  8. 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.

    Reply
    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

      Reply

Leave a Reply

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

Are you Robot? *

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