Per-camera ISP override selection for custom GMSL sensors

Board NVIDIA Jetson AGX Orin Developer Kit
L4T R36 (release), REVISION 3.0, GCID 36923193, 2024-07-19
Kernel 5.15.136-tegra
nvidia-l4t-camera 36.3.0-20240719161631
nvidia-l4t-core 36.3.0-20240719161631
libargus 0.99.3.3 (single-process)

We are integrating custom GMSL camera sensors on Jetson and need to use different ISP tuning per camera when multiple sensors are present.

Based on NVIDIA docs, we configured the camera module badge using the expected pattern (module_position_part-number style), and we also aligned the ISP override metadata (Part# / Sensor) accordingly.

What we observe is:

  • The global override file camera_overrides.isp is applied.
  • Per-camera selection based on our custom module badge/part-number does not appear to take effect.
  • We also verified this is not a file permission issue.

Could you please confirm:

  1. Is per-camera ISP selection by badge/Part# supported for custom sensors on this Jetson Linux release?
  2. Does this mechanism require entries to exist in NVIDIA internal camera/imager tables, or can external custom sensors be matched without NVIDIA-side changes?
  3. If supported, what is the exact supported method for custom sensors to enable simultaneous different ISP configs (for two different sensor types connected at the same time)?
  4. If not supported as-is, what is the recommended approach for custom multi-sensor systems?

You should be able to check the daemon log to confirm apply the ISP file or not.

Thanks

It’s not applied according to daemon logs. I want to confirm that it should work, no matter the badge, as long as it matches the Part# from the isp config? There is nothing else hardcoded or a list with part numbers we should match?

You can confirm rename to camera_overrides.isp to load the setting without check the badge info.

Also dump the device tree to confirm the bade info too.

Thanks

When renamed as camera_overrides.isp, the config is applied, as already mentioned. But what to do when we need 2 different ISP configs for 2 different sensors, at the same time? As it seems badge matching does not work

Do you dump the device tree to confirm the badge info?

orin@ubuntu:~$ for badge in /proc/device-tree/tegra-camera-platform/modules/module*/badge; do printf '%s: ’ “$badge”; tr -d ‘\0’ < “$badge”; printf ‘\n’; done
/proc/device-tree/tegra-camera-platform/modules/module0/badge: imx728_bottomright_MAG728REAR
/proc/device-tree/tegra-camera-platform/modules/module1/badge: imx274_top_A6V26
/proc/device-tree/tegra-camera-platform/modules/module2/badge: dual_hawk_centerleft
/proc/device-tree/tegra-camera-platform/modules/module3/badge: dual_hawk_centerright
/proc/device-tree/tegra-camera-platform/modules/module4/badge: e3333_bottomright_P5V27C
/proc/device-tree/tegra-camera-platform/modules/module5/badge: e3333_topright_P5V27C
orin@ubuntu:~$ sed -n ‘s/[1]*#*[[:space:]]Part#:[[:space:]]//p’
/var/nvidia/nvcam/settings/camera_overrides_imx728_li.isp
MAG728REAR
orin@ubuntu:~$


  1. [:space:] ↩︎

The file name should be imx728_bottomright_MAG728REAR.isp

Nov 11 08:51:07 ubuntu nvargus-daemon[3292]: ---- imager: Found override file [/var/nvidia/nvcam/settings/imx728_bottomright_MAG728REAR.isp]. ----

It works, thank you!