One role per device

Hardware Center groups every device by the one job it does:

  • Controllers fly the simulator, or act as pilot input in Real Flight.
  • Real aircraft connect in Real Flight.
  • Cameras only show video.

Open it from Real Flight → Hardware Center.

Ordinary gamepads and RC transmitters are set up in the controller screens: see guided radio setup and the controller guides. This page covers the extra hardware.

Pair a Wi-Fi controller

You can build a Wi-Fi controller with an ESP32 board and the firmware examples below. Pairing makes every packet it sends authenticated:

  1. Hardware Center → Pair new Wi-Fi controller. The game shows a 64-character pairing key.
  2. Copy the key into the sketch's DH_PAIRING_KEY and set your Wi-Fi name, password and the phone's IP address. Then flash the board.
  3. Open the controller settings → Connections tab. Enter the board's IP address in the custom Wi-Fi field and choose Listen for custom Wi-Fi. Then activate it like any controller.

The game sends a fresh challenge every session. The board answers only after it receives that challenge. Every packet carries an HMAC-SHA256 tag, so a replayed or forged packet is ignored.

Only paired boards can be pilot input for a real aircraft. Unpaired (v1) Wi-Fi boards still work, but only in the simulator. Replace pairing key issues a new key and locks out the old board; Forget pairing removes pairing altogether.

USB serial boards (Arduino UNO / Mega)

Boards without native USB gamepad support can send stick data over USB serial using the documented DHS1 frame format. It is read-only: the game never writes to the board.

  1. Flash the UNO example sketch and connect the board to the phone with a USB-OTG adapter.
  2. Hardware Center → USB serial boards → pick the board and grant USB permission.
  3. Opening the port resets an UNO. It announces itself after it boots.
  4. Then map, calibrate and activate it like any controller.

Only boards with a CDC-ACM USB chip work today: genuine UNO R3 (16U2), Leonardo and ESP32-S3. Clones that use CH340, CP210x or FTDI chips are listed but cannot be opened yet.

Firmware kits

The game's source ships four example controllers. Each one is compile-tested with pinned board packages. The UNO sketch also passed a host protocol test against the game's decoder. None has yet been flashed to a board and flown.

Example Board Connection
UNO DHS1 controller Arduino UNO R3 / Mega 2560 USB serial (DHS1), 50 Hz
Leonardo gamepad Arduino Leonardo / Micro USB HID gamepad
ESP32-S3 gamepad ESP32-S3-DevKitC-1 USB HID gamepad
ESP32 Wi-Fi controller ESP32 / ESP32-C3 Wi-Fi, paired and authenticated

Wiring basics:

  • ESP32 boards are 3.3 V. Power the sticks from 3V3, never 5 V.
  • On a classic ESP32 with Wi-Fi on, use the ADC1 pins (GPIO32–39).
  • Use 10 kΩ potentiometer sticks, with buttons wired to GND.

Video sources

Source What it is Notes
DJI camera DJI aircraft through the Mobile SDK Supported DJI aircraft only
RTSP H.264 Raspberry Pi camera served by MediaMTX Played with Android's Media3 player; TCP option for lossy Wi-Fi
MJPEG ESP32-CAM or IP camera, e.g. http://192.168.4.1:81/stream Fine on the bench; latency not measured
Goggles only Analog and HD digital FPV (DJI O3/O4, Walksnail, HDZero) Stays in your goggles; the console shows telemetry only

The console warns when video has stalled for more than half a second.

Raspberry Pi companion

For a PX4 or ArduPilot aircraft, a Raspberry Pi 4 or Zero 2 W with a Camera Module 3 can carry both telemetry and video:

  • mavlink-router reads the flight controller's TELEM UART and serves MAVLink on UDP 14550.
  • MediaMTX serves the camera as hardware-encoded H.264 RTSP at 1280×720, 30 fps.

In My Real Drone:

  • set Connection to MAVLink;
  • enter the Pi as the vehicle address, because the router waits for the phone to speak first;
  • set Video to RTSP with rtsp://<pi-address>:8554/cam.

The Pi only relays telemetry and video. It is not a control gateway. The install script is written and syntax-checked but has not yet been run on a Raspberry Pi. A Pi 5 has no hardware H.264 encoder, so measure latency before you rely on it.