Jump to content

Recommended Posts

FPV Video Calibration Tool: DiY -- Low Cost -- EZ to use.

The signal level (amplitude) of a FPV system's vTx / vRx composite video matters a lot. Unfortunately many are incorrectly adjusted out of the box. There's a number of reasons for this -- marginal designs, poor manufacturing QA, compatibility problems due to brand mixing by end users, cheap component drift, and just plain bad luck.

Hold on you say! You are convinced that your system's video is fine. But perhaps that's wishful thinking. Here's the cold hard reality -- Many FPV systems have marginal video levels and this invites problems that are often blamed on other things. For example, the random "weak signal" blackouts we all hate are not always directly RF signal related. Poorly calibrated video levels will contribute to those random blackouts too. Plus a host of other image quality problems (e.g., image tearing, poor brightness / contrast, random sync, color loss, etc.) that are simply victims of marginal video levels.

Checking the composite video signal normally requires an oscope (oscilloscope). Ideally a test pattern generator is also used to provide the 1Vpp standard video signal that is measured with the oscope. Not many hobbyist have access to this equipment or know how to correctly perform the measurements.

So I experimented with video level testing using simpler tools than a oscope. My goal was to have something that worked well, but was cheap and simple to use. After a bit of head banging a clever DiY solution was born. How does ~$20 USD and a couple hours work sound to you? Yes, really.

Here's what my DiY FPV Calibration Tool looks like.

Full_Assy1_1000.jpg

 

Spoiler alert: Inside the small 3D printed plastic box is a $8 eBay circuit board and a 9V battery. To calibrate a FPV system you'll need two of them. Both boxes will use identical hardware but with different firmware. Oh you guessed it, Arduino is involved.

Come back soon. I'll show you how to build and use it. Your FPV system will thank you. The world will be a better place.

 

Share this post


Link to post
Share on other sites

The magic behind the Video Cal Tool relies on our eyes' ability to easily see relative differences in brightness during a side-by-side comparison. The basic test setup is as follows:

(1) A monochrome video overlay board provides an image reference (comparison) target pattern on the FPV display (goggles or monitor). It is directly connected between the FPV vRx's Vid-Out jack and the display.
(2) A second video overlay board provides a mating target pattern. It is directly connected to the video input of the FPV vTx (the FPV camera is removed).

The picture-in-picture formatted setup allows the vTx's pattern to be superimposed on the vRx's reference pattern. The mating target sets will have matching brightness when the FPV system's video level is properly calibrated. To account for the display's dynamic range and/or gamma behavior, one target set has 80% luminance and the other has 120%.

Here is the vTx test pattern:

Vid_Cal_vTx2_600.jpg


Here is the VRx reference pattern:

Vid_Cal_vRx_600.jpg

 

Ok, so that's what the vTx source and reference vRx targets look like. But now you're asking, how do you use them to measure the video signal's level (amplitude)? Answer: Your eyes are the "measuring" equipment. When I say using the tool is EZ, I mean it!

During the test the T-target pattern fills the empty inside area on the R-target. Properly calibrated video level appears on your display monitor as shown below.

Vid_Cal_targets_600.jpg


But if the two interlocking patterns do not blend together (brightness not the same) then the FPV system's video level is incorrect. Here's two examples:

Vid_Cal_bad1_600.jpgVid_Cal_bad2_600.jpg


What do you do when the brightness does not match? Fortunately this problem can be fixed on most analog 900MHz / 1.3GHz /  2.4GHz FPV video systems since they usually have an adjustable video level POT (variable resistor) in the vTx or vRx. Unfortunately modern 5.8GHz systems don't provide a calibration POT, so if the test fails you will be out of luck. But at least you will know that your 5.8GHz system has a video level problem.
 



Here's a short video that shows how to use the Video Cal Tool:

Share this post


Link to post
Share on other sites

So it's time to gather the parts to build this cool tool. As mentioned before, you need two video target pattern generators; One for the FPV vTx and another for the vRx. The target patterns are provided by low cost Arduino based FPV OSD boards.

Here's the Parts List:
2 pcs, MinimOSD (KV Team version recommended). Approx $8 USD each on eBay and AliExpress.

minimOSD_pcb2_600.jpg


To flash the custom firmware you'll need one (1) of these:
FTDI FT232RL USB to TTL Serial Converter (6-Pin version) for Arduino. Approx $3 on eBay and AliExpress.

FTDI_usb1_600.jpg

 

Keep in mind that there are several similar looking Chinese clones of the MinimOSD on the market. I recommend the "full size" board that has the KV Team Mod (built-in voltage attenuation resistors). Here is what the KV Team version looks like:

minimOSD_pcb1_800.jpg

How to tell the difference in board versions: The KV Team version will have the JP6 8-Pin header area (8 empty solder pads across the top). See photo above.

Useful Info:It's important that both OSD's have identical video signal characteristics. Therefore, I recommend that you purchase both boards at the same time from the same supplier. This should reduce the chance of any component variations that might cause unmatched video levels.

You can use your existing 7-12VDC FPV batteries (3S LiPO is fine) to power the boards. No other components need to be purchased. But if you want a power switch, A/V connectors (I used RCA phono chassis panel jacks), or plastic enclosure, then feel free to add these things to the shopping list.

Although you can simply protect your OSD board with some heatshrink or duct tape, the 3D printed plastic case gives it a professional appearance. Here's the STL files for it.
  Case Base: case_base1.stl
  Case Top: case_top1.stl
  Case Hole Plug: case_plug1.stl
Printing recommendations: ABS filament, 35% infill, 3 layer shell, 101% size scaling (shrinkage correction).

plastic_case1_1000.jpg

 

There's room for a mini toggle power switch, Alkaline 9V battery, and RCA panel jacks. The "Case Hole Plug" file is a small piece that covers an unused RCA mounting hole on the vTx pattern generator (Vid-In is not needed on the vTx side).

Here's how everything fits inside my vRx target generator:

Full_Assy2_1000.jpg

 

The vTx target generator is built the same, but has only one RCA jack.

Vid_Cal_System1_1000.jpg

Share this post


Link to post
Share on other sites

Assembling the vTx and vRx video generators requires basic soldering skills. And in case I have not been clear, there are two (2) MinimOSD's used in this project.

First you need to connect some ground and power pads that are on the two MinimOSD boards. Just add a blob of solder across the pads shown below (Grounding pads on bottom side, SJ2 pads on component side). Some suppliers have already done this for you, but if the pads are not bridged then you must do it.

solder_blob_gnd_1_1000.jpgsolder_blob_SJ2_1_1000.jpg

 

The new firmware (to be flashed later) includes an optional battery voltage monitor feature. This requires adding a jumper wire, as shown below.

bat_jmpr1_1000.jpg

 

If your MinimOSDs are the old/original version (not "KV Team") then the voltage monitor feature will require adding some 1% 1/8W resistors, as shown below.

minimOSD_atten1_700.jpg

 

Each boards' Power and Video connections are available on the stacked 3-Pin headers. The pins are labeled on the bottom of the MinimOSD board. The vTx OSD only uses VOut and +12V power pins. The vRx OSD needs VOut, VIn, and +12V. I used 3-pin servo plugs to connect the MinimOSD boards, but direct soldering can be used instead.

wiring_bot1_1000.jpg

The video connectors you use are up to you. I installed RCA phono panel jacks and made some simple adapter cables that connect them to the FPV system. How you do this is your choice. As a reminder, the vTx's MinimOSD does NOT use the VID-IN signal, so be sure to omit it.

 

Share this post


Link to post
Share on other sites

The existing Arduino firmware on both MinimOSD's needs to be reflashed with a new set of sketch files. The internet is full of How-To's that explain the flashing process, so I won't repeat the details here. If you are new to Arduino then be prepared to watch some YouTube videos and/or visit some web sites.

Note: This Arduino project will compile without any errors on Arduino IDE Version 1.8.1. To avoid compile failure frustrations I suggest you use this version too. In the Arduino Tools menu choose these two settings before flashing the MinimOSD boards: 
  Board: Arduino Pro or Pro Mini
  Processor: ATmega328 (5V, 16MHz)

1. Assuming you already have the Arduino IDE installed on your PC, begin by downloading the project's zipped firmware file set.

      Version 1.0 (dated Mar-25-2017):   Vid_Cal.zip

2. Unzip the files in a Arduino working directory named Vid_Cal.

3. Next, open the Config.h file for editing and go to the User Configurable Parameters section. 

4. You'll need to configure the video mode (NTSC / PAL). Edit the text to look like this:

To Select NTSC Video format:

#define VIDEO_MODE   VID_NTSC           // Video mode is NTSC
//#define VIDEO_MODE   VID_PAL          // Video mode is PAL

To Select PAL Video format:

//#define VIDEO_MODE   VID_NTSC           // Video mode is NTSC
#define VIDEO_MODE   VID_PAL          // Video mode is PAL

 

5. Because you will be flashing two different MinimOSD boards (vRx / vTx), you must specify which target type to load on each board. Configure as follows:

To Select the vRx targets:

//#define TARGET  TARGET_VTX
#define TARGET  TARGET_VRX

To Select the vTx targets:

#define TARGET  TARGET_VTX
//#define TARGET  TARGET_VRX

In summary, select the video type (VID_NTSC or VID_PAL) and enable TARGET_VRX before flashing your vRx MinimOSD board. Then re-edit the config.h and enable TARGET_VTX before flashing your vTx MinimOSD board.


6. Set your FTDI board's 3.3V / 5V jumper to the 5V position. This voltage will be used to power the MinimOSD boards during Flashing.

ftdi_setup1_1000.jpg

 

7. With battery power off, proceed to flash each board using the Arduino IDE's Upload button. Reminder: Be sure to configure the vTx/vRx target choice (see step 5) before each flashing.
 

Share this post


Link to post
Share on other sites

It is important that your two MinimOSD based target generators have identical video characteristics. Sloppy component tolerances and manufacturing mistakes will ruin the Video Cal Tool's effectiveness. Fortunately it's easy to test the target generators to confirm they are OK. Do not use the Video Cal Tool until you have successfully passed this test!

techtalk2_100.jpgPerform this special evaluation test while indoors; Do not test outdoors because the strong ambient light can wash out the display too much. Use a high quality monitor with large screen (mine is a 23" LCD TV/Monitor that lives on my workbench).


The MinimOSDs' evaluation test is quick & easy. Follow these three steps:

STEP 1. Connect the vTx generator's VID-OUT to the VID-IN of the vRx generator. Connect the VID-OUT of the vRx generator directly to the monitor.

Like this:

calibration_setup1_1000.jpg

STEP 2. Turn on the target generators. Within 5 secs you should see the image below:

Vid_Cal_targets_600.jpg

 

STEP 3: While reviewing the R & T target symbols, vary the monitor's contrast and brightness controls. The test is a PASS if the targets remain a perfect match at all settings. Repair or replace the MinimOSD boards if the R & T targets do not have matching video levels (FAIL).

 

Share this post


Link to post
Share on other sites

After confirming that everything is working OK you can put your new tool to use.

Here's an example that shows a 900MHz video transmitter connected to the vTx generator:

setup_vtx1_1000.jpg

 

Here's an example of the video receiver and LCD monitor connected to the vRx generator:

setup_vrx1_1000.jpg

 

After everything is connected together you can power up the FPV gear and check the video level.

Share this post


Link to post
Share on other sites

If the video level needs calibration then you'll have to carefully review the vTx (or vRx) and locate the component that does it. For example, the 900MHz vTx shown above has a video level calibration POT (adjustable resistor) that is accessible from a small hole. See close-up photo below.

setup_vtx2_1000.jpg

Hopefully your 900MHz, 1.3GHz, or 2.4GHz vTx has an obvious Video Cal POT too. If you don't see an access hole then you'll have to dig in and open up its metal case. If you find that your vTx does not have a Video POT then check the vRx for one.

BTW, do not use a conductive screwdriver to adjust the POT through the hole in the metal case. Use a plastic (non-conductive) screwdriver instead.

Some tips:

  1. It is important to correctly identify the video level POT -- Do not touch any other adjustments in the vTx or vRx! For example, there may be a variable cap for antenna matching. Sometimes there's a variable cap and/or inductor for calibrating the audio subcarrier. Do not touch these!
     
  2. The video level can be affected by the antennas that are installed. So always re-calibrate the video level if you change antennas.
     
  3. The video level can be affected by the RF channel that is chosen. So always re-calibrate the video level if you change the FPV system's frequency setting.
     
  4. 5.8GHz FPV systems rarely have a video level adjustment. But unfortunately some have incorrect video levels that cause poor performance. No need to suffer needlessly, you can use this tool to reject those with bad video levels. Either return the offenders to the supplier or use them as a fancy paperweight.

 

Share this post


Link to post
Share on other sites

Final Words: Properly calibrated video levels will help improve a FPV system's performance. If you build the Video Cal Tool then please come back and share your experience using it.

Share this post


Link to post
Share on other sites

Hi Thomas, I just wanted to thank you for this project. I've made one up for myself, and it works great!

I grabbed two board from RTFQ (KV-Team modded ones), but I don't have access to a 3D printer so I put the boards together and made some simple cables to adapting them for my needs. I simply soldered all the pins as standard, added the jumper wire for the voltage sensor on both boards, then soldered a JST power lead to the back of the 12V and GND pins. After a bit of glue for a strain relief on the power leads, I shrink wrapped the board with clear wrap, so I could see the LEDs and also the marking on the boards. (I maked them Tx and Rx, so as not to confuse them later) On the Tx board, I left both pins for video in and out, in case I ever re-purpose the boards later. On the unused video in pins, I just covered the pins in colored tubing, makes a nice reference when I plug in a cable to the other set of pins. ;)

To test the boards after flashing the firmware, I simply used a male-male servo lead and plugged from the output of the TX board to the input of the RX board. This also carried power between both board so they were both powered by one small 2-cell lipo. They matched up well and passed fine to me, at least to my eyes. Test pattern shown below...

When using them to test my video transmitters, I simply plug in a transmitter to the Tx board. (all my transmitters are wired with servo plugs, so it worked out perfect!) I power the test board with a 3S lipo, which also powered the transmitter plugged into it. On the Rx board I made two of the adapters like the one in the picture, RCA type to servo connector. It goes inline between the video receiver and my monitor. This board is powered by another small lipo, separate from the power for my receiver/monitor. 

So far I've tested 6 video transmitters. All of them 1.2/1.3GHz ranging from 200mW up to 1500mW, from various sources. (US FPV shops, Chinese resellers, etc.) Only ONE of them was set correctly "out of the box", coincidentally, it's the one transmitter that's always seemed to give me the nicest video and audio. We're onto something here! lol It's worth noting that the 200mW transmitters I have do not have a pot for setting the video levels. Both of them are close, but not perfect. I have 300, 400, 800, and 1500mW transmitters that DO have pots in them. The 1500mW (Gold cased "budget" transmitter from RMRC) was the only transmitter that didn't need to be tweaked. 

As far as my receivers, I have two tan cased "Racewood" type. One from your store (DPCAV), and one from RMRC when Tim was selling those. I remember a note on your store saying that your transmitters and receivers are checked and verified before shipping, so I used that receiver as my starting point. I checked all the transmitters using that receiver. Once I was finished setting them all, I tested them again with the other receiver from RMRC. All of them were still good to go, so I'm guessing the receivers are matched up well. I use them both on a diversity setup, so that's good to know.

I'm looking forward to flying some of these again soon to see how much better my video looks, if any. I've had less than perfect video from some of these planes with these receivers in them. I suspect they will be better now. Thanks again!

It's also interesting to note, look how much the voltage varies between the two boards. (8.1V vs 8.4V) They were both powered off the same 2S lipo for that test. It was showing 8.4V on my meter.

 

vidcal2.jpg

vidcal1.jpg

Share this post


Link to post
Share on other sites

Thanks for the detailed report, I appreciate it. Your shrink-wrapped construction is great for this project. Fast and easy!

BTW, I'm not surprised to hear that your 1.2/1.3GHz vTx's had video levels that were out-of-spec and needed to be adjusted. This issue has been ignored by everyone (even old FPV pro's don't want to believe how widespread it is).  But accurate video levels make the FPV link more robust, so ignoring the problem has been the wrong thing to do.

You can fix the low voltage reading (8.1V vs 8.4V) on your Receive Target tool by editing the voltage divider constants (R1,R2) found in the Config.h file. My best guess is that changing the R2 define value to 15500.0 might do it, but tweak as needed until the voltage display is correct.
Example: Edit Line 45 in Config.h as follows -
  #define R2  15500.0

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×