Hi all, I've been working on a driver for the OakD ProW POE and I have been dealing with a lot of latency issues. To clarify, by latency I mean the time difference between when the image was captured on device and when we recieve it on the host compute. I've gone through most of the documentation on latency imporvement here.

I'm running the camera a 800P resolution.

My network Configuration looks something like this:

  • OakD ProW PoE -> Switch -> 10Gbps link -> PC

What I have tried so far:

  • Enable/Disable on device encoding: Enabling encoding did reduce latency but there was an increase in the variance of the latency values
  • Reducing fps: Tried both 15 and 10fps. Reducing fps did reduce latency but the random spikes on the latency graph were not eliminated.
  • Changing NIC settings: Based on the ethtool settings here
  • Turning on/off jumbo frames and delayed ack as mentioned under advanced settings: here
  • Changing speed mode to dai::UsbSpeed::SUPER_PLUS
  • Disabling chunking via: pipeline.setXLinkChunkSize(0);

Here's a plot of the latencies I am seeing(10fps vs 15fps):

n

My main concern is the random 100ms spikes in latency, and I am looking to get rid of that

    Hi StephenNinan
    Could you share some repro code of this issue so we can debug this locally? Random latency spikes lead me to believe this could be a network issue, but it's difficult to say without the code.

    Thanks,
    Jaka