Project Jetvariety: How Arducam Makes it Possible to Use Any Camera Module on the Jetson Nano with One Kernel Driver for All

Published by Lee Jackson on

raspberry pi camera v1.3 ir cut

It was impossible to use a non-IMX219 cam like RPI V1.3 on Jetson Nano, but not anymore.

Introducing Project Jetvariety – Increase the Jetson Nano Camera Variety

Today we are proud to introduce the Project Jetvariety (short for Jetson variety), which aims to quickly increase the variety of Jetson Nano cameras with our proprietary general-purpose camera solution.

The Jetson Nano and Xavier NX only have official driver support of the Raspberry Pi Camera Module V2 like IMX219, then followed by the IMX477. Those two would work for the basic camera applications, but what if you are an advanced user and those two can’t meet your needs? Arducam wants to tackle this issue by offering methods to enable MIPI camera modules other than the IMX219 and IMX477 on the Jetson Platforms.

The Project Jetvariety allows any Arducam MIPI camera modules – including the ready-made and the upcoming – to be connected to the high-speed CSI-2 connector on the Jetson Nano. Thanks to our extra hardware and software efforts, it’s not much easier to interface a new camera.

It unleashes the vision performance of Jetson Nano by offering more camera choices for much wider applications for industrial, educational, and personal use cases.

Issues with Raspberry Pi Camera V2-like IMX219 or High Quality IMX477 Modules

The first natively supported camera on the Jetson nano is the Sony IMX219 camera from the Raspberry Pi ecosystem, then followed by IMX477. The IMX219 is cheap and good in some of the use cases, while the IMX477 is at a higher-end. So if you are new to Jetson and want to use the camera with the existing on-line opensource code that uses native camera commands like nvgstcapture/nvarguscamera, or nvargus API, etc., just go with those two and you should be fine.

On the other hand, for machine vision, industrial, medical applications you will need a higher resolution and frame rate, or an externally triggered camera without rolling artifacts. If you want to try and test other cameras than the IMX219, it can be painful to switch between cameras, and even a nightmare to develop and debug a camera driver that is not natively supported.

The IMX477 faces a similar issue. Admittedly, it’s a major upgrade to the IMX219,and those high quality cameras from Arducam can satisfy the majority of the customers. However, there are always other sensors people like or have got accustomed to.

Arducam now offers a comprehensive camera solution and support to address this problem, including a kernel camera driver for all cameras. Our solution reduces the complexity to integrate new cameras on the Nano and opens endless possibilities. We want the Project Jetvariety to offer universal compatibility for every camera sensor, as well as universal affordability for every end-user.

Highlights of the Arducam Jetvariety Series

  • Support Arducam Breakout Board from 0.3MP ~ 18MP
  • Support Monochrome and Color Cameras
  • Support Gray,Y10,Y16,RAW8/10 Bayer format (YUV,RGB,JPEG requires extra ISP)
  • Support standard V4L2 framework, Video Nodes and Controls (Exposure, Gain and depending on camera parameters)
  • Support External Trigger Global Shutter Camera
  • Support Dual Camera Synchronization
  • Support Arducam Stereo Camera HAT
  • Single Line Driver Installation Command
  • OpenCV Friendly and Provides Source Code Demonstration

A Non-exhaustive list of Supported Cameras:

Rolling Shutter Cameras:

  • 2MP HDR AR0230 with onboard ISP
  • 5MP OV5647 Raspberry Pi V1.3 Camera
  • 8MP IMX219 Raspberry Pi V2.1 Camera
  • 13MP IMX135
  • 16MP IMX298
  • 18MP AR1820HS

Global Shutter Cameras:

  • 0.3MP OV7251
  • 1MP OV9281
  • 2MP OV2311


13 Comments

Kevin S · April 11, 2020 at 2:14 am

Hello I have two questions. 1-can we put the Arducam programmable-focus lens on a global shutter camera module? And 2-in order to synchronize two global shutter cameras, what external trigger and code should we use? Is it an arduino? Can you send me the code? Thank you.

    Lee Jackson · May 9, 2020 at 4:07 am

    Hello, 1)the programmable-focus lens is not a standalone lens assembly, it’s a part of the sensor module consisting of movable lens, motors and some other parts, so for programmable-focus global shutter cameras, we need to find other global shutter sensor modules with autofocus support. We can’t just put one on the other. 2)We usually uses arduino for the external trigger, and you can contact [email protected] to ask our engineer for help.

James · April 24, 2020 at 9:14 pm

Is this a physical add-on, or is it new drivers to help integrate the cameras? Also when and where will this be released?

    Lee Jackson · May 9, 2020 at 3:53 am

    It’s a solution that includes both the physical add-on and a kernel camera driver. It’s already available for sale from some of our distributors.

Ingo Clever · May 6, 2020 at 4:43 am

Dear Lee. Congratulations on the project. I have happened to obtain a Xavier AGX solution. I am still new to electronics, would it be possible to use your work for my plattform as well?

thx

Michael Lavelle · May 22, 2020 at 7:35 am

Hello! I’m new to the whole camera scene and am looking to integrate the raspberry pi high quality camera into the Jetson Nano. Unfortunately, I’m not positive if the support for the V2 “transfers” to the high quality camera, and I would like to know more before I purchase one. How much leg work (if at all) will it take to get the high quality camera to work on the Jetson Nano? Thanks!

    Lee Jackson · May 22, 2020 at 11:22 pm

    We’ve already made it possible to use the high quality camera on the Jetson Nano, but by “use” I mean it’s already able to show images from the camera on the Jetson Nano. We are still refining our solution to add the IMX477 to our Project Jetvariety.

Frank Williamson · May 24, 2020 at 12:54 am

I’ve already purchased several arducam ov5647 cameras before the announcement of project jetvariety. Will I have to purchase an additional attachment, or do I just need to install the drivers?
Thanks!

    Lee Jackson · May 24, 2020 at 2:05 pm

    The project jetvariety consists of 3 parts, the software part (the driver), the adapter part (the Jetvariety adapter board), and the camera module part. If you’ve got the camera modules, you need drivers AND and Jetvariety adapter board to work.

Frank Williamson · May 31, 2020 at 9:48 pm

Is it currently possible to purchase the adapter board separate from a camera module?

    Lee Jackson · June 1, 2020 at 12:17 am

    We do not recommend customers separately purchase the adapter board, because it will only work with Arducam Camera modules and drivers, and will not work with other MIPI cameras. If you are crystal clear about what you’ve already had on hand and known what you want will work, please contact our sales at [email protected]

Matthew Perkins · June 26, 2020 at 5:39 am

Dear Lee Jackson,

Diving into a project where I am creating a low-cost video EEG / EMG system for long duration unattended recordings in mice, and the OV9281 looks perfect! From my understanding, I can have my DAQ taking the EEG/EMG signals trigger frames on the camera, and the jetson can encode / save video or other stuff. A couple of questions, will the camera driver you provide play well with gst-4vl2 that nvidia provides in hardware encoding (hevc or h264)?

Super excited to get this project up and running, love your product portfolio, very on the nose.

    Lee Jackson · June 28, 2020 at 12:11 am

    Hello Matthew, our representative will contact you by email.

Leave a Reply

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