Camera Overlays

The ARK Just A Jetson Carrier has 2 x 4-lane CSI ports, providing high-bandwidth connections for cameras. Camera configurations are managed through device tree overlays. Camera overlays need to be built and installed from the ARK Jetson Kernel repositoryarrow-up-right.

Available Camera Overlays

The following camera overlays are available for the ARK Just A Jetson:

Overlay Name
Description
Status

Camera ARK IMX219 Quad

Four IMX219 cameras (using camera mux board)

Tested

Camera ARK IMX219 Single

Single IMX219 camera

Tested

Camera ARK IMX477 Single

Single IMX477 camera

Tested

Camera IMX477 Dual 4 lane

Dual IMX477 cameras using 4-lane CSI

Not Working

circle-exclamation

Listing Available Overlays

To see all available camera overlays on your Jetson, use the Jetson-IO tool:

sudo /opt/nvidia/jetson-io/config-by-hardware.py -l

Example output:

Header 1 [default]: Jetson 40pin Header
  Available hardware modules:
  1. ARK I2S to GPIO
  2. Adafruit SPH0645LM4H
  3. Adafruit UDA1334A
  4. FE-PI Audio V1 and Z V2
  5. ReSpeaker 4 Mic Array
  6. ReSpeaker 4 Mic Linear Array
Header 2: Jetson 24pin CSI Connector
  Available hardware modules:
  1. ARK IMX477 Dual 4 lane
  2. ARK IMX477 Single 4 lane
  3. Camera ARK ARDUCAM Single
  4. Camera ARK IMX219 Quad
  5. Camera ARK IMX219 Single
  6. Camera ARK IMX477 Single
Header 3: Jetson M.2 Key E Slot
  No hardware configurations found!

Applying a Camera Overlay

Use the Jetson-IO tool to apply a camera overlay.

Reboot for the changes to take effect:

Verifying Camera Detection

After rebooting, verify that LibArgus can detect your camera sensor:

You can also test the camera with gstreamer (requires nvidia-jetpack to be installed):

Or test with v4l2-ctl:

Building and Installing Camera Overlays

There are two approaches for building and deploying camera overlays:

  1. Include in kernel build - The overlay is built and included in the flashed image

  2. Build standalone - Build the overlay separately and copy it to an already-flashed system

Option 1: Include Overlay in Kernel Build

This approach includes the overlay in the kernel build so it's available immediately after flashing.

Step 1: Create the overlay source file

Create your .dts file in the device tree overlay directory:

You can use an existing ARK overlay as a template (e.g., tegra234-p3767-camera-p3768-ark-imx477-single.dts).

Step 2: Add to the Makefile

Edit the Makefile in the same directory and add your overlay to the build:

Add a line like:

Step 3: Add to copy_dtbs_to_prebuilt.sh

Edit copy_dtbs_to_prebuilt.sh in the repository root to copy your overlay to the prebuilt directory. You'll need to add a section for JAJ builds (similar to the PAB section) with lines like:

Step 4: Build and flash

Run the build and flash scripts:

Your overlay will now be available via config-by-hardware.py -l after flashing.

Option 2: Build Standalone and Copy to Flashed System

This approach builds an overlay and copies it to a Jetson that has already been flashed.

Step 1: Set up the build environment

Clone and set up the repository:

Step 2: Copy device tree files and build

Copy the JAJ device tree files and build:

The compiled .dtbo files will be in:

Step 3: Copy overlay to the Jetson

Copy the overlay via USB-C (default IP when connected via USB):

Step 4: Install the overlay on the Jetson

SSH into the Jetson and move the overlay to /boot:

Step 5: Apply and reboot

Verify the overlay is available:

Apply the overlay:

Last updated