Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
New Contributor I
4,674 Views

8MP and VGA cameras not working

I am trying to get the OV8858 (8MP) and OV7251 (VGA) cameras working using Video for Linux (V4L2). I have tried using /dev/video0 through /dev/video13 and only the RealSense cameras work (/dev/video11 to /dev/video13). I can also get a USB webcam working. However, the behavior of the rest of the /dev/video devices is odd. When = 0-3, 5, 6-9, the V4L2 VIDIOC_S_FMT ioctl returns -1 with errno = EINVAL even though the selected pixel format is one of the enumerated pixel formats (I enumerated all available pixel formats, frame sizes, etc. to see what was supposedly supported). When = 4 or 10, the V4L2 API hangs trying to set the pixel format.

The dmesg output shows some errors related to the two cameras:

[ 6.034600] Ov8858 tal init called

[ 6.046159] OV8858 tal test probe called

[ 6.051334] ov8858 i2c-INT3477:00: gmin: initializing atomisp module subdev data.PMIC ID 1

[ 6.051654] acpi INT3477:00: Failed to find gmin variable INT3477:00_CamClk

[ 6.052879] acpi INT3477:00: Failed to find gmin variable INT3477:00_ClkSrc

[ 6.053248] acpi INT3477:00: Failed to find gmin variable INT3477:00_CsiPort

[ 6.054378] acpi INT3477:00: Failed to find gmin variable INT3477:00_CsiLanes

[ 6.056525] acpi INT3477:00: Failed to find gmin variable INT3477:00_eldo1_1p8v

[ 6.057657] acpi INT3477:00: Failed to find gmin variable INT3477:00_eldo1_sel_reg

[ 6.058795] acpi INT3477:00: Failed to find gmin variable INT3477:00_eldo1_ctrl_shift

[ 6.059926] acpi INT3477:00: Failed to find gmin variable INT3477:00_eldo2_1p8v

[ 6.061154] acpi INT3477:00: Failed to find gmin variable INT3477:00_eldo2_sel_reg

[ 6.062242] acpi INT3477:00: Failed to find gmin variable INT3477:00_eldo2_ctrl_shift

[ 6.064856] (NULL device *): Failed to find gmin variable gmin_V2P8GPIO

[ 6.065920] (NULL device *): Failed to find gmin variable gmin_V1P8GPIO

[ 6.077714] mmc0: MAN_BKOPS_EN bit is not set

[ 6.093405] mmc0: new HS200 MMC card at address 0001

[ 6.096069] mmcblk0: mmc0:0001 BJNB4R 29.1 GiB

[ 6.097427] mmcblk0boot0: mmc0:0001 BJNB4R partition 1 4.00 MiB

[ 6.098749] mmcblk0boot1: mmc0:0001 BJNB4R partition 2 4.00 MiB

[ 6.100579] mmcblk0rpmb: mmc0:0001 BJNB4R partition 3 4.00 MiB

[ 6.114744] mmcblk0: p1 p2 p3

[ 7.093307] i2c_designware 808622C1:03: controller timed out

[ 7.100570] ov8858 i2c-INT3477:00: power-up error -5!

[ 7.106785] ov8858 i2c-INT3477:00: ov8858_probe: failed to set config

[ 7.119811] ov8858: probe of i2c-INT3477:00 failed with error -5

[ 7.120167] tal init called

[ 7.131370] tal test probe called

[ 7.171513] ov7251 i2c-INT35AA:00: camera pdata: port: 1 lanes: 4 order: 00000002

[ 8.171331] i2c_designware 808622C1:03: controller timed out

[ 8.178454] ov7251 i2c-INT35AA:00: read from offset 0x300a error -110

[ 8.186308] ov7251 i2c-INT35AA:00: sensor_id_high = 0xffff

[ 8.192980] ov7251 i2c-INT35AA:00: ov7251_detect err s_config.

[ 8.203076] ov7251 i2c-INT35AA:00: sensor power-gating failed

[ 8.222401] tal test probe called

[ 8.259524] ov7251 i2c-INT35AA:01: camera pdata: port: 1 lanes: 4 order: 00000002

[ 9.260322] i2c_designware 808622C1:03: controller timed out

[ 9.267483] ov7251 i2c-INT35AA:01: read from offset 0x300a error -110

[ 9.275334] ov7251 i2c-INT35AA:01: sensor_id_high = 0xffff

[ 9.282053] ov7251 i2c-INT35AA:01: ov7251_detect err s_config.

[ 9.292484] ov7251 i2c-INT35AA:01: sensor power-gating failed

...

[ 11.720724] atomisp-css2401a0_v21 0000:00:03.0: ISP HPLL frequency base = 1600 MHz

...

[ 12.064451] atomisp-css2401a0_v21 0000:00:03.0: no camera attached or fail to detect

...

[ 12.211527] atomisp-css2401a0_v21 0000:00:03.0: hmm_reserved_pool init successfully,hmm_reserved_pool is with 32768 pages.

...

I'm using the 12V, 2A wall adapter to power the Intel Aero Compute board mounted in the Intel enclosure kit (as per the illustrated guide), with all three cameras (8MP, VGA and RealSense) attached. Is this a power-supply issue? I'm wondering if 2A is not sufficient on power-up as later in the dmesg log the following messages appear:

[ 129.098186] CPU3: Core temperature above threshold, cpu clock throttled (total events = 1)

[ 129.099007] CPU2: Core temperature above threshold, cpu clock throttled (total events = 1)

Or is V4L2 the wrong API to use to access these cameras? I have the very latest BIOS release flashed:

[ 0.000000] DMI: Insyde CherryTrail/Intel(R) Aero Platform for UAVs, BIOS Aero-01.00.12_Prod 12/09/2016

and operating system image:

Linux intel-aero 4.4.3-yocto-standard # 1 SMP PREEMPT Fri Dec 16 18:13:41 CLST 2016 x86_64 x86_64 x86_64 GNU/Linux

My suspicion is that the cameras are /dev/video4 and /dev/video10, but did not come up properly so V4L2 hangs trying to use them (since VIDIOC_S_FMT is the first ioctl to gain exclusive access to the device).

Any assistance would be appreciated.

Regards,

Dan

48 Replies
Highlighted
New Contributor I
5 Views

When I run the capturev4l2 example on our new Intel Drone it appears to work. The output I get is:

root@intel-aero:~# C=10 INPUT=0 MODE=PREVIEW ./capturev4l2 --userp -d /dev/video0

Preview mode: 640x480, yuv420.

m_width 640, m_height 480, m_sizeimage 462848, m_padded_width:640, bytesperline 640

Saving file: Image-video2-640x480-0.yuv420

Saving file: Image-video2-640x480-1.yuv420

Saving file: Image-video2-640x480-2.yuv420

Saving file: Image-video2-640x480-3.yuv420

Saving file: Image-video2-640x480-4.yuv420

Saving file: Image-video2-640x480-5.yuv420

Saving file: Image-video2-640x480-6.yuv420

Saving file: Image-video2-640x480-7.yuv420

Saving file: Image-video2-640x480-8.yuv420

Saving file: Image-video2-640x480-9.yuv420

Preview: Time=339.845000ms FPS=29.425179

root@intel-aero:~# C=10 INPUT=1 MODE=PREVIEW ./capturev4l2 --userp -d /dev/video0

Preview mode: 640x480, yuv420.

m_width 640, m_height 480, m_sizeimage 462848, m_padded_width:640, bytesperline 640

Saving file: Image-video2-640x480-0.yuv420

Saving file: Image-video2-640x480-1.yuv420

Saving file: Image-video2-640x480-2.yuv420

Saving file: Image-video2-640x480-3.yuv420

Saving file: Image-video2-640x480-4.yuv420

Saving file: Image-video2-640x480-5.yuv420

Saving file: Image-video2-640x480-6.yuv420

Saving file: Image-video2-640x480-7.yuv420

Saving file: Image-video2-640x480-8.yuv420

Saving file: Image-video2-640x480-9.yuv420

Preview: Time=335.770000ms FPS=29.782291

I haven't looked at the images yet, but this looks far more promising. It's the very same executable I tried on our original Intel Aero board, so it doesn't look like the executable was the issue.

Regards,

Dan

0 Kudos
Highlighted
Community Manager
5 Views

Hi Dan

 

 

That's good news, at least there's some progress and now it doesn't seem like the executable file was the issue. However, the fact that it doesn't work on the Aero is strange.

 

 

Looking at the community we found that the cases that resemble the most to yours are these ones here:

 

https://communities.intel.com/thread/112741 https://communities.intel.com/thread/112741

 

https://communities.intel.com/thread/111732 https://communities.intel.com/thread/111732

 

 

Even though they're not exactly about the same issue and error, they may still provide some more information. Please confirm you've already seen these threads. We're still investigating in one of those threads and will provide a suggestion there as well as soon as we have more information.

 

 

Regards,

 

-Sergio

 

0 Kudos
Highlighted
Community Manager
5 Views

Hi Dan,

 

 

Do you still need assistance with this case? We'll be waiting for your response.

 

 

-Sergio A

 

0 Kudos
Highlighted
New Contributor I
5 Views

I'm not sure where to go from here. I can try to see what the difference is between the Intel Drone and the Intel Aero board. I looked at the other threads. I did notice, like another thread mentioned, that the exposure was extremely low on one of the cameras on the Intel Drone. I guess I'll have to keep playing around.

0 Kudos
Highlighted
Community Manager
5 Views

Hi Dan,

 

 

Sure, it would be a good idea to keep testing with the cameras. Let us know if you have any further question after that.

 

 

Regards,

 

Pablo M.

 

0 Kudos
Highlighted
Beginner
5 Views

Hi Dan,

I've gotten to the same point, where I see the same error you saw. Did you ever find a solution to this?

Thanks,

Kevin

0 Kudos
Highlighted
New Contributor I
5 Views

Hi Kevin,

No, I have not yet gotten my original Intel Aero working with the cameras. However, they do work on the Intel drone, so something is different between the two. I have had to put this to one side for a bit while I work on another project so I haven't gotten back to it yet. Sorry I don't have any more information for you.

Dan

0 Kudos
Highlighted
Community Manager
5 Views

Hi,

It looks like it's a hardware issue on board side: I had my Inel RTF cameras working fine but after one of the crashes connector had detached and I got exactly the same error message at /dev/video2 as Dan had. This is not a camera issue since the same camera is now working fine in another drone. And definitely not a software issue since everything worked fine before the crash.

Highlighted
New Contributor I
5 Views

I am trying to run the capture_example from this thread, but am getting a "permission denied" error as shown below.

root@intel-aero:/home# C=10 INPUT=0 MODE=PREVIEW ./capture_example --userp -d /dev/video0

-sh: ./capture_example: Permission denied

Any thoughts on what I am doing wrong?

0 Kudos