Difference: Esp32-cam (4 vs. 5)

Revision 52022-01-11 - UliRaich

Line: 1 to 1
 
META TOPICPARENT name="WebHome"

The ESP32-CAM module

Introduction

Line: 62 to 62
  This model works similarly to the original version, but with the micro USB connector and a "flash button" already installed. A simple micro USB cable is needed for communication. In order to set the module to flash mode, hold the flash button while pushing the RST button.
Changed:
<
<
esp32-cam-usb.png
>
>
esp32-cam-usb.png
 

Testing with esp32-who

The github repository esp32-who provides the esp32-cam driver, as well as a number of example programs. Before trying to integrate the driver into MicroPython I build the camera_web_server example and check that the hardware works correctly:

Line: 76 to 76
 
  • select the camera type (AI Thinker)
This results in the following GPIO settings:
Changed:
<
<
esp32-who.png
>
>
esp32cam_GPIO.png
  With these settings, we can build the application and flash it to the board.
Deleted:
<
<
 
idf.py build
idf.py flash

After successful flashing connect minicom (or rshell in the case of the esp32-cam-mb) to the camera module and reset the machine.

Integration into MicroPython

Changed:
<
<
Espressif provides an esp32-camera driver, which must be installed in the components folder of esp-idf. I downloaded it to the same level as esp-idf and micrropython and created a symbolic link to it in esp-idf/components. In order to make sure that the correct esp-idf is used for compilation, I wrote a little shell script setting up the correction environment:

setupForCamera.png

>
>
Espressif provides an esp32-camera driver, which must be installed in the components folder of esp-idf. First I created a copy of esp-idf-v4.3.1, the latest stable version of esp-idf at the time of writing and named it esp32-v4.3.1-cam. Then I downloaded esp32-camera to the same level as esp-idf-v4.3.1-cam and micropython and created a symbolic link to it in
esp-idf-v4.3.1-cam/components. In order to make sure that the correct esp-idf is used for compilation I set:
 
Changed:
<
<
As you can see, it points to the esp-idf to be used, and it makes sure that the correct idf.py, which is stored in esp-idf/tools, is found in the execution path.
>
>
export ESPIDF=/opt/ucc/micros/esp32/esp32-v4.3.1-cam   
export IDF_PATH=/opt/ucc/micros/esp32/esp32-v4.3.1-cam
 
Reserving some space in SPIRAM for the image buffer

Standard MicroPython uses all the SPIRAM for its heap. This results in an error when the esp32 camera driver tries to allocate space in SPIRAM for its image buffer. I therefore modified the MicroPython sources to keep some free space for the camera driver. Here is the part I modified in main.c. As you can see, 256 kBytes are reserved.

Changed:
<
<
esp32-cam_imgbuf.png
>
>
esp32-cam_imgbuf.png
  After this modification, you may follow the description in https://lemariva.com/blog/2020/06/micropython-support-cameras-m5camera-esp32-cam-etc (DIY from Scratch) for the modifications to lv_micropython needed in order to produce an interpreter with the camera driver included.
Line: 115 to 114
 
META FILEATTACHMENT attachment="esp32-cam-mb.png" attr="" comment="" date="1634807001" name="esp32-cam-mb.png" path="esp32-cam-mb.png" size="166874" user="UliRaich" version="1"
META FILEATTACHMENT attachment="esp32-who.png" attr="" comment="" date="1634807361" name="esp32-who.png" path="esp32-who.png" size="25884" user="UliRaich" version="1"
META FILEATTACHMENT attachment="setupForCamera.png" attr="" comment="" date="1634810268" name="setupForCamera.png" path="setupForCamera.png" size="22985" user="UliRaich" version="1"
Changed:
<
<
META FILEATTACHMENT attachment="esp32-cam_imgbuf.png" attr="" comment="" date="1637008974" name="esp32-cam_imgbuf.png" path="esp32-cam_imgbuf.png" size="72024" user="UliRaich" version="1"
>
>
META FILEATTACHMENT attachment="esp32-cam_imgbuf.png" attr="" comment="" date="1641896037" name="esp32-cam_imgbuf.png" path="esp32-cam_imgbuf.png" size="78234" user="UliRaich" version="1"
META FILEATTACHMENT attachment="esp32cam_GPIO.png" attr="" comment="" date="1641895494" name="esp32cam_GPIO.png" path="esp32cam_GPIO.png" size="25884" user="UliRaich" version="1"
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback