Arducam IMX519 autofocus camera driver installation error and blurry 120fps recording on Jetson Xavier

Hi, I’m trying to install the driver for the Arducam B0371 16MP IMX519 autofocus camera on a Jetson Xavier and the install keeps failing. I’ve attached a screenshot of the error. The Xavier uses a third-party carrier board. Is there any workaround for this?

Thanks for the screenshot. The IMX519 driver is developed against the official NVIDIA carrier board, so a third-party carrier board is the likely cause of that install error. We don’t really provide extra support for third-party carrier boards, and I don’t have a workaround for it. If you can, try the same camera on an official carrier board to confirm the driver installs cleanly there.

Understood. One more question — can the IMX477 record at a faster fps than the IMX519? As far as I know, the IMX519 can record max 120 fps at 1280x720.

No, the IMX477 won’t record faster than that. The IMX519 tops out around 120 fps at 1280x720. Check the IMX477 video mode table for its supported modes, but it doesn’t exceed that.

Okay. I set the IMX519 to 120 fps, but the actual framerate I’m seeing is around 112 fps. Is that normal or am I configuring something wrong?

That’s expected if you’re previewing and recording at the same time. You lose a small part of the framerate, which is why you’re seeing ~112 fps instead of the configured 120 fps.

Got it. Another problem — the recorded video looks blurry. This is the 16MP IMX519 autofocus module, so I thought it would be sharp out of the box. Do I need to focus it somehow?

Yes, the blur is a focus issue. Even with the autofocus module, you still need to focus it. You can do that manually or automatically using the focus example repo: GitHub - ArduCAM/Jetson_IMX519_Focus_Example · GitHub. Run through that and the image should clear up.

Thanks, I’ll try that. Another thing — I can’t end a recording manually unless I set the numbuffers property. I read that an EOF sequence has to be set, but I’m not sure how to do that. Is there a recommended way to stop recording manually?

We don’t have an official EOF-based manual stop procedure for the Jetson platform. Instead, refer to the demo code in the repository and modify it to fit your recording requirement. That’s the suggested approach rather than trying to set an EOF sequence.

Understood. Also, I can’t use two different cameras with different drivers at the same time (imx219 and imx519). The marketplace says the Nano is compatible with both imx219 and imx519, so I assumed I could run both. I tried connecting each to a different CSI port and recording both at once, but it fails.

Running two cameras that need different drivers simultaneously isn’t something we’ve validated. The compatibility note means each camera works with the Nano individually, not that they can be driven together with different drivers loaded. I don’t have a ready fix for the imx219 + imx519 combination.

That’s fair. One more issue — I can’t see a screen/preview of what’s being recorded. Is that related to the same preview + record limitation you mentioned?

It could be. Previewing and recording at the same time is the same load that costs you framerate. Make sure your pipeline actually includes a display sink for the preview. Beyond that, just to set expectations — we put most of our effort into the camera drivers and haven’t spent much time on video recording support on the Jetson platform.

Understood. Now I’m stuck on a bigger issue — I tried recording a 40 minute video at 120 fps and the pipeline errors out. I’m getting ‘from element /GstPipeline. Internal data stream error.’ and ‘streaming stopped, reason not-negotiated (-4)’. Any idea what’s causing this?

For the pipeline errors — ‘Internal data stream error’ and ‘reason not-negotiated (-4)’ usually mean the pipeline couldn’t negotiate the stream and stopped partway. For a long 120 fps recording, I’d start from the demo code and modify it to fit your requirements instead of building the pipeline from scratch, and keep in mind the ~112 fps behavior when previewing and recording at once.

To sum up where things stand:

  • Driver install on the third-party Xavier carrier board: no workaround; the driver is based on the official carrier board.
  • IMX477 vs IMX519: IMX519 maxes at 120 fps @ 1280x720, IMX477 doesn’t go faster.
  • ~112 fps vs 120 fps: expected when previewing and recording at the same time.
  • Blurry video: focus manually/automatically via the focus example repo.
  • Manual stop without numbuffers: no official EOF procedure; adapt the demo code.
  • imx219 + imx519 together: not validated.
    If you paste the full pipeline command you used for the 40 minute recording, we can have a closer look.