Add support for M5PoECAM-W (#140)

* add support for M5PoECAM-W (U121-B)

* update documentation for newly added M5PoECAM-W

* update board values for m5poecam-w
This commit is contained in:
Dominik Rimpf
2024-08-24 11:32:26 +02:00
committed by GitHub
parent fe7195c232
commit 069e6ff2e7
5 changed files with 108 additions and 32 deletions

View File

@@ -42,6 +42,7 @@ This software supports the following ESP32-CAM (and alike) modules:
- M5STACK_V2_PSRAM - M5STACK_V2_PSRAM
- M5STACK_PSRAM - M5STACK_PSRAM
- M5STACK_WIDE - M5STACK_WIDE
- M5STACK M5PoECAM-W
- M5STACK - M5STACK
- Seeed Studio XIAO ESP32S3 SENSE - Seeed Studio XIAO ESP32S3 SENSE
- TTGO T-CAMERA - 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... 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: 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 | | Board | Image | CPU | SRAM | Flash | PSRAM | Camera | | Site |
|--- |--- |--- |--- |--- | --- |--- |--- |--- | |---------------------------------|--------------------------------------------------------------------------------------------------------|------------------------|--------|-------|-------|-----------------|------------|----------------------------------------------------------------------------------------------------------------------------------|
| Espressif ESP32-Wrover CAM | ![img](assets/boards/esp32-wrover-cam.jpg) | ESP32 | 520KB | 4Mb | 4MB | OV2640 | | | | 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) | | 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-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) | | 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 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 Simcam | ![img](assets/boards/lilygo-simcam.jpg) | | | | | OV2640 | | |
| LilyGo TTGO-T Camera | ![img](assets/boards/lilygo-ttgo-t-camera.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 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 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 | ![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 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 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) | | 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 ## 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: Not all the boards are equipped with PSRAM:
| Board | PSRAM | | Board | PSRAM |
|--- |--- | |--------------------|----------------|
| WROVER_KIT | 8Mb | | WROVER_KIT | 8Mb |
| ESP_EYE | 8Mb | | ESP_EYE | 8Mb |
| ESP32S3_EYE | 8Mb | | ESP32S3_EYE | 8Mb |
| M5STACK_PSRAM | 8Mb | | M5STACK_PSRAM | 8Mb |
| M5STACK_V2_PSRAM | Version B only | | M5STACK_V2_PSRAM | Version B only |
| M5STACK_WIDE | 8Mb | | M5STACK_WIDE | 8Mb |
| M5STACK_ESP32CAM | No | | M5STACK_ESP32CAM | No |
| M5STACK_UNITCAM | No | | M5STACK_UNITCAM | No |
| M5STACK_UNITCAMS3 | 8Mb | | M5STACK_UNITCAMS3 | 8Mb |
| AI_THINKER | 8Mb | | M5STACK_M5PoECAM-W | 8MB |
| TTGO_T_JOURNAL | No | | AI_THINKER | 8Mb |
| ESP32_CAM_BOARD | ? | | TTGO_T_JOURNAL | No |
| ESP32S2_CAM_BOARD | ? | | ESP32_CAM_BOARD | ? |
| ESP32S3_CAM_LCD | ? | | 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. 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/). 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 ## Change history
- August 2024
- Added support for M5Stack M5PoECAM-W
- January 2024 - January 2024
- Moved settings to board definitions - Moved settings to board definitions
- Added new boards - Added new boards

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View File

@@ -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"
}

View File

@@ -20,10 +20,10 @@
#default_envs = esp32cam_m5stack_camera_psram #default_envs = esp32cam_m5stack_camera_psram
#default_envs = esp32cam_m5stack_camera #default_envs = esp32cam_m5stack_camera
#default_envs = esp32cam_m5stack_esp32cam #default_envs = esp32cam_m5stack_esp32cam
#default_envs = esp32cam_m5stack_unitcam #default_envs = esp32cam_m5stack_unitcam
#default_envs = esp32cam_m5stack_unitcams3 #default_envs = esp32cam_m5stack_unitcams3
#default_envs = esp32cam_m5stack_wide #default_envs = esp32cam_m5stack_wide
#default_envs = esp32cam_m5stack_m5poecam_w
#default_envs = esp32cam_seeed_xiao_esp32s3_sense #default_envs = esp32cam_seeed_xiao_esp32s3_sense
#default_envs = esp32cam_ttgo_t_camera #default_envs = esp32cam_ttgo_t_camera
#default_envs = esp32cam_ttgo_t_journal #default_envs = esp32cam_ttgo_t_journal
@@ -101,6 +101,9 @@ board = esp32cam_m5stack_unitcams3
[env:esp32cam_m5stack_wide] [env:esp32cam_m5stack_wide]
board = esp32cam_m5stack_wide board = esp32cam_m5stack_wide
[env:esp32cam_m5stack_m5poecam_w]
board = esp32cam_m5stack_m5poecam_w
[env:esp32cam_seeed_xiao_esp32s3_sense] [env:esp32cam_seeed_xiao_esp32s3_sense]
board = esp32cam_seeed_xiao_esp32s3_sense board = esp32cam_seeed_xiao_esp32s3_sense