Skip to content

OSD elements orphaned when underlying hardware set to NONE; configurator hides them but firmware keeps rendering #2639

Description

@jeremykoerber

Summary

When pitot_hardware is changed from a non-NONE value (e.g. VIRTUAL) to NONE while a pitot-dependent OSD element (Air Speed) is enabled, the element becomes orphaned: the configurator hides it from both the toggle list and the preview canvas, but the firmware continues rendering it on the live OSD output. There is no GUI path to disable the element once it's hidden.

Environment

  • Configurator 9.0.1
  • Firmware 9.0.1 / COREWINGF405WINGV2 (commit d44f2cf6)
  • DJI O4 Lite Air Unit + DJI Goggles 3, osd_video_system = DJI_NATIVE
  • Fixed wing, no physical pitot

Reproduction

  1. set pitot_hardware = VIRTUAL, save
  2. OSD tab: enable Air Speed, save
  3. set pitot_hardware = NONE, save
  4. OSD tab: Air Speed is no longer present in the toggle list (not filterable, not findable) and is not drawn in the preview canvas
  5. Live OSD on the goggles continues to render Air Speed, displaying 0 with the warning indicator

Possible fix ideas

  1. Render guard in firmware: skip OSD elements whose required hardware is NONE, irrespective of enable state.
  2. Configurator: auto-disable hardware-dependent elements on hardware transition to NONE.
  3. Configurator: keep the element visible but greyed out when its hardware is NONE, with the toggle still operable.

Scope

Likely not pitot-specific. Likely affects any OSD element with a disable-able hardware dependency (ESC telemetry, rangefinder, current sensor, etc.).

Metadata

Metadata

Assignees

Labels

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions