TR EN
All projects

Use the DJI Phantom 4 Pro controller as a PC joystick

Connect your DJI Phantom 4 Pro remote controller to a Windows PC with a micro-USB cable and it shows up as an Xbox controller you can fly with in Liftoff, Velocidrone, DRL, Uncrashed and other drone simulators and games. Free and easy to set up.

  • Python
  • pyserial
  • vgamepad
  • ViGEmBus
  • PyInstaller
  • Windows

If you own a DJI Phantom 4 Pro, the best drone simulator controller is probably already in your drawer. This small program connects the Phantom 4 Pro remote controller to your computer over USB and lets you use it in Windows as a game controller (joystick). Fly drone and FPV simulators, or play any other game with controller support, using the sticks of your real remote.

Download

DJI-Gamepad.zip (~8 MB, free). It contains four files:

  • DJI-Gamepad.exe: the program itself. No Python installation needed.
  • ViGEmBusSetup_x64.msi: the virtual Xbox controller driver (ViGEmBus by Nefarius Software Solutions). Installed once.
  • OKUBENI.txt: setup and troubleshooting notes (in Turkish; the same steps are on this page).
  • ViGEmBus-LICENSE.txt: the license of the ViGEmBus driver (BSD 3-Clause).

Works on 64-bit Windows 10 and Windows 11 only. Source code and releases are on GitHub: CanSandelAtasoy/dji-phantom-4-pro-pc-joystick (MIT license).

Setup (once)

  1. Extract the zip file to a folder.
  2. Run ViGEmBusSetup_x64.msi and install it (it asks for administrator approval).
  3. Restart your computer.

Every time you play

  1. Turn on the controller (short press on the power button, then press and hold).
  2. Connect the controller to your computer through the micro-USB port on the bottom. Windows installs the driver by itself; the controller appears in Device Manager as “USB Serial Device (COMx)”. No DJI Assistant or other driver is needed.
  3. Run DJI-Gamepad.exe. It finds the controller on its own. When you move the sticks, the LH / LV / RH / RV values on screen should change.
  4. Start your game. Keep the DJI-Gamepad window open while you play.
Bottom of the DJI Phantom 4 Pro remote controller: USB-A port and the micro-USB port that connects to the PC
Bottom of the remote: connect it to your computer through the small micro-USB port on the right (the larger port on the left is for the tablet/phone).

Game settings

DJI Phantom 4 Pro remote controller from the front: two control sticks and tablet holder
Left stick: throttle and yaw · Right stick: pitch and roll

Pick “DJI PHANTOM 4 PRO” from the game’s controller list and calibrate the axes. Some games list it as “Xbox 360 Controller” or “XInput Controller”; it is the same controller.

RemoteIn game
Left stick vertical / horizontalThrottle / Yaw (left analog stick)
Right stick vertical / horizontalPitch / Roll (right analog stick)
Gimbal wheelLT / RT triggers

If an axis works the wrong way round, flip it with “Invert” in the game’s settings. It works with Liftoff, Velocidrone, DRL Simulator, Uncrashed and other games that support XInput (Xbox) controllers.

How it works

When plugged into USB, the Phantom 4 Pro remote shows up on the computer as a serial (COM) port. The program asks it for the stick positions dozens of times per second using DJI’s own communication protocol (DUML), converts the values to a −1 to +1 range and feeds them into a virtual Xbox 360 controller created with the ViGEmBus driver. Games behave as if a real Xbox controller were plugged in. Nothing is written to the remote: its settings and firmware stay unchanged, and you can keep using it to fly your drone.

Frequently asked questions

Does the DJI Phantom 4 Pro controller work as a PC joystick? Not on its own: Windows recognizes the remote as a serial port, not as a game controller. This program does the translation and turns the remote into an Xbox controller that games recognize.

Does the drone need to be on? No. Only the remote controller needs to be on and connected to the computer via USB.

It says “DJI kumandası bulunamadı” (DJI controller not found). Make sure the remote is turned on. Some micro-USB cables only charge and do not carry data; try another cable or another USB port.

It says “Sanal kumanda oluşturulamadı” (virtual controller could not be created). The ViGEmBus driver is not installed. The program opens the installer itself; install it and restart your computer.

Windows Defender / SmartScreen shows a warning. This is normal because the program is an unsigned, home-made tool: “More info” › “Run anyway”.

Does it work with other DJI controllers? It was tested with the Phantom 4 Pro remote controller. It has not been tested with other DJI models.