> For the complete documentation index, see [llms.txt](https://docs.theseus.us/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.theseus.us/cyclops/autopilot-integration/ardupilot/optional-features/mavlink-osd-with-matek-h743.md).

# MAVLink OSD with Matek H743

A guide for using the Matek H743 in conjunction with a Cube Orange+ to provide an analog OSD

<figure><img src="https://content.gitbook.com/content/hzvlBbeiwnrjdGDAaBcQ/blobs/doG1s0jgXmINIVcOKOPt/mavlink_osd_matek(1).png" alt=""><figcaption></figcaption></figure>

Flashed with a custom ArduPilot build, we can use a Matek flight controller to draw the OSD on an analog video feed using MAVLink telemetry data from a Cube Orange+ rather than its own internal information. We use this internally because the Cube Orange+ does not support this kind of OSD, nor does it have onboard 9V power.

Note that we hook up the VTX control pin to the Cube Orange+ so we can control the VTX power with the RC.

### Custom ArduPilot build

The Matek needs a custom build of ArduPilot to display MAVLink telemetry data on the OSD. The Cube does not need custom firmware.

{% file src="/files/8IDI8cCVNpZw87IfqNDY" %}

Flash your Matek with this build, then configure the parameters as follows:

<table><thead><tr><th width="177">Parameter</th><th width="109.5" align="right">Value</th><th>Purpose</th></tr></thead><tbody><tr><td><code>SYSID_THISMAV</code></td><td align="right"><code>42</code></td><td>Gives the Matek a distinct MAVLink system ID</td></tr><tr><td><code>OSD_TYPE</code></td><td align="right"><code>1</code></td><td>Enables the onboard MAX7456/AT7456 analog OSD</td></tr><tr><td><code>OSD_REM_ENABLE</code></td><td align="right"><code>1</code></td><td>Enables remote MAVLink telemetry for OSD panels</td></tr><tr><td><code>OSD_REM_SYSID</code></td><td align="right"><code>1</code></td><td>Accepts telemetry from the Cube's MAVLink system ID</td></tr><tr><td><code>OSD_REM_TOUT</code></td><td align="right"><code>1500</code></td><td>Marks remote telemetry stale after 1500ms</td></tr><tr><td><code>SERIAL5_PROTOCOL</code></td><td align="right"><code>2</code></td><td>Enables MAVLink2 on the Matek <code>TX8/RX8</code> port</td></tr><tr><td><code>SERIAL5_BAUD</code></td><td align="right"><code>57</code></td><td>Sets the Matek <code>TX8/RX8</code> port to 57600 baud</td></tr></tbody></table>

Reboot the Matek after changing the parameters. You may use any serial port. I used TX8/RX8.

### Cube Orange+ params

These params need to be changed on the Cube for this to work. You can use any two serial ports on the Cube, but you do need two separate serial ports, one sending telemetry data to the Matek and one to control the VTX.

<table><thead><tr><th width="183">Parameter</th><th width="180.5" align="right">Value</th><th>Purpose</th></tr></thead><tbody><tr><td><code>SERIAL2_PROTOCOL</code></td><td align="right"><code>2</code></td><td>MAVLink2 output on Cube <code>TELEM2</code></td></tr><tr><td><code>SERIAL2_BAUD</code></td><td align="right"><code>57</code></td><td>57600 baud to match the Matek</td></tr></tbody></table>

Set the Cube stream rates for the telemetry port wired to the Matek. For `TELEM2`, use:

<table><thead><tr><th width="179">Parameter</th><th width="184.5" align="right">Value</th><th>Purpose</th></tr></thead><tbody><tr><td><code>SR2_EXT_STAT</code></td><td align="right"><code>5</code></td><td>Sends battery and system-status data</td></tr><tr><td><code>SR2_EXTRA1</code></td><td align="right"><code>10</code></td><td>Sends attitude and flight display data</td></tr><tr><td><code>SR2_EXTRA2</code></td><td align="right"><code>5</code></td><td>Sends additional flight telemetry</td></tr><tr><td><code>SR2_POSITION</code></td><td align="right"><code>5</code></td><td>Sends global position and altitude data</td></tr><tr><td><code>SR2_RAW_SENS</code></td><td align="right"><code>2</code></td><td>Sends GPS/sensor status data</td></tr></tbody></table>

Lastly, ensure the Cube is set up for VTX on:

<table><thead><tr><th width="176">Parameter</th><th width="187" align="right">Value</th><th>Purpose</th></tr></thead><tbody><tr><td><code>SERIAL3_PROTOCOL</code></td><td align="right"><code>37</code></td><td>Configure GPS1 serial UART to control the VTX</td></tr><tr><td><code>VTX_ENABLE</code></td><td align="right"><code>1</code></td><td>Enable VTX control from the Cube</td></tr><tr><td><code>RCx_OPTION</code></td><td align="right"><code>94</code></td><td>Map VTX control to an RC channel</td></tr></tbody></table>

You may need to also configure `VTX_POWER` and `VTX_MAX_POWER` to allow for correct power switching.
