Friday, January 04, 2019

A.I. Thinker's ESP32-CAM module

I have always been interested in small wireless devices capable of streaming video, and had been trying to get the ESP32 to work with a camera module (OV7670) for quite a while with little luck. Then came the M5Stack camera module, which is an ESP32 module with an OV2640, and it works quite well. Except the ESP32 is a WROOM32, so it does not have PSRAM, and video processing is thus a bit slow. Code to get it working is here.

Then A.I. Thinker came up with a module that packs an ESP32, OV2640, and PSRAM. And guess what, it works! There is even an example in the official Espressif ESP32 Arduino core that supports this module.
To flash this module, you will need a USB to serial adapter, something like this. Connect 3.3V to 3.3V, GND to GND, TX on the adapter to RX (IO3) on the module, and RX on the adapter to TX (IO1) on the module. Then connect IO0 and IO2 to GND, and you are in flash mode. Use Arduino to flash the example (select baud rate as 115200; I had issues trying to flash at higher speeds), then remove IO0 from GND, press the RST button on the module, and you should be running the camera web server. If you open a terminal before pressing the RST button, you should see the ESP32 boot messages, plus a line that tells you what is the IP address of the camera. Oh, do remember to edit the sketch first with your SSID and password.

Resolution-wise, 400x225 works great, 640x480 was still okay. Anything larger was a bit laggy, but I have tried 1600x1200 and it was still working.

Specifications in English
Specifications in Chinese (A.I. Thinker website)

BTW, M5Stack has also came up with a PSRAM version of their camera module. It is called M5Camera. From what I gather, it uses a WROVER (which comes with PSRAM inside) instead of an external PSRAM chip.M5Stack's official code for it is here. The official Espressif example also supports the M5Camera.

Espressif's camera library/example.

No comments: