Firefly Open Source Community

Title: Dual OV13850 cameras finally land on Firefly-RK3399 in Ubuntu 18.04! [Print This Page]

Author: penguin    Time: 12/27/2018 17:24
Title: Dual OV13850 cameras finally land on Firefly-RK3399 in Ubuntu 18.04!
Photo first, engineer style with a messy desktop



Author: penguin    Time: 12/27/2018 17:29
Last edited by penguin In 1/5/2019 15:19 Editor

UPDATE:* 20190105
- update to camera-engine-rkisp_1.5.0
- update to the latest firefly stable kernel with dual cameras patches
- fix setup script, remove /opt/gstreamer from environment.

For the bravery, I've written an installation manual which can be read on:

   http://wiki.t-firefly.com/firefly-rk3399-repo/dualcamera/INSTALL.txt

Below is just a copy of it:

# Prerequisite

To install dual cameras experimental support, you need:

- a Firefly-RK3399 board
- flashed with firmware Firefly-RK3399-ubuntu18.04_20181017.img
- two 30-pin OV13850 cameras from the Firefly Shop
- Internet access from the board

# Installation

WARNING: Please BACKUP your data first. The following procedure will have the
risk of ruining your filesystem and system boot.

Download the script and run:

  1.     wget -O dual-camera-setup.sh http://wiki.t-firefly.com/firefly-rk3399-repo/dualcamera/dual-camera-setup.txt
  2.     sudo bash dual-camera-setup
Copy the code

This script will install the necessary packages and scripts, flash the new kernel.

After completion, please REBOOT your board to have the new kernel take effect.

# Run

After reboot, setup the pipeline by running:

    sudo /etc/init.d/S50set_pipeline start

Then start the preview of dual cameras:

    sudo dual-camera-rkisp.sh

The two windows vanish quickly, you need to run the command above again.

# Known bugs
- First run may fail.

# Fixed bugs

- Fixed: (20181228) Repeated run of sudo dual-camera-rkisp.sh will cause the cameras fail to start.


Author: acidpero    Time: 12/28/2018 08:24
Wow awesome!
This is a tremendous development that can increase the scale of the firefly board users.

But..
How can it be?
Cameras are physically use the same address on the same bus.
What tricks were used?
Author: penguin    Time: 12/28/2018 10:32
@acidpero you are right, hitting the point.

At first, we are thinking of changing the OV13850's i2c address physically by
its SID pin. The SCCB address will be 0x20 when SID pin is low,  be 0x6c
when high.

But it is not the best option after all, right? Asking a user to iron a copper wire to the camera
is not good. Besides, Android can support dual cameras without it.

Then we read thoroughly the chip spec, and found the cure, which is quoted:

  1. In the OV13850, the SCCB ID is controlled by the SID pin, and can be programmable. If SID is low, the sensor’s SCCB
  2. address comes from register 0x300C which has a default value of 0x20. If SID is high, the sensor’s SCCB address comes
  3. from register 0x3661 which has a default value of 0x6C.
Copy the code


That's what we want, to change the i2c address on demand. After some trial and error, it proves that it is completely viable.

Later we have to deal with the sharing use of power regulators and reset pin,
and more tests to ensure that both single camera (connected with either mipi port)
and dual cameras work with the same kernel image and dtb.

Author: acidpero    Time: 12/28/2018 11:48
penguin Posted at 12/28/2018 10:32
@acidpero you are right, hitting the point.

At first, we are thinking of changing the OV13850's i ...

Oh god. you nice hacker
How did you program that pin?
is that available on device driver code? or dts?
I can not catch it.
if u okay, get me some hint.
Author: penguin    Time: 12/28/2018 14:17
@acidpero , no, please read after that. we did not program that pin.

We end up programming the SC_SCCB_ID register:

0x300C SC_SCCB_ID 0x20 RW SCCB ID
Author: loopdavid    Time: 1/14/2019 14:14
Hi there

Are you able to get raw camera data with the driver? RGB888
Author: penguin    Time: 1/14/2019 17:25
Hi @loopdavid , I haven't done that.

But according to http://opensource.rock-chips.com/wiki_Rockchip-isp1 ,
The RGB data can be retrieved from the isp1_selfpath.

Author: loopdavid    Time: 1/15/2019 18:09
penguin Posted at 1/14/2019 17:25
Hi @loopdavid , I haven't done that.

But according to http://opensource.rock-chips.com/wiki_Rockc ...

OK great thanks!
Author: loopdavid    Time: 1/23/2019 11:24
Hello - should this script work on the ROC-RK3399? We run the script but afterwards the unit would not boot.
Author: penguin    Time: 1/25/2019 11:03
This script is only tested and worked for Firefly-RK3399 board.

Author: no_name    Time: 1/25/2019 19:58
great job !
just a little question can we flash an image that is release later ? like this one (20190103)
https://pan.baidu.com/s/1PXbZXMA ... 67069%2FUbuntu18.04(GPT)&parentPath=%2Fsharelink1414141670-305585565267069




Author: penguin    Time: 1/27/2019 16:38
It might work. Just go ahead and try.
Author: PpHLNmt1R    Time: 1/31/2019 17:17
Hi,   really awesome work.  I still can not get image from camera1. camera0 works ok.

root@firefly:~# dmesg  | grep 1385
[    0.138525] SMP: Total of 6 processors activated.
[    1.218601] ov13850 1-0036: GPIO lookup for consumer reset
[    1.218615] ov13850 1-0036: using device tree for GPIO lookup
[    1.218655] of_get_named_gpiod_flags: parsed 'reset-gpios' property of node '/i2c@ff110000/ov13850@36[0]' - status (0)
[    1.218710] ov13850 1-0036: Looking up avdd-supply from device tree
[    1.218898] ov13850 1-0036: Looking up dovdd-supply from device tree
[    1.218995] ov13850 1-0036: Looking up dvdd-supply from device tree
[    1.219331] ov13850 1-0036: GPIO lookup for consumer pwdn
[    1.219341] ov13850 1-0036: using device tree for GPIO lookup
[    1.219380] of_get_named_gpiod_flags: parsed 'pwdn-gpios' property of node '/i2c@ff110000/ov13850@36[0]' - status (0)
[    1.224184] ov13850 1-0036: Detected OV00d850 sensor, REVISION 0xb2
[    1.228173] ov13850 1-0046: GPIO lookup for consumer pwdn
[    1.228192] ov13850 1-0046: using device tree for GPIO lookup
[    1.228253] of_get_named_gpiod_flags: parsed 'pwdn-gpios' property of node '/i2c@ff110000/ov13850@46[0]' - status (0)
[    1.232870] ov13850 1-0046: Detected OV00d850 sensor, REVISION 0xb2



root@firefly:/usr/local/bin# ./dual-camera-rkisp.sh
sensorbayer=SBGGR10_1X10
sensorname="ov13850 1-0036"
sensorres=2112x1568
mpnode=/dev/video0
mpfmt=NV12
mpres=640x480
spnode=/dev/video1
spfmt=NV12
spres=640x480
parse user options success ...
crop 2084,1568@(14,0)
crop 2084,1568@(14,0)
config sensor: '"ov13850 1-0036":0[fmt:SBGGR10/2112x1568]'
config mipiphy input: '"rockchip-sy-mipi-dphy":0[fmt:SBGGR10/2112x1568]'
config mipiphy output: '"rockchip-sy-mipi-dphy":1[fmt:SBGGR10/2112x1568]'
config isp input fmt: '"rkisp1-isp-subdev":0[fmt:SBGGR10/2112x1568]'
config isp input crop: '"rkisp1-isp-subdev":0[crop0,0)/2112x1568]'
config isp output crop: '"rkisp1-isp-subdev":2[crop0,0)/2112x1568]'
config isp output fmt: '"rkisp1-isp-subdev":2[fmt:YUYV2X8/2112x1568]'
config mp crop: /dev/video0 --set-selection=target=crop,top=0,left=14,width=2084,height=1568
config mp fmt: /dev/video0 --set-fmt-video=width=640,height=480,pixelformat=NV12
config sp crop: /dev/video1 --set-selection=target=crop,top=0,left=14,width=2084,height=1568
config sp fmt: /dev/video1 --set-fmt-video=width=640,height=480,pixelformat=NV12
sensorbayer=SBGGR10_1X10
sensorname="ov13850 1-0046"
sensorres=2112x1568
mpnode=/dev/video4
mpfmt=NV12
mpres=640x480
spnode=/dev/video5
spfmt=NV12
spres=640x480
parse user options success ...
crop 2084,1568@(14,0)
crop 2084,1568@(14,0)
config sensor: '"ov13850 1-0046":0[fmt:SBGGR10/2112x1568]'
config mipiphy input: '"rockchip-sy-mipi-dphy":0[fmt:SBGGR10/2112x1568]'
config mipiphy output: '"rockchip-sy-mipi-dphy":1[fmt:SBGGR10/2112x1568]'
config isp input fmt: '"rkisp1-isp-subdev":0[fmt:SBGGR10/2112x1568]'
config isp input crop: '"rkisp1-isp-subdev":0[crop0,0)/2112x1568]'
config isp output crop: '"rkisp1-isp-subdev":2[crop0,0)/2112x1568]'
config isp output fmt: '"rkisp1-isp-subdev":2[fmt:YUYV2X8/2112x1568]'
config mp crop: /dev/video4 --set-selection=target=crop,top=0,left=14,width=2084,height=1568
config mp fmt: /dev/video4 --set-fmt-video=width=640,height=480,pixelformat=NV12
config sp crop: /dev/video5 --set-selection=target=crop,top=0,left=14,width=2084,height=1568
config sp fmt: /dev/video5 --set-fmt-video=width=640,height=480,pixelformat=NV12
Setting pipeline to PAUSED ...
media get entity by name: rockchip-mipi-dphy-rx is null
media get entity by name: lens is null
XCAM ERROR v4l2_device.cpp:253: VIDIOC_QUERYCAP returned: -1 (Inappropriate ioctl for device)
XCAM ERROR v4l2_device.cpp:253: VIDIOC_QUERYCAP returned: -1 (Inappropriate ioctl for device)
XCAM ERROR rkisp_control_loop_impl.cpp:69: get isp version failed !
Pipeline is live and does not need PREROLL ...
XCAM ERROR rkisp_device.cpp:72: atomisp device(/dev/video0) try subdev format failed
Setting pipeline to PLAYING ...
New clock: GstSystemClock
XCAM ERROR aec.c:1838: GAIN OUT OF RANGE: lasttime-gain: 0.001000-3.000000
Setting pipeline to PAUSED ...
media get entity by name: rockchip-mipi-dphy-rx is null
media get entity by name: lens is null
XCAM ERROR v4l2_device.cpp:253: VIDIOC_QUERYCAP returned: -1 (Inappropriate ioctl for device)
XCAM ERROR v4l2_device.cpp:253: VIDIOC_QUERYCAP returned: -1 (Inappropriate ioctl for device)
XCAM ERROR rkisp_control_loop_impl.cpp:69: get isp version failed !
Pipeline is live and does not need PREROLL ...
XCAM ERROR rkisp_device.cpp:72: atomisp device(/dev/video4) try subdev format failed
Setting pipeline to PLAYING ...
New clock: GstSystemClock
XCAM ERROR aec.c:1838: GAIN OUT OF RANGE: lasttime-gain: 0.001000-3.000000
XCAM ERROR v4l2_device.cpp:505: device(/dev/video4) start failed on VIDIOC_STREAMON
XCAM ERROR v4l2_device.cpp:670: release buffer: munmap failed
XCAM ERROR v4l2_device.cpp:670: release buffer: munmap failed
XCAM ERROR v4l2_device.cpp:670: release buffer: munmap failed
XCAM ERROR v4l2_device.cpp:670: release buffer: munmap failed
XCAM ERROR device_manager.cpp:329: capture device start failed
ERROR: from element /GstPipeline:pipeline0/GstXCamSrc:xcamsrc0: Internal data stream error.
Additional debug info:
gstbasesrc.c(3055): gst_base_src_loop (): /GstPipeline:pipeline0/GstXCamSrc:xcamsrc0:
streaming stopped, reason not-negotiated (-4)
Execution ended after 0:00:01.083581630
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
^C
root@firefly:/usr/local/bin# handling interrupt.
Interrupt: Stopping pipeline ...
Execution ended after 0:00:12.682335287
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...


Thanks^0^

Will you open source for patch dirver and dts or pull the modification to firefly github?
Author: PpHLNmt1R    Time: 1/31/2019 17:33
PpHLNmt1R Posted at 1/31/2019 17:17
Hi,   really awesome work.  I still can not get image from camera1. camera0 works ok.

root@firefl ...

Both camera works separately.
Author: no_name    Time: 2/11/2019 02:01
he same for me both cmera work on the exterior connection.
it look like the pin the closer to the heat sink doesn't work for me :/

sudo dual-camera-rkisp.sh
sensorbayer=SBGGR10_1X10
sensorname="ov13850 1-0036"
sensorres=2112x1568
mpnode=/dev/video0
mpfmt=NV12
mpres=640x480
spnode=/dev/video1
spfmt=NV12
spres=640x480
parse user options success ...
crop 2084,1568@(14,0)
crop 2084,1568@(14,0)
config sensor: '"ov13850 1-0036":0[fmt:SBGGR10/2112x1568]'
config mipiphy input: '"rockchip-sy-mipi-dphy":0[fmt:SBGGR10/2112x1568]'
config mipiphy output: '"rockchip-sy-mipi-dphy":1[fmt:SBGGR10/2112x1568]'
config isp input fmt: '"rkisp1-isp-subdev":0[fmt:SBGGR10/2112x1568]'
config isp input crop: '"rkisp1-isp-subdev":0[crop0,0)/2112x1568]'
config isp output crop: '"rkisp1-isp-subdev":2[crop0,0)/2112x1568]'
config isp output fmt: '"rkisp1-isp-subdev":2[fmt:YUYV2X8/2112x1568]'
config mp crop: /dev/video0 --set-selection=target=crop,top=0,left=14,width=2084,height=1568
config mp fmt: /dev/video0 --set-fmt-video=width=640,height=480,pixelformat=NV12
config sp crop: /dev/video1 --set-selection=target=crop,top=0,left=14,width=2084,height=1568
config sp fmt: /dev/video1 --set-fmt-video=width=640,height=480,pixelformat=NV12

sensorbayer=SBGGR10_1X10
sensorname="ov13850 1-0046"
sensorres=2112x1568
mpnode=/dev/video4
mpfmt=NV12
mpres=640x480
spnode=/dev/video5
spfmt=NV12
spres=640x480
parse user options success ...
crop 2084,1568@(14,0)
crop 2084,1568@(14,0)
config sensor: '"ov13850 1-0046":0[fmt:SBGGR10/2112x1568]'
config mipiphy input: '"rockchip-sy-mipi-dphy":0[fmt:SBGGR10/2112x1568]'
config mipiphy output: '"rockchip-sy-mipi-dphy":1[fmt:SBGGR10/2112x1568]'
config isp input fmt: '"rkisp1-isp-subdev":0[fmt:SBGGR10/2112x1568]'
config isp input crop: '"rkisp1-isp-subdev":0[crop0,0)/2112x1568]'
config isp output crop: '"rkisp1-isp-subdev":2[crop0,0)/2112x1568]'
config isp output fmt: '"rkisp1-isp-subdev":2[fmt:YUYV2X8/2112x1568]'
config mp crop: /dev/video4 --set-selection=target=crop,top=0,left=14,width=2084,height=1568
config mp fmt: /dev/video4 --set-fmt-video=width=640,height=480,pixelformat=NV12
config sp crop: /dev/video5 --set-selection=target=crop,top=0,left=14,width=2084,height=1568
config sp fmt: /dev/video5 --set-fmt-video=width=640,height=480,pixelformat=NV12
Setting pipeline to PAUSED ...
media get entity by name: rockchip-mipi-dphy-rx is null
media get entity by name: lens is null
XCAM ERROR v4l2_device.cpp:253: VIDIOC_QUERYCAP returned: -1 (Inappropriate ioctl for device)
XCAM ERROR v4l2_device.cpp:253: VIDIOC_QUERYCAP returned: -1 (Inappropriate ioctl for device)
XCAM ERROR rkisp_control_loop_impl.cpp:69: get isp version failed !
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
XCAM ERROR rkisp_device.cpp:72: atomisp device(/dev/video0) try subdev format failed
XCAM ERROR aec.c:1838: GAIN OUT OF RANGE: lasttime-gain: 0.001000-3.000000
Setting pipeline to PAUSED ...
media get entity by name: rockchip-mipi-dphy-rx is null
media get entity by name: lens is null
XCAM ERROR v4l2_device.cpp:253: VIDIOC_QUERYCAP returned: -1 (Inappropriate ioctl for device)
XCAM ERROR v4l2_device.cpp:253: VIDIOC_QUERYCAP returned: -1 (Inappropriate ioctl for device)
XCAM ERROR rkisp_control_loop_impl.cpp:69: get isp version failed !
Pipeline is live and does not need PREROLL ...
XCAM ERROR rkisp_device.cpp:72: atomisp device(/dev/video4) try subdev format failed
Setting pipeline to PLAYING ...
New clock: GstSystemClock
XCAM ERROR aec.c:1838: GAIN OUT OF RANGE: lasttime-gain: 0.001000-3.000000

Author: no_name    Time: 2/11/2019 03:28
ERROR: from element /GstPipeline:pipeline0/GstXCamSrc:xcamsrc0: Internal data stream error.
Additional debug info:
gstbasesrc.c(3055): gst_base_src_loop (): /GstPipeline:pipeline0/GstXCamSrc:xcamsrc0:
streaming stopped, reason not-negotiated (-4)
Execution ended after 0:00:01.068191325
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
ERROR: from element /GstPipeline:pipeline0/GstGtkSink:gtksink0: Output widget was destroyed
Additional debug info:
gstgtkbasesink.c(486): gst_gtk_base_sink_show_frame (): /GstPipeline:pipeline0/GstGtkSink:gtksink0
Execution ended after 0:00:38.340511582


here more info about the error
Author: acidpero    Time: 2/11/2019 15:32
Last edited by acidpero In 2/12/2019 11:26 Editor

Happy New Year.
Long time no see. I'm using dual csi-mipi well

by the way,
ov13850 using 4 lane?

board and camera sensor schematics are showing 4 lanes.
but I think 'rk3399-firefly-linux.dts' not shown as using 4 lanes.
https://github.com/FireflyTeam/k ... efly-linux.dts#L722

@penguin how do you think about this?

Author: penguin    Time: 2/13/2019 17:04
@PpHLNmt1R
source code is already at:

   https://github.com/FireflyTeam/k ... le-4.4-rk3399-linux

@acidpero
truly i'm not an expert on ov13850.
you can try to use 4 lanes by modifying dts node
and the ov13850 sensor driver.
Author: ballsystemlord    Time: 2/14/2019 11:18
@penguin Your instructions are useful and I can look at your repository, but without taking the entire repo apart could you outline what you have done to make dual cameras possible?
This is VERY important for portability and I do want to use something other than ubuntu. I was thinking Gentoo. It is ideal for making things small and customized down in size and increased in speed due to the differing options, both in terms of DEFINES and CFLAGS.
Thanks for your work! It means a lot to us!
Author: penguin    Time: 2/18/2019 09:12
@ballsystemlord  So you are mentioning the user space support of the cameras.
Good question! Actually, the deb packages in Ubuntu are ported from the buildroot
repository in github.com/rockchip-linux, where the gstreamer and camera-engine-rkisp
are contained. You can check it out for reference.
Author: hsedidin    Time: 2/24/2019 02:01
Are there any performance issues?
Author: penguin    Time: 2/25/2019 09:24
@hsedidin
Performance issue depends on the context.
Both cameras use different MIPI controller with 2 lanes,
the bandwidth not being a problem.
The preview using gstreamer is smooth.

Author: no_name    Time: 2/26/2019 07:31
@penguin
i tried to use an other image ( the last one : FIREFLY-RK3399-UBUNTU18.04-GPT-20190216-1136.img)
look like it's not working i get the following error when i do the sudo bash dual-camera-setup.sh :
E: Unable to locate package libdrm-rockchip1

i tried to continue but it end up in an other error :
XCAM ERROR gstrkisp.cpp:699: Can't find controller, maybe use a wrong video-node or wrong permission to media node
Caught SIGSEGV
XCAM ERROR gstrkisp.cpp:699: Can't find controller, maybe use a wrong video-node or wrong permission to media node
Caught SIGSEGV
exec gdb failed: No such file or directory
exec gdb failed: No such file or directory

( the 2 camera are connected to the board and i did the update/upgrade of the board )
a helping hand would be welcome :p




Author: penguin    Time: 2/26/2019 17:07
@no_name
FIREFLY-RK3399-UBUNTU18.04-GPT-20190216-1136.img has preinstalled the debs mentioned in the setup script.
However, the kernel is not built with dual cameras patches.
You can remove 'libdrm-rockchip1' line in dual-camera-setup.sh and rerun.

Or run the following lines only to update the kernel:

  1. wget http://wiki.t-firefly.com/firefly-rk3399-repo/dualcamera/boot.img
  2. wget http://wiki.t-firefly.com/firefly-rk3399-repo/dualcamera/md5sum.txt
  3. md5sum -c md5sum.txt || echo "md5sum check of boot image failed!"
  4. dd if=boot.img of=$(ls /dev/mmcblk?p3)
  5. sync
Copy the code

Author: no_name    Time: 2/27/2019 07:48
@penguin
I tried to update the kernel but after the reboot to have the new kernel take effect, the monitor shows me a black screen :/
I checked that the monitor detect the firefly rk3399, no problem on this side.
To get out of this black screen I have to erase the flash and flash the Ubuntu 18.04


Author: penguin    Time: 2/28/2019 11:32
@no_name

Plz try to build the kernel:

   https://github.com/FireflyTeam/k ... le-4.4-rk3399-linux

So that you can bisect the problem.
Author: no_name    Time: 4/5/2019 17:12
hey long time no see.

I try to make it work for the laters version but I give up on this one.

I came back to the older version. It work for only one camera. I got an issue when both cameras are connected one of them doesn't want to start :/

did you try somethink new ?
Author: VoiceJourney    Time: 7/5/2019 18:06
I have a problem:
I have  just put the lastest kernel boot.img into my firefly rk3399 board,but it display the flip and mirror video .I try to modify flip and mirror regulation 0x3820 and 0x3821,but it did not work either。

Author: Bala    Time: 8/6/2019 14:11
Hi,
I'm understanding OV13850 camera entry in the device tree. And I found two different entries in the device tree.
Is anyone can explain the difference between the two camera entries?

1. from ./rk3399-firefly-linux.dts (or) ./rk3399-rock960-ab.dts
        camera0: ov13850@10 {
                status = "okay";
                compatible = "omnivision,ov13850-v4l2-i2c-subdev";
                reg = < 0x10 >;
                device_type = "v4l2-i2c-subdev";

                clocks = <&cru SCLK_CIF_OUT>;
                clock-names = "clk_cif_out";

                pinctrl-names = "rockchip,camera_default", "rockchip,camera_sleep";
                pinctrl-0 = <&cam0_default_pins>;
                pinctrl-1 = <&cam0_sleep_pins>;

                rockchip,pd-gpio = <&gpio2 12 GPIO_ACTIVE_LOW>;
                rockchip,pwr-gpio = <&gpio1 23 GPIO_ACTIVE_HIGH>;
                rockchip,pwr-2nd-gpio = <&gpio1 22 GPIO_ACTIVE_HIGH>;
                rockchip,rst-gpio = <&gpio0 8 GPIO_ACTIVE_LOW>;

                rockchip,camera-module-mclk-name = "clk_cif_out";
                rockchip,camera-module-facing = "back";
                rockchip,camera-module-name = "cmk-cb0695-fv1";
                rockchip,camera-module-len-name = "lg9569a2";
                rockchip,camera-module-fov-h = "66.0";
                rockchip,camera-module-fov-v = "50.1";
                rockchip,camera-module-orientation = <0>;
                rockchip,camera-module-iq-flip = <0>;
                rockchip,camera-module-iq-mirror = <0>;
                rockchip,camera-module-flip = <1>;
                rockchip,camera-module-mirror = <0>;

                rockchip,camera-module-defrect0 = <2112 1568 0 0 2112 1568>;
                rockchip,camera-module-defrect1 = <4224 3136 0 0 4224 3136>;
                rockchip,camera-module-defrect3 = <3264 2448 0 0 3264 2448>;
                rockchip,camera-module-flash-support = <0>;
                rockchip,camera-module-mipi-dphy-index = <0>;
        };

2. from ./rock960-model-ab-linux.dts
        camera0: camera-module@10 {
                compatible = "ovti,ov13850";
                status = "disabled";
                reg = <0x10>;
                clocks = <&cru SCLK_CIF_OUT>;
                clock-names = "xvclk";

                reset-gpios = <&gpio3 29 GPIO_ACTIVE_HIGH>;
                pwdn-gpios = <&gpio3 28 GPIO_ACTIVE_HIGH>;
                pinctrl-names = "rockchip,camera_default";
                pinctrl-0 = <&cif_clkout>;

                port {
                        ucam_out0: endpoint {
                        remote-endpoint = <&mipi_in_ucam0>;
                        data-lanes = <1 2>;
                        };
                };
        };

Author: twostairs    Time: 8/30/2019 06:04
Does the OPV13850 camera also work on the ROC-RK3399-PC? According to the schematic it's a 30 FPC camera, while the ROC-RK3399-PC seems to only have a 24 pin connector?
Author: penguin    Time: 9/3/2019 17:38
ROC-RK3399-PC has already added the dual cameras support, and you're right.
ROC-RK3399-PC needs 24 pin FPC cameras.
Author: 闲尘若梦    Time: 9/19/2019 16:04
中国人?
Author: arvindprksh    Time: 1/2/2020 18:36
penguin Posted at 12/28/2018 10:32
@acidpero you are right, hitting the point.

At first, we are thinking of changing the OV13850's i ...

Does Android 8.1 in RK3399 support Dual cameras simuntaneous streaming?
Author: xustzhangqi    Time: 4/22/2020 13:31
终于找到资料了
Author: xustzhangqi    Time: 4/22/2020 13:40
记录记录
Author: Learner379    Time: 7/20/2020 17:18
Hi All,

Can any one of you, please share me the google drive link for OV13850 and USB camera supported ubuntu image for AIO-3399J (firefly).

Author: Learner379    Time: 7/20/2020 17:35
penguin Posted at 12/27/2018 17:29
UPDATE:* 20190105
- update to camera-engine-rkisp_1.5.0
- update to the latest firefly stable kern ...

Hi penguin,
Can you please share me the google drive link for ubunut image in which camera support is there.

Thank you.




Welcome Firefly Open Source Community (https://bbs.t-firefly.com/) Powered by Discuz! X3.1