Our Product InsightsPlatform Cameras

How to Upgrade Your Camera to NVIDIA® JetPack 6.1, and What are its Key Advancements?

Upgrade your e-con Systems' camera to optimize CPU performance and unlock AI capabilities with NVIDIA® JetPack 6.1. In this blog, you'll learn how to seamlessly upgrade your existing camera to the latest NVIDIA JetPack 6.1 for improved efficiency and performance.

The evolution of camera technology plays a key role in advancing embedded vision applications. That’s why it’s important to upgrade your e-con Systems’ high-performance camera with NVIDIA® JetPack 6.1. It will help you unlock optimized CPU performance and get enhanced camera support. In turn, this can deliver sophisticated imaging solutions across multiple use cases – from streamlining industrial workflows to improving medical imaging capabilities.

In this blog, you’ll learn how to upgrade your e-con’s high-performance cameras with JetPack 6.1 and uncover the key benefits it brings for maximum camera performance and efficiency.

Understanding NVIDIA® JetPack 6.1

NVIDIA® JetPack 6.1 is designed for use with the Jetson line of developer kits, providing crucial software packages for AI, deep learning, and computer vision applications. While NVIDIA® JetPack 6.1 offers numerous new features, one of the key highlights for camera applications is the upgraded Argus camera stack, which significantly reduces CPU usage by up to 40%.

This guarantees flexible adaptation to different processing demands while enabling smooth application performance in high-end applications.

Key Platforms Supported
  • Jetson AGX Orin™
  • Jetson Orin™ NX
  • Jetson Orin Nano™

What’s New in NVIDIA® JetPack 6.1?

JetPack 6.1 offers many improvements to boost the performance of camera applications including an upgraded Argus camera stack and an upgraded latest AI compute stack. Refer to the blog to learn more about full benefits of JetPack 6.1.

Here’s a quick overview of the key advancements for camera applications:

CPU Optimization

JetPack 6.1’s Argus library optimizes multi-camera applications by reducing CPU utilization by up to 40%, freeing resources for higher frame rates and resolutions without lag. This enhances system responsiveness, enabling faster image capture and real-time processing for applications like surveillance and robotics. By preventing CPU overload, it reduces camera application freezing and performance drops during intensive operations for smooth multitasking, and higher power efficiency.

Experiment Results: e-con Systems Camera Performance with NVIDIA® JetPack 6.1

Let’s explore the experiment result of NVIDIA® JetPack 6.1 updates on CPU utilization when running three camera instances on NVIDIA® AGX Orin™ development kit.

The table below illustrates the CPU utilization differences when using the JetPack 6.0 versus the JetPack 6.1 provided by NVIDIA® based on the number of times the e-con’s eCAM_Argus_Camera application is run:

No. of Instances JetPack 6.0 JetPack 6.1 Improvement (~Reduction)
1 18.5% 13.9% ~5%
2 46% 29.5% ~16%
3 66.1% 44.4% ~22%

Table 1: Comparison with JetPack 6.0 and JetPack 6.1

Here is the bar graph comparing CPU utilization between JetPack 6.0 and JetPack 6.1 for different numbers of e-con’s eCAM_Argus_Camera application instances.

Figure 1: Comparison with JetPack 6.0 and JetPack 6.1

Boost In Camera Performance

Applications requiring intensive computations, such as autonomous vehicles and high-definition video analytics, benefit the most from faster processing times and more accurate results.

Improved AI Performance

JetPack 6.1 features the DeepStream 7.1 SDK and support for leading AI frameworks, enabling applications to harness the latest advancements in AI technology. These capabilities are critical in healthcare, retail, and robotics, where AI-driven insights play a critical role. The enhanced AI functionality also delivers superior performance in real-time video analytics, object detection, and other advanced AI tasks.

Effortless Development and Deployment

Upgrading to JetPack 6.1 in e-con Systems’ cameras is a straightforward process, especially for those familiar with JetPack 6.0, enabling seamless deployment of camera-based AI applications.

How to Upgrade JetPack 6.1 through Ubuntu Setup: Step-by-Step Guide

Now, let’s look at how you can get started with the upgrade process of JetPack 6.1 in the camera.

First, download e-con’s release package from e-con’s developer resources and JetPack 6.1 sources from NVIDIA’s official website on your PC.

Important Note: The commands and output messages are color-coded for clarity, as shown below:

Color Notation
Blue Commands running in Development PC
Red Commands running in Jetson Board
Green Output messages in the Jetson Board
Purple Adding patch file source Manually

Table 2: Notation of Colors

Now, Let’s break down each step of the upgrade process, offering detailed instructions for a seamless upgrade experience.

  1. Setting Up the Environment

To begin integrating your camera with the NVIDIA® Jetson platform, it’s essential to establish a properly configured development environment. This step involves creating necessary directories, defining environment variables, and preparing the system for building and compiling the necessary software for the integration.

Important Note: Please follow the build commands mentioned in the developer guide manual specific to your product for setting up the environment. You can download the developer guide from e-con’s Developer Resources.

  1. Downloading the Requirements

After setting up the environment, the next step is to download the requirements. The NVIDIA® Jetson platform requires several key components to function properly with camera systems. This includes the L4T (Linux for Tegra) package, which is NVIDIA’s Linux-based development environment, along with various drivers and toolchains necessary for camera integration.

You must download the Prerequisites as mentioned in the below table.

Prerequisites Download link
Bootlin Tool chain Bootlin Toolchain Sources, 2020.08-1
L4T Jetson AGX Orin™, Orin Nano™, Orin NX driver Package Driver Package (BSP)
L4T Jetson AGX Orin™, Orin Nano™, Orin NX sample Rootfs Sample Root Filesystem
Driver Package source Driver Package (BSP) Sources
e-con product’s JetPack 6.0 release package Download from the e-con’s Developer Resources Website using your Login Credentials.

Table 3: Prerequisites

To access the package login credentials, please refer to the Release Notes or FTP Deliverables, as shown below for reference.

Figure 2: Camera Product Package Login Credentials Details

After entering the package login credentials using the link provided in the Release Notes document, the screen shown below will appear, allowing you to download your camera product packages.

Figure 3: Camera Product Document and Package Details

Important Notes: Please follow the build commands mentioned in the developer guide manual specific to your product. You can download the developer guide from e-con’s Developer Resources

While following the developer guide, please note that the building commands are documented for JetPack 6.0. When executing these commands, you must replace the downloaded file name of JetPack 6.1 with JetPack 6.0. You can refer to the correct name of JetPack 6.1 from the table below..

NVIDIA Package JetPack 6.0 JetPack 6.1
BootlinTool chain aarch64–glibc–stable-2022.08-1.tar.bz2 aarch64–glibc–stable-2022.08-1.tar.bz2
L4T Jetson AGX Orin™, Orin Nano™, Orin NX driver Package Jetson_Linux_R36.3.0_aarch64.tbz2 Jetson_Linux_R36.4.0_aarch64.tbz2
L4T Jetson AGX Orin™, Orin Nano™, Orin NX sample Rootfs Tegra_Linux_Sample-Root- Filesystem_R36.3.0_aarch64.tbz2 Tegra_Linux_Sample-Root- Filesystem_R36.4.0_aarch64.tbz2
Driver Package source public_sources.tbz2 public_sources.tbz2

Table 4: JetPack 6.0 and 6.1 Files Name

  1. Extracting and Preparing L4T

Once the packages are downloaded, properly extract and organize the L4T package to prepare for the installation process. The extraction process involves unpacking the downloaded L4T package and organizing the files into the flashing directory on your Linux Based System in a structured manner. This process ensures the package is properly set up and ready to flash the binaries to your device.

Important Notes: Please follow the build commands mentioned in the developer guide manual specific to your product for extracting and preparing L4T. You can download the developer guide from e-con’s Developer Resources.

While following the developer guide, please note that the building commands are documented for JetPack 6.0. When executing these commands, you must replace the JetPack 6.1 downloaded file name with the JetPack 6.0 downloaded file name by referring to Table 4.

With L4T prepared, we can move on to extracting the econ’s release package that contains essential camera-related components.

  1. Extracting the Release Package

The release package contains files needed for camera integration, including camera drivers and supporting libraries. This step involves carefully extracting these files while maintaining their directory structure and file permissions.

Extract the downloaded e-con’s release package. The files you need are in the extracted release package, as shown below.

Figure 4: e-con’s Release Package Files

Now that we have our files in place, we’ll need to configure the kernel to support your specific camera hardware.

  1. Downloading and Configuring the Kernel

The kernel configuration is a crucial step that determines how your camera will interact with the Jetson platform. In this step, you’ll need to apply patches from the e-con JetPack 6.0 release package to the NVIDIA® JetPack 6.1 to configure the kernel for integration with JetPack 6.1 and to include support for your specific camera.

This involves applying various patches that include the e-con Nvidia-oot (out-of-tree) modules, device tree blob overlays (dtbo), and other essential kernel module updates.

Important Notes: For extracting the kernel source code, please follow steps 1 to 4 for the build commands mentioned in the developer guide manual specific to your product. You can download the developer guide from e-con’s Developer Resources.

you must download the driver package source, as mentioned in the above Table 3.

Then, follow the below commands for applying e-con path files instead of following steps 5 to 10 in the developer guide manual.

First, apply the module patch using the following command.

Figure 5: Applying Module Patch File

Remove the vcc-supply using the following command.

sed -i 's/vcc-supply/\/\/vcc-supply/g'
$RELEASE_PACK_DIR/Kernel/

Apply the device tree blob overlay patch file using the following command.

Patch -p1 -i $RELEASE_PACK_DIR/Kernel/

You can view the screen similar to the screen shown below.

Figure 5: Applying Device Tree Blob Overlay Patch File

While applying the device tree blob overlay patch file, there’s no need to alter the default SOC file. If you see “Reversed (or previously applied) patch detected! Assume -R? [n] n and Apply anyway? [n] n”, simply choose no. If you don’t see this message, you can skip this step and proceed with the next step.

You can view the output message on the Linux-based System as below.

patching file hardware/nvidia/t23x/nv-public/nv-soc/tegra234-soc-camera.dtsi
Reversed (or previously applied) patch detected! Assume -R? [n] n
Apply anyway? [n] n
Skipping patch.
2 out of 2 hunks ignored -- saving rejects to file hardware/nvidia/t23x/nv-public/nv-soc/tegra234-soc-camera.dtsi.rej
patching file hardware/nvidia/t23x/nv-public/overlay/Makefile
Hunk #1 FAILED at 14.
1 out of 1 hunk FAILED -- saving rejects to file hardware/nvidia/t23x/nv-public/overlay/Makefile.rej
patching file hardware/nvidia/t23x/nv-public/overlay/.dtsi
patching file hardware/nvidia/t23x/nv-public/overlay/.dts

While applying the Nvidia-oot patch, the Makefile will not get updated automatically, as you can view on the screen below.

Figure 7: Applying Nvidia-oot Patch File

In this case, manually add the nvidia-oot Makefile by inserting the sensor-driver block provided below into the kernel source Makefile


sensor-driver:
@if [ ! -d "$(MAKEFILE_DIR)/sensor_driver/$(SENSOR_DRIVER)" ]; then \
echo "Directory sensor_driver is not found, exiting.."; \
false; \
fi
@echo "================================================================================"
@echo "make $(MAKECMDGOALS) - sensor driver ..."
@echo "================================================================================"
@if [ -d "$(MAKEFILE_DIR)/sensor_driver/PWM_MCU" ] && \
[ -d "$(MAKEFILE_DIR)/sensor_driver/$(SENSOR_DRIVER)" ]; then \
$(MAKE) -j $(NPROC) ARCH=arm64 \
CROSS_COMPILE=$(CROSS_COMPILE) \
-C $(NVIDIA_HEADERS) \
M=$(MAKEFILE_DIR)/sensor_driver/PWM_MCU \
srctree.nvconftest=$(NVIDIA_CONFTEST) \
$(MAKECMDGOALS); \
$(MAKE) -j $(NPROC) ARCH=arm64 \
CROSS_COMPILE=$(CROSS_COMPILE) \
-C $(NVIDIA_HEADERS) \
M=$(MAKEFILE_DIR)/sensor_driver/$(SENSOR_DRIVER) \
KBUILD_EXTRA_SYMBOLS=$(MAKEFILE_DIR)/sensor_driver/PWM_MCU/Module.symvers \
srctree.nvconftest=$(NVIDIA_CONFTEST) \
$(MAKECMDGOALS); \
else \
$(MAKE) -j $(NPROC) ARCH=arm64 \
CROSS_COMPILE=$(CROSS_COMPILE) \
-C $(NVIDIA_HEADERS) \
M=$(MAKEFILE_DIR)/sensor_driver/$(SENSOR_DRIVER) \
srctree.nvconftest=$(NVIDIA_CONFTEST) \
$(MAKECMDGOALS); \
fi

If you face any issues when you build using the above Makefile, you can refer to the below image for a proper Makefile that should look like.

Figure 8: Copying Sensor-Driver Block into Kernel Source Makefile

Before building the modules, run the below command to remove Nvidia’s error Recovery.

For MIPI products (e-CAM25_CUONX, e-CAM50_CUONX, e-CAM80_CUONX, e-CAM81_CUONX, e-CAM80_CUOAGX, e-CAM200_CUOAGX),

sed '238,238d' $NVIDIA_SRC/nvidia-oot/drivers/media/platform/tegra/camera/vi/vi5_fops.c > tempfile && mv tempfile $NVIDIA_SRC/nvidia-oot/drivers/media/platform/tegra/camera/vi/vi5_fops.c
sed '228i#endif' $NVIDIA_SRC/nvidia-oot/drivers/media/platform/tegra/camera/vi/vi5_fops.c > tempfile && mv tempfile $NVIDIA_SRC/nvidia-oot/drivers/media/platform/tegra/camera/vi/vi5_fops.c

For e-CAM_YUV_GMSL products (NileCAM20_CUOAGX, NileCAM21_CUOAGX, NileCAM25_CUOAGX, NileCAM81_CUOAGX, STURDeCAM20_CUOAGX, STURDeCAM21_CUOAGX),

sed '236,236d' $NVIDIA_SRC/nvidia-oot/drivers/media/platform/tegra/camera/vi/vi5_fops.c > tempfile && mv tempfile $NVIDIA_SRC/nvidia-oot/drivers/media/platform/tegra/camera/vi/vi5_fops.c
sed '226i#endif' $NVIDIA_SRC/nvidia-oot/drivers/media/platform/tegra/camera/vi/vi5_fops.c > tempfile && mv tempfile $NVIDIA_SRC/nvidia-oot/drivers/media/platform/tegra/camera/vi/vi5_fops.c

For e-CAM_OCTA_YUV_GMSL products (STURDeCAM25_CUOAGX, STURDeCAM31_CUOAGX and STURDeCAM81_CUOAGX),

sed '240,240d' $NVIDIA_SRC/nvidia-oot/drivers/media/platform/tegra/camera/vi/vi5_fops.c > tempfile && mv tempfile $NVIDIA_SRC/nvidia-oot/drivers/media/platform/tegra/camera/vi/vi5_fops.c
sed '230i#endif' $NVIDIA_SRC/nvidia-oot/drivers/media/platform/tegra/camera/vi/vi5_fops.c > tempfile && mv tempfile $NVIDIA_SRC/nvidia-oot/drivers/media/platform/tegra/camera/vi/vi5_fops.c

With the kernel properly configured, we can proceed to the building and installation step.

  1. Building and Installing the Kernel

This stage involves compiling the kernel with your custom configurations. The process requires careful attention to detail as any errors during compilation can lead to compatibility issues. The installation process will integrate your custom kernel with the Jetson system.

This process involves building and installing the kernel image, modules, sensor driver, and Device Tree Blob Overlay (DTBO) on the Linux Based System.

Important Notes: Please follow the build commands mentioned in the developer guide manual specific to your product for building and installing the kernel. You can download the developer guide from e-con’s Developer Resources.

Following successful kernel installation, we’ll need to flash the development kit with our custom build binaries.

  1. Flashing Jetson Development Kit

There are two available approaches to flash the Jetson Development Kit using the build binaries. This process involves transferring the customized build binaries, which include the modified kernel, drivers, and configuration files, to the Jetson device.

Let’s explore the two available approaches to flashing support in the following section briefly:

7.1 Flashing the Developer Kit from the Linux-Based System

This method involves using your Linux-Based System to manually flash the system image onto the Jetson Development Kit. By extracting the Driver Package (BSP) and Sample Root File System on your Linux-Based System, you can copy the built modules, DTBO, firmware, and miscellaneous files into the appropriate directories in the L4T directory. Once everything is set up, the flashing process can be initiated using the commands provided in the developer guide.

Important Notes: Please follow the build commands mentioned in the modifying the Rootfs section in the developer guide manual specific to your product for building and installing the kernel. You can download the developer guide from e-con’s Developer Resources.

7.2 Flashing the Developer Kit Using SDK Manager

The NVIDIA® SDK Manager simplifies the flashing process by providing a pre-built installation of JetPack 6.1.

Here’s a quick overview of the flashing kit using SDK Manager

  1. Download the SDK Manager from NVIDIA’s official website.
  2. Launch the SDK Manager and log in with your NVIDIA Developer account.
  3. Select your target Jetson device and JetPack 6.1 version, then follow the on-screen instructions to install JetPack 6.1 on your Jetson platform.

With the Jetson Development Kit now flashed and ready, the next critical task is to transfer the required binaries to the device. This step ensures that all essential components, including the customized modules, DTBO files, firmware, and miscellaneous files, are correctly placed in their respective paths. Proper placement of these files is key to enabling the full functionality of your camera integration on the NVIDIA® Jetson platform. Let’s explore the steps to accomplish this.

7.2.1 Copying the Binaries to Jetson Platforms

This involves navigating to the appropriate path within the L4T directory on your Linux Based System and executing the required commands to copy the built modules, DTBO, firmware, and miscellaneous files to their respective paths on the Jetson platform.

Below are the specific steps:

  1. Navigate to the path shown below in your L4T directory of the Linux Based System.

cd $TOP_DIR
cd $NVIDIA_SRC/kernel-devicetree/generic-dts/dtbs/tegra234-p3767-camera-p3768-eimx568-4lane.dtbo

  1. Connect the Type-C USB cable to the Jetson platforms and host PC.
  2. Copy the Device Tree Blob Overlay to the Jetson platforms using the following secure copy command.

scp tegra234-p3767-camera-p3768-eimx568-4lane.dtbo nvidia@192.168.55.1:

Important Note: Please follow the DTBO File name as mentioned in the Developer Guide Manual.

  1. Compress and copy all the Kernel modules to the Jetson Platform using the following commands.

cd $LDK_ROOTFS_DIR/lib/
sudo tar -cjmpf kernel_supplements.tar.bz2 modules/

  1. Copy all the Kernel modules to the Jetson Platform using the following commands.

scp kernel_supplements.tar.bz2 nvidia@192.168.55.1:

  1. Copy the firmware file to Jetson platforms using the following command.

cd $TOP_DIR
scp -r $RELEASE_PACK_DIR/ nvidia@192.168.55.1:

Important Note: If firmware directory is not in e-con’s Release Package skip the above skip.

If you are using an NVIDIA ISP camera, you need to copy the tuning files—fine-tuned by e-con Systems in collaboration with NVIDIA—from the release package to your Jetson platform. Use the following command to apply these settings and achieve the best image quality.

cd $TOP_DIR
scp $RELEASE_PACK_DIR/misc/ nvidia@192.168.55.1:

Important Note: If camera_overrides.isp file is not in e-con’s Release Package skip the above step.

  1. Update the Nvidia-provided v4l2-compliance binary using the following commands.

cd $TOP_DIR
scp $RELEASE_PACK_DIR/misc/v4l2-compliance nvidia@192.168.55.1:

7.2.2 Copying Binaries from the Home Folder to Root in Jetson Platform

  1. Copy the firmware to their specific path in the Jetson Platform using the following commands.

sudo cp /* /lib/firmware

Important Note: If firmware directory is not in e-con’s Release Package skip the above command.

  1. Copy the Device Tree Blob Overlay to their specific path in the Jetson Platform using the following commands.

sudo cp tegra234-p3767-camera-p3768-eimx568-4lane.dtbo /boot/

  1. Copy the kernel supplements to their specific path in the Jetson Platform using the following commands.

sudo tar -xjmpf kernel_supplements.tar.bz2 -C /usr/lib/

  1. Copy the ISP Turning File to their specific path in the Jetson Platform using the following commands.

sudo cp /var/nvidia/nvcam/settings/camera_overrides.isp

Important Note: If camera_overrides.isp file is not in e-con’s Release Package skip the above step.

After flashing the Developer Kit using any of the flashing methods mentioned above, the next step is to load the necessary overlay and drivers.

  1. Loading Overlay and Drivers

The final step in integrating the camera on your Jetson platform involves loading the necessary overlays and camera drivers. This process ensures the hardware and software configurations are fully aligned to support your camera system.

To load the overlay file for your modules, execute the following command

sudo /opt/nvidia/jetson-io/config-by-hardware.py -n2=""

An output message similar to the one below will appear.

Modified /boot/extlinux/extlinux.conf to add following
DTBO entries:
/boot/
Reboot system to reconfigure.

The Jetson kit will reboot automatically.

The Jetson kit will automatically reboot after this step to apply the configuration changes. Once the system restarts, the necessary overlays and drivers will be fully loaded, enabling the camera and the platform to integrate.

Important Note:

For e-CAM_OCTA_YUV_GMSL products (STURDeCAM25_CUOAGX, STURDeCAM31_CUOAGX and STURDeCAM81_CUOAGX), specify the module loading order using following commands.

sudo bash -c 'echo "tegra_camera" >> /etc/modules'
sudo bash -c 'echo "tegra_camera_rtcpu" >> /etc/modules'
sudo bash -c 'echo "max96712" >> /etc/modules'
sudo bash -c 'echo "mcu_pwm" >> /etc/modules'
sudo bash -c 'echo "ecam_gmsl_yuv_common" >> /etc/modules'

  1. Verify Camera Initialization

After completing all the setup steps, you can easily confirm that your camera is properly initialized and ready for your application using the dmesg command. With the camera successfully detected, you can start streaming using V4L2 or GStreamer—depending on your specific application needs.

Stay tuned for part 2, where we’ll explore upgrading your camera to NVIDIA® JetPack 6.2 and discuss the latest updates and features!

e-con Systems Offers Next-Gen Vision with Cameras Based on NVIDIA

Since 2003, e-con Systems® has been designing, developing, and manufacturing OEM cameras. As an NVIDIA Elite partner, our offerings cater to the entire NVIDIA Jetson lineup, including Jetson AGX Orin™, NVIDIA® Jetson Orin NX/Nano™, Jetson Xavier™ NX/Nano/TX2 NX, and Jetson AGX Xavier™.

Below is the list of cameras you can upgrade to NVIDIA® JetPack 6.1.

Our camera solutions feature ISP tuning, support for up to 8 cameras, superior low-light imaging, resolutions up to 20 MP, global shutter, LFM, and more.

See all our NVIDIA® Jetson cameras

Use our Camera Selector to browse our complete portfolio.

If you need expert help to find and integrate the ideal camera into your applications, please write to camerasolutions@e-consystems.com

Related posts