Hardware:
- Flight controller: DAKE FPV H743, running official ArduPlane 4.6.3
- Companion device: ESP32-C3 connected via UART (TX=GPIO4, RX=GPIO3) at 57600 baud
- DJI O4 PRO OSD
Goal:
Send temperature and humidity readings from the ESP32 to the FC over MAVLink, and display them as numeric values in OSD.
What I tried:
-
SCALED_PRESSURE2 — Sent temperature via the
temperaturefield (cdegC) with SYS_ID=1. Data arrives correctly in MAVLink Inspector butpress_temp2stays 0 in the status tab. TriedBARO_PROBE_EXT=1and rebooting, no effect. -
NAMED_VALUE_FLOAT — Sends fine and is visible in MAVLink Inspector under the correct vehicle. Does not appear in the status tab. Would need a Lua script on the FC to push values into SCR_USER1/2, but…
-
Lua scripting —
SCR_ENABLE=1is set and the parameter exists. However MAVLink FTP is completely non-functional on this board — every operation (list, mkdir, put) fails with error [10], including listing root/. No SD card slot and no USB mass storage mode, so there is no known way to upload a Lua script. -
BATTERY_STATUS (BATT2) — Sent battery status message with temperature field populated, visible in MAVLink Inspector.
BATT2_MONITORhas no MAVLink input option (option list goes up to 32, no MAVLink entry). -
STATUSTEXT — Values appear in Mission Planner Messages tab and in the HUD when using MAV_SEVERITY_CRITICAL. However the OSD only displays one-time system messages (e.g. “Chip full”), not the repeating STATUSTEXT from the ESP32.
Core question:
Is there any MAVLink message type that ArduPilot 4.6.3 will natively accept from a companion device (non-autopilot SYS_ID or same SYS_ID) and expose as a numeric value in the status tab and OSD, without requiring Lua scripting or SD card access?
Also: is there a known fix for MAVLink FTP failing completely on H743 boards with internal flash? If FTP worked we could upload Lua and use SCR_USER1/2 which seems like the right solution.