Create customized camera driver AR0231 + Max9295 with SIPL

Please provide the following info (check/uncheck the boxes after clicking “+ Create Topic”):
Software Version
DRIVE OS Linux 5.2.0
DRIVE OS Linux 5.2.0 and DriveWorks 3.5
NVIDIA DRIVE™ Software 10.0 (Linux)
NVIDIA DRIVE™ Software 9.0 (Linux)
other DRIVE OS version

Target Operating System

Hardware Platform
NVIDIA DRIVE™ AGX Xavier DevKit (E3550)
NVIDIA DRIVE™ AGX Pegasus DevKit (E3550)

SDK Manager Version

Host Machine Version
native Ubuntu 18.04

Dear Nvidia support,
As in last topic, I am creating a driver for customized camera module (Max9295 + Ar0231). I start with easier one, sekonix camera (Max96705+Ar0231) first as we have default I created new driver source code in ~/nvidia/nvidia_sdk/DRIVE_OS_5.2.0_SDK_Linux_OS_DDPX/DRIVEOS/drive-t186ref-linux/samples/nvmedia/nvsipl/devblk/cameramodule/MAX96712cameramodule/ called custom_ar0231.
This driver is referenced from ar0144 in this folder. custom_ar0231 driver source code has files: cdi_ar0231_rccb.c/h, cdi_ar0231_rccb_regmap.h, cdi_ar0231_rccb_setting.h, CNvMMAX96712_96705_AR0231.cpp/hpp.
AR0231’s source files are copied/modified from ~/nvidia/nvidia_sdk/DRIVE_Software_10.0_Linux_OS_DDPX/DRIVEOS/drive-t186ref-linux/samples/nvmedia/ext_dev_prgm with some change text, e.g “isc” change to “cdi” as AR0144 source code’s change.
CNvMMAX96712_96705_AR0231.cpp/hpp are also created referenced from CNvMMAX96712_96705_AR0144.cpp/hpp.
After build and copy driver to target under /usr/lib/nvsipl, remove default, I run sample nvsipl_camera with error occured:

./nvsipl_camera -c “SF3324_CPHY_x4” -m “0x0001 0x0000 0x0000 0x0000” -s
MAX96712: Revision 2 detected
MAX96712: Enable periodic AEQ on Link 0
MAX96705: Pre-emphasis set to 0xaa
MAX96705: Revision 1 detected!
Sensor AR0231 RCCB Rev7 detected!
Module_id 22 Severity 6 : NvMediaICPCreateEx 76
Module_id 22 Severity 6 : T19x VI version 0x000019
nvsipl_camera: Opened NITO file for module “SF3324”
[SiplControlCheckRangeFloat:64] [SiplControlCheckRangeFloat:64] Bad input parameter
[SiplControlCheckSensorAttrExpGain:1320] [SiplControlCheckSensorAttrExpGain:1320] Bad input parameter : Gain Maximum
[SiplControlCheckSensorAttr:1411] [SiplControlCheckSensorAttr:1411] Bad input parameter : Number of Active Exposures
[SiplControlAutoRangeCheck:1691] [SiplControlAutoRangeCheck:1691] Bad input parameter
[SiplControlAeProcess:172] [SiplControlAeProcess:172] Bad input parameter
Main: CNvMISPBlock.cpp: 568: ProcessALG: Plugin Process failed
Main: CNvMSensorPipeline.cpp: 794: DoALGProcessing: ISP block process algorithm failed
Main: CNvMSensorPipeline.cpp: 272: RegisterAutoControlPlugin: Failed to reset state after RegisterAutoControlPlugin
Main: CNvMCamera.cpp: 342: RegisterAutoControlPlugin: RegisterAutoControlPlugin type:0 failed for pipeline:0
SetSiplControl(NV) failed for ISP output of sensor:0

I guess errors above related to set some parametters for Ar0231, e.g MAX_GAIN in ext_dev_prgm of OS 5.1. Can you help me how to fix these errors or can you please give me driver source code of that use for sekonix camera as you did in OS 5.1 in ext_dev_prgm example.
Thank you so much!
Hung (Vinfast)

Hi @v.HungNV99 ,

Please check the sensorGainRange settings in GetSensorAttributes() of your cdi_ar0231_rccb.c file. Thanks.

Thanks VickNV, now I can control driver for sekonix camera, I will continude with Ar0231+ Max9295 camera module.

Good to hear your progress.If any further problem in creating the custom driver, please create a new topic linked to this one. Thanks.

1 Like