Full resolution firmware for OV13850

Hello,
I am building a system with RK3288 and OV13850.
As reading the source code for the Lollipop I was wondering two things :

  • what is the highest resolution I can handle (I don’t see full resolution in the Hal code)
  • is the Camera v2 API implementation level FULL or only LEGACY or LIMITED.

Thank you very much :smiley:

Hi renaud,
1 Yes ,the OV13850 highest resolution “4224X3136” can be handled ,
the code is here : ./hardware/rockchip/camera/SiliconImage/isi/drv/OV13850/calib/OV13850.xml
2 yes, the Camera V2 API is implemented fully.

Hi all,

What is best frame rate it can support?

we only test 1080P 30fps for recording

Hi isle,

How about 720p, can it reach 60 fps?

I have 2 version of OV13850 module with K and H. What is diffirent between them?

Hi
It should can reach 60fps,But we did test it yet.

about the K & H
the circuit board was made by two different factories ,and There’s no other difference.

Hi isle,

Which system do you use for testing 1080P 30fps?
I’m using Android 4.4, it only reach maximum 15 fps with 720p

the latest Android 5.1 firmware.

isle Posted at 2/15/2017 15:08
Hi renaud,
1 Yes ,the OV13850 highest resolution “4224X3136” can be handled ,
the code is here : …

Hi Isle,
Sorry for replying so late. I think I got not notification to tell me about your answer !
This is very good news. I am investigating right now to understand why the APK I use for testing Camera 2 level is returning Legacy. Maybe my firmware it is not configured correctly !
Would you mind having a look at our repository on Gitlab and tell us if you see something wrong ? Can we talk by email or by phone ?
Thank you very much ! :smiley:

hi
Have you try the firefly’s repository on Gitlab?

Hi Isle, thanks for your help!

We try with https://gitlab.com/T-Firefly/firefly-rk3288 repository.

But when we use our APK, the camera2 feature are not implemented. We installed an apk that give the level of implementation of camera 2 and the result is Legacy level :frowning:

By reading the code in CameraHal.h (https://gitlab.com/T-Firefly/firefly-rk3288/blob/master/hardware/rk29/camera/CameraHal/CameraHal.h) include camera.h and not camera3.h

When we are in debug mode, when we call characteristics.get(CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL)) this return INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY :frowning:

Here Logcat detail filter on camera string:

D/hwcomposer(  185): RK_GRAPHICS_VER=commit-id:dc92ecc23a Camera2添加Focus按键支持
I/CameraService(  194): CameraService started (pid=194)
I/CameraService(  194): Loaded "RK29_ICS_CameraHal_Module" camera module
D/CameraHal(  194): createInstance(817): open xml file(/etc/cam_board.xml) success
E/CameraHal(  194): cam_board.xml version(v0.0.0) != xml parser version(v0.13.0)
D/CameraHal(  194):
D/CameraHal(  194):
D/CameraHal(  194):
D/CameraHal(  194):  Cam_board.xml Version Check:
D/CameraHal(  194):     /etc/cam_board.xml : v0.0xd.0
D/CameraHal(  194):     CameraHal_board_xml_parser: v0.13.0
D/CameraHal(  194): ParserSensorInfo(46): SensorName(OV13850)
D/CameraHal(  194): ParserSensorInfo(51): SensorDevID(CAMSYS_DEVID_SENSOR_1B)
D/CameraHal(  194): ParserSensorInfo(62): SensorDevID(33554432)
D/CameraHal(  194): ParserSensorInfo(64): SensorHostDevID(CAMSYS_DEVID_MARVIN)
D/CameraHal(  194): ParserSensorInfo(79): Sensori2cBusNum(3)
D/CameraHal(  194): ParserSensorInfo(82): SensorI2cAddrByte(2)
D/CameraHal(  194): ParserSensorInfo(85): SensorI2cRate(100000)
D/CameraHal(  194): ParserSensorInfo(88): SensorMclk(24000000)
D/CameraHal(  194): ParserSensorInfo(91): SensorAvdd(NC) min(0) max(0)
D/CameraHal(  194): ParserSensorInfo(96): SensorDovdd(NC) min(0) max(0)
D/CameraHal(  194): ParserSensorInfo(101): SensorDvdd(NC) min(0) max(0)
D/CameraHal(  194): ParserSensorInfo(106): SensorGpioPwdn(RK30_PIN2_PB6) active(0)
D/CameraHal(  194): ParserSensorInfo(110): SensorGpioRst(RK30_PIN2_PB0) active(0)
D/CameraHal(  194): ParserSensorInfo(114): SensorGpioPwen(RK30_PIN0_PB3) active(1)
D/CameraHal(  194): ParserSensorInfo(118): SensorFacing(back)
D/CameraHal(  194): ParserSensorInfo(127): SensorInterface(MIPI)
D/CameraHal(  194): ParserSensorInfo(140): SensorMirrorFlip(0)
D/CameraHal(  194): ParserSensorInfo(146): SensorOrientation(0)
D/CameraHal(  194): ParserSensorInfo(143): SensorPowerupSequence(1234)
D/CameraHal(  194): ParserSensorInfo(240): SensorFovParemeter fov_h(60.0)(60.000000) fov_v(60.0)(60.000000)
D/CameraHal(  194): ParserSensorInfo(243): SensorAWB_Frame_Skip fps(15)
D/CameraHal(  194): ParserSensorInfo(214): SensorPhy: MIPI  lane: 2  phyindex: 1  fmt: 0x2b
D/CameraHal(  194): ParserVCMInfo(255): VCMDrvName(BuiltInSensor)
D/CameraHal(  194): ParserVCMInfo(258): VCMName(NC)
D/CameraHal(  194): ParserVCMInfo(261): VCMI2cBusNum(3)
D/CameraHal(  194): ParserVCMInfo(264): VCMI2cAddrByte(0)
D/CameraHal(  194): ParserVCMInfo(267): VCMI2cRate(0)
D/CameraHal(  194): ParserVCMInfo(278): VCMVdd(NC) min(0) max(0)
D/CameraHal(  194): ParserVCMInfo(270): VCMGpioPwdn(NC) active(0)
D/CameraHal(  194): ParserVCMInfo(274): VCMGpioPower(NC) active(0)
D/CameraHal(  194): ParserVCMInfo(294): start current(20) rated current(80) vcm max(100)  step mode(13)  drv max(100)
D/CameraHal(  194): ParserFlashInfo(308): FlashName(NC)
D/CameraHal(  194): ParserFlashInfo(311): FlashI2cBusNum(0)
D/CameraHal(  194): ParserFlashInfo(314): FlashI2cAddrByte(0)
D/CameraHal(  194): ParserFlashInfo(317): FlashI2cRate(0)
D/CameraHal(  194): ParserFlashInfo(320): FlashTrigger(NC) active(0)
D/CameraHal(  194): ParserFlashInfo(324): FlashEn(NC) active(0)
D/CameraHal(  194): ParserFlashInfo(331): FlashLuminance(0)
D/CameraHal(  194): ParserFlashInfo(334): FlashColorTemp(0)
D/CameraHal(  194): StartElementHandler(760): HDR(1)!
D/CameraHal(  194): StartElementHandler(764): ZSL(1)!
D/CameraHal(  194): StartElementHandler(768): zoom(1)!
D/CameraHal(  194): StartElementHandler(796): Continue_SnapShot(1)!
D/CameraHal(  194): StartElementHandler(799): InterpolationRes(0)!
D/CameraHal(  194): StartElementHandler(790): PreviewSize(0x0)!
D/CameraHal(  194): StartElementHandler(786): face detect config(0),max face num is (0)!
D/CameraHal(  194): ParserDVConfig(601):  DV_QCIF(qcif) resolution(176x144) fps(10) support(1)
D/CameraHal(  194): ParserDVConfig(613):  DV_QVGA(qvga) resolution(320x240) fps(10) support(1)
D/CameraHal(  194): ParserDVConfig(625):  DV_CIF(cif) resolution(352x288) fps(10) support(1)
D/CameraHal(  194): ParserDVConfig(637):  DV_VGA(480p) resolution(640x480) fps(10) support(0)
D/CameraHal(  194): ParserDVConfig(649):  DV_480P(480p) resolution(720x480) fps(10) support(0)
D/CameraHal(  194): ParserDVConfig(673):  DV_720P(720p) resolution(1280x720) fps(10) support(1)
D/CameraHal(  194): ParserDVConfig(685):  DV_1080P(1080p) resolution(1920x1080) fps(10) support(1)
D/CameraHal(  194): number of camdevice (1)
D/CameraHal(  194): now DV size(7)
E/CameraHal(  194): camera_get_number_of_cameras(690): board profiles cam num 1
D/CameraHal(  194): read cam name from xml(/data/camera/media_profiles.xml)
D/CameraHal(  194): videoname0="OV13850" index=0 facing=0 -->
D/CameraHal(  194):
D/CameraHal(  194): find camera count(1) cam1(OV13850) cam2()
D/CameraHal(  194):
D/CameraHal(  194):
D/CameraHal(  194):
D/CameraHal(  194):  CamSys_Head.h Version Check:
D/CameraHal(  194):     Kernel camsys_head.h: v0.11.0
D/CameraHal(  194):     Kernel camsys_drv :   v0.32.0
D/CameraHal(  194):     CameraHal camsys_head.h : v0.11.0
D/CameraHal(  194):
D/CameraHal(  194):
D/CameraHal(  194):
E/CameraHal(  194): CAMSYS_QUREYIOMMU failed !!!!
D/CameraHal(  194): Check OV13850 ID: reg: 0x300a  val: 0xd8 default: 0xd8
D/CameraHal(  194): Check OV13850 ID: reg: 0x300b  val: 0x50 default: 0x50
D/CameraHal(  194): OpenAndRegistOneSensor(992): sensor xml file name : /etc/OV13850.xml lens name
D/MediaProfiles(  198): CameraGroupFound(668): media_profiles_id: 0x0
D/MediaProfiles(  198): getInstance(763): Create instance from /data/camera/media_profiles.xml
E/CameraHal(  194): camera_get_number_of_cameras(697): load sensor name(OV13850) connect 1
E/CameraHal(  194): camera_get_number_of_cameras(750): Open /dev/video0 failed! strr: No such file or directory
D/CameraHal(  194): camera_get_number_of_cameras(1114): camera_get_number_of_cameras(1114): Current board have 1 cameras attached.
D/CameraHal(  194): camera_get_number_of_cameras(1117): meida_profiles_xml_control time (240031)us
W/PackageParser(  482): Unknown element under <manifest>: meta-data at /data/app/com.example.android.camera2basic-2/base.apk Binary XML file line #29
W/PackageManager(  482): Not granting permission android.permission.BIND_WALLPAPER to package com.android.camera2 (protectionLevel=18 flags=0x58bc45)
W/PackageManager(  482): Unknown permission com.android.vending.CHECK_LICENSE in package com.flavionet.android.camera.lite
W/PackageManager(  482): Not granting permission android.permission.BIND_WALLPAPER to package com.android.camera2 (protectionLevel=18 flags=0x58bc45)
W/PackageManager(  482): Unknown permission com.android.vending.CHECK_LICENSE in package com.flavionet.android.camera.lite
W/PackageManager(  482): Not granting permission android.permission.BIND_WALLPAPER to package com.android.camera2 (protectionLevel=18 flags=0xd8bc45)
W/PackageManager(  482): Unknown permission com.android.vending.CHECK_LICENSE in package com.flavionet.android.camera.lite
W/PackageManager(  601): Failure retrieving resources for supercurio.niveaucamera2: Resource ID #0x0
W/PackageManager(  601): Failure retrieving resources for com.example.android.camera2basic: Resource ID #0x0
I/CameraManagerGlobal(  601): getCameraService: Reconnecting to camera service
E/CameraManagerGlobal(  601): Camera id 0 has status changed to 0x1
I/CameraService(  194): getCameraCharacteristics: Switching to HAL1 shim implementation...
D/CameraHal(  194): camera_get_camera_info(1311): camera_get_camera_info(1311): camera_0 facing(0), orientation(0)
D/CameraHal(  194): camera_get_camera_info(1311): camera_get_camera_info(1311): camera_0 facing(0), orientation(0)
I/CameraClient(  194): Opening camera 0
D/CameraHal(  194): camera_get_camera_info(1311): camera_get_camera_info(1311): camera_0 facing(0), orientation(0)
I/CameraHal(  194): camera_device_open(500): camera_device open
D/CameraHal(  194): gCameraHalLogLevel: 0
D/CameraHal(  194): CameraHal(133): it is a isp  camera
D/CameraHal(  194): Calling process is: /system/bin/mediaserver
E/CameraManagerGlobal(  601): Camera id 0 has status changed to 0x80000000
E/CameraHal_Marvin(  194): HAL-MOCKUP: CAMSYS_QUREYIOMMU failed !!!!
E/CameraHal(  194): disconnectCamera(1717): getFocusLimits failed!
D/CameraHal_Marvin(  194):
D/CameraHal_Marvin(  194):
D/CameraHal_Marvin(  194):
D/CameraHal_Marvin(  194): CameraHal Version Check:
D/CameraHal_Marvin(  194):     CamSys_Head.h version:
D/CameraHal_Marvin(  194):        kernel: (0x) v0.b.0
D/CameraHal_Marvin(  194):        libisp_siliconimage_isp.so: (0x) v0.b.0
D/CameraHal_Marvin(  194):     LibIsp version:
D/CameraHal_Marvin(  194):        local: (0x) v1.27.0
D/CameraHal_Marvin(  194):        camera.rk30board.so: (0x) v1.27.0
D/CameraHal_Marvin(  194):     Sensor ISI version:
D/CameraHal_Marvin(  194):         libisp_isi_drv_XXX: (0x) v0.a.0
D/CameraHal_Marvin(  194):         libisp_siliconimage_isp.so: (0x) v0.a.0
D/CameraHal_Marvin(  194):     Tunning XML version:
D/CameraHal_Marvin(  194):         libisp_isi_drv_XXX: (22-May-2014_OUYANG_OV13850_FX288_v1.0)
D/CameraHal_Marvin(  194):         Calibdb: (06-Aug-2014_ZYL-OYYF_OV13850_CMK-CT0116-FV1_v0.1.2)
D/CameraHal_Marvin(  194):     sensor name OV13850:
D/CameraHal_Marvin(  194):        sensor drv version: (0x) v0.9.0
D/CameraHal_Marvin(  194):
D/CameraHal_Marvin(  194):
D/CameraHal_Marvin(  194):
D/CameraHal(  194): setupPreview(248): isp out put format is YUV420SP.
D/CameraHal(  194): initDefaultParameters(914): ------mHardInfo.mVcmInfo.mVcmDrvName in not NC-----
D/CameraHal(  194): enableSensor(213): orientation = 0xb70bd1a0 (MPL accel)
W/CameraService(  194): CameraService::connect X (id 0, this pid is 194, name media)
D/CameraHal(  194): commandThread(983): commandThread(983): receive CMD_PREVIEW_CAPTURE_CANCEL
D/CameraHal(  194): commandThread(991): commandThread(991): CMD_PREVIEW_CAPTURE_CANCEL out
D/CameraHal(  194): cancelPicture(561): cancel picture OK.
D/CameraHal(  194): commandThread(911): commandThread(911):receive CMD_PREVIEW_STOP
D/CameraHal(  194): commandThread(932): commandThread(932): CMD_PREVIEW_STOP out
D/CameraHal(  194): stopPreview(362): stop preview OK.
I/CameraClient(  194): Destroying camera 0
D/CameraHal(  194): camera_device_close(451): camera_device_close
D/CameraHal(  194): disableSensor(237): orientation = 0xb70bd1a0 (MPL accel)
D/CameraHal(  194): ~SensorListener(110): Kill looper thread
D/CameraHal(  194): ~SensorListener(122): Kill looper
D/CameraHal(  194): ~SensorListener(128): SensorListener destroyed
D/CameraHal(  194): displayThread(622): displayThread(622): receive CMD_DISPLAY_STOP
D/CameraHal(  194): cameraDisplayBufferDestory(399): cameraDisplayBufferDestory(399): mANativeWindow is NULL, destory is ignore
D/CameraHal(  194): encProcessThread(1632): encProcessThread(1632): receive CMD_ENCPROCESS_EXIT
E/CameraHal_Marvin(  194): OV13850:  STREAM OFF ++++++++++++++
D/CameraHal(  194): commandThread(1095): commandThread(1095): receive CMD_EXIT
D/CameraHal(  194): ~CameraHal(293): CameraHal destory success
W/CameraService(  194): removeClient: clear camera 0, package name media
E/CameraManagerGlobal(  601): Camera id 0 has status changed to 0x1
D/CameraHal(  194): camera_get_camera_info(1311): camera_get_camera_info(1311): camera_0 facing(0), orientation(0)
D/CameraHal(  194): camera_get_camera_info(1311): camera_get_camera_info(1311): camera_0 facing(0), orientation(0)

This article is very well written and worth studying. The C_SEC_2405 exam score helped me land a promotion and salary boost. Now it’s free for all. Wishing you success in your career!

Thank you for your article, it gave me such a fresh perspective. Wishing you all success—free 6V0-21.25 exam course exam questions available now!