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
other

Target Operating System
Linux
QNX
other

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

SDK Manager Version
1.5.0.7774
other

Host Machine Version
native Ubuntu 18.04
other

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 libnvsipl_devblk_drv_ar0231.so. 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 libnvsipl_devblk_drv_custom_ar0231.so to target under /usr/lib/nvsipl, remove default libnvsipl_devblk_drv_ar0231.so, 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
nvsipl_camera: ERROR: Pipeline: 0, NOTIF_ERROR_ACP_PROCESSING_FAILURE
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 libnvsipl_devblk_drv_ar0231.so 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