Skip to main content

Virtual Stick Control

Virtual Stick Control lets you fly the drone manually from your computer using a keyboard or a physical game controller, without needing a physical DJI remote. It is useful for inspections, repositioning, and test flights when an RC is not available.


What Virtual Stick Does

When Virtual Stick is enabled the dashboard sends continuous velocity commands to the aircraft over MQTT using the DJI MSDK virtual stick API. The drone responds as if being flown by a real remote controller, subject to the speed and altitude limits set on the device.

warning

Virtual Stick requires a stable, low-latency connection. Do not use it in high-latency network conditions. Ensure a failsafe action is configured before enabling Virtual Stick so the drone can recover if the connection drops mid-flight.


Supported Input Devices

ControllerHow It Connects
KeyboardNo hardware needed — uses your computer keyboard
XboxXbox One or Series X/S via USB or Bluetooth
ThrustMasterThrustMaster T.16000M joystick via USB
DJI FPVDJI FPV Remote Controller via USB

Physical controllers (Xbox, ThrustMaster, DJI FPV) are auto-detected when plugged in. The dashboard reads the gamepad ID from the browser and selects the correct input mapping automatically.


Enabling Virtual Stick

  1. Ensure the drone is airborne and connected.
  2. Open the Virtual Stick / Controller panel from the sidebar or control bar.
  3. Select your input device from the controller dropdown if it was not auto-detected.
  4. Toggle Virtual Stick on. The drone is now under your manual control.

To disable, toggle Virtual Stick off. The drone transitions back to hover mode. If you triggered Virtual Stick from an E-Stop action (Take Manual Control), disabling it returns command authority to the dashboard.

Virtual stick control


Keyboard Controls

When Keyboard is selected as the controller, the following keys are active whenever Virtual Stick is enabled:

Flight Controls

KeyAction
WFly forward (pitch forward)
SFly backward (pitch backward)
AFly left (roll left)
DFly right (roll right)
QRotate left (yaw counter-clockwise)
ERotate right (yaw clockwise)
ShiftIncrease altitude (throttle up)
SpaceDecrease altitude (throttle down)

Gimbal Controls

KeyAction
Arrow UpTilt gimbal up
Arrow DownTilt gimbal down
Arrow LeftPan gimbal left
Arrow RightPan gimbal right

Long-Press Actions

Hold the following keys for at least 0.5 seconds to send these commands:

Key (hold)Action
KReturn to dock (sends GOTODOCKINGSTATION command)
LLand at current position

Releasing the key before 0.5 seconds cancels the command.


Gimbal Controls (All Controllers)

Gimbal tilt and pan are controlled by the keyboard arrow keys (see above) or by equivalent sticks/axes on gamepad controllers. Dashboard gimbal controls can also be toggled on or off independently of Virtual Stick using the Use Dashboard Gimbal Controls setting.


Camera Controls

Camera functions (take photo, toggle camera mode, adjust zoom) are available from the controller panel buttons when Virtual Stick is active. These use the MQTT camera control commands sent to the connected aircraft.


Keyboard Layout

Virtual stick — keyboard layout

Xbox Controller Layout

Virtual stick — Xbox controller layout

ThrustMaster Layout

Virtual stick — ThrustMaster layout

DJI FPV Layout

Virtual stick — DJI FPV layout


Notes and Limitations

  • Keyboard Virtual Stick is disabled automatically if an active waypoint mission is running (the mission takes priority).
  • Gamepad auto-detection requires a browser that supports the Gamepad API (Chrome and Edge are recommended).
  • If a connected gamepad is not recognised, select the controller type manually from the dropdown.
  • Keyboard control speed increments are fixed. Speed scaling behaviour varies by aircraft model.