IMX390 Rev 6

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.4.0.7363
other

Host Machine Version
native Ubuntu 18.04
other

Hi,

I recently purchased an IMX390 from Sony and attempted to use it with driveworks. The camera is detected, but I get an error message saying:

Unsupported IMX390 revision 6 detected! Supported revisions are:
IMX390 Rev 0
IMX390 Rev 1
IMX390 Rev 2
IMX390 Rev 3

Are there any plans to support this revision? It is very frustrating that I purchased this “supported” camera, but it is not actually supported.

Thanks,
Daniel

Here is the complete output of sample_camera:

WindowEGL: find EGL devices
WindowEGL: found 2 EGL devices
WindowEGL: init EGL with GLES3 context
WindowEGL: bind OpenGLES3 API
WindowEGL: offscreen mode -> use EGL PBuffer surface 1280x800
WindowEGL: create EGL context
WindowEGL: assign EGL context to current thread
[11-02-2021 23:20:37] Platform: Detected DDPX - Tegra A
[11-02-2021 23:20:37] TimeSource: monotonic epoch time offset is 1612989293461152
[11-02-2021 23:20:37] TimeSource: Could not detect valid PTP time source at nvpps. Fallback to eth0
[11-02-2021 23:20:37] TimeSource Eth: Lost PTP time synchronizaton. Synchronized time will not be available from this timesource.
[11-02-2021 23:20:37] TimeSource: Could not detect valid PTP time source at 'eth0'. Fallback to CLOCK_MONOTONIC.
[11-02-2021 23:20:37] Platform: number of GPU devices detected 2
[11-02-2021 23:20:37] Platform: currently selected GPU device discrete ID 0
[11-02-2021 23:20:37] Context::getDataPathFromSelfLocation DATA_ROOT found at: /usr/local/driveworks-3.5/data
[11-02-2021 23:20:37] SDK: No resources(.pak) mounted, some modules will not function properly
[11-02-2021 23:20:37] SDK: Create NvMediaDevice
[11-02-2021 23:20:37] SDK: Create NvMedia2D
[11-02-2021 23:20:37] SDK: use EGL display as provided
[11-02-2021 23:20:37] TimeSource: monotonic epoch time offset is 1612989293461152
[11-02-2021 23:20:37] TimeSource: Could not detect valid PTP time source at nvpps. Fallback to eth0
[11-02-2021 23:20:37] TimeSource Eth: Lost PTP time synchronizaton. Synchronized time will not be available from this timesource.
[11-02-2021 23:20:37] TimeSource: Could not detect valid PTP time source at 'eth0'. Fallback to CLOCK_MONOTONIC.
[11-02-2021 23:20:37] Initialize DriveWorks SDK v3.5.75
[11-02-2021 23:20:37] Release build with GNU 7.3.1 from heads/buildbrain-branch-0-gc61a9a35bd0 against Drive PDK v5.2.0.0
[11-02-2021 23:20:37] Rig::fromFile: Loading rig file: rigs/IMX390_RGGB_C0.json
[11-02-2021 23:20:37] No valid data file found for camera:sample4 in parameter string: camera-name=IMX390RGGBE3_200FOV_RGGB,interface=csi-e,CPHY-mode=1,link=0,output-format=processed,async-record=1,file-buffer-size=16777216 (using configuration folder rigs/)
onInitialize: creating camera.gmsl with params: camera-name=IMX390RGGBE3_200FOV_RGGB,interface=csi-e,CPHY-mode=1,link=0,output-format=processed,async-record=1,file-buffer-size=16777216
[11-02-2021 23:20:37] SensorFactory::createSensor() -> camera.gmsl, camera-name=IMX390RGGBE3_200FOV_RGGB,interface=csi-e,CPHY-mode=1,link=0,output-format=processed,async-record=1,file-buffer-size=16777216
[11-02-2021 23:20:37] CameraBase: pool size set to 8
[11-02-2021 23:20:37] SensorFactory::createSensor() -> camera.gmsl.master, 
[11-02-2021 23:20:37] CameraMaster::parseDevBlock Getting device info list.
[11-02-2021 23:20:37] devBlock: 1 Slave = 0 Interface = csi-e Camera_name = IMX390RGGBE3_200FOV_RGGB Link = 0
[11-02-2021 23:20:37] Camera Match Name: IMX390RGGBE3_200FOV_RGGB Description: IMX390 RGGB module - 200-deg FOV, MIPI-IMX390, MAX9295 linkIndex: 4294967295 serInfo.Name: MAX9295
[11-02-2021 23:20:37] Client, Setting up information for camera ID 0
[11-02-2021 23:20:37] Client, successfully found info for camera ID 0 bound to id 0
[11-02-2021 23:20:37] CameraClient: using NITO found at /opt/nvidia/nvmedia/nit/IMX390RGGBE3_200FOV_RGGB.nito
[11-02-2021 23:20:37] Initialize DriveWorks VisualizationSDK v3.5.75
[11-02-2021 23:20:37] Initialize DriveWorksGL SDK v3.5.75
onInitialize: Total cameras 1
onInitialize: getting image props 0
onInitialize: initilizing stream: 0
[11-02-2021 23:20:38] StreamConsumerGL: successfully initialized
[11-02-2021 23:20:38] StreamProducerCUDA: successfully initialized
[11-02-2021 23:20:38] CameraClient: camera params: format=mp4,type=disk,file=/home/nvidia/embark/videos//IMX390_RGGB_C0_2021_02_11_11_20_PM.mp4
[11-02-2021 23:20:38] CameraClient: serializer bitrate not specified. Using 8000000.
[11-02-2021 23:20:38] EncoderNvMedia: Setting encode on instance 0
Main: Starting master.
[11-02-2021 23:20:38] CameraGSMLMaster: starting...
[11-02-2021 23:20:38] SIPLMaster::SIPLMaster: Setting up master camera
[11-02-2021 23:20:38] Platform: 
[11-02-2021 23:20:38] Platform Config: 
[11-02-2021 23:20:38] Description: 
[11-02-2021 23:20:38] Number of device blocks: 1
[11-02-2021 23:20:38] Device Block : 0
[11-02-2021 23:20:38] 	csiPort: 6
[11-02-2021 23:20:38] 	i2cDevice: 1
[11-02-2021 23:20:38] 	Deserializer Name: MAX96712
[11-02-2021 23:20:38] 	Deserializer Description: Maxim 96712 Aggregator
[11-02-2021 23:20:38] 	Deserializer i2cAddress: 41
[11-02-2021 23:20:38] 	Simulator Mode: 0
[11-02-2021 23:20:38] 	Slave Mode: 0
[11-02-2021 23:20:38] 	Phy Mode: 1
[11-02-2021 23:20:38] 	Number of camera modules: 1
[11-02-2021 23:20:38] 	CameraModule index: 0
[11-02-2021 23:20:38] 		Name :IMX390RGGBE3_200FOV_RGGB
[11-02-2021 23:20:38] 		Description: IMX390 RGGB module - 200-deg FOV, MIPI-IMX390, MAX9295
[11-02-2021 23:20:38] 		Serializer name: MAX9295
[11-02-2021 23:20:38] 		Serializer description: Maxim 9295 Serializer
[11-02-2021 23:20:38] 		Serializer i2cAdress: 98
[11-02-2021 23:20:38] 			EEPROM name: N24C64
[11-02-2021 23:20:38] 			EEPROM i2cAddress: 80
[11-02-2021 23:20:38] 			EEPROM description: N24C64 EEPROM
[11-02-2021 23:20:38] 			Sensor ID: 0
[11-02-2021 23:20:38] 			Sensor name: IMX390
[11-02-2021 23:20:38] 			Sensor description: Sony IMX390 Sensor
[11-02-2021 23:20:38] 			Sensor i2cAddress: 26
[11-02-2021 23:20:38] 			Sensor isTPGEnabled: 0
[11-02-2021 23:20:38] 			Sensor isTriggerMode: 1
[11-02-2021 23:20:38] 				 cfa: 33
[11-02-2021 23:20:38] 				 embeddedTopLines: 3
[11-02-2021 23:20:38] 				 embeddedBottomLines: 0
[11-02-2021 23:20:38] 				 inputFormat: 8
[11-02-2021 23:20:38] 				 height: 1220
[11-02-2021 23:20:38] 				 width: 1936
[11-02-2021 23:20:38] 				 fps: 30.0000000
[11-02-2021 23:20:38] 				 Embedded Data: 1
[11-02-2021 23:20:38] CameraMaster::setOutputDescription Setting output consumer descriptors for sensor:  OutputType: 1
[11-02-2021 23:20:38] Client, setting pipeline config for camera ID 0
[11-02-2021 23:20:38] CameraMaster: master initiation
MAX96712: Revision 2 detected
MAX96712 Rev 2: Link 0: Tx amplitude 0x28, 0x68, 0xb3, 0x72, 0xd2
MAX96712 Rev 2 manual adaptation on the link 0 (31)
MAX9295: Revision 8 detected!
Unsupported IMX390 revision 6 detected! Supported revisions are:
IMX390 Rev 0
IMX390 Rev 1
IMX390 Rev 2
IMX390 Rev 3
DEVBLK_WORKER_0: CNvMMAX96712_9295_IMX390.cpp: 82: DetectModule: DevBlkCDICheckPresence in CNvMIMX390::Init failed failed! with NvMedia error: 6
DEVBLK_WORKER_0: CNvMMAX96712CameraModule.cpp: 66: Init: Sensor Detection failed! with error: 7f
DEVBLK_WORKER_0: CNvMDeviceBlock.cpp: 249: Init: Init failed for module on link = 0
DEVBLK_WORKER_0: CNvMDeviceBlockMgr.hpp: 147: ThreadFunc: Device block init failed(7f)
sample_camera: CNvMDeviceBlockMgr.cpp: 129: WorkersDoAction: Device block action:1 failed for block:0
sample_camera: CNvMDeviceBlockMgr.cpp: 163: Init: Failed to initialize device blocks
sample_camera: CNvMCamera.cpp: 436: Init: DeviceBlock manager init failed
[11-02-2021 23:20:38] CameraMaster: master init failed127
sample_camera: CNvMCamera.cpp: 568: GetImageAttributes: Incorrect pipeline state:1 for pipeline:0
[11-02-2021 23:20:38] CameraMaster: GetImageAttributes failed6
[11-02-2021 23:20:38] CameraClient: GetImageAttributes failed6
[11-02-2021 23:20:38] CameraClient: Failed to allocate images groups!6
[11-02-2021 23:20:38] Driveworks exception thrown: DW_FAILURE: CameraClient: Failed to allocate images pool!

terminate called after throwing an instance of 'std::runtime_error'
  what():  [2021-02-11 23:20:38] DW Error DW_FAILURE executing DW function:
 dwSensor_start(m_camera[i])
 at /dvs/git/dirty/gitlab-master_av/dw/sdk/samples/sensors/camera/camera/main.cpp:366
./record_IMX390.sh: line 9: 23332 Aborted                 (core dumped) $DRIVEWORKS/bin/sample_camera --rig $RIG_FILE --write-file $VIDEO_FILE --offscreen=2

Hi @danielz6ppg ,

Thanks for your feedback and sorry to hear that. I’ll check internally and reply you.

And the rig file for completeness:
Camera is connected to port C0

{
    "rig": {
        "sensors": [
		{
                "name": "camera:sample4",
                "nominalSensor2Rig_FLU": {
                    "roll-pitch-yaw": [
                        0.0,
                        0.0,
                        90.0
                    ],
                    "t": [
                        2.0864,
                        1.0754,
                        0.9178
                    ]
                },
                "parameter": "camera-name=IMX390RGGBE3_200FOV_RGGB,interface=csi
-e,CPHY-mode=1,link=0,output-format=processed,async-record=1,file-buffer-size=16
777216",
                "properties": {
                    "Model": "ftheta",
                    "bw-poly": "0.000000000000000 5.39896602276713e-4 9.24153753
523171e-10 2.04995092081828e-12 3.62952506167724e-16",
                    "cx": "1973.418091",
                    "cy": "1104.655396",
                    "height": "2168",
                    "width": "3848"
                },
                "protocol": "camera.gmsl"
            }
        ],
        "vehicle": {
            "valid": false
        }
    },
    "version": 6
}

@danielz6ppg “Sony IMX390EVB-MLH-SMM5” is supported by DRIVE OS 5.2.0 in our list. Could you share the exact model # you purchased? Thanks.

We have the IMX390EVB-MLH-SMM3-FG-8756100

According to DRIVE Ecosystem Hardware and Software Components | NVIDIA Developer, the module is compatible with DRIVE Software 10.0 and supported by Sony. Have you checked with Sony if they supports it on DRIVE OS 5.2.0? Thanks.

Thanks I just reached out to them.

My understanding was that the only major difference between SMM1/2/3/4 was the lenses. This will have some impact on the ISP tuning, but I imagine the driver connectivity should be the same.

What is the most recent version of DW 3.5? I’m afraid I might be running a prerelease and that may cause issues. When I run dw_info I get:

{
	"version":
	{
		"major": 3,
		"minor": 5,
		"patch": 75,
		"hash": "c61a9a35bd04f8a89874ae31dcb83c6a2c3dfe74",
		"extra": ""
	}
}

Can you confirm this is correct? Or do I need to update?

Thanks,
Daniel

This error is NvMedia level issue and we haven’t verified it on DRIVE OS 5.2.0 release.

As the page shows, SMM3 is supported by Sony. This issue is something to do with reading a wrong revision register in their driver. Please reach out to them to help to resolve it. If they have any problem, our team will support them in the backend. Thanks.

I have reached out to them with no response. Can you work with them on your end?

Thanks,
Daniel

May I know who is your Sony contact? If any concern, you can reply me with a person message. Thanks.

Hi @danielz6ppg ,

We had reached out to Sony and I believe they already had some discussion with you. Thanks.

Hi @danielz6ppg ,

May I know if Sony have already solved this for you? Thanks.

Dear @danielz6ppg
We also met same issue:

Unsupported IMX390 revision 15 detected! Supported revisions are:
IMX390 Rev 0
IMX390 Rev 1
IMX390 Rev 2
IMX390 Rev 3

did you resolve this issue?

Dear @VickNV ,
I do not have contact with Sony, can you please help me to resolve this issue ? due to I do not have driver source code. I know this is only issue when check the sensor’s revision in driver, I did modify same line code with our AR0231 camera in OS 5.1.

Hi @v.HungNV99 ,

Please create a new topic and mention this topic there.
I may need to clarify your issue further to understand how to help you.
Thanks.