diff --git a/README.md b/README.md index dff03fd..c0f624c 100644 --- a/README.md +++ b/README.md @@ -42,6 +42,7 @@ This software supports the following ESP32-CAM (and alike) modules: - M5STACK_V2_PSRAM - M5STACK_PSRAM - M5STACK_WIDE +- M5STACK M5PoECAM-W - M5STACK - Seeed Studio XIAO ESP32S3 SENSE - TTGO T-CAMERA @@ -97,21 +98,22 @@ There are a lot of boards available that are all called ESP32-CAM. However, there are differences in CPU (type/speed/cores), how the camera is connected, presence of PSRAM or not... To select the right board use the table below and use the configuration that is listed below for your board: -| Board | Image | CPU | SRAM | Flash | PSRAM | Camera | | Site | -|--- |--- |--- |--- |--- | --- |--- |--- |--- | -| Espressif ESP32-Wrover CAM | ![img](assets/boards/esp32-wrover-cam.jpg) | ESP32 | 520KB | 4Mb | 4MB | OV2640 | | | -| AI-Thinker ESP32-CAM | ![img](assets/boards/ai-thinker-esp32-cam-ipex.jpg) ![img](assets/boards/ai-thinker-esp32-cam.jpg) | ESP32-S | 520KB | 4Mb | 4MB | OV2640 | | [https://docs.ai-thinker.com/esp32-cam](https://docs.ai-thinker.com/esp32-cam) | -| Espressif ESP-EYE | ![img](assets/boards/espressif-esp-eye.jpg) | ESP32 | 520KB | 4Mb | 4MB | OV2640 | | | -| Espressif ESP-S3-EYE | ![img](assets/boards/espressif-esps3-eye.jpg) | ESP32-S3 | 520KB | 4Mb | 4MB | OV2640 | | [https://www.espressif.com/en/products/devkits/esp-eye/overview](https://www.espressif.com/en/products/devkits/esp-eye/overview) | -| LilyGo camera module | ![img](assets/boards/lilygo-camera-module.jpg) | ESP32 Wrover | 520KB | 4Mb | 4MB | OV2640 / OV5640 | | | -| LilyGo Simcam | ![img](assets/boards/lilygo-simcam.jpg) | | | | | OV2640 | | | -| LilyGo TTGO-T Camera | ![img](assets/boards/lilygo-ttgo-t-camera.jpg) | | | | | OV2640 | | | -| M5Stack ESP32CAM | ![img](assets/boards/m5stack_esp32cam_02.webp) | ESP32 | 520Kb | 4Mb | - | OV2640 | Microphone | [https://docs.m5stack.com/en/unit/esp32cam](https://docs.m5stack.com/en/unit/esp32cam) | -| M5Stack UnitCam | ![img](assets/boards/m5stack_unit_cam_02.webp) ![img](assets/boards/m5stack_unit_cam_03.webp) | ESP32-WROOM-32E | 520KB | 4Mb | - | OV2640 | | [https://docs.m5stack.com/en/unit/unit_cam](https://docs.m5stack.com/en/unit/unit_cam) | -| M5Stack Camera | ![img](assets/boards/m5stack-esp32-camera.jpg) | ESP32 | 520Kb | 4Mb | - | OV2640 | | [https://docs.m5stack.com/en/unit/m5camera](https://docs.m5stack.com/en/unit/m5camera) | -| M5Stack Camera PSRAM | ![img](assets/boards/m5stack-esp32-camera.jpg) | ESP32 | 520Kb | 4Mb | 4Mb | OV2640 | | [https://docs.m5stack.com/en/unit/m5camera](https://docs.m5stack.com/en/unit/m5camera) | -| M5Stack UnitCamS3 | ![img](assets/boards//m5stack_Unitcams3.webp) ![img](assets/boards/m5stack_Unitcams32.webp) | ESP32-S3-WROOM-1-N16R8 | 520Kb | 16Mb | 8Mb | OV2640 | | [https://docs.m5stack.com/en/unit/Unit-CamS3](https://docs.m5stack.com/en/unit/Unit-CamS3) | -| Seeed studio Xiao ESP32S3 Sense | ![img](assets/boards/seeed-studio-xiao-esp32s3-sense.jpg) | ESP32-S3R8 | 520KB | 8Mb | 8MB | OV2640 | Microphone | [https://www.seeedstudio.com/XIAO-ESP32S3-Sense-p-5639.html](https://www.seeedstudio.com/XIAO-ESP32S3-Sense-p-5639.html) | +| Board | Image | CPU | SRAM | Flash | PSRAM | Camera | | Site | +|---------------------------------|--------------------------------------------------------------------------------------------------------|------------------------|--------|-------|-------|-----------------|------------|----------------------------------------------------------------------------------------------------------------------------------| +| Espressif ESP32-Wrover CAM | ![img](assets/boards/esp32-wrover-cam.jpg) | ESP32 | 520KB | 4Mb | 4MB | OV2640 | | | +| AI-Thinker ESP32-CAM | ![img](assets/boards/ai-thinker-esp32-cam-ipex.jpg) ![img](assets/boards/ai-thinker-esp32-cam.jpg) | ESP32-S | 520KB | 4Mb | 4MB | OV2640 | | [https://docs.ai-thinker.com/esp32-cam](https://docs.ai-thinker.com/esp32-cam) | +| Espressif ESP-EYE | ![img](assets/boards/espressif-esp-eye.jpg) | ESP32 | 520KB | 4Mb | 4MB | OV2640 | | | +| Espressif ESP-S3-EYE | ![img](assets/boards/espressif-esps3-eye.jpg) | ESP32-S3 | 520KB | 4Mb | 4MB | OV2640 | | [https://www.espressif.com/en/products/devkits/esp-eye/overview](https://www.espressif.com/en/products/devkits/esp-eye/overview) | +| LilyGo camera module | ![img](assets/boards/lilygo-camera-module.jpg) | ESP32 Wrover | 520KB | 4Mb | 4MB | OV2640 / OV5640 | | | +| LilyGo Simcam | ![img](assets/boards/lilygo-simcam.jpg) | | | | | OV2640 | | | +| LilyGo TTGO-T Camera | ![img](assets/boards/lilygo-ttgo-t-camera.jpg) | | | | | OV2640 | | | +| M5Stack ESP32CAM | ![img](assets/boards/m5stack_esp32cam_02.webp) | ESP32 | 520Kb | 4Mb | - | OV2640 | Microphone | [https://docs.m5stack.com/en/unit/esp32cam](https://docs.m5stack.com/en/unit/esp32cam) | +| M5Stack UnitCam | ![img](assets/boards/m5stack_unit_cam_02.webp) ![img](assets/boards/m5stack_unit_cam_03.webp) | ESP32-WROOM-32E | 520KB | 4Mb | - | OV2640 | | [https://docs.m5stack.com/en/unit/unit_cam](https://docs.m5stack.com/en/unit/unit_cam) | +| M5Stack Camera | ![img](assets/boards/m5stack-esp32-camera.jpg) | ESP32 | 520Kb | 4Mb | - | OV2640 | | [https://docs.m5stack.com/en/unit/m5camera](https://docs.m5stack.com/en/unit/m5camera) | +| M5Stack Camera PSRAM | ![img](assets/boards/m5stack-esp32-camera.jpg) | ESP32 | 520Kb | 4Mb | 4Mb | OV2640 | | [https://docs.m5stack.com/en/unit/m5camera](https://docs.m5stack.com/en/unit/m5camera) | +| M5Stack UnitCamS3 | ![img](assets/boards/m5stack_Unitcams3.webp) ![img](assets/boards/m5stack_Unitcams32.webp) | ESP32-S3-WROOM-1-N16R8 | 520Kb | 16Mb | 8Mb | OV2640 | | [https://docs.m5stack.com/en/unit/Unit-CamS3](https://docs.m5stack.com/en/unit/Unit-CamS3) | +| M5Stack M5PoECAM-W | ![img](assets/boards/m5stack_m5poecam-w_front.webp) ![img](assets/boards/m5stack_m5poecam-w_back.webp) | ESP32-D0WDQ6-V3 | 520 kB | 16MB | 8MB | OV2640 | | [https://docs.m5stack.com/en/unit/poecam-w](https://docs.m5stack.com/en/unit/poecam-w) | +| Seeed studio Xiao ESP32S3 Sense | ![img](assets/boards/seeed-studio-xiao-esp32s3-sense.jpg) | ESP32-S3R8 | 520KB | 8Mb | 8MB | OV2640 | Microphone | [https://www.seeedstudio.com/XIAO-ESP32S3-Sense-p-5639.html](https://www.seeedstudio.com/XIAO-ESP32S3-Sense-p-5639.html) | ## Installing and running PlatformIO @@ -310,22 +312,23 @@ The availability of PSRAM can be seen in the HTML status overview. Not all the boards are equipped with PSRAM: -| Board | PSRAM | -|--- |--- | -| WROVER_KIT | 8Mb | -| ESP_EYE | 8Mb | -| ESP32S3_EYE | 8Mb | -| M5STACK_PSRAM | 8Mb | -| M5STACK_V2_PSRAM | Version B only | -| M5STACK_WIDE | 8Mb | -| M5STACK_ESP32CAM | No | -| M5STACK_UNITCAM | No | -| M5STACK_UNITCAMS3 | 8Mb | -| AI_THINKER | 8Mb | -| TTGO_T_JOURNAL | No | -| ESP32_CAM_BOARD | ? | -| ESP32S2_CAM_BOARD | ? | -| ESP32S3_CAM_LCD | ? | +| Board | PSRAM | +|--------------------|----------------| +| WROVER_KIT | 8Mb | +| ESP_EYE | 8Mb | +| ESP32S3_EYE | 8Mb | +| M5STACK_PSRAM | 8Mb | +| M5STACK_V2_PSRAM | Version B only | +| M5STACK_WIDE | 8Mb | +| M5STACK_ESP32CAM | No | +| M5STACK_UNITCAM | No | +| M5STACK_UNITCAMS3 | 8Mb | +| M5STACK_M5PoECAM-W | 8MB | +| AI_THINKER | 8Mb | +| TTGO_T_JOURNAL | No | +| ESP32_CAM_BOARD | ? | +| ESP32S2_CAM_BOARD | ? | +| ESP32S3_CAM_LCD | ? | Depending on the image resolution, framerate and quality, the PSRAM must be enabled and/or the number of frame buffers increased to keep up with the data generated by the sensor. There are (a lot of?) boards around with faulty PSRAM. If the camera fails to initialize, this might be a reason. See on [Reddit](https://www.reddit.com/r/esp32/comments/z2hyns/i_have_a_faulty_psram_on_my_esp32cam_what_should/). @@ -357,6 +360,8 @@ esp32cam-rtsp depends on PlatformIO, Bootstrap 5 and Micro-RTSP by Kevin Hester. ## Change history +- August 2024 + - Added support for M5Stack M5PoECAM-W - January 2024 - Moved settings to board definitions - Added new boards diff --git a/assets/boards/m5stack_m5poecam-w_back.webp b/assets/boards/m5stack_m5poecam-w_back.webp new file mode 100644 index 0000000..bf2088b Binary files /dev/null and b/assets/boards/m5stack_m5poecam-w_back.webp differ diff --git a/assets/boards/m5stack_m5poecam-w_front.webp b/assets/boards/m5stack_m5poecam-w_front.webp new file mode 100644 index 0000000..888b2fc Binary files /dev/null and b/assets/boards/m5stack_m5poecam-w_front.webp differ diff --git a/boards/esp32cam_m5stack_m5poecam_w.json b/boards/esp32cam_m5stack_m5poecam_w.json new file mode 100644 index 0000000..9b2e6ea --- /dev/null +++ b/boards/esp32cam_m5stack_m5poecam_w.json @@ -0,0 +1,68 @@ +{ + "build": { + "arduino":{ + "ldscript": "esp32_out.ld", + "partitions": "default_8MB.csv" + }, + "core": "esp32", + "extra_flags": [ + "'-D ESP32CAM_M5STACK_M5POECAM'", + "'-D BOARD_HAS_PSRAM'", + "'-D USER_LED_GPIO=0'", + "'-D USER_LED_ON_LEVEL=LOW'", + "'-mfix-esp32-psram-cache-issue'", + "'-D CAMERA_CONFIG_PIN_PWDN=GPIO_NUM_NC'", + "'-D CAMERA_CONFIG_PIN_RESET=15'", + "'-D CAMERA_CONFIG_PIN_XCLK=27'", + "'-D CAMERA_CONFIG_PIN_SCCB_SDA=14'", + "'-D CAMERA_CONFIG_PIN_SCCB_SCL=12'", + "'-D CAMERA_CONFIG_PIN_Y9=19'", + "'-D CAMERA_CONFIG_PIN_Y8=36'", + "'-D CAMERA_CONFIG_PIN_Y7=18'", + "'-D CAMERA_CONFIG_PIN_Y6=39'", + "'-D CAMERA_CONFIG_PIN_Y5=5'", + "'-D CAMERA_CONFIG_PIN_Y4=34'", + "'-D CAMERA_CONFIG_PIN_Y3=35'", + "'-D CAMERA_CONFIG_PIN_Y2=32'", + "'-D CAMERA_CONFIG_PIN_VSYNC=22'", + "'-D CAMERA_CONFIG_PIN_HREF=26'", + "'-D CAMERA_CONFIG_PIN_PCLK=21'", + "'-D CAMERA_CONFIG_CLK_FREQ_HZ=20000000'", + "'-D CAMERA_CONFIG_LEDC_TIMER=LEDC_TIMER_0'", + "'-D CAMERA_CONFIG_LEDC_CHANNEL=LEDC_CHANNEL_0'", + "'-D CAMERA_CONFIG_FB_COUNT=2'", + "'-D CAMERA_CONFIG_FB_LOCATION=CAMERA_FB_IN_PSRAM'", + "'-D SCCB_I2C_PORT=I2C_NUM_0'", + "'-D GROVE_SDA=25'", + "'-D GROVE_SCL=33'" + ], + "f_cpu": "240000000L", + "f_flash": "80000000L", + "flash_mode": "dio", + "mcu": "esp32", + "variant": "esp32" + }, + "connectivity": [ + "wifi", + "bluetooth", + "ethernet", + "can" + ], + "debug": { + "openocd_board": "esp-wroom-32.cfg" + }, + "frameworks": [ + "arduino", + "espidf" + ], + "name": "ESP32-CAM M5STACK M5PoECAM-W", + "upload": { + "flash_size": "16MB", + "maximum_ram_size": 327680, + "maximum_size": 16777216, + "require_upload_port": true, + "speed": 460800 + }, + "url": "https://docs.m5stack.com/en/unit/poecam-w", + "vendor": "M5STACK" +} \ No newline at end of file diff --git a/platformio.ini b/platformio.ini index 3f722ef..49d6ea6 100644 --- a/platformio.ini +++ b/platformio.ini @@ -20,10 +20,10 @@ #default_envs = esp32cam_m5stack_camera_psram #default_envs = esp32cam_m5stack_camera #default_envs = esp32cam_m5stack_esp32cam - #default_envs = esp32cam_m5stack_unitcam #default_envs = esp32cam_m5stack_unitcams3 #default_envs = esp32cam_m5stack_wide +#default_envs = esp32cam_m5stack_m5poecam_w #default_envs = esp32cam_seeed_xiao_esp32s3_sense #default_envs = esp32cam_ttgo_t_camera #default_envs = esp32cam_ttgo_t_journal @@ -101,6 +101,9 @@ board = esp32cam_m5stack_unitcams3 [env:esp32cam_m5stack_wide] board = esp32cam_m5stack_wide +[env:esp32cam_m5stack_m5poecam_w] +board = esp32cam_m5stack_m5poecam_w + [env:esp32cam_seeed_xiao_esp32s3_sense] board = esp32cam_seeed_xiao_esp32s3_sense