FPV Camera Control using UART

Camera Control is a great feature that allows you to change FPV camera settings including brightness and contrast. It replaces the need for a joystick controller that you need to connect to the back of an FPV camera. Now you are given another camera control option via UART rather than the OSD pin.

Further Reading:

I compiled the specifications of all FPV cameras for mini quad in this spreadsheet so you can compare them more closely.

The Different Ways of Camera Control

On Runcam’s latest Micro Swift 3 FPV camera, they replaced the OSD pin with UART pins which allow you to connect the camera directly to the FC. So that you can access the camera setting menu using your TX sticks.

This is a  different way of camera control, and you might wonder, is it better than “Camera Control” using the OSD pin on the camera we previously found out? Well, yes and no.

The downsides of using OSD pin for camera control are:

  • It has very strict hardware requirement, you need a resistor and possibly a capacitor too for it to work
  • The software setup is relatively complex, you need to find a spare pin and remap it for camera control in the CLI

By using a UART for camera control, you can forget all that! Simply connect the camera TX and RX to a spare UART on the flight controller, without any additional hardware, and there is only one setting you need to enable in Betaflight! That’s it.

With the OSD pin, the commands are basically simple PWM pulses. Using UART as the new camera control method, we can send more complicated commands and data and there might be some other cooler stuff we can do with it.

However, it’s not perfect. The downsides of using UART for camera control are:

  • It takes up a precious UART – though it’s not a problem if you have spare
  • It’s compatible with all of Runcam’s FPV cameras except the Eagle 1 and Nano, however it might not work for cameras of other brands, we will need to find out and confirm on a later date
  • Only a few flight controller firmware support this feature

DAC for OSD pin?

I was told that in the future you can use the DAC pin on the FC to connect the OSD pin to without any resistor and capacitor.

But so far I haven’t heard any update on that, now Betaflight 3.3 is out, the soonest we can expect it is probably in BF 3.4 which is at least 3-4 months away, so it looks like UART is the way to go for now if you don’t want to DIY.

Requirement and Connection

You will need to flash the latest Betaflight 3.3 or newer firmware to your flight controller with a spare UART (both TX and RX, none inverted).

Other firmware that supports this feature are:

  • ButterFlight 3.4 or above
  • Cleanflight 2.2
  • KISS (WIP)

You will also need a latest FPV camera that comes with the UART connection on the back (such as the Micro Swift 3).

You can hook up the camera to the FC directly, TX to RX and RX to TX.

If you have an “older” FPV camera with OSD and GND pin, you can use an adapter to convert the OSD pin to UART!

However you do need to power the adapter with 5V from the flight controller.

Software Setup

In Betaflight Configurator‘s Ports tab, you only need to select “Runcam Device” in “Peripherals” under the UART you’ve connected to the FPV camera to.

Stick Commands

To access the camera setting menu using your radio transmitter sticks, and navigate through the menu, please following this stick command diagram.

Leave a Reply

Your email address will not be published. Required fields are marked *

Are you Robot? *

I only check blog comments once or twice a week, if you want a quick reply you can post your question on this forum IntoFPV.com... You might get a faster response from me there (multirotor related only).