VC0706 Camera Module DIY Guide

camera 0706 A

Here we introduced one VC0706 camera module just purchased online, including the communication of camera module and Arduino UNO, the using ways to take photo via camera module, and so on. This is an Arduino camera module,  adopted the Surveillance cameras digital image processing chip-VC0706, specially designed for image acquisition and processing application,  based on TTL communication interface, very convenient to connect with Arduino controller, able to read image and data via UART serial port, and then perform some image processing. This is a detailed DIY guide for the VC0706 TTL and UART camera, and you can also download the code from ElecFreaks.

Part 1   General description

This camera module can perform image processing such as AWB (auto white balance), AE (automatic exposure) and AGC (automatic gain control), for the video signal coming from CMOS sensor. What’s more, in fusion of other advanced technology such as image enhancement processing under low illumination, and image noise intelligent forecast and suppress, this module would output high quality digital video signals by standard CCIR656 interface. VC0706 built-in JPEG decoder supported reatime encoding for collected image, and external controller can easily read the M – JPEG video streams, achieving the camera design of double stream. VC0706 supported motion detection and OSD display function of screen characters and pattern overlay, capable of self-defining detection area and sensitivity.

Part 2  Test VC0706 camera module

Step 1   Needed tool for testing

Hardware:

1. SD Module

2. Digital key module

3. Arduino UNO

4. Jumper wire

5. USB cable

6. VC0706 camera module

software:

1. Camera_VC0706_TEST

2. Arduino IDE(download it from official website)

Step 2 Hardware connection

1. Connect the hardware as below:

camera 0706 B

2. Here below is the physical diagram:

camera 0706 C

Step 3  Software use and code programming

1. Firstly download the two files of Camera_VC0706_lib and Camera_VC0706_TEST from the Camera Module Code written by ElecFreaks and then unzip it.

2. Put the unzipped file of Camera_VC0706_lib into the Arduino IDE folder of Libraries.

3. Open  unzipped file of Camera_VC0706_TEST, and the program the code into UNO. The detailed steps are demonstrated as below.

camera 0706 D

4. Click Tools,and then choose the board of Arduino uno like below

camera 0706 E

5. Click Tools / Serial Port,and then choose the corresponding COM number.

camera 0706 F

6. And then click the button of programming like below in red rectangle,program the code into the UNO board until done uploading appears.

F

7. Finally open the monitoring serial port as below in red rectangle.

camera 0706 I

8. When the serial port display the data like demonstrated below, you can press the digital keys to take a photo.

camera 0706 G

9. If photo was taken successfully, the serial port would be displayed as below

camera 0706 H

10. Until now, the module testing has been completed.

VN:F [1.9.13_1145]
Rating: 6.7/10 (12 votes cast)
VN:F [1.9.13_1145]
Rating: -1 (from 1 vote)
VC0706 Camera Module DIY Guide, 6.7 out of 10 based on 12 ratings

Related Posts

  • pavan

    guys im getting an error in the code..please help me out

    Arduino: 1.6.8 (Windows 10), Board: “Arduino Yún”

    E:Arduinolibrariescamera_VC0706camera_VC0706.cpp:63:9: error: prototype for ‘uint8_t camera_VC0706::setMotionStatus(uint8_t, uint8_t, uint8_t)’ does not match any in class ‘camera_VC0706’

    uint8_t camera_VC0706::setMotionStatus(uint8_t x, uint8_t d1, uint8_t d2) {

    ^

    In file included from E:Arduinolibrariescamera_VC0706camera_VC0706.cpp:10:0:

    E:Arduinolibrariescamera_VC0706camera_VC0706.h:78:11: error: candidate is: boolean camera_VC0706::setMotionStatus(uint8_t, uint8_t, uint8_t)

    boolean setMotionStatus(uint8_t x, uint8_t d1, uint8_t d2);

    ^

    E:Arduinolibrariescamera_VC0706camera_VC0706.cpp: In member function ‘void camera_VC0706::OSD(uint8_t, uint8_t, char*)’:

    E:Arduinolibrariescamera_VC0706camera_VC0706.cpp:151:32: warning: narrowing conversion of ‘strlen(((const char*)str))’ from ‘size_t {aka unsigned int}’ to ‘uint8_t {aka unsigned char}’ inside { } [-Wnarrowing]

    uint8_t args[17] = {strlen(str), strlen(str)-1, (y & 0xF) | ((x & 0x3) << 4)};

    ^

    E:Arduinolibrariescamera_VC0706camera_VC0706.cpp:151:46: warning: narrowing conversion of '(strlen(((const char*)str)) + 65535u)' from 'size_t {aka unsigned int}' to 'uint8_t {aka unsigned char}' inside { } [-Wnarrowing]

    uint8_t args[17] = {strlen(str), strlen(str)-1, (y & 0xF) | ((x & 0x3) << 4)};

    ^

    E:Arduinolibrariescamera_VC0706camera_VC0706.cpp:151:60: warning: narrowing conversion of '((((int)y) & 15) | ((((int)x) & 3) << 4))' from 'int' to 'uint8_t {aka unsigned char}' inside { } [-Wnarrowing]

    uint8_t args[17] = {strlen(str), strlen(str)-1, (y & 0xF) | ((x & 0x3) <> 8)’ from ‘uint16_t {aka unsigned int}’ to ‘uint8_t {aka unsigned char}’ inside { } [-Wnarrowing]

    uint8_t args[] = {0x08, wz >> 8, wz,

    ^

    E:Arduinolibrariescamera_VC0706camera_VC0706.cpp:189:19: warning: narrowing conversion of ‘wz’ from ‘uint16_t {aka unsigned int}’ to ‘uint8_t {aka unsigned char}’ inside { } [-Wnarrowing]

    };

    ^

    E:Arduinolibrariescamera_VC0706camera_VC0706.cpp:186:23: warning: narrowing conversion of ‘(hz >> 8)’ from ‘uint16_t {aka unsigned int}’ to ‘uint8_t {aka unsigned char}’ inside { } [-Wnarrowing]

    hz >> 8, wz,

    ^

    E:Arduinolibrariescamera_VC0706camera_VC0706.cpp:189:19: warning: narrowing conversion of ‘wz’ from ‘uint16_t {aka unsigned int}’ to ‘uint8_t {aka unsigned char}’ inside { } [-Wnarrowing]

    };

    ^

    E:Arduinolibrariescamera_VC0706camera_VC0706.cpp:187:23: warning: narrowing conversion of ‘(pan >> 8)’ from ‘uint16_t {aka unsigned int}’ to ‘uint8_t {aka unsigned char}’ inside { } [-Wnarrowing]

    pan>>8, pan,

    ^

    E:Arduinolibrariescamera_VC0706camera_VC0706.cpp:189:19: warning: narrowing conversion of ‘pan’ from ‘uint16_t {aka unsigned int}’ to ‘uint8_t {aka unsigned char}’ inside { } [-Wnarrowing]

    };

    ^

    E:Arduinolibrariescamera_VC0706camera_VC0706.cpp:188:24: warning: narrowing conversion of ‘(tilt >> 8)’ from ‘uint16_t {aka unsigned int}’ to ‘uint8_t {aka unsigned char}’ inside { } [-Wnarrowing]

    tilt>>8, tilt

    ^

    E:Arduinolibrariescamera_VC0706camera_VC0706.cpp:189:19: warning: narrowing conversion of ’tilt’ from ‘uint16_t {aka unsigned int}’ to ‘uint8_t {aka unsigned char}’ inside { } [-Wnarrowing]

    };

    ^

    E:Arduinolibrariescamera_VC0706camera_VC0706.cpp: In member function ‘uint8_t* camera_VC0706::readPicture(uint8_t)’:

    E:Arduinolibrariescamera_VC0706camera_VC0706.cpp:278:35: warning: narrowing conversion of ‘(((camera_VC0706*)this)->camera_VC0706::frameptr >> 8)’ from ‘uint16_t {aka unsigned int}’ to ‘uint8_t {aka unsigned char}’ inside { } [-Wnarrowing]

    0, 0, frameptr >> 8, frameptr & 0xFF,

    ^

    E:Arduinolibrariescamera_VC0706camera_VC0706.cpp:278:50: warning: narrowing conversion of ‘(((camera_VC0706*)this)->camera_VC0706::frameptr & 255u)’ from ‘uint16_t {aka unsigned int}’ to ‘uint8_t {aka unsigned char}’ inside { } [-Wnarrowing]

    0, 0, frameptr >> 8, frameptr & 0xFF,

    ^

    exit status 1

    Error compiling for board Arduino Yún.

    This report would have more information with

    “Show verbose output during compilation”

    option enabled in File -> Preferences.

    VA:F [1.9.13_1145]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.13_1145]
    Rating: 0 (from 0 votes)
    • Franco Gentili

      I have the same error. Did you fix it?

      VA:F [1.9.13_1145]
      Rating: 0.0/5 (0 votes cast)
      VA:F [1.9.13_1145]
      Rating: 0 (from 0 votes)
  • sohail iqbal

    when connect with UNO or MEGA says”no camera found ” any solution for this kind of error”

    VA:F [1.9.13_1145]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.13_1145]
    Rating: 0 (from 0 votes)
  • zainab

    can we use the provided code for 0V7670 camera module? we are using uno.

    VA:F [1.9.13_1145]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.13_1145]
    Rating: 0 (from 0 votes)
    • http://www.elecfreaks.com/ ElecFreaks

      hello,this module is not OV7670,this is Serial camera,OV7670 can’t suppot UNO

      VA:F [1.9.13_1145]
      Rating: 0.0/5 (0 votes cast)
      VA:F [1.9.13_1145]
      Rating: 0 (from 0 votes)
  • sarath

    does it really need to connect rx(2) and tx(3) pins …or can we use any other digital pins of arduino
    thanks in advance

    VA:F [1.9.13_1145]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.13_1145]
    Rating: 0 (from 0 votes)
    • http://www.elecfreaks.com/ ElecFreaks

      Thanks for your interest. This product does need rx(2) and tx(3) pins. Therefore can not replace to other digital pins. Any other technical inquiry, feel free to contact us at

      VA:F [1.9.13_1145]
      Rating: 0.0/5 (0 votes cast)
      VA:F [1.9.13_1145]
      Rating: 0 (from 0 votes)
  • Nate Crosby

    Hi, I have an OV7670 camera module, and I’m trying to follow this test.
    The above schematics show you using:
    RX, TX, VCC, GND

    However as seen in my image, my OV7670 camera module does have these pins. It has:
    3V3, GND, SIOC, SIOD, VSYNC, HREF, PCLK, XCLK, D7, D6, D5, D1, D3, D2, D1, D0, RESET, PWDN.

    Could anyone help me by telling me how i would need to connect my camera up?
    Thanks for your time and help!
    Nate.

    VA:F [1.9.13_1145]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.13_1145]
    Rating: 0 (from 0 votes)
    • ElecFreaks Studioo

      Hi Nate,

      For this demo actually is serial camera, should be 0706. Sorry for the mistake.

      VA:F [1.9.13_1145]
      Rating: 0.0/5 (0 votes cast)
      VA:F [1.9.13_1145]
      Rating: 0 (from 0 votes)
    • mimichen

      Hi,Dany.I have the same problem with Nate Crosby,the OV7670 camera module are different from yours.Which pins should we use to take the place of Rx,Tx..

      VA:F [1.9.13_1145]
      Rating: 0.0/5 (0 votes cast)
      VA:F [1.9.13_1145]
      Rating: 0 (from 0 votes)
  • Serenay

    Hi , I have mega and connected like that: 3.3 to before 3.3 later 5V , gnd to gnd, tx to D2 and rx to D3.
    But it doesn’t work. It says “camera not found” “failed to snap!” image writing to… When I control the SD it seems like photoes are taken because there are lots of JPEG files, but actually it only creates files doesnt take photo. I couldnt find the problem.

    VA:F [1.9.13_1145]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.13_1145]
    Rating: 0 (from 0 votes)
    • ElecFreaks Studioo

      Hi Serenay,
      For this demo actually is serial camera, should be 0706. Sorry for the mistake.

      VA:F [1.9.13_1145]
      Rating: 0.0/5 (0 votes cast)
      VA:F [1.9.13_1145]
      Rating: 0 (from 0 votes)
  • Serenay

    Hi Dany, I have mega and connected like that: 3.3 to before 3.3 later 5V , gnd to gnd, tx to D2 and rx to D3.
    But it doesn’t work. It says “camera not found” “failed to snap!” image writing to… When I control the SD it seems like photoes are taken because there are lots of JPEG files, but actually it only creates files doesnt take photo. I couldnt find the problem.

    VA:F [1.9.13_1145]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.13_1145]
    Rating: 0 (from 0 votes)
  • Patrick Fairclough

    Hi Dany, There are no RX and TX pins on the OV7670. I agree with Kalle, the camera that is used for this is the 0706. The OV7670 runs on 3V not 5V (Arduino is 5V). The 0706 is a serial TTL camera and is the one you need to specify in the hardware link.

    VA:F [1.9.13_1145]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.13_1145]
    Rating: 0 (from 0 votes)
  • anggi

    which pin tx and rx in Camera modul 7670 ?

    VA:F [1.9.13_1145]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.13_1145]
    Rating: 0 (from 0 votes)
  • Kalle Eskelinen

    That is 0706 no 7670. You should change that link. You see that in arduino serial screen also

    VA:F [1.9.13_1145]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.13_1145]
    Rating: 0 (from 0 votes)
  • vmr5072

    hey guys! when I run a program it says “camera_VC076 does not name a type”, in this case what do I have to do to fix it?

    VA:F [1.9.13_1145]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.13_1145]
    Rating: 0 (from 0 votes)
  • Mohit Varma

    can we control on-off operations of camera OV7670 using arduino uno board by programming??
    please reply asap.

    VA:F [1.9.13_1145]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.13_1145]
    Rating: 0 (from 0 votes)
  • Fajar Abdurrahman

    wich are tx and rx pin in ov7670?? are they A2 and A3? how about vcc? is it AVDD? thx 🙂

    VA:F [1.9.13_1145]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.13_1145]
    Rating: 0 (from 0 votes)
    • http://www.elecfreaks.com/ ElecFreaks

      Hi Fajar, tx and rx pin in ov7670 should connect to D3, D2 in UNO. VCC in ov7670 should connect to 5V in UNO, not AVDD.

      VA:F [1.9.13_1145]
      Rating: 0.0/5 (0 votes cast)
      VA:F [1.9.13_1145]
      Rating: 0 (from 0 votes)
Go To Top