OSD’s have come a long way since where I started with the MinimOSD. They have added features and streamlined some of the interface but the problem with it was the inability to easily change a setting other than by the limited menu via stick commands or having to hook it up to a serial to USB adapter. This was a major headache most people did not want to deal with and so OSD’s seemed to be a feature most didn’t want to bother with.
As of BetaFlight 2.4.2 a feature has been added called SerialPassthrough and this allows your flight controller to act as a bridge to anything you have connected to a UART on your flight controller. Ben Timby submitted a pull request after testing it on a modified version of BetaFlight. For those with a Micro MinimOSD or MinimOSD that means you can access and change the setting on the OSD via the USB port on the flight controller. Now you can’t flash or update the firmware through this feature as that still requires an Arduino or USB Serial programmer but usually that’s a one time thing you do before you install it anyway.
Here’s how to do it (text version below video):
It’s actually very straight forward and simple once you understand what it’s doing. You have 2 or 3 UART’s typically depending on the board. UART is short for Universal Asynchronous Receiver/Transmitter (wikipedia) but basically for our use is a serial port with RX and TX pins or pads. It’s what our flight controller uses to communicate to devices you connect (for example USB, SBUS, SmartPort Telemetry, OSD’s, GPS, etc). What this new feature enables is it allows your built in USB to Serial adapter that you use on your flight controller to connect to things connected on the UART ports on the board using serial communication. Basically you send a command through the USB com port and it mirrors it on a UART that you specify with the command.
A few caveat’s you must know before doing this:
- UART 1 is typically reserved for the USB so if you have connected anything you want to access on that UART this will not work
- Depending on your setup you may need to power the device you are trying to connect to access it. In my case I had to plug the battery in to give voltage to the Micro MinimOSD I had installed.
Here’s how you do it:
- Connect your flight controller to the USB on your computer.
- Open Cleanflight and connect to the flight controller while noting the com port it’s using.
- Goto the Ports tab and verify what UART you’ve connected your device to.
- Goto the CLI tab and type the following: serialpassthrough (port) (baud) NOTE: Betaflight labels serial ports starting from 0 not 1 yet most flight controllers label UART’s starting with 1. So when selecting your serial port you’ll typically take whatever the UART number is and subtract 1 to get the serial port it’s asking for.
- Example: You have your MinimOSD connected to UART2 that you want to connect to you’ll need to type: serialpassthrough 1 11500
- Power up the device you are trying to connect to if it’s not already
- You will see what looks like random characters start scrolling under the command you ran if it’s working properly.
- Disconnect and close cleanflight but leave all the connections as they are.
- Open up your software you use to configure it. In my case it was MwOSD GUI.
- Select the port you noted in cleanflight being used to connect to your flight controller and connect.
- You should have read/write access now to the device.
- When you’re done all you need to do is reset the flight controller via reset button or unplugging USB and battery. This will remove the serialpassthrough so you can once again access it via cleanflight.
I have only tested this with Micro MinimOSD and the original MinimOSD but as I understand it it will work with anything connected to the UART that supports programming through the RX/TX pins like GPS.
You can find me on slack in FPVChat if you have any questions under the username drkavnger99.