Skip to content

OSD overlay limited to 1920x1080 — cannot center or scale for resolutions above 1080p #98

@AlexBusko

Description

@AlexBusko

When running msposd on SSC338Q with video resolution higher than 1920x1080 (e.g. 3840x2160), the hardware overlay region is always capped at 1920x1080. The OSD does not scale to fill the full video frame and appears offset rather than centered.

Hardware / Software

  • SoC: SSC338Q
  • msposd version: 63499fe8-dirty, compiled 20260213_112114
  • Video config: size: 3840x2160 in /etc/majestic.yaml or even 1920x1080
  • Flight controller: ArduPilot (ArduCopter), MSP DisplayPort
  • Ground station: QGroundControl (no built-in OSD position editor like Mission Planner, so OSD element positioning is done via OSD1_* parameters manually)

Steps to reproduce

msposd --master /dev/ttyS2 --baudrate 115200 --osd -r 20 --ahi 1 -v -x 0 -z 3840x2160

Log output

Loading /usr/share/fonts/font.png for 3840x2160
Glyph size: 36:54 on a 53:20 matrix. Overlay: 1800x1000
Glyph size: 36:54 on a 53:20 matrix. Overlay: 1920x1080
Create_region PixelFormat:3 Size: 1920:1080 X_Offset:960 Y_Offset:0 results: 0

Despite requesting -z 3840x2160, the actual overlay is created as 1920x1080. X_Offset is calculated as (3840-1920)/2 = 960, but the OSD still does not appear centered on screen. Y_Offset remains 0 instead of expected (2160-1080)/2 = 540.

Current workaround

Using an artificially inflated -z value to shift the overlay position:

msposd --master /dev/ttyS2 --baudrate 115200 --osd -r 20 --ahi 1 -v -x 1 -z 2760x1980

This roughly centers the OSD but does not properly scale it — elements remain rendered within 1920x1080 bounds. Since QGroundControl lacks a visual OSD grid editor (unlike Mission Planner), adjusting individual element positions to compensate is cumbersome and does not fix the AHI (Artificial Horizon) placement, which is rendered by msposd directly.

Expected behavior

Either:

  1. Support overlay regions larger than 1920x1080 on SSC338Q (if RGN hardware supports it), or
  2. Properly center the 1920x1080 overlay both horizontally and vertically when video resolution exceeds overlay size (correct Y_Offset calculation).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions