This page describe the basic control over the sensor registers using Arducam camera breakout board, it might not be able to cover all the detail register operations, but give you an insight how to adjust these settings using Arducam USB Camera shield evaluation tool. It also helpful to hack the camera when using other platforms like Raspberry pi or Jetson Nano which might come with the default camera driver.
Sensor I2C Slave Address
The IMX477/IMX577 camera I2C 8-bit slave address is configured through SLASEL pin (A8 pin). When SLASEL pin is connected to ground or float, the slave address is 0x34, or else it is 0x20. The 8bit register value can be accessed from 16bit register address. The Raspberry Pi High Quality camera uses the 0x34 as its I2C slave address.
The device identification register is 0x0016 and 0x0017. Using Arducam USB Camera shield tool, we can read out the default value is 0x04 and 0x77 as read only register values from IMX477 camera module. For IMX577 the device id should be 0x05 and 0x77 instead.
You need a basic settings to bring up the sensor and make it working in normal streaming mode. Please contact us for the config file for the Arducam USB Camera shield Window GUI. In the demo below, it use ArduCAM USB2 camera shield Rev.E, which only get 3fps at 12MP full resolution due to the USB2.0 bandwidth limitation.
Using IMX477 Raspberry pi High Quality Camera on Jetson Nano with Arducam Jetvariety project
The Raspberry pi High Quality camera can also be used on Jetson Nano with Arducam Jetvariety project with an extra adapter board which will turn the IMX477 camera into Arducam uniformed V4L2 device. Due to the limitation of ISP support on Jetson Nano, it can only get RAW image or video stream on Jetson Nano, extra post software based image signal process is required for better image quality.