diff --git a/src/main/io/displayport_msp.c b/src/main/io/displayport_msp.c index 533ea4fb01..72c7272588 100644 --- a/src/main/io/displayport_msp.c +++ b/src/main/io/displayport_msp.c @@ -54,7 +54,9 @@ static int heartbeat(displayPort_t *displayPort) { uint8_t subcmd[] = { 0 }; - // ensure display is not released by MW OSD software + // heartbeat is used to: + // a) ensure display is not released by MW OSD software + // b) prevent OSD Slave boards from displaying a 'disconnected' status. return output(displayPort, MSP_DISPLAYPORT, subcmd, sizeof(subcmd)); } diff --git a/src/main/io/osd.c b/src/main/io/osd.c index 3bf11238d4..c0c2b1b361 100644 --- a/src/main/io/osd.c +++ b/src/main/io/osd.c @@ -846,6 +846,7 @@ static void osdRefresh(timeUs_t currentTimeUs) resumeRefreshAt = 0; } + displayHeartbeat(osdDisplayPort); return; } else { displayClearScreen(osdDisplayPort); @@ -859,7 +860,7 @@ static void osdRefresh(timeUs_t currentTimeUs) if (!displayIsGrabbed(osdDisplayPort)) { osdUpdateAlarms(); osdDrawElements(); - displayHeartbeat(osdDisplayPort); // heartbeat to stop Minim OSD going back into native mode + displayHeartbeat(osdDisplayPort); #ifdef OSD_CALLS_CMS } else { cmsUpdate(currentTimeUs);