Use this forum to chat about hardware specific topics for the ESP8266 (peripherals, memory, clocks, JTAG, programming)

User avatar
By anvoice
#22708 Hello,

I have a OV7670 camera module I'd like to use to send images to a PC. I'll be using a ESP8266 for wireless communication, but there is a problem: neither a raspberry pi nor arduino are likely to be able to handle this camera easily, and data transfer rates are bound to be slow even if I can get it to work. So since I heard that the ESP8266 is a fairly capable unit on its own, I was wondering if it might be possible to get it to grab the raw data from the camera and send it to the computer directly, without involving an external MCU. The camera would be driven with an 8MHz clock, and would be sending data at a rate of at least several megabytes per second. It's possible to slow down a bit, but a reasonable rate is needed to see live video. Could the ESP8266 receive the bytes the camera sends (e.g. the ESP-12 which has enough GPIO pins) and send them directly, perhaps with some of the advanced firmware I heard about?

I have very little experience with the ESP8266, short of getting it to work, so just wanted to hear about how feasible this might be and whether I should start on it or just get a different camera.
User avatar
By kolban
#22725 I don't know the OV7670 but let us think in the abstract. Imagine we have a device that is generating a bit stream ... what then is the maximum throughput rate that can be "pushed" by the ESP8266 to the target? For example, imagine we used a simple 555 to generate square waves at different clock speeds ... and then read those through a GPIO and pushed them over the network? Where would end up?
User avatar
By anvoice
#22726 I don't know the exact answer to that, which is partly why I'm asking the question.

What I know is:
1) Transfer of video of wifi is a frequently implemented option, so it definitely can have enough bandwidth
2) The ESP8266 has a stated transfer speed (from data sheet) of 54Mbps with 820.11g
3) It has an internal clock of 26-52MHz, which theoretically seems like it can catch data coming in at something like 8MHz.

Just from that, to answer your question, it seems like it should be doable.

Other than that, I have very little experience with the architecture and software capabilities of the ESP8266 and am fairly new to electronics in general. If this project can be done, I'll definitely do more research and get it working, but before I spend days looking into this I was hoping someone might advise me on the general feasibility.
User avatar
By kolban
#22732 Does the camera device have any hardware compression built into it? I am imagining that we would ideally want each frame to be grabbed raw, compressed by "something" (camera, hardware, software?), transmitted, received, uncompressed, displayed. Do you know the size of a frame of video in the raw? What is the pixel resolution of the camera?