OS08A10 8MP HDR Camera max resolution on Android

Hi,
I bought camera OS08A10 8MP HDR Camera
For Khadas VIM3.
On khadas is latest version of Android 9 → VIM3_Pie_V210908.7z
Problem is:
In specification is resolution
3840x2160 at 60 FPS and many others

But on android is offered:
for video 1920x1080
and picture 3840x2160

@numbqq → How can i use maximum resolution for video?

the camera app only support 1080p ,you use preset camera ?

I try old camera cam api: android.hardware.camera ,
camera 2: android.hardware.camera2
event native camera2 by c++ and JNI

All with same result →
offered max supported resolution 1920x1080,
when i set to 3840x2160 camera provider crash.
I try all resolutions whitch are in docs:
3840x2160, 2560x1440, 1920x1080, 1280x720
works only 1920x1080

Please help @numbqq

@banak you can trace driver code
vendor/amlogic/common/arm_isp/driver/linux/kernel/subdev/sensor/src/driver/sensor/OV08a10_drv.c
sensor_set_mode function can set resolution

Can I set 640x480 resolution using this camera?
I want low resolution and high FPS.

@Jason
I tried to change the resolution but it’s not working.
Why it’s hard coded?
I only get 1920x1080. I want lower resolution.

@Jason @Terry
Can you please have a look at my query regarding OS08A10 camera resolution?

one way:
you can modify the resolution directly. (the MIPI adapt module supports image crop.)
(you can ref this screenshot, and you need to make sure the mode is selected. )
Note: If you want to get the lowest resolution, I suggest modifying the I2C setting of the sensor.
(let it output the lowest resolution - modify vts or hts ???)

another way:
you can use v4l2 API to cut down the image. (ioctl - VIDIOC_CROPCAP).
ISP also supports image crop :slight_smile:
(you can check the v4l2_test sample code.)

Hii,

How do I lower down the resolution using I2C settings?
Can you please suggest a way?

For example. (The screenshot - you can get the i2c setting from the OV08a10_seq.h)

After comparing 1920x1080@30fps SDR with 3840x2160@30fps SDR, you can find the differences, and find the diff registers from the OV08a10 datasheet.

In most cases, you only need to change the window size and exposure parameters of the Sensor, it should be able to work. (Except for some special Timing problems)

0x3501 ~ 0x3502: long exposure - cut down this value by resolution ???

0x3808 - 0x3809 : output width - 0x07 0x80 (1920) 0x0f 0x00 (3840)
0x380a - 0x380b : output height - 0x04 0x34 (1080) 0x08 0x70 (2160)

Hii,

I was able to change the resolution from driver file ‘OV08A10_drv.c’. I changed it to 640x480 but it seems like a zoomed in image.

I’m sharing my snnipet. Also, I’m not getting a big difference in FPS.
snippet

Also, does any one have datasheet of OV08A10? I did look for it online but I could not find it.

Did you modify the upper layer’s resolution?

If not, it may use the other settings.

You can use the v4l2_test to test the new resolution,

Which layer are you talking about?
HAL, Framework or App?

I’m not very clear about this part, but here you need to select your modified resolution.
And I only know to use v4l2_test

@Terry @Jason
Why am I not getting 60 FPS at 1920x1080 resolution?
I’m using OS08A10 camera with VIM3.
Max FPS I’m getting with this camera is 10.
FPS