Max Posted September 28, 2016 Posted September 28, 2016 First of all thanks to everybody here. This is the most useful thread a find about my problem but still I have not figure out how to solve it. - I just received a nanopi M1 and the CAM500A. - I installed this debian image: http://www.mediafire.com/file/6a9wmjz826rvngw/nanopi-m1-debian-sd4g-20160907.img.zip - I connected the camera as in the image: https://dl.dropboxusercontent.com/u/18065445/Tmp/nanopi-m1-cam500a.jpg - followed these instructions: sudo bash cd /root/mjpg-streamer make ./start.sh but I received the infamous: ERROR opening V4L interface: No such file or directory Init v4L2 failed !! exit fatal i: Init_VideoIn failed modprobe ov5640 returns Module ov5640 not found modprobe vfe_v4l2 produces no output looking into /var/log/kern.log shows [ov5640] error at senor_detect [ov5640] chip found not an target chip I tried two different new cameras (same models) and two different new nanopis (same models). So I have no reason to think it is a defective camera or connector. I would appreciate if you could help me with the following: 1) does it look like I inserted the connector in the proper direction? 2) is there a known fix? 3) is there anything I can do to further debug this problem?
lvmc Posted September 29, 2016 Posted September 29, 2016 @Max, can you send me dmesg under two circustances? 1) boot your board with camera attached; 1) boot your board without camera attached;
Max Posted September 29, 2016 Posted September 29, 2016 Thank you lvmc. Here it is https://dl.dropboxusercontent.com/u/18065445/Tmp/dmesg.zip
lvmc Posted September 30, 2016 Posted September 30, 2016 @Max, your camera module is not being recognized at hardware level. [ 2.984892] [OV5640]error at sensor_detect [ 2.984899] [OV5640]chip found is not an target chip. To help you, please provide me with the following information: - datasheet of your board containing the camera interface pinout; - a high resolution photo from the camera conector showing the pins and electrical contacts; - your /boot/script.bin file or converted to fex already.
Max Posted September 30, 2016 Posted September 30, 2016 The photo is here: https://dl.dropboxusercontent.com/u/18065445/Tmp/nanopi-m1-cam500a.jpg The pin layout of the board DVP is here: http://www.friendlyarm.com/index.php?route=product/product&product_id=109 The pin of the camera is here: http://www.friendlyarm.com/index.php?route=product/product&product_id=70 There is no /boot/script.bin and no /boot/script.rex
@lex Posted October 1, 2016 Posted October 1, 2016 The photo is here: https://dl.dropboxusercontent.com/u/18065445/Tmp/nanopi-m1-cam500a.jpg The pin layout of the board DVP is here: http://www.friendlyarm.com/index.php?route=product/product&product_id=109 The pin of the camera is here: http://www.friendlyarm.com/index.php?route=product/product&product_id=70 There is no /boot/script.bin and no /boot/script.rex Please, refer to this post http://forum.armbian.com/index.php/topic/1213-ov5640-camera-with-orange-pi/?p=12908 if you have some soldering skills and some hardware knowledge , unfortunately not my case so i cannot confirm it worked. 1.move R6 to R5 on cam500 pcb (so making VDDIO 3v, not 1.8V) I would skip the other steps and go with this: For the script.bin (fex) refer to http://forum.armbian.com/index.php/topic/1213-ov5640-camera-with-orange-pi/?p=9610 and try first with the AF disabled: vip_dev0_afvdd = "" vip_dev0_afvdd_vol = @lvmc has fixed something in vfe for stability that must pass some test before consider it stable.
Max Posted October 2, 2016 Posted October 2, 2016 Thank you for the help. I do not think I can solder that myself.
lvmc Posted October 3, 2016 Posted October 3, 2016 Enhanced driver for OV5640 and vfe fix are now available on Armbian, thanks to lex and jules! https://github.com/igorpecovnik/lib/commit/05456d07ea78780e17fbfbc0ec9a1e11703ddada 1
tkaiser Posted October 4, 2016 Posted October 4, 2016 Thank you for the help. I do not think I can solder that myself. Then it might be better to wait for FriendlyARM's new CAM500B camera module (that should also fit on their next SBC this time based on Allwinner's A64) Enhanced driver for OV5640 and vfe fix are now available on Armbian, thanks to lex and jules! A big thank you to all of you that make the use of these camera modules now possible with SBCs and Linux!
wangye Posted November 25, 2016 Posted November 25, 2016 Hi, I have problems with ov5640(CAM500B) and nanopi neo air, there is no video0 under /dev. `modprobe vfe_v4l2` gave no output but when I checked dmesg, I got the following errors [ 180.531978] [OV5640@lex]init_sensor - frame_rate: 0, max_win_size: 11 [ 216.550806] sunxi-pinctrl sunxi-pinctrl: pin already requested [ 216.557336] sunxi-pinctrl sunxi-pinctrl: pin-140 (csi0) status -22 [ 216.564310] sunxi-pinctrl sunxi-pinctrl: could not get request pin 140 on device sunxi-pinctrl [ 216.573957] [VFE_ERR]vip0 request pinctrl handle for device [csi0] failed! [ 216.581741] [ISP] isp platform_id = 5! [ 216.602304] [OV5640@lex]CSI_SUBDEV_PWR_ON! [ 216.670045] [OV5640@lex]sensor_init 0x0 [ 216.670865] [OV5640@lex]sensor read retry=2 [ 216.670876] [OV5640@lex]error at sensor_detect [ 216.670885] [OV5640@lex]chip found is not an target chip. [ 216.670897] [OV5640@lex]CSI_SUBDEV_PWR_OFF! This can be reproduced on both latest Debian/Ubuntu releases. I've went through this thread and done the followings trying to make it work: Modify the fex file to enable i2c2 and csi. Change logic level of the camera module to 3V. I tried to compile the kernel with latest codes, but no luck I tried to power the board with MP2303 based DCDC converter which is capable of 5V/3A output. And again, I got the same output. I also checked I2C comms with i2c-tools, it seemed to work(I can read ID register of ov5640). root@nanopiair:~# i2cset -y 2 0x3c 0x30 0x0a root@nanopiair:~# i2cget -y 2 0x3c 0x56 root@nanopiair:~# i2cset -y 2 0x3c 0x30 0x0b root@nanopiair:~# i2cget -y 2 0x3c 0x40 I'm out of ideas, any help are appreciated.
@lex Posted November 25, 2016 Posted November 25, 2016 Change logic level of the camera module to 3V CAM500B should have no need to change logic level according to FA doc. Can you explain what you have changed? We known from your iec-tools that I2C is working and talking to ov5640 but during the sensor init it was not able to use I2C so i think you should not enable I2C session in the fex that will be used by the sensor. Excerpt from fex taken from Banana Pi M2+ that is known to be working (and this should work on NanoPi Air): [twi_para] twi_port = 0 twi_scl = port:PA11<2><default><default><default> twi_sda = port:PA12<2><default><default><default> [twi0] twi_used = 1 twi_scl = port:PA11<2><default><default><default> twi_sda = port:PA12<2><default><default><default> [twi1] twi_used = 1 twi_scl = port:PA18<3><default><default><default> twi_sda = port:PA19<3><default><default><default> [twi2] twi_used = 0 twi_scl = port:PE12<3><default><default><default> twi_sda = port:PE13<3><default><default><default> * Note [csi0] vip_used = 1 vip_mode = 0 vip_dev_qty = 1 vip_define_sensor_list = 0 vip_csi_pck = port:PE00<2><default><default><default> vip_csi_mck = port:PE01<2><default><default><default> vip_csi_hsync = port:PE02<2><default><default><default> vip_csi_vsync = port:PE03<2><default><default><default> vip_csi_d0 = port:PE04<2><default><default><default> vip_csi_d1 = port:PE05<2><default><default><default> vip_csi_d2 = port:PE06<2><default><default><default> vip_csi_d3 = port:PE07<2><default><default><default> vip_csi_d4 = port:PE08<2><default><default><default> vip_csi_d5 = port:PE09<2><default><default><default> vip_csi_d6 = port:PE10<2><default><default><default> vip_csi_d7 = port:PE11<2><default><default><default> vip_csi_sck = port:PE12<2><default><default><default> vip_csi_sda = port:PE13<2><default><default><default> vip_dev0_mname = "ov5640" vip_dev0_pos = "rear" vip_dev0_lane = 4 vip_dev0_twi_id = 2 vip_dev0_twi_addr = 0x78 vip_dev0_isp_used = 1 vip_dev0_fmt = 0 vip_dev0_stby_mode = 1 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 = 1500000 vip_dev0_afvdd = "" vip_dev0_afvdd_vol = 2800000 ==>>>> M2+ ====> vip_dev0_power_en = port:PD14<1><default><default><default> ; ??? *** NanoPi Air *** ??? vip_dev0_power_en = port:PD14<1><default><default><default> vip_dev0_reset = port:PE14<1><default><default><default> vip_dev0_pwdn = port:PE15<1><default><default><default> 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
wangye Posted November 27, 2016 Posted November 27, 2016 CAM500B should have no need to change logic level according to FA doc. Can you explain what you have changed? I removed the 0 ohm resistor at R6 and solder it to R5, so that the VDDIO of ov5640 is 3V. I've verified this with a multi-meter. We known from your iec-tools that I2C is working and talking to ov5640 but during the sensor init it was not able to use I2C so i think you should not enable I2C session in the fex that will be used by the sensor. Thanks for pointing this out. I think I've blindly enabled I2C2 to make it "work" with CSI... After disabling twi2 in fex, the camera worked! Really thanks for your help!!
gnasch Posted November 27, 2016 Posted November 27, 2016 so I have read this whole thread and also the one at the orangepi forums - Never been so confused... Is it correct that if I want to connect an OV5640 Camera to an Orangepi PC without soldering and massacrating cables, then I have to get this Extension set from Xunlong with the low-res camera; https://www.aliexpress.com/item/Orange-Pi-Open-source-IP-Camera-with-wide-angle-lens-Smart-Home-Control-Device-for-PC/32652476606.html remove the 2MP camera, then get a reversing 24 pin flat cable like this:https://www.aliexpress.com/item/6pcs-24-PIN-200MM-Length-0-5mm-Pitch-FFC-TTL-Ribbon-Flat-Cable-Reverse-Direction-For/32619251538.html and hook this into Cam500B from FriendlyArm https://www.aliexpress.com/item/CAM500B-High-Definition-Camera-5M-Pixel-2592x1944-image-sizes-support-AFC-AWB-AEC-etc-720P-30fps/32766487392.html Ok so far? Then it is almost like Lego. Thanks, gnasch
@lex Posted November 28, 2016 Posted November 28, 2016 Ok so far? Then it is almost like Lego. ROFL... Really, i can't stop laughing. Ok, serious now, i will try to answer. * CAM500B works only on FriendlyArm M1/Neo Air boards AFAIK, no need to change anything. CAM500A needs to change logic level to work on M1/Neo Air. * Orange Pi PC/One needs the extention, and you need the pins reversed (OV5640), you can either get a Banana Pi sensor (no need to reverse the pins with this sensor) or use this FPC cable (this might work). * If your board is Banana Pi M2+,M64 you just need their sensor (OV5640). This thread ended with general information about how to use OV5640 on OPI, FA and Banana Pi boards . Thanks for the FPC/FFC cable tip. * Update: Not sure the FFC reversed cable will work since you have to reverse the pins on the output connector! 1
gepeto Posted November 28, 2016 Posted November 28, 2016 I have a nanopiM1 and the CAM500B I have to make modification in script.bin , my nanopim1.fex part : # [csi0] vip_used = 1 vip_mode = 0 vip_dev_qty = 1 vip_define_sensor_list = 0 vip_csi_pck = port:PE00<2><default><default><default> vip_csi_mck = port:PE01<2><default><default><default> vip_csi_hsync = port:PE02<2><default><default><default> vip_csi_vsync = port:PE03<2><default><default><default> vip_csi_d0 = port:PE04<2><default><default><default> vip_csi_d1 = port:PE05<2><default><default><default> vip_csi_d2 = port:PE06<2><default><default><default> vip_csi_d3 = port:PE07<2><default><default><default> vip_csi_d4 = port:PE08<2><default><default><default> vip_csi_d5 = port:PE09<2><default><default><default> vip_csi_d6 = port:PE10<2><default><default><default> vip_csi_d7 = port:PE11<2><default><default><default> vip_csi_sck = port:PE12<2><default><default><default> vip_csi_sda = port:PE13<2><default><default><default> vip_dev0_mname = "ov5640" vip_dev0_pos = "rear" vip_dev0_lane = 2 vip_dev0_twi_id = 2 vip_dev0_twi_addr = 0x78 vip_dev0_isp_used = 0 vip_dev0_fmt = 0 vip_dev0_stby_mode = 0 vip_dev0_vflip = 0 vip_dev0_hflip = 0 vip_dev0_iovdd = "" vip_dev0_iovdd_vol = 2800000 vip_dev0_avdd = "" vip_dev0_avdd_vol = 2800000 vip_dev0_dvdd = "" vip_dev0_dvdd_vol = 1500000 vip_dev0_afvdd = "" vip_dev0_afvdd_vol = vip_dev0_power_en = vip_dev0_reset = port:PE14<1><default><default><default> vip_dev0_pwdn = port:PE15<1><default><default><default> 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 = 0x18 #FIN camera then after fex2bin nanopim1.fex script.bin and a reboot, I have a /dev/video0 device so i take https://github.com/avafinger/guvcview code and after compilation i have a good image with guvcview :-) I noticed that xawtv doesn't work
lvmc Posted November 28, 2016 Posted November 28, 2016 @lex, perfect! Also if someone need custom camera modules with wider lense, send me a PM.
Ivalion Posted December 6, 2016 Posted December 6, 2016 @lex, perfect! Also if someone need custom camera modules with wider lense, send me a PM. Hello @lvmc i think as a new user i can't send you a PM... Can you please give me some information about modules with wider lense for NEO Air? Could be interesting for my project. Thanks
pyl Posted December 12, 2016 Posted December 12, 2016 Hello. Is there any way to change focus settings on CAM500B? I can't get clear images fswebcam. Using nanopi neo air with CAM500B and Ubuntu core. :~# v4l2-ctl --list-ctrls error 25 getting ctrl White Balance, Automatic error 25 getting ctrl Exposure error 25 getting ctrl Horizontal Flip error 25 getting ctrl Vertical Flip error 25 getting ctrl Color Effects Thanks
lvmc Posted December 13, 2016 Posted December 13, 2016 @pyl, try to use cap-v4l2 https://github.com/avafinger/cap-v4l2
arox Posted December 13, 2016 Posted December 13, 2016 @lex, perfect! Also if someone need custom camera modules with wider lense, send me a PM. Can you explain a bit more : I have got a cam for a raspberry pi some years ago and was really disappointed. The fixed focus wide angle lens makes it quiet useless. With the tiny aperture, it is even not granted than the diffraction allow to reach sensor definition on those devices. So is there cam with "real lens" available for direct connection on these boards ?
pyl Posted December 15, 2016 Posted December 15, 2016 @pyl, try to use cap-v4l2 https://github.com/avafinger/cap-v4l2 Tried all settings, but still get a blurred image http://prntscr.com/djroje
@lex Posted December 15, 2016 Posted December 15, 2016 Blurred and distorted image. Looks like you are handling the module with your hand, this should be a fixed module. CAM500B has Auto Focus support, did you try to check AF with FA image?
@lex Posted December 15, 2016 Posted December 15, 2016 @Igor, @zador.blood.stained, @tkaiser, @lvmc, We need to "patch" the enhanced OV5640 driver to activate AF, and load the "activator" module. Will give more info ASAP. 1
@lex Posted December 15, 2016 Posted December 15, 2016 AF or not AF? I've tried to take some images with CAM500B to see the AF in action with mid/low light condition. "enhanced" driver (FF) BSP driver (AF) Let's wait for the @pyl 's answer about the blurred image.
pyl Posted December 16, 2016 Posted December 16, 2016 @lex Use fixed positiont to make image. How could I try different drivers? Tried to record video using ffmpeg, AF looks like working, but strange: https://www.dropbox.com/s/a0d3cct5wie2don/test.mp4?dl=0 https://www.dropbox.com/s/0uk64imccb44jol/test1.mp4?dl=0
@lex Posted December 16, 2016 Posted December 16, 2016 That is exactly the problem of AF. FA changed it a bit to trigger Auto Focus on a moving object and on first time you start shooting. You can hear a click when you shoot. (still image). My understanding is that there is no time enough ( i maybe wrong ) to Focus on the object for still image. You could try this: * take images with lower res and see if you get better Focus results * For movies, try with other res. as well Is there any way to change focus to fixed? FA image has ov5640 and actuator built-in kernel Image, i don't know if there is a way to unload/disable it, you could try to disable AF changing script.bin section: [csi0] vip_used = 1 vip_mode = 0 . . . vip_dev0_afvdd = "" ; vip_dev0_afvdd_vol = 2800000 vip_dev0_afvdd_vol = . .
lvmc Posted December 17, 2016 Posted December 17, 2016 @lex, I can generate the new patch as you need and submit to @Igor. Let's remember that we kept DEBUG enable on the current OV5640 driver patch to facilitate collecting dmesg logs from Armbian users. As soon we collect more positive feedbacks I suggest turning it off again.
Dave Wilson Posted April 21, 2018 Posted April 21, 2018 Hi, new to this (Have done a few arduino projects.) but trying to build a camera. For a "Beginner" do you think this would be a passable option? I need good image quality (I have good quality optics, at a fixed focal length, object to be photographed will be at a fixed location each time it is photographed, with mostly fixed lighting conditions) the sample pictures people have been posting leads me to be much more confident in this than the RPi V2 camera (Because of it's funky lens situation) but I don't have a proper basis for comparison and haven't started buying junk to compare directly yet. Thank you.
Vladimir Petrovic Posted June 1, 2018 Posted June 1, 2018 Hi, Sorry for bringing this topic from dead but I have some problems with ov5640. I bought this camera module : https://www.aliexpress.com/item/OPI-5MP-Camera-OV5640-Auto-zoom-with-wide-angle-lens-for-Orange-Pi-PC-Pi-One/32869355445.html?spm=a2g0s.9042311.0.0.2ac84c4d4jeaqv and I connected it to Orange Pi One. I've isntalled lts 16 image with kernel 3.4.113 and I've loaded ov5640 kernel and vfe_v4l2 modules. I dont get /dev/video0 device and have this otput from kernel.log: [OV5640@lex]init_sensor - frame_rate: 0, max_win_size: 11 [ISP] isp platform_id = 5! [OV5640@lex]CSI_SUBDEV_PWR_ON! [OV5640@lex]sensor_init 0x0 [OV5640@lex]sensor read retry=2 [OV5640@lex]error at sensor_detect [OV5640@lex]chip found is not an target chip. [OV5640@lex]CSI_SUBDEV_PWR_OFF! what could be wrong? Do I have to swap R6 and r5 on this board?
Recommended Posts