First check: Is ISP actually being used?
Run:
libcamera-hello --list-cameras
or
media-ctl -p
and verify the stream is going through:
Sensor
-> ISI
-> ISP
-> libcamera
If you're bypassing the ISP and displaying RAW data directly, image quality will look very poor. The i.MX95 camera subsystem is designed to use the ISP for RAW Bayer sensors.
Common cause #1: Wrong Bayer pattern
You replaced the SVS sensor:
OX03C10
with:
OX03H10
One of the first things to verify is:
BGGR
RGGB
GRBG
GBRG
If the Bayer order configured in the driver differs from the sensor output format, the image often appears:
- extremely bright
- wrong colors
- pink/magenta tint
- green tint
Check the sensor mode table and DT endpoint configuration.
Common cause #2: Exposure too high
Try forcing exposure manually.
For example:
v4l2-ctl -d /dev/v4l-subdevX --all
``
Check:
exposure
analog gain
digital gain
If exposure is fixed at a large value, the image will become completely white.
Common cause #3: AE/AWB not working
The i.MX95 ISP uses calibration/tuning information and IPA algorithms for:
- AE (Auto Exposure)
- AWB (Auto White Balance)
- Color correction
- Denoise
- Gamma
The camera porting guide states that a sensor-specific configuration and calibration database must be created for a new sensor.
If you simply copied the OX03C10 driver and changed the sensor ID, the ISP may still be loading OX03C10 tuning parameters, which are incorrect for OX03H10.
Common cause #4: Wrong DTP / calibration database
For i.MX95, tuning parameters are stored in sensor-specific database files:
database_<sensor>_<mode>_<resolution>_<bitdepth>.bin
The porting guide states that a dedicated calibration file must be created for a new sensor and installed through the IPA configuration.
Without proper calibration:
- exposure can be unstable
- white balance can be wrong
- colors can be inaccurate
- image may appear washed out