From c59e8aefda6bd22dc7ec3085041f6364af31b14e Mon Sep 17 00:00:00 2001 From: Hermes Date: Mon, 28 Sep 2026 11:00:58 +0200 Subject: [PATCH] hilink: retry MSP VTX table after FC handshake --- .../0001-wifilink-mspvtx-read-only.patch | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/package/msposd/0001-wifilink-mspvtx-read-only.patch b/package/msposd/0001-wifilink-mspvtx-read-only.patch index 96441df..371d5c9 100644 --- a/package/msposd/0001-wifilink-mspvtx-read-only.patch +++ b/package/msposd/0001-wifilink-mspvtx-read-only.patch @@ -1,12 +1,28 @@ diff --git a/osd.c b/osd.c -index a8b756e..eefb4d6 100644 +index a8b756e..701e989 100644 --- a/osd.c +++ b/osd.c -@@ -960,48 +960,16 @@ static void rx_msp_callback(msp_msg_t *msp_message) { +@@ -190,6 +190,7 @@ extern bool vtxMenuActive; + extern bool vtxMenuEnabled; + extern bool armed; + extern bool vtxInitDone; ++static bool mspVtxTableResentAfterFcTraffic; + extern bool DrawOSD; + + // SRT/OSD +@@ -960,48 +961,24 @@ static void rx_msp_callback(msp_msg_t *msp_message) { } case MSP_GET_VTX_CONFIG: { - if (vtxInitDone) { ++ // The FC starts publishing its VTX state only after its MSP descriptor is ++ // active. Re-send our table once at that boundary: the boot-time burst can ++ // otherwise precede FC UART/MSP initialization. ++ if (vtxInitDone && !mspVtxTableResentAfterFcTraffic) { ++ msp_set_vtx_config(serial_fd); ++ mspVtxTableResentAfterFcTraffic = true; ++ } ++ + if (vtxInitDone && verbose) { mspVtxConfigStruct *in_mspVtxConfigStruct = (mspVtxConfigStruct *)msp_message->payload; - uint16_t frequency =