What is new

Drone Horizon recognises a radio by what it is, not by its name:

  • the EdgeTX / OpenTX USB identity, shared by RadioMaster, Jumper, BetaFPV and FrSky radios running EdgeTX; or
  • its capabilities: a joystick-class device with four or more analog axes and no gamepad face buttons. That also covers ExpressLRS Bluetooth joysticks and flight-sim sticks.

A gamepad is never mistaken for a radio, and Android's virtual devices are ignored.

The game also assumes no channel order. AETR, TAER and custom mixes all work, because the guided setup learns each stick from your movement.

Before you plug in (EdgeTX)

  1. Use a USB data cable, plus an OTG adapter if your phone needs one. Charge-only cables do not work.
  2. On the radio: SYS → Radio setup → USB mode: Joystick, or Ask and choose Joystick each time. Not Storage or Serial.
  3. In the model you use for the sim: Model setup → USB Joystick → Mode: Classic. Classic sends channels 1–8 as eight axes and the rest as buttons.
  4. Turn the radio's RF off for simulator use: Internal RF and External RF set to OFF.
  5. Plug the radio into the phone. If Android asks which app should open it, choose Drone Horizon.

Run the guided setup

Open Settings → Controller → Guided radio setup. It is also on the Setup tab of the controller settings. Then follow the prompts:

  1. Prepare: centre roll, pitch and yaw, put the throttle fully down, press Start.
  2. Roll: push the stick fully right, then fully left, then let it centre.
  3. Pitch: push it fully up, then fully down, then let it centre.
  4. Yaw: fully right, then fully left, then centre.
  5. Throttle: fully up, then fully down, and leave it down. The game detects whether your throttle springs back to centre.
  6. Review: watch the live bars. Raw axes appear on top and the calibrated flight channels below. Invert anything that moves the wrong way, set the centre dead zone, then Save.

The prompts describe Mode 2 sticks. On another stick mode, move whichever stick controls the named axis; the setup detects what you move. It needs full two-sided travel, so a lazy half push is not accepted.

What the game does with your radio

  • Dead zone without smoothing. The centre dead zone removes jitter but does not add delay, so stick response stays direct.
  • Your flight mode's throttle is respected. A manual-throttle mode uses the full stick range, and assisted modes keep their centre-hold behaviour. Saving a setup does not change flight physics.
  • The first connection does not take over. You activate the controller deliberately before it flies anything.
  • Touch never overrides an active radio. On-screen sticks only apply when no physical controller is active.
  • Unplugging pauses the flight and clears stale stick values. Reconnecting restores your saved setup, but asks for a fresh activation.

Radio diagnostics

Settings → Controller → Connections → Radio diagnostics shows what Android reports:

  • the detected device and how it was recognised;
  • every axis, with raw and calibrated values;
  • the current bindings.

You can save a report to share with support.

If nothing appears, try another data cable, check OTG support, and confirm the radio shows Joystick mode. If sticks are still missing, EdgeTX's Advanced USB joystick mode can present the radio as a gamepad. Apply that setting, then unplug and replug, because Android reads the new layout only on reconnect. Then run the guided setup again.

Bluetooth and Wi-Fi are separate

  • Bluetooth: some ESP32-based ExpressLRS transmitter modules offer BLE Joystick in the ExpressLRS Lua script. Pair "ELRS Joystick" in Android Bluetooth settings, then run the same guided setup.
  • Wi-Fi: this is a separate ExpressLRS Wi-Fi joystick connection. See RadioMaster & wireless.

USB stays the most reliable option.

What was tested

The full flow was verified by replaying a RadioMaster Pocket's Android input events through the game:

  • recognition and guided setup;
  • a non-centring throttle and an AETR layout with reversed rudder;
  • unplug, reconnect and app restart.

A deliberately broken build failed those checks, which shows they catch real mistakes. A physical radio has not yet completed acceptance testing. If yours misbehaves, send us a diagnostics report.