No HDZero OSD with ArduPilot (TBS Lucid H7)

Hi everyone,

I’m trying to get HDZero MSP DisplayPort OSD working with ArduPilot (ArduCopter 4.6.0-dev) on a TBS Lucid H7 flight controller, and I’ve hit a wall. The video feed shows up in the goggles, but no OSD overlay ever appears, no matter what I try.


✅ Current Setup:

  • Flight Controller: TBS Lucid H7
  • VTX: HDZero Freestyle V2 (latest firmware)
  • Camera: HDZero MIPI camera (properly seated, good signal)
  • Goggles: EMAX Transporter 2 HD (updated to Rev20250319)
  • Firmware: ArduCopter 4.6.0-dev (a2be43fc)

🔌 Wiring:

  • VTX TX → RX4 on FC
  • VTX RX → TX4 on FC
  • VTX and FC are powered from 4S battery during all tests
  • Video feed appears correctly in goggles (camera is working)
  • Goggles and VTX are on matching frequency

🔧 ArduPilot Parameters:

Parameter Value
SERIAL4_PROTOCOL 42
SERIAL4_BAUD 115
OSD_TYPE 1
OSD1_ENABLE 1
OSD1_TXT_RES 1
MSP_OPTIONS 0
FRAME_CLASS 1
FRAME_TYPE 1
  • OSD layout created in Mission Planner
  • Screen 1 enabled
  • HD layout checkbox enabled in OSD editor
  • Items like Battery Voltage, VTX Power, Flight Mode added
  • Clicked “Write” in OSD tab
  • Rebooted via battery power

❌ What’s Not Working:

  • No OSD overlay appears in the goggles
  • Mission Planner “Messages” tab shows no indication that MSP DisplayPort is initializing
    • No line like OSD: MSP DisplayPort initialized on SERIAL4
  • ArduPilot boots normally and shows Frame: QUAD/X and ArduPilot Ready
  • Camera feed works perfectly — just no overlay

🎥 Reference Video I Followed:

This video was the best resource I could find showing a working setup:
▶️ https://www.youtube.com/watch?v=1YHoG9_Jg6k
The creator recommends OSD_TYPE = 5, but that breaks video entirely on my setup. I’ve also tried OSD_TYPE = 3 — no success. OSD_TYPE = 1 gives video but no overlay.


🧪 What I’ve Verified:

  • Wiring is correct (confirmed TX/RX not flipped)
  • Camera is working
  • VTX and goggles are up to date
  • DisplayPort OSD layout was written correctly
  • Rebooted with battery power every time
  • Tried multiple values for OSD_TYPE
  • Frame class/type was unset at first, but now properly configured

❓Has anyone gotten ArduPilot OSD working with HDZero on a Lucid H7?

I’m open to:

  • Downgrading to ArduCopter 4.4.4 or 4.5.x
  • Trying alternate firmware targets (e.g., CubeOrange)
  • Workarounds or force-init scripts
  • Confirmations that this does or doesn’t work with HDZero + ArduPilot in current dev builds

Thanks in advance — I’ve spent way too many hours on this and would appreciate any insight. Happy to provide logs, screenshots, or try anything.

Try OSD_TYPE2 = 5