Controls
Who may read or command an entity is decided by the account’s role and grants; see Access. This page is about what happens once you may.
Observation and approval
Section titled “Observation and approval”A newly discovered entity may require approval before it becomes available. Approval sets the identity shown in Terminal. It does not change the provider’s control authority.
An observe-only aircraft can publish telemetry and video. Mainframe refuses ordinary flight commands and control leases for it. Some provider-declared lifecycle commands, such as native stream management, can remain available in observation mode.
Exclusive control
Section titled “Exclusive control”Continuous flight control uses a lease so two operators cannot steer an aircraft at the same time. Acquire control through the available controls, check the displayed owner/readiness, and release it when finished. Losing a lease or connection stops the authority associated with it; continuous inputs also have a deadman timeout.
Manual control can pause Mainframe’s mission tasking. Follow the displayed tasking state when handing the aircraft back. Available controls depend on hardware support and the module’s policy; do not infer readiness from an enabled-looking panel alone.
The Control panel
Section titled “The Control panel”Open it from Panels or from a drone’s menu. The toolbar shows the lease state (FREE, HOLDING, HELD BY someone, OBSERVE ONLY) and which local input is driving the aircraft: PAD (on-screen sticks), KEYS or USB with the controller’s name. Under the commands, a DRC … line reports the device control session as the provider sees it whenever the device supports explicit engagement; DRC READY is the state in which sticks reach the aircraft.
Commands are Take control / Release control, Engage / Disengage where supported, then Launch, RTB, Hold, Resume and Land (airborne only, when the device supports it) and Drop. Launch, Land and Drop ask for confirmation. A disabled button shows the provider’s reason on hover. The readout below the instruments prints exactly what is being sent (sticks x y h w, gimbal rate, zoom rate) and the active limits, so a wrong direction or a stuck input is visible before the aircraft shows it.
Gimbal and zoom are rates everywhere. The Horizon, −45°, Down and Center yaw buttons are one-shot presets; next to them a tilt slider and a zoom slider spring back to centre when released, and the further they are dragged the faster the camera tilts (up to 30°/s at 1×) or the zoom changes. The provider slows the tilt as the zoom grows, so the picture pans at about the same on-screen speed at every focal length. The 1× button sets the zoom to 1× directly; it is also the way out when the camera has not reported a zoom factor yet, because the zoom slider needs a starting factor and the provider refuses it otherwise. If a camera input is refused, the reason appears under the sliders while you hold the lease.
Send callsign here (map right-click) flies to the clicked point at the aircraft’s current height above takeoff. The Autel controller raises any fly-to height below 20 m to 20 m, so an aircraft hovering low climbs to 20 m first; the Events panel records the height actually commanded.
Keyboard: every key is an action, listed and rebound in Terminal → Settings → Keyboard; entries computed from data (aircraft, layouts, pin names, chat groups) are rows like any other, and a held action (Peek Tabs) acts while its key is down and lets go on key up, on a window blur or tab switch, on Esc and on a keymap change. Flight keys fly the aircraft of the visible Control panel whose lease you hold; the status bar shows KEYS ▸ callsign while they are armed, and the panel no longer needs focus or a click. Esc stops every local input and releases control only while an input is active; otherwise it closes what is open, leaves review, or clears the selection. P works anywhere in Terminal and captures the selected aircraft’s current frame (see Captures under Alerts, rules, and analysis). Held flight keys ramp up to the stick authority over the time set in Settings → General (1 second by default) and ramp back down on release, so a tap nudges instead of jerking; the loop sends one neutral frame once the ramp reaches zero. Typing in any text field never flies the aircraft.
Controller settings
Section titled “Controller settings”Terminal → Settings… (⌘,) has a General section (appearance, attitude indicator colours, keyboard ramp) and a Controller section that binds a USB gamepad. Bindings are locked while you hold a control lease: rebind on the ground, never in flight. A non-standard device such as a radio starts with no flight axes bound. First ignore any channel that moves on its own (tilt or motion sensors) by clicking it in the monitor. Then, for each function, press Listen and sweep one control through its travel; Terminal offers the channel it saw, shows its live value, and binds only when you press Bind. Flight axes accept only joystick axes, and any channel that only reported 0 or 1 is refused. Check the sign next to each row (forward, right, up and clockwise must read positive) and toggle invert where it does not. Zoom and gimbal tilt are both rate axes: a centred control sends nothing and a held deflection zooms or tilts for as long as it is held, so bind them to controls that spring back to centre (a dial left off-centre keeps tilting until it is centred). Any channel can back any function: radios in joystick mode report channels above eight as analog buttons, and Listen captures those too. Switch positions and buttons bind to actions by name (the gimbal presets, Capture frame, lens and zoom steps, Arm payload, Drop payload, the pins named in Settings → General, Peek Tabs, Hold, Return to base, Stop local inputs); press Listen and move the switch to the position that should fire, so a three-position switch can carry all three presets. The list comes from the same registry as the palette and the keymap, so an entry that appears later (a pin name, a chat group, a voice room) is bindable as soon as it exists, and a button bound to an entry that is not present right now is kept as not present until it returns. A button bound to a held action (Peek Tabs, Talk in <room>) acts while the button is down: it lets go on the band exit, and also the moment the pad disconnects, the mapping changes or the Control panel closes, so a held action never outlives its input. Pad buttons need the control lease with one exception: the voice functions (Join, Leave, Mute, Deafen, Talk in a room, Talk in Every Room) run without a lease, so a pilot waiting on the ground still talks; a lease that lapses releases every other held button and keeps a talk button held. A DualSense uses its fixed layout: D-pad up runs Capture frame, Share and Options arm and drop, the face buttons add the first four pins.
Stick authority scales the provider’s stick limits for every local source, including the keyboard and on-screen sticks; start low for a first flight. Deadzone and expo shape the response. The monitor at the bottom shows the raw values the browser reports. Settings live in this browser only; a controller is accepted in flight only after it has been neutral once, and only for the aircraft the flight keys are armed on (a visible Control panel whose lease you hold).
When an action is refused
Section titled “When an action is refused”Read the reason shown by the command. Common causes include missing access, an observed (read-only) aircraft, an unsupported command, an offline provider, another operator’s lease, or replay mode. The Events panel shows command outcomes. Avoid retrying repeatedly without understanding the state; an accepted request and a completed physical action are different stages.
Auto-operator uses its own principal and has an additional provider/serial filter. In staging that filter covers only the virtual SIM-STG-* fleet, regardless of a real aircraft’s callsign or battery level.