Skip to content

OSD Tool

Ruben M edited this page Jul 17, 2026 · 1 revision

OSD Tool

The OSD Tool is ArduDeck's on-screen-display workbench: one visual canvas that reads, edits, and uploads flight-controller OSD layouts, builds a fully custom ground-rendered HUD, and authors RubyFPV OSD ground OSD layouts. All three preview over your real live video feed, so what you see is what you fly.

Location: OSD Tool (in the left navigation rail)

Three modes, three destinations

The mode switch at the top selects what you are editing, and the coloured destination bar under it always tells you where the layout will end up:

Mode Who draws it Where it lives How it gets there
HUD ArduDeck Your screen, over the video Nothing is uploaded - it is a ground-rendered overlay
Text OSD Flight controller In the FC (ArduPilot / Betaflight / iNav) Written to the FC over MAVLink or MSP
RubyFPV RubyFPV On the RubyFPV ground unit Exported as an osd: block for the board (see RubyFPV OSD)

The rule of thumb: a fully custom graphical HUD is always ground-rendered. A flight-controller OSD is a character grid with fixed elements, so it can be arranged but not redrawn.

HUD mode: a custom ground-rendered HUD

HUD mode composes the overlay ArduDeck itself draws over live video (in the camera panel and OSD previews). Every readout is a widget you can toggle and drag anywhere on the canvas: speed, altitude, attitude, battery, GPS, link quality, and more. Because ArduDeck renders it on the ground, the HUD is not limited to a character grid: it can draw a real artificial horizon and rich gauges that no flight-controller OSD can.

There are two HUD arrangements, one for aircraft and one for ground and surface vehicles (big speed box, steering, waypoint distance, crosstrack). ArduDeck picks the right one from the vehicle type automatically.

Nothing in HUD mode is uploaded to the flight controller; the destination bar makes that explicit.

Text OSD mode: the flight controller's OSD

Text OSD mode is a real editor for the OSD your flight controller renders (analog MAX7456 boards and digital goggles fed by the FC).

ArduPilot:

  • Load from FC reads the current layout from the OSDn_* parameters.
  • Drag elements on the canvas, toggle them in the element browser, then Upload layout writes the changed parameters back.
  • Multi-screen support: ArduDeck detects how many OSD screens the board has (up to 4) and edits each on its own tab.
  • Upload font flashes a MAX7456 character font to analog boards.

Betaflight and iNav: the layout is read and written over MSP, with the same canvas workflow.

Element positions preview on PAL, NTSC, or HD grids with selectable fonts, so the canvas matches what the goggles will show.

RubyFPV mode

RubyFPV mode authors the OSD that RubyFPV draws on its ground unit: per-screen element toggles across five screens, layout presets, and an Export OSD block that produces the osd: section for the board's model file. The full workflow, including how RubyFPV's toggle-based OSD differs from a drag-and-drop canvas, is on the RubyFPV OSD page.

Live video backdrop

All three modes preview over live video. The backdrop shares its camera configuration with the telemetry screen's Vision panel, so whatever source you fly with (RTSP, SRT, UVC, wfb-ng, and so on) is the same picture behind the OSD editor. Without a configured feed the preview falls back to a synthetic backdrop, and a Configure video feed shortcut sets one up.

Data source and presets

  • Preview with demo data (animated values, no vehicle needed) or live telemetry from the connected vehicle.
  • Save any layout as a named preset and load it back later, per mode.

See also

  • RubyFPV OSD - authoring the RubyFPV ground unit's OSD in detail
  • Companion Board - the Agent used to manage ground-side Linux boards

Clone this wiki locally