OV7670 Without FIFO Very Simple Framecapture With Arduino, Black/white

157,951

76

176

This instructable is for all the people struggling to just take a picture/grab a frame with their OV7670 without FIFO. I made this purely as an introduction. I do not yet posses the necessary coding skills to make a really great description. This was made to hopefully save some people a lot of the hours I used researching the OV7670 wanting to see if it worked.

All the coding provided is copied from these links:

http://forum.arduino.cc/index.php?topic=159557.0 (From a really cool guy but obviously not a fan of the arduino IDE or windows)

http://embeddedprogrammer.blogspot.dk/2012/07/hack... (Provides a lot of usefull information for understanding how the OV7670 works)

http://privateblog.info/arduino-uno-i-kamera-ov767... (is in russian, but with google translate you can actually extract some useful information)

Other useful documents are captured in the rar file.

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Identify Your Camera

This might be a little redundant but before you get down to the nitty-gritty make sure that the camera you bought is the one without FIFO. I bought mine from http://www.dx.com/p/jtron-ov7670-300kp-vga-camera-.... If your pins mention fifo or you do not have 18 pins for exits this is not the tutorial for you! Btw, if you are thinking about buying the OV7670 and you don't do coding let me save you some time. Spend a more little money and go for one that is better supported by the community for non-coders.

Step 2: Connecting the Pieces

The OV7670 is not rated for voltages above 3.0v. Hence the voltage divider for the XCLK. Futhermore the OV7670 does not provide higher voltages than 3.0 which is a little low to be sure the arduino reads the input as high (it starts at 3.0v). Therefore we connect pull-up resistors.

Step 3: Upload Sketch to Arduino

The sketch is borrowed from this link:

https://github.com/ComputerNerd/ov7670-no-ram-ardu...

and put together in the ino file I uploaded (From_Computernerd).

Just insert the ino file in the Arduino IDE and upload it. Don't mind that it does not recognize some libraries in the beginning of the file. If it bothers you, comment the whole line out with //

Step 4: Different Option to "grab" Picture

If you only care about making the OV7670 work, proceed to the next step.

This is just to inform people of some of the different options to retrieve the pictures from the Arduino. I tried using the framegrabber from ComputerNerd:

https://github.com/ComputerNerd/simpleFrameGrabber

It seems to be written in UNIX/Linux. Hence I tried downloading the MinGW, which should be able to run the code. After adding several packages in MinGW I had to stop because MinGW does not contain the termios.h library which is used in the code.

Another option to run GNU in windows is Cygwin. In Cygwin you also install packages with different libraries. I tried running the code installing new packages whenever Cygwin told me a library was missing. In the end I was able to compile an exe file but it wouldn't run because allegedly cygjpeg-8.dll and cygSDL-1-2-0.dll was missing even though I had installed both packages.

Finally abandoning all hope of running the "original" framegrabber I found a russian website where a guy had made his own framegrabber in java instead.

Step 5: 1. Half.

-Create a new folder on your c drive called out, like c:\out. This is where the pictures will end up.

-Download and install java SDK 32bit (don't install the 64 bit version even if your system is 64 bit) I've tested this with version 8u74.(I've included it as a rar-file because it wouldn't let me upload the exe-file)

-Find out what USB port your Arduino is connected to, something like COM3 or COM4. Check pictures to understand how.

-Depending on what port number your Arduino is connected to, download the corresponding file: COM1 = com_1.rar etc.

Step 6: 2. Half.

-Go to the "bin" folder, where you installed the Java SDK. By default it should be C:\Program Files (x86)\Java\jdk1.8.0_74\bin.

-Unpack your corresponding com_#.rar files in the directory. Check picture for help. (it might ask for adm. permission)

-Download and extract the Extra.rar file. The "win32com.dll" is placed in the "...\jdk1.8.0_74\jre\bin" direktory.

the "comm.jar" in "...\jdk1.8.0_74\jre\lib\ext" and the "javax.comm.properties" in the "...\jdk1.8.0_74\jre\lib" directory.

-Open cmd

-Open the folder wherein the code is (mine is): cd C:\Program Files (x86)\Java\jdk1.8.0_74\bin

Write: java code.SimpleRead

Enjoy! (It isn't much but at least you got it working)

Step 7: Troubleshooting and Pictures

-If your cmd does not "FIND" images try switching the USB of the arduino from a USB2.0 to a USB3.0 (blue socket) or vice versa.

-If your cmd does not "FIND" images or if you recieve SCRAMBLED pictures, you need to edit the ino file. Edit the line: wrReg(0x11, 12);

try changng the 12 to 11 or 10 or 9 or 13. Upload it to the arduino and run the cmd code again.

Good luck!

25 People Made This Project!

Recommendations

  • Indoor Lighting Contest

    Indoor Lighting Contest
  • Make It Fly Challenge

    Make It Fly Challenge
  • Growing Beyond Earth Maker Contest

    Growing Beyond Earth Maker Contest

176 Discussions

0
None
abhik41196

2 months ago

Hi .... I am Struggling in "Error: couldn't find the main load class" in command prompt
please help.. its urgent

0
None
AURORA_X3

5 months ago

my arduino mega is on COM8. so nothing happen because we can't use COM1,2,3,4 and 5 for COM8, What can i do? please help me, thank.

0
None
PrajwithU

2 years ago

Hi, very nice, I am using Arduino MEGA what changes should be done, please help me I am an Engineering student.

1 reply
0
None
chhavi0802

Question 8 months ago on Step 2

Hi, i have to use the 2560 mega board instead of arduino uno, is then the fifo module compulsory? if not, can you please help me with the pin diagram?

1
None
Ayan871992

10 months ago

I need suggestion about the following points:

1. How can I print the camera captured data into serial monitor?

2. What should be the necessary setup required for 64 bit computer?

3. Will you kindly provide me the class file based on 64 bit?

If anyone help me, then I will highly obliged.

0
None
HassanG29

11 months ago

Hi kepp

Thanks for such a detailed tutorial. I’m using arduino bluno by dfrobot a d I’m stuck at “looking for image”. I have checked connections many times and followed each step. Can arduino board be reason?

0
None
Deepjyoti1234

Question 1 year ago on Step 6

Plz sir, i really must know. Is there any way to find the temperature using the ov 7670? Also my images appear like this. is this is a problem with cam? or code?

2.bmp
0
None
Andrej LadislavK

Question 1 year ago

Hello, I tryed to change the resolution, but i wasn't successful. Can anyone tell me how to change resolution to the lowest value? 40x30 would be just fine. Thx

0
None
HimanshuJ35

1 year ago

I have bouth a OV7670 camera module.

I have installed the code and ran it again and it is still "looking for image". What can I do?

I have tried the connections to SIOC-A4/A5 or SIOD to A5/A4 and no connection to HREF. I have been trying it for last 3 weeks but in vain. Do help me out to complete the module...

3 replies
0
None
ttw1225HimanshuJ35

Reply 1 year ago

Have you solved it? I have the same problem... always "Looking for image"

0
None
EmDgttw1225

Reply 1 year ago

Hello, i also have the same problem.

The cmd prompt stops at "Looking for image".
How do i get past this?

Thanks

0
None
吳喜舒

2 years ago

I meet the same problem too

the cmd is stop in "Looking for image"

I follow the steps 100% and I download your JDK version as well

and my ov7670 is without FIFO too

My arduino upload files in port4 and I use your port4 files too"

What can I do?

this project is important to me

plz help me!!!

5 replies
0
None
EmDg吳喜舒

Reply 1 year ago

Hello, I'm presently experiencing the same issue.
My cmd prompt stops at "Looking for image".
i followed the steps as detailed in the report...did the SIOD/SIOC swap with A4/A5 pins, disconnected HREF. Still no improvement.
Please, i need your help

Thanks.

0
None
wyf吳喜舒

Reply 2 years ago

I have the same problem as you and how can you fix it?I have done an important project as you, can you please help me?

2
None
吳喜舒wyf

Reply 2 years ago

hey, i done it

I think the problem is because the wiring

plz check the schematic sir

I AM SO HAPPY

"HERF" don't need to connect

and then "SIOC" ->A4 NOT A5

"SIOD:->A5 NOT A4

"XCLKF" ->D11 directly (Don't use any Resistance)

PLZ TRY THIS

AND I can capture now

0
None
wyf吳喜舒

Reply 2 years ago

And the Uno L red light keeps flashing and I am wondering if it is noraml.Did you have the same situation before?

0
None
brlchwyf

Reply 1 year ago

in my case, switching a4 and a5 did trick