The cause is due to lack of a version (making you think you did something wrong, when you didn't at all) - the output is horribly non-descript. There is a sharp-edge on you'll discover in the platform.io build process (in espidf v3.3 & 4.0.1) where a project which has only had git init but nothing committed will crash platform.io build process with highly non-useful output. Warning about platform.io/espidf and fresh (not initialized) git repos Now the module is included, and you're hopefully back to the same place as the easy-Arduino way. The easy way - on the env section of platformio.ini, add the following:Īfter that #include "esp_camera.h" statement will be available. Enable PSRAM in menuconfig (also set Flash and PSRAM frequiencies to 80MHz).Clone or download and extract the repository to the components folder of your ESP-IDF project.This approach puts more strain on the CPU/Memory, but allows for double the frame rate. When 2 or more frame bufers are used, I2S is running in continuous mode and each frame is pushed to a queue that the application can access.This approach gives more control over the system, but results in longer time to get the frame. After the frame is acquired, I2S will be stopped and the frame buffer returned to the application. When 1 frame buffer is used, the driver will wait for the current frame to finish (VSYNC) and start I2S DMA.If you need RGB data, it is recommended that JPEG is captured and then turned into RGB using fmt2rgb888 or fmt2bmp/ frame2bmp. This is particularly true if WiFi is enabled.
The result is that image data might be missing. Using YUV or RGB puts a lot of strain on the chip because writing to PSRAM is not particularly fast.Except when using CIF or lower resolution with JPEG, the driver requires PSRAM to be installed and activated.Additionally it provides a few tools, which allow converting the captured frame data to the more common BMP and JPEG formats. This repository hosts ESP32 series Soc compatible driver for image sensors.