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

User avatar
By mic159
#32588 I hope to be able to do something similar.

My current plan is to read the data pin states directly using the register
Code: Select allPIN_IN
as described https://github.com/esp8266/esp8266-wiki ... -registers.
That way it reads all of them instantaneously, then use some bitwise logic to make it into a byte.

Build up a buffer the size of a packet, and send that via UDP over WiFi.
User avatar
By Pasquale Tazza
#38411 Hi,
I have a OV3640 camera module and I am trying to accomplish the same task, I would also be very interested in understanding any news on downloading images from omnivision camera modules and sending them through wifi without needing FIFO buffers.
I understand that lack of RAM might be an issue. I just acquired a ESP8266 module (the one from Olimex) in order to make some experiments, but it will take me some time before getting to camera acquisition, I will try some simpler experiments.

In the past, I tried using the OV3640 camera module with Atmel micro, the problem is lack of information on how to use this module. Probably the most reliable sources are from Arducam project (though in that case there is very little explanation of the camera register usage) and the linux drivers.
User avatar
By Benn
#54823
anvoice wrote:If I recall correctly the ESP has 96Kb of data ram, which would be enough to capture a single frame at low resolution using the yuv422 format. So if it's possible to capture the data, and then transmit it before the next frame starts, should be doable.

I was also thinking of something along the lines of "get 1 byte, send it, get another byte" and reconstituting the image at the receiving side. Just that my limited experience doesn't tell me if either of those two ways is manageable.

I'm in the process of trying to program the ESP8266, but haven't been able to upload to it because my usb-ttl cable hasn't arrived yet and I couldn't get the arduino as ISP to work.

Edit: a bit of extra info about the way the camera works, taking from http://embeddedprogrammer.blogspot.com/2012/07/hacking-ov7670-camera-module-sccb-cheat.html. The falling edge of a signal (VSYNC) indicates the start of a frame, and the frame is obtained while VSYNC is low. The rising edge of another signal (HREF) indicates the start of a line, and the line is obtained while HREF is high. The data registers (D0-7, a byte) are then sampled at the rising edge of the clock signal, which is either the same frequency as the driving frequency (e.g. 8MHz) or scaled by a factor. From this I'm guessing the ESP8266 would basically need to wait for the conditions (VSYNC low, HREF high), then start sampling the D0-D9 channels at a rate of 8MHz. If I understand correctly, D0-D9 must all be read before the next rising edge of the clock pulse, so that means the ESP must access its pins at a rate of 8MHz * 8 pins = 64MHz at least. That is for VGA mode, perhaps the lower resolution modes behave somewhat differently.


Hi, sorry I know this is 1 year old thread but I would want to know if your project succeeded. I too want to do this project and in need of information.