FPV Camera Latency Testing

In this FPV camera latency testing I will share my results on over 20 cameras, also my method of testing camera delay. FPV camera lag has impact on a pilot’s reaction time in flight, and it is one of the most important considerations in selecting FPV cameras.

FPV Camera Latency Measurement

I will add more cameras to this list in the future, feel free to bookmark this page.

It’s important to understand the latency of a FPV camera is not constant but constantly changing due to processing and limited frame rate. Consistent latency is just as important as total latency. Even if a camera had low average latency, occasional high delay could affect the overall performance.

Other parts of an FPV system might also introduce latency, for example VTX, VRX, and display. Here is my test on this: 5.8Ghz Analog VTX/VRX latency

This data was taken from the cameras I have, please use these results as reference only.

Values are measured in ms – milliseconds.

Camera Latency (Max) Min Average
Runcam Swift 37.8 17.1 28.5
Runcam Swift Rotor Riot Edition 36.5 16.8 27.0
Runcam Swift 2 31.6 13.7 23.2
Runcam Swift Mini 33.8 14.6 24.0
Runcam Micro Swift 32.9 16.6 27.6
Runcam Eagle 45.5 27.2 36.0
Runcam Eagle 2 33.8 15.2 24.6
Runcam Owl Plus 24.6 8.7 17.6
Runcam Owl 2 25.5 8.1 18.1
Foxeer Arrow V2 37.6 16.4 27.2
PZ0420M 39.9 20.6 30.7
HS1177 28.7 9.6 19.1
Micro Swift 2 34.5 18.8 28.3
Aomway 650TVL CCD 28.7 11.9 21.5
Aomway 700TVL CMOS V2 22.9 5.7 14.4
Runcam Micro Sparrow 24.4 5.4 15.0
Runcam Sparrow 24.2 5.9 14.8
Runcam Eagle 2 Pro 33.6 17.1 25.1
Runcam Nano 23.7 5.6 14.4
Runcam Night Eagle 2 34.7 18.1 26.4

HD Cameras:

Latency (Max) Min Average
Runcam 1 145.6 98.8 122.9
Runcam 2 64.1 26.5 45.2
Runcam 3 50.9 23.1 37.6
Runcam Split (V1, V2) 51.3 23.2 38.0
GoPro Hero 3 Silver 131.5 103.3 116.7
Mobius 137.5 101.0 120.3
808 Key Chain 102.6 53.3 78.8

*HD Cameras are measured during recording.

Method of Testing Camera Latency

I will try to explain everything in simple terms, if you want to discuss further please move over to my forum thread.

Why I use what I use?

Many reviewers online use virtual digital clocks/timer on an iPad or smart phone to measure the latency of a FPV camera or HD camera video out.

It might or might not work. I think it is unreliable because the displays and camera all have relatively low refresh rates, probably not on the same frequency so they are not even in phase. For example if everything runs on 60fps, the result could have an error of up to 16.7ms. This is considered significant as the total latency of the Runcam Swift is only 30ms.

In my testing I try to take as many samples as possible for each camera to get the best possible result. (currently around 500 samples at random intervals for each camera)

fpv camera latency testing

Roughly how everything is connected

How it works

In my testing setup, the FPV camera is connected directly to a LCD display. I put a LED in front of the camera and when it turns on, the display brightness will increase. There is a photo-transistor (or LDR – light dependant resistor) in front of the monitor to detect the brightness changes. The time difference in turning on the LED and detection of the light, would be the latency in the FPV camera.

However the display’s latency might contribute some error in the measurements. Since I am running so many samples at different intervals, the results should be unaffected by phase shifts and very consistent in my testing. This data is useful for comparing which camera has the least latency.

The LED and LDR are both connected to the Arduino UNO micro controller, so we can measure the time very accurately. The LED and LDR has delay as well: LED takes time to turn on (i.e. increase brightness from 0% to 100%), and LDR takes time to detect light. From my measurement, the delay is only around 170us, compared to the delay of FPV camera this is negligible.

I connected the camera to the monitor directly, and not using VTX/VRX to avoid extra latency in the system which will add more uncertainty to the results.

Arduino runs at 10KHz sampling rate.

NTSC and PAL

My assumption was that the video format of camera has an impact on the latency. (Read this about the difference between NTSC and PAL)

NTSC is 30fps while PAL is 25fps, but because they are interlaced (in every frame, odd lines are drawn before even lines), which gives them a real fresh rate of 60fps (16.7ms) and 50fps (20ms) respectively. So in theory NTSC should be 3.3ms faster than PAL.

I want to verify if NTSC is really faster than PAL, and the Eagle is very handy as I can easily change video encoding in the settings. So I tested the Eagle (CMOS) and Eagle 2 (CMOS) under PAL and NTSC setting.

I found:

  • With the Eagle, minimum latency decreases significantly with NTSC, while average latency shows moderate reduction, but there is little to none difference in max latency
  • This is not the case with both cameras though, the latency seems to be the same with both encoding formats in a different camera

So it seems like the FPS difference doesn’t always make a difference in our latency testing. But why it was different with the Eagle in some cases?

I checked with Runcam, and they suggest the difference in latency could be caused by the camera algorithm, which might perform better with one video encoding format than the other.

Camera NTSC/PAL Max Min Average
Eagle NTSC 45.2 17.4 31.8
PAL 45.5 27.2 36.0
Eagle 2 NTSC 33.4 16.8 25.7
PAL 33.8 15.2 24.6

I wanted to test more cameras with NTSC and PAL, but all other cameras i have are PAL and cannot be changed in the setting. In our latency testing, we always try to use PAL whenever possible since that’s what I personally use.

21 thoughts on “FPV Camera Latency Testing

    1. Oscar Post author

      I am happy to test one if Foxeer send one in.
      I asked them about reviewing their cameras a few times before, but they don’t seem to be interested.

      Reply
  1. n00b123

    I like your method but one thing to think about is that the processing done by the camera could be content/image dependent. With a mostly monotone image some processing may be skipped or accelerated. The results might vary with a more representative input signal. No idea how to test this.

    Reply
    1. Oscar Post author

      Just like any other testings done in this hobby, motor testing, antenna testing etc… there are always so many different variables and it’s simple impossible to cover everything. This is not perfect, but I found it to be one of the best methods of testing cameras so far. Though I am open to ideas how to improve the test if you have any.

      Reply
  2. Davide

    Hey, just wanted to link to a method I first talked about a year back: fpv.blue/2016/07/glass-to-glass-video-latency-is-now-below-50-milliseconds

    Reply
  3. Joan Charmant

    Nice setup. Beware of CMOS camera with rolling shutter as this will interfere with your setup.

    There is another approach that has been proposed in the Augmented Reality literature: have a pendulum swinging back and forth in the field of view of the camera. Then using a second camera, film both the pendulum and the screen display.

    Now using a motion tracking method or manually, record the horizontal position of the pendulum: once directly visible, and a second time on the LCD screen. Fit sine waves to the recorded values. As we know the position of the pendulum describes a sine wave. Between the two measurements the amplitudes will be different, but the period will be the same. The phase shift between the two waves will be the latency. This method is supposed to be very accurate and can measure very small latencies independently of the refresh rates because of the sine fit that allow recovering of the missing data.

    Reply
  4. Sergio

    Hello Oscar,
    Really interesting test. I would like to know the latency of HS1177. Do you know it? I would appreciate. Thank you

    Reply
  5. Ryan Hartman

    I’m curious what settings you used for the HD tests? I’ve seen some data that the runcam 2 in 720p120fps mode runs about 25ms of latency. I don’t have the equipment/know how to test this myself, but I feel like I am able to discern a drop in latency perceptually when using 1080P60 vs 710P120. I was hoping that you might be able to shed some light on that, and if the runcam split supports a similar mode, maybe that would be good to see also. My PC monitor is set to 120FPS so recording in 720P120 is an acceptable tradeoff in resolution for higher framerate footage and lower FPV latency, if the difference is actually real :)

    Reply
    1. Oscar Post author

      I run 1080p 60fps or the next best settings on the HD camera while recording.
      I don’t see any point of running low resolution on the HD camera :) for 720p I might as well just record my DVR LOL

      Reply
  6. Mario

    Hi Oscar, great setup and measurements! I hate the limit of 16.66ms we have I measuring latency of the cams.
    Please take a look at my video from today. I tried to take out the lcd of that equation using a osciloscope. Like in your setup i use a led with a switch. I probe this as curve a and probe also the video cable as curve b. On the osci I also literally saw the ntsc frame with.
    youtu.be/Wz36GJC7gd0
    Greets from Austria, Mario

    Reply
  7. Fred

    Would love to see the Foxeer Monster v1 and v2 added to your test!!
    I remember reading that it was known for being on of the fastest camera at the time when I bought the v1.
    Would also be interesting to add the type (ccd vs cmos) of sensors and the size of the sensors in the comparison table

    Keep up the good work !

    Reply
    1. Oscar Post author

      only if someone send me a sample to test :)
      can’t justify spending $40 for a camera just for testing latency.
      At the moment only Runcam is kind enough to send me samples…
      I will work on adding the sensor type soon, thanks for the suggestion!

      Reply
  8. Darren

    Great job. Are you able to add the Connex prosight in HP and HQ modes to this. Would be an interesting comparison

    Reply

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).