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.

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.

<p>After inputting the cmd, it always says &quot;Looking for image&quot;. Nothing else pops up after and no images are saved in the out file. How do I fix this?</p>
<p>My Arduio is using COM 7 and no other port is free. Where to get the codes for more than com 5 ports?</p>
<p>I didn't like the java app either, so I wrote a simple Windows Forms application which basically does the same thing, but it's easier to use and to setup. You only have to run the app, select your COM port and start listening.</p><p>The app is here: https://cesarab.blob.core.windows.net/public/ReadSerialPortWin.exe</p><p>It only requires .net framework 3.5 (just run the app, and if it shows you an error saying you don't have the .net framework installed, follow these instructions to enable it on your Windows: https://msdn.microsoft.com/en-us/library/hh506443(v=vs.110).aspx)</p>
<p>sir, I load the arduino code to port 4</p><p>and then i install the .net framwork3.5</p><p>then,i run your app</p><p>and select serial port (com4)&gt; click start</p><p>the status :com 4 port opened </p><p>but no any image i can get?</p><p>how to solve it?</p>
<p>sir, even i am facing the same issue. Have you got any improvements..?</p>
<p>Hi <a href="https://www.instructables.com/member/C%C3%A9sarA94" rel="nofollow">C&eacute;sarA94</a>, Thank you very much Your Application is working perfectly. I am modifying this project to get the colour image. </p><p>Can You Please Share me the source code of your windows application.</p><p>prasadideas@gmail.com</p><p>Thank you very much in advance.</p><p>--Prasad</p>
<p>Sure. Here it is: https://cesarab.blob.core.windows.net/public/ReadSerialPort.zip</p>
<p>sir ,if i stop in &quot;looking for image&quot; </p><p>can i use your app and get the picture?</p>
<p>Hi CesarA94, </p><p>I have tried out your application and it is work for me. Hovewer, I have face this problem that the image is not completed and scattered by pieces. may I know what cause of this? It wont not happen when i using java application from tutorial</p>
<p>Hi C&eacute;sar, </p><p>Your app is much needed since it seems like the java solution is getting outdated. </p><p>I installed and compiled your app (in Visual Studio) and it runs fine. </p><p>And yet - there seems to be a port conflict when I start sending data from the Arduino on the COM port.</p><p>What is the correct startup sequence of the app and the arduino (given the arduino first need to load the program)?<br>Can I use the port monitor simultaneously?<br>How do I set bitrate, parity etc. to match the Arduino settings?</p><p>thanks, Nikolaj</p>
<p>System.UnauthorizedAccessException was unhandled</p><p>Message: An unhandled exception of type 'System.UnauthorizedAccessException' occurred in System.dll</p><p>Additional information: Access to the port COM6&quot; was denied</p>
<p>I forgot to attach a screenshot of the app running:</p>
<p>hey sir. How can you get the picture.</p><p>i use cmb but I stop in &quot;Looking for image&quot;</p><p>plz help me !!</p>
<p>Do you mind to share me the source code of your windows application?</p><p>ethankiu@gmail.com</p><p>thanks.</p>
<p>Thanks. That worked. Sorry for the late reply.</p>
<p>Thanks for the app, I'll try it.</p>
<p>Even I faced the same problem. </p><p>Solution:</p><p>Goto ControlPanel&gt;DeviceManager.</p><p>In the tool bar,go to &quot;View&quot; and check the &quot;Show hidden devices&quot; option.</p><p>Now you must be able to see all the devices which are using your COMs. Just right-click on them and uninstall that which you aren't using.</p><p>This worked for me!</p>
<p>Hey Kepp27, I am getting improper images after following your example, what should I change in the code to get perfect images. I have followed all your steps, please take a look at the attached image, it is not blurred but it is NOT intact.</p><p>I have edited wrReg(0x11, 12); to Edit line: wrReg(0x11, 13); in order to get this image, any other setting gives lines/blurs the image</p>
<p>Does anyone know how to alter the codes since I only need to take a picture every 30 minutes or even longer?</p>
<p>I meet the same problem too</p><p>the cmd is stop in &quot;Looking for image&quot;</p><p>I follow the steps 100% and I download your JDK version as well</p><p>and my ov7670 is without FIFO too</p><p>My arduino upload files in port4 and I use your port4 files too&quot;</p><p>What can I do?</p><p>this project is important to me</p><p>plz help me!!!</p>
<p>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?</p>
<p>hey, i done it</p><p>I think the problem is because the wiring</p><p>plz check the schematic sir</p><p>I AM SO HAPPY</p><p>&quot;HERF&quot; don't need to connect</p><p>and then &quot;SIOC&quot; -&gt;A4 NOT A5</p><p>&quot;SIOD:-&gt;A5 NOT A4</p><p>&quot;XCLKF&quot; -&gt;D11 directly (Don't use any Resistance)</p><p>PLZ TRY THIS</p><p>AND I can capture now</p>
<p>Thanks for ur detailed explanations,though it still doesn't work.May I ask u one more question, what value of resistors u use to connect with the SIOC and SIOD?</p>
<p>10k</p><p>let try this schematic.</p><p>and SIOD,SIOC connect with 3.3v</p>
<p>Really thanks for your help.I can take pictures now. But it seems the resolution is too low which cannot be acceptable.How can you tune he resolution?</p>
<p>if you keep stop in &quot;looking for image&quot;</p><p>Switch SIOC&gt;D4 /SIOD&gt;D5 OR SIOC&gt;D5/SIOC&gt;D4</p>
<p>And the Uno L red light keeps flashing and I am wondering if it is noraml.Did you have the same situation before?</p>
<p>I am done now.</p><p>plz check the wiring.</p><p>A4&gt;SIOD</p><p>A5&gt;SIOC</p><p>XCLK&gt;D11 directly (don't use any resistance)</p><p>and don't connect HREF</p><p>Just try it</p><p>I am not following the top of schematic</p>
<p>Here is the problem I faced, and my arduino uses com20 something actually, and almost com 1 to com 6 are occupied.So, what should I do so that I can upload the programmes to the arduino. Thanks.</p>
<p>After including the &quot;code&quot; file in the bin folder, the com cannot be found and I cannot upload the proramme to arduino. Whats wrong with that?</p>
<p>how to transfer captured photos(using OV7670) to an app via bluetooth? can anyone help me? </p>
<p>where to put the src-com-epam-BMP.java and src-com-epam-SimpleRead.java? because my cmd says &quot;could not find or load main class code.SimpleRead&quot; please helppp!</p>
<p>Based on your program, I made the camera color and created a program for display.</p><p>If you like, please look at my program at the following URL</p><p><a href="http://qiita.com/hi631/items/0170a531457e717f3606" rel="nofollow">HTTP://qiita.com/hi631/items/0170a531457e717f3606</a></p>
<p>Thanks for creating this instructable Kepp27 - worked like a charm. Thanks to C&eacute;sarA94 for the windows VS.</p><p>@hi631 - I tried your colour version, but the code you posted does not compile - variable KD, which looks like it is part of the receive ISR is not defined, plus there are some brackets missing in the area of if(UCSR0A &amp; (1&lt;=0x20). I've bodged a way around it and it kind-of works. Thanks for sharing.</p>
<p>hi <a href="https://www.instructables.com/member/farrmer" rel="nofollow">farrmer</a>,</p><p>what changes have you done to the ''From_computerNerd&quot; to get a color image?</p><p>im stuck...could you please help?</p><p>thanks</p>
<p>I have 5Kom instead of 4.7. all other wirings are correct, and gettin images like that. Can anyone help?</p>
<p>hi,</p><p>I'm still new to this arduino project. What does FIFO stand for an its meaning?</p>
<p>I did it and the image is very clear. Tnx <br>for this tutorial, I really like it. According to my experience, anyone <br>got blurry image should be taken the following points under the <br>consideration.</p><p>1) The connectors are extremely important and you need to check them and make sure that they are connected 100%.</p><p>2) Use the same values resisters which are shown in the pictures above.</p><p>3) To get the best quality, you have to adjust the lens by turn it right or left even you get the best image.</p><p>4) Follow carefully all steps of OV7670 without FIFO very simple framecapture with Arduino, black/white.</p><p>Good luck for everyone, and I am really happy for giving me this opportunity. </p>
<p>Thank you for this tutorial! </p><p>I am new to Arduino and get myself into troubles with my own CARELESS wires connection before successfully get the pictures. </p><p>Addition point: Do adjust the focus of camera in order to get a clear image </p>
<p>It is the only tutorial, which explains everything step by step, thx! </p><p>I did everything exactly how it's said in all steps. I also read all comments to find similar problem as mine. I did 63 shots and all looks just really bad. Some idea why? [ArduinoUno, OV7670 no-fifo, COM2 - java old version jdk1.8.0_74, Win7]</p><p>P.S. I tried changing USB and all wrReg(0x11, X) where for X, I did all no. from 1-63. Results in screenshots - red numbers are examples of X value above. Regards.</p>
<p>Hi, I had the same problem. After three mounths I figure out that the camera was broken, After to get a new one yesterday problem was the jumps connections. Make sure all hardware are fine. </p><p>PS The X maximum is 31 for pre-scaler. Take a look at the datasheet </p>
<p>To figure out the correct value for register 0x11 use this on the loop and find the best image </p><p>void loop(){</p><p> while (1){</p><p> uint8_t x=63;</p><p> do {</p><p> wrReg(0x11, x);</p><p> _delay_ms(1000);</p><p> captureImg(320, 240);</p><p> }while(--x);</p><p> }</p><p>}</p>
<p>May I see your results?</p>
<p>Mine uses 56</p><p>wrReg(0x11, 56);</p>
<p>Can I use the nano?I can't run ino with the nano</p>
<p>Who can send a uno or nano ino code to me, thank you! email: 68835110@qq.com</p>
<p>please help me, thx</p>
<p>why this happened? I don't understand...</p>
<p>I think you should try this:</p><p>Edit the line: wrReg(0x11, 11);</p><p>to wrReg(0x11, 12);</p><p>It worked for me though</p>

About This Instructable




More by Kepp27:Lightning LED RGB cloud with mechanical switch OV7670 without FIFO very simple framecapture with Arduino, black/white 
Add instructable to: