Jump to content

[bird watching station] OPi One and Aliexpress CSI Cam with Armbian


aliceander

Recommended Posts

I'm trying to get a csi cam from aliexpress to work on my orange pi one running Armbian_5.10_Orangepih3_Debian_jessie_3.4.112. I've modified the fex and tried modding the gc2035 kernel driver, and tried several different applications. Everything has failed so far.

 

Are there any resources that describe what I need to do to get it to work?  All hardware is new (with a 3a power supply too). Armbian seems to be the best distro to use, and I think I'm running the latest armbian version which includes many fixes.  I've also updated and upgraded the os once installed to include anything fixed upstream.

 

This is the aliexpress cam I got for the orange pi one: http://bit.ly/299F3Rg  As you can see, there's not much information.  In fact I'm not even sure of the camera specs, but the price was right for a test project along with the orange pi one.

 

I'm really hoping this will work.  The orange pi one with a csi cam is a great price point and minimal size to use for bird watching stations.  At this point I'd appreciate any suggestions (I will not take offense at any legitimate suggestions since I'm stuck).

Link to comment
Share on other sites

Following one of the links I got the camera working. As I understand it, there is a problem in the v4l2 set of code where the index of current input (VIDIOC_S_INPUT) is not defined correctly.  Rather than fixing every instance in upstream code, Leonardo Lontra rolled a companion set of code that will publish the camera data to /dev/video1 rather than the default /dev/video0.  the only problem as I see it is that the program vidcopy has to run in the background all the time eating up cpu cycles.  It'd be ideal if the camera driver worked.

 

So the good news -- it works! The bad news, it doesn't look like a very good camera (best resolution so far is 800x600). But, it is an inexpensive csi cam.  I'm now looking if this can be fixed in software or if it is a limitation of the camera (I did not see specs in the listing).

 

I'm running Armbian 5.10.  It looks like release 5.15 may have an improved camera driver for the cheap gc2035 (https://github.com/avafinger/gc2035).  Until 5.15 is released I may see if the avafinger gc2035 driver works.  It'll be fun to find all the dependencies I need to compile and test the modified driver.

 

But when all is done, I may need to look for a better csi camera for my orange pi one.  I'm glad I got this (it was cheap), but I'd really like at least a 5MP, and hopefully an 8MP, 15MP or better.  I like the orange pi one feature set; just need to find a good camera to pair with it.

 

Thank your for the pointers. I've looked around this forum a lot in the past couple of days and have found a lot.

Link to comment
Share on other sites

I'm running Armbian 5.10.  It looks like release 5.15 may have an improved camera driver for the cheap gc2035 (https://github.com/avafinger/gc2035).

 

i added @lex' improved driver on June 11th and Igor provided 5.14 stuff 12 days later. So all that's needed is just an 'apt-get upgrade' to get the improved gc2035 version. For module loading options see above. If in doubt check the output from 'sudo armbianmonitor -u' (package list -- you should be on 5.14 already -- no idea why 5.15 still isn't released)

Link to comment
Share on other sites

I see a lot about my system at the url from armbianmonitor, but nothing about packages. 

 

uname -a
Linux opo1 3.4.112-sun8i #8 SMP PREEMPT Tue May 31 19:00:17 CEST 2016 armv7l GNU/Linux

 

I've run the following:

apt-get update

apt-get upgrade

apt-get dist-upgrade

 

And this is what I get when I look at packages with sun8 (does this mean I'm running 5.13?)

 

dpkg-query -l | grep sun8
ii  linux-firmware-image-sun8i 5.13   armhf  Linux kernel firmware, version 3.4.112-sun8i
ii  linux-headers-sun8i        5.13   armhf  Linux kernel headers for 3.4.112-sun8i on armhf
ii  linux-image-sun8i          5.13   armhf  Linux kernel, version 3.4.112-sun8i

Link to comment
Share on other sites

Restarted with Armbian_5.14_Orangepione_Debian_jessie_3.4.112 image.  Ran apt-get update, apt-get upgrade (and apt-get install fswebcam).  Looks like I have a 5.15 system.

 

dpkg-query -l | grep sun8
  ii  linux-headers-sun8i             5.15                      armhf        Linux kernel headers for 3.4.112-sun8i on armhf
  ii  linux-image-sun8i                5.15                      armhf        Linux kernel, version 3.4.112-sun8i

 

But it looks like I still have problem accessing /dev/video0

modprobe gc2035
modprobe vfe_v4l2

fswebcam foo.jpg
--- Opening /dev/video0...
Trying source module v4l2...
/dev/video0 opened.
No input was specified, using the first.
Adjusting resolution from 384x288 to 640x480.
--- Capturing frame...
GD Error: gd-jpeg: JPEG library reports unrecoverable error: Not a JPEG file: starts with 0x18 0x18Captured frame in 0.00 seconds.
--- Processing captured image...
Writing JPEG image to 'foo.jpg'.

Link to comment
Share on other sites

tl;dr -- get error "NOT_SUPPORT_THIS_FUNCTION:sun8iw7p1_isp_set_table_addr, line: 372" on Orange Pi One with gc2035 on expansion board from aliexpress running fresh Ubuntu installation/upgrade.

 

Details: I gave another shot to the aliexpress gc2035 cam on expansion board to work with an orange pi one this morning.  To mix it up a little, I started with a fresh Ubuntu xenial installation, and updated it (update,upgrade) to bring it up to 5.16.  I still cannot get it the cam work.  The new gc2035 mods are included, so I'm unsure which path to follow from here.

 

modprobe gc2035
modprobe vfe-v4l2 (this creates /dev/video0)

 

fswebcam foo.jpg
--- Opening /dev/video0...
Trying source module v4l2...
/dev/video0 opened.
No input was specified, using the first.
Adjusting resolution from 384x288 to 640x480.
--- Capturing frame...
GD Error: gd-jpeg: JPEG library reports unrecoverable error: Not a JPEG file: starts with 0x03 0x03Captur
d frame in 0.00 seconds.
--- Processing captured image...
Writing JPEG image to 'foo.jpg'.

 

dmesg
[  364.847304] [VFE]vfe_open
[  364.847339] [VFE]..........................vfe clk open!.......................
[  364.847396] [VFE]vfe_open ok
[  364.848269] [VFE]Set vfe core clk = 108000000, after Set vfe core clk = 100000000
[  364.848303] NOT_SUPPORT_THIS_FUNCTION:sun8iw7p1_isp_set_table_addr, line: 372
[  364.872191] [VFE]mclk on
[  364.896349] [CSI][GC2035]enable oe!
[  364.896782] [CSI][GC2035]V4L2_IDENT_SENSOR=2035
[  365.385284] [VFE_WARN]v4l2 sub device queryctrl (null) unsuccess!
[  365.784673] [VFE]buffer_setup, buffer count=4, size=307200
[  365.950541] [VFE]capture video mode!
[  366.071002] [VFE]capture video first frame done!
[  366.080668] [VFE]vfe_close
[  366.080701] [CSI][GC2035]disalbe oe!
[  366.092823] [VFE]mclk off
[  366.104964] [VFE]..........................vfe clk close!.......................
[  366.105022] [VFE]vfe_close end

Link to comment
Share on other sites

I read the thread and tried a couple of things. The output of fswebcam is a legitimate jpg file (all black with the default red line caption on the bottom).  I don't think it's RAW format since the output is a real jpg, just one without an image data.. 

 

I'm not familiar with guvcview but I installed all the dependencies I could find, grab the source code, and compiled.  I noticed two things right away; and one of them is something I should have made clear; I'm running headless (Orange Pi ONE, CSI Cam on extension board, hardwire Ethernet, and a 5V3A power supply). guvcview looks like a display program, and since I don't have a display it broke with (GUI) Gtk3 can't open display.  Also, it seemed guvcview might be looking for a USB camera (V4L2_CORE: Unable to find parent usb device.V4L2_CORE).  Right now I'm checking if this is true and if I can specify cam source to change it. 

 

One of the threads mentioned a modified fswebcam to work with orange pi H3 only.  I grabbed that source code but it behaved exactly like the fswebcam I installed from the apt-get repository; it created an all-black image with the red-line caption on the bottom.

Link to comment
Share on other sites

I hope someone with the proper skills and spare time will read the thread.

 

it looks like the cam doesn't output something proper.

 

btw, once while on vacations, I put usb webcams to watch inside my flat on my linux box. I was using ssh and a tunnel to vncserver.

it is not efficient nor proper but at least I could see frames from my flat far away... vncserver may replace in a limited way a screen.

Link to comment
Share on other sites

fswebcam foo.jpg
--- Opening /dev/video0...
Trying source module v4l2...
/dev/video0 opened.
No input was specified, using the first.
Adjusting resolution from 384x288 to 640x480.
--- Capturing frame...
GD Error: gd-jpeg: JPEG library reports unrecoverable error: Not a JPEG file: starts with 0x18 0x18Captured frame in 0.00 seconds.
--- Processing captured image...
Writing JPEG image to 'foo.jpg'.

Please, try running: 

fswebcam --Hflip 1 -r 640x480 -p YUV420P - > cam640x480_1.jpg

 

and check the output

Link to comment
Share on other sites

Should I pass any arguments to "modprobe gc2035" before testing the fswebcam command?

 

I think I missed something because the result is a text file called cam640x480_1.jpg with the contents being the fswebcam help (the text from fswebcam -help).  Also, I don't think anything was logged (before running the command I cleaned dmesg with "dmesg -c", and after running the command dmesg returns nothing).

 

I updated the system before testing too, so I have all available patches and updates installed.

Link to comment
Share on other sites

If you don't pass arguments to modprobe gc2035 it assumes modprobe hres=0

 

Run as root:

 

git clone https://github.com/avafinger/fswebcam

cd fswebcam

sudo apt-get install libgd2-xpm-dev libjpeg-dev libpng-dev

answer Y

sudo apt-get install libfreetype6-dev

answer Y

./configure --prefix=/usr --disable-v4l1 --enable-32bit-buffer

make

make install

 

modprobe -r -v vfe_v4l2

modprobe -r -v gc2035

modprobe gc2035 hres=0 mclk=34 

modprobe vfe_v4l2

 

and:

fswebcam --Hflip 1 -r 640x480 -p YUV420P - > cam640x480_1.jpg

 

if your image is mirrored, run:

fswebcam -r 640x480 -p YUV420P - > cam640x480_1.jpg

 

Good Luck!

Link to comment
Share on other sites

If you don't pass arguments to modprobe gc2035 it assumes modprobe hres=0

 

Run as root:

 

git clone https://github.com/avafinger/fswebcam

cd fswebcam

sudo apt-get install libgd2-xpm-dev libjpeg-dev libpng-dev

answer Y

sudo apt-get install libfreetype6-dev

answer Y

./configure --prefix=/usr --disable-v4l1 --enable-32bit-buffer

make

make install

 

modprobe -r -v vfe_v4l2

modprobe -r -v gc2035

modprobe gc2035 hres=0 mclk=34 

modprobe vfe_v4l2

 

I followed these procedures and can confirm that it works:

tk@orangepipc:~$ fswebcam --Hflip 1 --rotate 180 -r 640x480 -p YUV420P - > cam640x480_1.jpg
--- Opening /dev/video0...
Trying source module v4l2...
/dev/video0 opened.
No input was specified, using the first.
rc: 0 - get value: 1
rc: 0 - set value: 1
--- Capturing frame...
Captured frame in 0.00 seconds.
--- Processing captured image...
Flipping image horizontally.
Flipping image vertically.
Writing JPEG image to '-'.

cam640x480_1.jpg

Link to comment
Share on other sites

Your magic incantations work perfectly! 

 

I added "gc2035 hres=0 mclk=34"  and "vfe_v4l2" to /etc/modules and rebooted, but that didn't seem to have the same effect as when they were added manually.  Perhaps /etc/modules doesn't like arguments?  If so, is there a way to make it stick?  Should /etc/modules accept arguments?

 

Also, "-p YUV420P" seems critical for fswebcam.  I'll study up on that this weekend so I'll know more about that soon.

 

On a minor note, I may have damaged my little camera by checking, undoing, redoing, rechecking, undoing, and redoing the cables countless times trying to be sure I didn't have things loose or in backwards.  My jpg image has a lot of bright green horizontal stripes across the bottom.  I have another new orange pi one, camera, and power supply, so I'll set that up from scratch to verify.  My power supply is 5V3A, so I don't think that should be a problem.  The main thing is that I can get images!!!!

Link to comment
Share on other sites

I added "gc2035 hres=0 mclk=34"  and "vfe_v4l2" to /etc/modules and rebooted, but that didn't seem to have the same effect as when they were added manually.  Perhaps /etc/modules doesn't like arguments?  If so, is there a way to make it stick?  Should /etc/modules accept arguments?

Yes, /etc/modules should support module parameters, but you can also put

gc2035

in /etc/modules without any arguments and put

options gc2035 hres=0 mclk=34

in /etc/modprobe.d/<some-file-name>.conf

Link to comment
Share on other sites

Your suggestions worked.  I added (well, uncommented) the following two lines in /etc/modules

 

gc2035
vfe_v4l2

 

And created /etc/modprobe.d/gc2035.conf with the following

 

options gc2035 hres=0 mclk=34

 

The modules now load as I'd like across reboots.

Link to comment
Share on other sites

@aliceander

 

When possible, please, send us bird images from your special device :)

 

@TheTeam: Tido, Alex, Thomas, Mikhael

you rock for the birds  :thumbup:

 

note: I only take the credit for adding [bird watching station] in the title

 

:beer:

 

note: if someone wants to preorder the Pepsi Co Phablet

http://www.gearbest.com/cell-phones/pp_399893.html

we could port Armbian... no, I am kidding

Edited by wildcat_paris
ads added
Link to comment
Share on other sites

I would also like to thank everyone too.  I haven't been derided for asking silly questions (and, trust me, I KNOW some of them are dumb; but I'll only stay ignorant until I ask and learn).  Suggestions are quick and varied, and necessary changes are quickly implemented.  I consider this an ideal environment.

 

I found this forum because I'm exploring different form factors.  So many choices!  My recent experience is with the orange pi one, but I'm really excited about the NanoPi Neo.  I found the discussion in another thread about that interesting so I ordered two, and when I get them I plan on following the suggestions to test armbian.

Link to comment
Share on other sites

Using all brand new equipment (an Orange Pi One, gc2035 cam on expansion board, 5V3A power supply, and fresh jessie server image updated/upgraded to 5.16) I can verify that steps suggested by @lex work and I can get a nice image from my CSI video cam with fswebcam. 

 

domo arigatou gozaimasu

Link to comment
Share on other sites

Important things to note:

 

gc2035 hres=0 mclk=34

 

This is used to increase FPS at lower resolutions (640x480) if you intend to use higher resolution use only gc2035 hres=0 or choose a better balance between FPS and image quality. (hres=1, or 2,....)

 

BTW:

--Hflip 1 --rotate 180 seems to be redundant ? --Hflip rotates the images like a mirror (by the sensor), and --rotate 180 (by software) maybe rotate again...?

 

*** edited HFlip to Hflip and VFlip to Vflip ***:

--Hflip = flip the image horizontally [0,1]

--Vflip = flip the image vertically [0,1]

--exposure = exposure from (-4 to 4)

 

This could also be changed directly on FEX:

vip_dev0_vflip = 1 [0,1]
vip_dev0_hflip = 0 [0,1]

 

 

hres=0 => 640x480|1280x720|1600x1200 and 15 fps (good light condition), 640x480 good quality

hres=1 => 800x600|1600x1200 and 10 fps (good light condition), 800x600 good quality

hres=2 => 320x240|640x480|800x600 and 20 fps (good light condition), 640x480 medium quality

hres=3 => 320x240|352x288|640x480 and 15 fps (good light condition), low quality, cropped to this window sizes

Link to comment
Share on other sites

***RESOLVED !!***

 

See picture below.  I had reversed the cable on the OrangePi PC ... d'oh....

 


 

All, IV been scratching my head on this for a while now and can't get the camera to work on a orange pi pc. I'm trying to experiment with open CV in the OPI to document cases of speeding cars on my street... So you could call this a speeder watching station ;)

Any help is appreciated!

Here is my camera. Below are the steps I took to get it to work.

http://cloud.tapatalk.com/s/57c7a32d7b74f/IMG_20160831_204048.jpg?
IMG_20160831_204048.jpg

  • I have the OrangePi PC running the following version
[color=#000080]#uname -a
Linux orangesqueeze 3.4.112-sun8i #14 SMP PREEMPT Tue Jul 5 16:28:14 CEST 2016 armv7l GNU/Linux
[/color]
  • From the instructions I saw in various places, I opted to load the camera and vfe modules  like this
[color=#000080]#modprobe gc2035 hres=0 mclk=34
#modprobe vfe_v4l2
[/color]
  • Once the modules were loaded, I tried capturing a picture 
[color=#000080]#fswebcam --Hflip 1 --rotate 180 -r 640x480 -p YUV420P - > cam640x480_1.jpg
--- Opening /dev/video0...
Trying source module v4l2...
/dev/video0 opened.
No input was specified, using the first.
Unable to query input 0.[/color]
[color=#ff0000]VIDIOC_ENUMINPUT: Invalid argument[/color]

Checking dmesg for signs of something going wrong

[color=#000080]#dmesg
[20856.904847] [VFE]Welcome to Video Front End driver
[20856.905540] [VFE]pdev->id = 0
[20856.905561] [VFE]dev->mipi_sel = 0
[20856.905576] [VFE]dev->vip_sel = 0
[20856.905591] [VFE]dev->isp_sel = 0
[20856.911816] [VFE_WARN]vfe vpu clock is null
[20856.920117] [VFE_WARN]os_gpio_request failed, gpio_name=, gpio=110, ret=0xfffffff0, -16
[20856.920266] [VFE]..........................vfe clk open!.......................
[20856.920317] [ISP] isp platform_id = 5!
[20856.920580] [VFE]vfe_init end
[20856.930304] [VFE]probe_work_handle start!
[20856.930349] [VFE]v4l2 subdev register input_num = 0
[20856.930370] [VFE]vfe sensor detect start! input_num = 0
[20856.930396] [VFE]Find sensor name is "gc2035", i2c address is 78, type is "YUV" !
[20856.930420] [VFE]Sub device register "gc2035" i2c_addr = 0x78 start!
[20856.930447] [VFE]v4l2_device_register_subdev return 0
[20856.930465] [VFE]registered sensor subdev is OK!
[20856.930481] [VFE]Check sensor!
[20856.942619] [VFE]mclk on[/color]
[color=#ff0000][20856.998169] [VFE CCI_0 ERR] Status error at addr_8bit = 78, wr_flag = 1, val = 100f0
[20856.998491] [VFE CCI_0 ERR] Status error at addr_8bit = 78, wr_flag = 1, val = 100f0
[20856.998805] [VFE CCI_0 ERR] Status error at addr_8bit = 78, wr_flag = 1, val = 100f0
[20856.998832] [CSI_ERR][GC2035]sensor_read err at sensor_detect!
[20856.998851] [CSI_ERR][GC2035]chip found is not an target chip.[/color]
[color=#000080][20857.042188] [VFE]mclk off
[20857.066364] [VFE]vfe sensor subdev unregister!
[20857.066393] [VFE]Sub device register "gc2035" failed!
[20857.066413] [VFE_ERR]vfe sensor register check error at input_num = 0
[20857.066931] [VFE]V4L2 device registered as video0
[20857.066996] [VFE]..........................vfe clk close!.......................
[20857.067035] [VFE]probe_work_handle end!
[20857.075411] [VFE]vfe_open
[20857.075443] [VFE]..........................vfe clk open!.......................
[20857.075499] [VFE]vfe_open ok
[20857.076229] [VFE]vfe_close
[20857.076252] [VFE]vfe select input flag = 0, s_input have not be used .
[20857.076282] [VFE]..........................vfe clk close!.......................
[20857.076330] [VFE]vfe_close end
[/color][color=#a9a9a9][21134.927135] rtw_set_encryption
[21134.927168] rtw_set_encryption, set group_key, TKIP
[21134.927186] set_group_key
[21134.929371] SetHwReg8192CU, 5126, RCR= 7000228e[/color][color=#000080]
[21713.151828] [VFE]vfe_open
[21713.151867] [VFE]..........................vfe clk open!.......................
[21713.151933] [VFE]vfe_open ok
[21713.152663] [VFE_ERR]input index(0) > dev->dev_qty(1)-1 invalid!, device_valid_flag[0] = 0
[21713.154676] [VFE]vfe_close
[21713.154709] [VFE]vfe select input flag = 0, s_input have not be used .
[21713.154741] [VFE]..........................vfe clk close!.......................
[21713.154793] [VFE]vfe_close end[/color]
  • Was I running the correct gc2035 module? Let's check
[color=#000080]#modinfo gc2035
filename:       /lib/modules/3.4.112-sun8i/kernel/drivers/media/video/sunxi-vfe/device/gc2035.ko
license:        GPL
description:    A low-level driver for GalaxyCore gc2035 sensors
author:         @lex
author:         leonardo lontra
author:         raymonxiu
alias:          i2c:gc2035
depends:        cci,vfe_subdev
intree:         Y
vermagic:       3.4.112-sun8i SMP preempt mod_unload modversions ARMv7 p2v8
parm:           hres:hres=0 (640x480|1280x720|1600x1200 - 15 FPS), hres=1 (800x600|1600x1200 - 10 FPS), hres=2 (320x240|640x480|800x600 - 20 FPS), hres=3 (320x240|352x288|640x480 - 15 FPS) (default=0) (uint)
parm:           mclk:mclk override (default=0) (uint)
parm:           frate:frate override (default=0) (uint)
[/color]
  • Here is how I setup my fex, and my guess is that there is something wrong there. 

 

 

[csi0]
vip_used = 1
vip_mode = 0
vip_dev_qty = 1
vip_define_sensor_list = 0
vip_csi_pck = port:PE00
vip_csi_mck = port:PE01
vip_csi_hsync = port:PE02
vip_csi_vsync = port:PE03
vip_csi_d0 = port:PE04
vip_csi_d1 = port:PE05
vip_csi_d2 = port:PE06
vip_csi_d3 = port:PE07
vip_csi_d4 = port:PE08
vip_csi_d5 = port:PE09
vip_csi_d6 = port:PE10
vip_csi_d7 = port:PE11
vip_csi_sck = port:PE12
vip_csi_sda = port:PE13
vip_dev0_mname = "gc2035"
vip_dev0_pos = "front"
vip_dev0_lane = 1
vip_dev0_twi_id = 2
vip_dev0_twi_addr = 120
vip_dev0_isp_used = 0
vip_dev0_fmt = 0
vip_dev0_stby_mode = 0
vip_dev0_vflip = 1
vip_dev0_hflip = 1
vip_dev0_iovdd = ""
vip_dev0_iovdd_vol = 2800000
vip_dev0_avdd = ""
vip_dev0_avdd_vol = 2800000
vip_dev0_dvdd = ""
vip_dev0_dvdd_vol = 1800000
vip_dev0_afvdd = ""
vip_dev0_afvdd_vol = 2800000
vip_dev0_power_en = port:PD14
vip_dev0_reset = port:PE14
vip_dev0_pwdn = port:PE15
vip_dev0_flash_en =
vip_dev0_flash_mode =
vip_dev0_af_pwdn =
vip_dev0_act_used = 0
vip_dev0_act_name = "ad5820_act"
vip_dev0_act_slave = 24

[camera_list_para]
camera_list_para_used = 1
ov7670 = 0
gc0308 = 0
gt2005 = 0
hi704 = 0
sp0838 = 0
mt9m112 = 0
mt9m113 = 0
ov2655 = 0
hi253 = 0
gc0307 = 0
mt9d112 = 0
ov5640 = 0
gc2015 = 0
ov2643 = 0
gc0329 = 0
gc0309 = 0
tvp5150 = 0
s5k4ec = 0
ov5650_mv9335 = 0
siv121d = 0
gc2035 = 1

[csi0_para]
csi_used = 1
csi_dev_qty = 1
csi_stby_mode = 0
csi_twi_id = 1
csi_twi_addr = 0x78
csi_mname = "gc2035"
csi_if = 0
csi_iovdd = ""
csi_avdd = ""
csi_dvdd = ""
csi_vflip = 0
csi_hflip = 0
csi_flash_pol = 0
csi_mode = 0
csi_vol_iovdd = 2800
csi_vol_dvdd = 1800
csi_vol_avdd = 2800
csi_facing = 0
csi_flash_pol = 0
csi_mode = 0
csi_vol_iovdd = 2800
csi_vol_dvdd = 1800
csi_vol_avdd = 2800
csi_facing = 0
csi_pck = port:PE00
csi_ck = port:PE01
csi_hsync = port:PE02
csi_vsync = port:PE03
csi_d0 = port:PE04
csi_d1 = port:PE05
csi_d2 = port:PE06
csi_d3 = port:PE07
csi_d4 = port:PE08
csi_d5 = port:PE09
csi_d6 = port:PE10
csi_d7 = port:PE11
csi_reset = port:PH14
csi_power_en = port:PH16
csi_stby = port:PH19
csi_flash = ""
csi_af_en = ""

 


 
There are 2 csi sections (csi0 and csi0_para) and I am unsure which one the driver is actually considering. There also seemed to be variations on the pinout that was needed and my guess is that my problem might be there. Unless there is a physical issue with the connector I am using?  I bought the connector for the OPI PC after ordering the camera separately and realizing that it could not be connected directly.
 
I am familiar with embedded programming and GPIO (mostly the ESP8266 and arduino platform), but I have not yet put my head around the linux layers around hardware.

Edited by sle118
Link to comment
Share on other sites

**** RESOLVED ***

the ribbon cable was flipped over....

 


 

I have done additional validation on my orangepi pc and tried detecting the i2c devices.  Well...  I guess no device is detected after all and this could explain why the camera is not responding...

 

Where should I go from there?

#i2cdetect -y 0 && i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

and dmesg full of this

Sep  1 10:43:59 localhost kernel: [ 8113.947297] sunxi_i2c_do_xfer()985 - [i2c1] incomplete xfer (status: 0x48, dev addr: 0x5a)
Sep  1 10:43:59 localhost kernel: [ 8113.947539] sunxi_i2c_do_xfer()985 - [i2c1] incomplete xfer (status: 0x48, dev addr: 0x5b)
Sep  1 10:43:59 localhost kernel: [ 8113.947779] sunxi_i2c_do_xfer()985 - [i2c1] incomplete xfer (status: 0x48, dev addr: 0x5c)
Sep  1 10:43:59 localhost kernel: [ 8113.948020] sunxi_i2c_do_xfer()985 - [i2c1] incomplete xfer (status: 0x48, dev addr: 0x5d)
Sep  1 10:43:59 localhost kernel: [ 8113.948261] sunxi_i2c_do_xfer()985 - [i2c1] incomplete xfer (status: 0x48, dev addr: 0x5e)
Sep  1 10:43:59 localhost kernel: [ 8113.948499] sunxi_i2c_do_xfer()985 - [i2c1] incomplete xfer (status: 0x48, dev addr: 0x5f)
Sep  1 10:43:59 localhost kernel: [ 8113.948798] sunxi_i2c_do_xfer()985 - [i2c1] incomplete xfer (status: 0x20, dev addr: 0x60)
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines