Betaflight: Flight-controller as Joystick

Betaflight has a mode in which a flight controller can be used as an input device on your computer. This mode basically makes every radio transmitter a simulator compatible radio - even if you can normally not plug it in via USB to your computer. This feature is called HID Joystick Support.

But even if you have a radio that is capable of being used as an input device via USB, you might still prefer to use it wireless from the comfort of your couch for example.

The only things you need is a flight controller with a receiver attached. I wanted to try this for a quite some time (this feature has been in Betaflight for years now), but did not want to sacrifice a perfectly working flight controller and receiver. But I was “lucky” - the last time I went out I managed to break one of my AIO boards in such a way, that it only damaged the OSD chip, so I don’t get a proper image out of that AIO, but everything else is working as it should. The best thing: it even has an onboard SPI receiver, so the perfect board to use as an input device.

Obviously you can also use an AIO board with blown fets - as long as the receiver works

Alternatively you can also use one of your “normal” quadcopters, just make sure that the receiver is powered from USB when plugged in, and the VTX is not. You will also have to remember to disable HID mode once you are done.

Hardware and Drivers

This will only work with F4 flight-controllers and up, so unfortunately you cannot use your F3 flight-controller that you might have lying around. Drivers in Windows 10, Linux and Android will automatically detect your HID joystick. For Windows 7 you might need an additional driver.

In Linux the device will be available under /dev/input/jsN where N is the number of the joystick - if it is the only available joystick, it will be /dev/input/js0.

This might also work on your iPhone and consoles, but I cannot tell for sure, since I do not own any of them - in case you try, please leave a comment and I will add according information here.

Betaflight Setup

There is a couple of things that need to be setup in Betaflight in order for this to work.

  1. If you have an AIO flight-controller with VTX built in - make sure to put it in pit mode, otherwise you are just burning energy with the video transmission that you do not need at all. Most of those boards also allow you to disable video transmission by removing a component from the board - this is the case with the CrazybeeX board, that I am using here.

  2. Make sure that your radio is bound to your receiver and that the bars in the receiver tab all move according to stick input.

  3. Enable HID mode via the Betaflight CLI by running:
    set usb_hid_cdc = ON
    save
    
  4. If you have a dedicated FC and receiver the last step is not necessary - just unplug your flight-controller from USB until the next time. Should you use one of your regular rigs, you want to disable HID Joystick mode after you are done:
    set usb_hid_cdc = OFF
    save
    

Modes

Keep in mind, that modes might interfere with your controls. Your sticks might not do anything if for example your arm switch is in the wrong position. I highly recommend disabling all modes if you have a dedicated flight-controller.

If you use one of your rigs, just keep switch position in mind if something should not be working as you would expect it?

Simulator Setup

The last step left is to set the flight controller up from within the simulator. Since the fight controller now behaves like a regular joystick, setup is as you would expect it, but will differ from simulator to simulator.

Latency

I can personally not feel any difference in latency when compared to it being directly wired via USB. Technically the latency should be higher - simply because there are more components between transmitter and final receiver. Final receiver in this case being the simulator.

Advertising
Advertising

Conclusion

HID Joystick mode is a great feature in Betaflight, making any radio transmitter a Simulator compatible one. This way you could even use the radio of the EMAX Tinyhawk RTF kit to practice on your simulator.

If you have a broken AIO board, where for example one of the FET’s is broken, this is something you might want to re-purpose it for.

Chris is a Vienna based software developer. In his spare time he enjoys reviewing tech gear, ripping quads of all sizes and making stuff.

Learn more about Chris, the gear he uses and follow him on social media:

Also check out

Betaflight CLI bind

Betaflight CLI bind

Betaflight CLI

Betaflight CLI
Show more comments