ESP32-CAM. Which model to choose? ESP-EYE, AI Thinker, TTGO T-Camera, M5Stack Timer Camera …

esp2-cam ai thinker ttgo t-camera m5stack timer guide
Share on facebook
Share on twitter
Share on linkedin
Share on pinterest
Share on email
Share on whatsapp
Table of Contents

ESP32-CAM modules have been on the market for several years now. With some manufacturers such as M5Stack, we are already at the 5th generation of development board which complicates the choice quite a bit, especially when starting out. AI Thinker, M5Stack and TTGO are the best known manufacturers in the field.

 

Unable to test all development boards offered in this article. ESP-EYE by Espressif, ESP32-CAM Ai Thinker, M5Stack Timer Camera, TTGO T-Camera, T-Camera Plus and T-Journal. Do not hesitate to share your experience (good or bad) or to point out an error or an oversight to me using the comments.

General recommendations before making your choice

Some development boards do not have a connector (GPIO). It will therefore be impossible to add an SD card reader, a motion detector or any other I2C equipment. You will need to take this into account when making your choice. The presence of an expansion slot (GPIO) is indicated in each comparison table.

If you are a beginner, choose a model with a USB-C or micro-USB connector, which indicates that the development board is equipped with a UART / USB converter. Programming will be simplified

The new Kentrix K210 SoC is a micro-controller dedicated to vision for mobile applications. It is not an ESP32. It does not have WiFi connectivity, nor Bluetooth. The programming is different and the projects for ESP32-CAM are not compatible.

esp-eye espressif esp32

ESP-EYE from Espressif

The ESP-EYE is a development board for image recognition and audio processing developed by Espressif. It is a development board primarily intended for companies wishing to quickly develop a prototype connected to the Amazon AWS-IoT platform.

The ESP-EYE is equipped with an ESP32 chip (ESP32-D0WD version), a 3D WiFi antenna of a 2MP camera, a Cirrus Logic CS53L30 microphone, 2 LEDs (red and white), 8Mo of PSRAM usable to increase the RAM of the ESP32 and 4MB of flash memory (program and user data storage). Programming is done via a micro USB connector.

The ESP-EYE has a mini extension connector for connecting additional equipment via the SPI bus (OLED screen, microSD card reader).

Bus SPIESP32 pin
DATA_OUT (DOUT)IO12
DATA_INT (DIN)IO2
CLKIO0
CSIO19

It can be used to connect I2C equipment by manually assigning the pins using the wire.begin method (pin_SDA, pin_SCL).

esp-eye v2 pinout espressif esp32

The ESP-EYE is an Amazon AWS-IoT certified development board.

Several starter examples are available on GitHub here. The example is delivered with the drivers for the OmniVision OV2640, OV3660 and OV5640 camera modules.

ESP32-CAM AI Thinker

esp32 cam wifi wifi module esp32 serial to wifi esp32 cam development board 1It was ultimately the manufacturer AI Thinker who popularized Espressif’s ESP-EYE open source project with its ESP32-CAM version. The other board manufacturers then followed suit.

There are now many manufacturers who have cloned the project. Most ESP32-CAM modules use an ESP32-S SoC from AI Thinker .

The ESP32-CAM is the cheapest development board equipped with a camera module and therefore the most sold. She does the job without flinching.

To cut back on the price and size of the board, it does not have a UART / USB converter which makes programming more complicated, especially when starting out.

To start, it is best to equip yourself with the Timer Camera from M5Stack or a T-Camera from TTGO. All these models are presented in more detail later in the article.

The Ai Thinker ESP32-CAM Development Board has a true breadboard compatible expansion slot and exposes several of the ESP32 pins that are still available.

ai thinker esp32 cam pinout

Find more ESP32-CAM development boards

How do I upload a program?

As the ESP32-CAM AI Thinker does not have a UART / USB converter, you will have to think about buying an FTDI module. You will also need some female-female jumpers. Connect the pins of the FTDI module like this.

As you can see the RX / TX pins are not crossed as they would normally be. If you are having trouble, cross the RX / TX pins. There may be an error on my generic ESP32-CAM board.

Always power the board via the +5V pin otherwise the board re-boot

FTDIESP32 CAM Ai Thinker
5V5V
GNDGND
TXUOT
RXeasy
IO0 connector on GND + RESET before uploading

Before you can upload the program from the Arduino IDE (or another environment), you will have to put the ESP32 in flash mode. To do this, connect the IO0 pin to the GND pin then reset (or power on).

When the program has been uploaded, disconnect the IO0 pin from the GND and do a RESET to restart the firmware.

esp32cam pinout ftdi cable ide arduinoesp32-cam diagram flash mode firmware ide arduino ftdi cable

How to activate the external antenna?

Models built around the ESP32-S microcontroller have an IPEX (uFL) connector that allows the use of an external antenna to increase the range and quality of the WiFi signal. By default, the antenna engraved on the PCB is selected.

To be able to use the external antenna, it will therefore be necessary to move the resistance (or replace it with a small piece of copper wire) like this.

PCB antenna activatedExternal antenna activated

esp32-cam resistor pcb antenna

PCB antenna activated

esp32-cam resistor ipex activate external antenna

IPEX external antenna enabled

esp32-s esp32-cam on board antenna pcb resistanceesp32-s esp32-cam antenna ipex

To make the change, follow the instructions detailed in this article

Read Also
ESP32-CAM. Solder the external antenna to improve the range and stability of the video stream

M5Stack Timer Camera

The M5Stack Timer Camera is a camera module based on an ESP32 (unspecified version, probably ESP32-D0WD) with 8MB of PSRAM integrated. The OmniVision OV3660 module offers a resolution of 2048×1536 pixel is equipped with a lens with a field of view of 66.5°.

The M5Stack Timer Camera is available alone or delivered installed in a box (X version) with Lego Technics support.

m5stack esp32 timer camera boardm5stack esp32 timer camera board packaged

 

M5Stack still sells the ESP32-Camera equipped with an OmniVision OV2640 camera. I do not recommend this version, the price of which is very close to the better equipped Timer Camera. It is equipped with an older generation of ESP32, and does not have a LiPo battery connector.

The OmniVision OV3660 sensor is not suitable for night vision. The spectral response is best between 400nm and 700nm. Additional lighting at 800nm ​​should however improve night vision for animal viewing or video surveillance in low light.

omnivision ov3660 esp32cam m5stack spectral response night

Source: Omnivision

The development board also has an RTC clock (BM8563), a PH2.0-4P (Grove) port, a white LED (IO2) and a connector for LiPo battery. The battery charge can be measured on pin (IO33). Go to the next paragraph for pin identification.

The board is equipped with a 3D 2.4GHz WiFi antenna eliminating the need for an external antenna via an IPEX connector.

Programming can be done with Arduino code (ESP32-Arduino library), with C++ code (ESP-IDK 4.1 minimum) or in Blockly with the UIFlow home version.

An example developed with the ESP-IDF SDK (programming in C++) is available on GitHub here.

The X version comes in a protective box with a LEGO Technic compatible mount and a 140mAh battery.

The M5Stack Timer Camera can also be used to connect I2C accessories via a 4-pin PH2.0 connector better known as the Grove connector.

The Grove connector exposes the GPIO04 and GPIO13 pins of the ESP32. You can use the many available Grove M5Stack or SeeedStudio equipment.

As the M5Stack Timer Camera is equipped with a UART / Serial converter (CP2104 controller), there is no need to put the camera in “bootloader” mode each time you want to upload a new program.

The M5Stack Timer Camera is a great place to start. Programming can be done by assembling blocks (blocky language) or with Arduino code.

M5Stack Timer Camera Pinout

Here is the pin identification of the ESP32 reserved for the OmniVision OV3660 camera module, the white LED and the LiPo battery charge control (optional).

InterfaceESP32 pin
Grove connector
SCLIO13
SDAIO4
5V5V
GNDGND
Other equipment
White ledIO2
LiPo battery voltage (BAT_ADC_Pin)IO33

Technical data taken from official documentation .

Obsolete models to avoid: M5Camera A and B, M5CameraX, M5CameraF and ESP32-Camera

M5Stack has removed the M5Camera A, M5Camera B, M5CameraX and M5CameraF development boards from their catalog, detailed here on GitHub. You may find them on sale on AliExpress for example. Stay away from its less efficient models that will no longer receive technical support.

m5camera m5cameraX m5cameraF esp32-cam development boards

Source: M5Stack

You can still buy the ESP32-Camera but that’s a bit of a shame because its price is very close to the much newer and better equipped Timer Camera. You choose.

M5Stack M5StickV K210 AI Camera (Kendryte K210 without WiFi)

m5stack m5stickv kendryte k210 cameraThe M5StickV is built around the Kendryte K210 SoC, a dual-core 64-bit RISC-V processor and a dedicated neural network processor for image analysis and video processing.

The M5StickV AI is equipped with an OmniVision OV7740 sensor which offers high sensitivity even in low light. The M5StickV includes, among other things, an I2S Class-D speaker, an IPS screen, a 6-axis MPU6886 accelerometer, a 200mAh LiPo battery, an AXP192 power manager.

The Kendryte K210 does not have any connectivity (WiFi or Bluetooth).

The easiest is to use the MicroPython language to develop code for the K210. Several MicroPython code samples developed using the MaixPy editor (developed by Seeed Studio) are available here . Small regret, no example for the camera module is available yet ?!

As I reported in this guide to choosing TTGO T-Watch, the manufacturer’s website Kendryte has been offline for a while now. Buyout or bankruptcy following the COVID-19 pandemic, that is the question? Only the GitHub repository is still active. I therefore advise you to stay away from this product for the moment.

The M5StickV K210 AI is available for around $ 30 (excluding shipping) from the M5Stack online store.

TTGO T-Camera, T-Camera Plus or T-Journal from LilyGo

LilyGo, the manufacturer of ESP32 TTGO development boards, offers us 3 ESP32-CAM development boards.

The ESP32-CAM TTGO T-Camera and T-Camera Plus boards are equipped with a 3D WiFi antenna as well as an IPEX connector. A priori, it is not necessary to intervene on the circuit to connect an external antenna. However, the 3D WiFi antenna should provide a good signal in most situations, indoors at least. The T-Journal is equipped with an SMA antenna which can be replaced by an IPEX antenna (connector available without modification).

TTGO T-Camera

The TTGO T-Camera is equipped with a PIR motion detector (AS312) accessible on the IO33 pin as well as an OLED SSD1306 I2C screen

TTGO T-Camera Plus

The TTGO T-Camera Plus has a microphone (MSM261S4030H0), a temperature, humidity and atmospheric pressure sensor (BME280), a color TFT screen with a diagonal of 1.3 “and an SD card reader (up to 16GB) .

Too bad the motion detector has been replaced by a push button, probably to make selfies! It would have been perfect for a surveillance camera with its microSD card reader.

TTGO T-Journal

The TTGO T-Journal is directly fitted with an SMA connector. An IPEX connector (uFL) is also present at the base of the SMA connector. Good idea ! No antenna is engraved on the PCB, so you must use an external antenna.

Comparison table of TTGO T-Camera, T-Camera Plus and T-Journal

Here is a comparison table which summarizes the main technical specifications of the 3 LilyGo TTGO camera boards.

FunctionESP32-CAM Ai ThinkerTTGO T-CameraTTGO T-Camera PlusTTGO T-Journal
esp32 cam wifi wifi module esp32 serial to wifi esp32 cam development board 1ttgo lilygo t-camera esp32 esp32-camttgo lilygo t-camera plus esp32 esp32-camttgo lilygo t-journal esp32 esp32-cam
ESP32 VersionESP32-S2ESP32-WROVER-BESP32-DOWDQ6ESP32-PCIO-D4
PSRAM memory4Mo8Mo8Mo
Flash memory4Mo4Mo4Mo4Mo
GPIO connectorxxx
Microphonexx

MSM261S4030H0

x
SD card readerxx
BME280 (temperature + humidity + atmospheric pressure)xxx
I2CGPIO*ConnectorConnectorx
ScreenxOLED SSD1306

0,96″ (128×64)

IPS ST7789

1.3 “

OLED SSD1306

0,96″ (128×64)

CameraOV2640OV2640OV2640OV2640
I/0 GPIO*

AS312

x

x

User buttonx

x

x
Integrated programmer (UART / USB converter)xCP2104CP2104CP2104
Connectorxmicro usbmicro usbmicro usb
JST connector for LiPo batteryx
3D WiFi antennax 
IPEX uFL connectorTo modify**
SMA connectorxxx
Dimension40*27*18mm69.13*28.41*8.45mm64.57mm * 23.98mm
ResourcesReadReadRead
Average price (excluding transport costs)<€ 8€ 1517 €€ 14

(*) Attention, if you use the micro SD card reader, only pins 1, 3 and 16 are available for the I2C bus. Pins 1 and 3 will need to be released each time you want to upload a program.

(**) Follow the instructions of this tutorial.

How to program an ESP32-CAM module?

ESP32-CAM is first and foremost an ESP32 development board. This means that we can develop code using compatible languages:

  • ESP-IDF is the C++ development kit offered by Espressif which allows you to use all the functions of the ESP32. It is based on FreeRTOS. You must already have a very good command of C++ to get started.
  • ESP32-Arduino. This is the version of the ESP-IDF SDK suitable for the Arduino or PlatformIO IDE. You will find many projects and examples to get started. This is the preferred solution when starting out.
  • UIFlow. This is the home version of Blockly developed by M5Stack. It can only be used with M5Stack boards.
  • Micro Python. A few projects are starting to emerge on the internet.

ESP-IDFESP32-ArduinoUIFlow (Blockly)Micro Python
ESP-EYE
ESP3-CAM
M5Stack Timer Camera, ESP32 Camera and older models 
TTGO T-Camera
TTGO T-Camera Plus
TTGO T-Journal

Summary table, which model to choose?

Here is a summary table to help you choose the ESP32-CAM development board that best suits your project.

MakerEspressif + generic
Ai Thinker + generic
M5Stack
TTGO
esp-eye espressif esp32esp32 cam wifi wifi module esp32 serial to wifi esp32 cam development board 1m5stack esp32 timer camera boardesp32 camera TTGO T-Camera PIResp32 camera TTGO T-Camera-Plusttgo lilygo t-journal esp32 esp32-cam
Model
ESP-EYE
ESP32-CAM AI-THINKER
Camera Timer
T-CAMERA
T-CAMERA PLUS
T-JOURNAL
ESP32
ESP32-D0WD
ESP32-S2
ESP32-D0WD
ESP32-WROVER-BESP32-DOWDQ6ESP32-PCIO-D4
PSRAM
8Mo
4Mo
8Mo
8Mo
8Mo
x
Sensor 
OV2640
OV2640
OV3660
OV2640
OV2640
OV2640
Resolution
2MP
2MP
3MP
2MP
2MP
2MP
Screen
x
x
x
0.96″ OLED (SSD1306)
1.3″ TFT (ST7789)
0.91″ OLED (SSD1306)
SD card reader
x
x
x
x
Microphone
x
x
x
x
RTC clock
x
x
BM8563
x
x
x
User button
x
x
x
Battery connector
x
x
Battery voltage
x
x
x
x
x
Integrated programmer
CP2104
x
CP2104
CP2104CP2104CP2104
GPIO
4
10
x
x
2
4
Movement detector
x
x
x
x
x
Grove connector
x
x
x
x
3D WiFi antenna
x
x
x
IPEX or SMA connector
x
x
x
x
White led
x
x
x
x
Average price (excluding transport costs)~ 15 €~ 17 €~ 14 €

ESP3-CAM tutorial and projects

Ready to get started, here are some projects and tutorials to get you started.

You will also find in this article many tips to improve

Read Also
5 tips for ESP32-CAM. Fixed IP address. AP mode. Image rotation 90°. Automatic recovery WiFi connection. HTML code storage

Updates

2021/01/26 Publication of the article

Version française

Thanks for reading

Click to rate this post!
[Total: 0 Average: 0]

Thanks for your reading

Did you like this project ? Don't miss any more projects by subscribing to our weekly newsletter!

Share on facebook
Share on twitter
Share on linkedin
Share on pinterest
Share on email
Share on whatsapp

Are you having a problem with this topic?

Maybe someone has already found the solution, visit the forum before asking your question
We will be happy to hear your thoughts

      Leave a Reply

      Ads
      Read more
      Recent posts on the Forum
      DIY Projects
      DIY Projects