Project Jetvariety: How Arducam Makes it Possible to Use Any Camera Module on the Jetson Nano with One Kernel Driver for All
Note: Arducam has upgraded and rebranded the Project Jetvariety. Here is the latest post
Arducam has updated Jetvariety, the project to increase MIPI Cameras for Jetson Nano and Xavier NX, to support NVIDIA Argus API
The Jetson Nano and Jetson Xavier NX only support the IMX219 camera by default, but Arducam wants to support more.The Project Jetvariety of Arducam aims to support all kinds of MIPI camera modules with a Read more…
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