This is an old revision of the document!


see also multicam for raspberry/arducam more demanding tasks.

at their core this modules uses external RAM (psram to buffer an ov2640 camera module that does jpeg at 10fps on-board. the external ram is not strictly neseccery, but going fwd its the right way to go, beware of modules without one

note: current M5Stack modules DO NOT come with the PSRAM chip and are limited in performance and by heat issues.
while the M5Stack doesnt have the #PSRAM, out of the box it outputs a working image stream. unlike the ESP32-CAM

modules tested
TTGO T-Journal - comes with arduino support, works out of the box
M5Stack - works out of box, lacks PSRAM
ESP32-CAM - glitching ATM
untested
ESP32-wrover-kit
ESP32-WROVER-B
TTGO T8

M5Stack host it's product page on github and on their site.

M5Stack warn not to use the cam module for extended time as “it might over heat"!
also as this github issues #1,#2 mention it does not come with the PSRAM extra memory so it cannot run some demos and is generally slower. as the answer is

If you have the non-psram model, then the max you can stream is 800×600, 1 frame buffer and quality around 10 or more.
With PSRAM you can do full res, full quality and 2 or more frame buffers.

note: they recently forked a github with psram support so expect it to be available sometime soon.

<html> <ul> <li>ESP32 specifications<ul> <li>Dual-core Tensilica LX6 microprocessor</li> <li>Up to 240MHz clock frequency</li> <li>512K internal SRAM</li> <li>4MB Flash memory</li> <li>Integrated 802.11 BGN WiFi transceiver</li> <li>Integrated dual-mode Bluetooth (classic and BLE)</li> <li>Hardware accelerated encryption (AES, SHA2, ECC, RSA-4096)</li> </ul> </li> <li>CP2104 USB TTL</li> <li>OV2640 sensor<ul> <li>Output Formats(8-bit):<ul> <li>YUV(422/420)/YCbCr422</li> <li>RGB565/555</li> <li>8-bit compressed data</li> <li>8-/10-bit Raw RGB data</li> </ul> </li> <li>Maximum Image Transfer Rate<ul> <li>UXGA/SXGA: 15fps</li> <li>SVGA: 30fps</li> <li>CIF: 60fps</li> </ul> </li> <li>Scan Mode: Progressive</li> </ul> </li> <li>Camera specifications<ul> <li>CCD size : 1/4inch</li> <li>Field of View : 78 degree</li> <li>Maxmium Pixel: 200W</li> </ul> </li> <li>Sensor best resolution: 1600 * 1200</li> <li>Dimension: 25mm x 24mm</li> <li>Weight: 5g</li> </ul> </html>


notable addons

demo code: github - this actually worked
Has the MPU6050 & bme280 pads on the board, can do DIY solder easily.
3. Has IP5306, can connect with lithium battery

AI-thinker has released a QR-code reading example.

<html> <ul><li>Wireless Module- ESP32-S WiFi 802.11 b/g/n + Bluetooth 4.2 LE module with PCB antenna, u.FL connector, 32Mbit SPI flash, 4MBit PSRAM</li> <li>External Storage – micro SD card slot <strong>up to 4GB</strong></li> <li>Camera <ul><li>FPC connector</li> <li>Support for OV2640 (sold with board) or OV7670 cameras</li> <li>Image Format – JPEG(&nbsp;OV2640 support only ), BMP, grayscale</li> <li>LED flash light</li> </ul></li> <li>Expansion – 16x through-holes with UART, SPI, I2C, PWM</li> <li>Misc – Reset button</li> <li>Power Supply – 5V via pin header</li> <li>Power Consumption <ul><li>Flash LED off – 180mA @ 5V</li> <li>Flash LED on to maximum brightness- 310mA @ 5V</li> <li>Deep-sleep – 6mA @ 5V min.</li> <li>Modem-sleep – 20mA @ 5V min.</li> <li>Light-sleep – 6.7mA @ 5V min.</li> </ul></li> <li>Dimensions – 40.5 x 27 x 4.5 mm</li> <li>Weight- 10 grams</li> <li>Temperature Range – Operating: -20 ℃ ~ 85 ℃; storage: -40 ℃ ~ 90 ℃ @ &lt;&nbsp;90%RH</li> </ul> </html>

spec gathered and formatted by cnx-software, check his feed for the latest in embedded open designs interesting, might be a seeedstudio design, but abandoned (cache).

make defconfig
make flash
I (309) boot: Loaded app from partition at offset 0x10000
I (309) boot: Disabling RNG early entropy source...
E (312) spiram: Expected 4096KiB chip but found 8192KiB chip. Bailing out..
E (319) cpu_start: Failed to init external RAM!

  • Chipset ESPRESSIF-ESP32-PCIO-D4 240MHz Xtensa® single-/dual-core 32-bit LX6 microprocessor
  • FLASH QSPI flash/SRAM, up to 4 x 16 MB
  • SRAM 520 kB SRAM
  • dispaly 0.91 SSD1306
  • USB to TTL CP2104
  • Camera OV2640 2Megapixel
  • Steering engine analog servo (PWM?)
  • working voltage 2.3V-3.6V
  • working current about 160mA
  • size 64.57mm*23.98mm
  • Power Supply USB 5V/1A
  • charging current 1A - battery 3.7V lithium battery

store
github

getting image

the TTGO T-Journal comes with arduino support github repo

configure arduino with esp32 support
using the board type ESP32 Dev Module

unzip Downloads/esp8266-oled-ssd1306-master.zip -d ~/Arduino/libraries/
cd ~/Arduino/libraries/
git clone https://github.com/LilyGO/ESP32-Camera
#(re)open arduino 
File>Examples>Examples from customs libraries>ESP32 camear>ESP32_Station_Cam.ino

the TTGO is the best one.
comes pre-flashed out of the box and was able to reflash with their example.
missing are schematics.

click image for the mjpeg_stream output

do not use for for new designs (see comment on wrover-b bellow) video released by espressif shows pattern detection capabilities.github
it uses the esp-wrover-kit

  • Dual core 240 MHz CPU;
  • with 4 MB SPI PSRAM (Pseudo static RAM);
  • Built-in USB-JTAG Debugger;
  • 3.2” SPI LCD panel;
  • Micro-SD card interface
  • VGA camera interface
  • I/O expansion
  • DOOM enabled (jpg)
  • getting started guide by io-bits

the ESP32-WROVER-B Module has the 8MB PSRAM but lacks some peripherals.
note the diff between qrover and wrover-b, which has the extra 8MB. better not use less then 4MB.

the T8 has the PSRAM with all the peripherals but the camera connector. store

the PSRAM is “a cheaper cost­-per-­bit cache and buffered memory solution” (link)

from ESP-PSRAM64 datasheet

“the ESP32 SDK at the moment only supports the ESP-PSRAM32 chip.” (doc), post#1.post#2

note: current M5Stack modules DO NOT come with the PSRAM chip and are limited in performance and by heat issues. TBD check your board

OV2640 datasheet

an earlier source code shows how to stream MJPEG to a browser. in video is an example of that with a few ov modules with ribbon connectors

here is a reddit comment about working with the ov2640 and the arduino platform

relate to all the above.

ESP32-CAM

  • SDcard storage

M5Satck