8 Commits

Author SHA1 Message Date
ce3a12f422 Add devcontainer configuration for ESP32-CAM RTSP development and update .gitignore 2025-07-27 17:52:17 -05:00
Rene Zeldenthuis
00635d03b7 git submodule stuff 2025-03-15 14:39:57 +01:00
Rene
1bb103a2a8 Merge pull request #163 from ndoo/main
Add support for M5Stack AtomS3R-CAM
2025-03-15 13:53:34 +01:00
Andrew Yong
d55a97a3a7 Add support for M5Stack AtomS3R-CAM
Signed-off-by: Andrew Yong <me@ndoo.sg>
2025-03-07 11:56:07 +08:00
Rene Zeldenthuis
a4c6d60279 Moved dependabot 2024-12-29 11:45:53 +01:00
Rene
45d08d08ce Add files via upload 2024-12-29 11:42:17 +01:00
ColdLlama
0eb4ddfe69 Update README.md (#151)
corrected a tiny typo from "to" to "two"
2024-11-17 15:15:06 +01:00
Kaze
7a5abd3235 Update README.md (#148)
According to AI-Thinker officials, the ESP32-2 is a module and not a CPU, so it was changed to the ESP32.
2024-11-12 16:35:02 +01:00
6 changed files with 116 additions and 3 deletions

View File

@@ -0,0 +1,22 @@
{
"name": "ESP32-CAM RTSP Development",
"image": "platformio/platformio-core",
"customizations": {
"vscode": {
"extensions": [
"platformio.platformio-ide",
"ms-vscode.cpptools",
"ms-vscode.cmake-tools"
]
}
},
"mounts": ["source=/dev,target=/dev,type=bind"],
"runArgs": ["--privileged", "--device-cgroup-rule=c 166:* rmw"],
"postCreateCommand": "pio pkg update -g -p espressif32",
"remoteUser": "root",
"forwardPorts": [80, 554],
"portsAttributes": {
"80": { "label": "Web Interface" },
"554": { "label": "RTSP Stream" }
}
}

3
.gitignore vendored
View File

@@ -1,4 +1,5 @@
.*/* .pio/*
.vscode/*
.*.* .*.*
__pycache__/ __pycache__/
*.log *.log

View File

@@ -100,7 +100,7 @@ To select the right board use the table below and use the configuration that is
| 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 | 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 | | |
@@ -151,7 +151,7 @@ cd esp32cam-rtsp
``` ```
Next, the firmware has to be build and deployed to the ESP32. Next, the firmware has to be build and deployed to the ESP32.
There are to flavours to do this; using the command line or the graphical interface of Visual Studio Code. There are two flavours to do this; using the command line or the graphical interface of Visual Studio Code.
### Using the command line ### Using the command line

View File

@@ -0,0 +1,82 @@
{
"build": {
"arduino":{
"ldscript": "esp32s3_out.ld",
"partitions": "default_8MB.csv",
"memory_type": "qio_opi"
},
"core": "esp32",
"extra_flags": [
"'-D ESP32CAM_M5STACK_ATOMS3R'",
"'-D BOARD_HAS_PSRAM'",
"'-D ARDUINO_USB_MODE=1'",
"'-D ARDUINO_USB_CDC_ON_BOOT=1'",
"'-D ARDUINO_RUNNING_CORE=1'",
"'-D ARDUINO_EVENT_RUNNING_CORE=1'",
"'-D USER_LED_GPIO=GPIO_NUM_NC'",
"'-D USER_LED_ON_LEVEL=GPIO_NUM_NC'",
"'-D CAMERA_POWER_GPIO=18'",
"'-D CAMERA_POWER_ON_LEVEL=LOW'",
"'-D CAMERA_CONFIG_PIN_PWDN=GPIO_NUM_NC'",
"'-D CAMERA_CONFIG_PIN_RESET=GPIO_NUM_NC'",
"'-D CAMERA_CONFIG_PIN_XCLK=21'",
"'-D CAMERA_CONFIG_PIN_SCCB_SDA=12'",
"'-D CAMERA_CONFIG_PIN_SCCB_SCL=9'",
"'-D CAMERA_CONFIG_PIN_Y9=13'",
"'-D CAMERA_CONFIG_PIN_Y8=11'",
"'-D CAMERA_CONFIG_PIN_Y7=17'",
"'-D CAMERA_CONFIG_PIN_Y6=4'",
"'-D CAMERA_CONFIG_PIN_Y5=48'",
"'-D CAMERA_CONFIG_PIN_Y4=46'",
"'-D CAMERA_CONFIG_PIN_Y3=42'",
"'-D CAMERA_CONFIG_PIN_Y2=3'",
"'-D CAMERA_CONFIG_PIN_VSYNC=10'",
"'-D CAMERA_CONFIG_PIN_HREF=14'",
"'-D CAMERA_CONFIG_PIN_PCLK=40'",
"'-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=2'",
"'-D GROVE_SCL=1'"
],
"f_cpu": "240000000L",
"f_flash": "80000000L",
"flash_mode": "qio",
"hwids": [
[
"0x2886",
"0x0056"
],
[
"0x2886",
"0x8056"
]
],
"mcu": "esp32s3",
"variant": "esp32s3"
},
"connectivity": [
"bluetooth",
"wifi"
],
"debug": {
"openocd_target": "esp32s3.cfg"
},
"frameworks": [
"arduino",
"espidf"
],
"name": "M5STACK ATOMS3R",
"upload": {
"flash_size": "8MB",
"maximum_ram_size": 327680,
"maximum_size": 8388608,
"require_upload_port": true,
"speed": 460800
},
"url": "https://docs.m5stack.com/en/unit/esp32cam",
"vendor": "M5STACK"
}

View File

@@ -83,6 +83,9 @@ board = esp32cam_espressif_esp32s3_eye
[env:esp32cam_freenove_wrover_kit] [env:esp32cam_freenove_wrover_kit]
board = esp32cam_freenove_wrover_kit board = esp32cam_freenove_wrover_kit
[env:esp32cam_m5stack_atoms3r]
board = esp32cam_m5stack_atoms3r
[env:esp32cam_m5stack_camera_psram] [env:esp32cam_m5stack_camera_psram]
board = esp32cam_m5stack_camera_psram board = esp32cam_m5stack_camera_psram

View File

@@ -316,6 +316,11 @@ void setup()
// Disable brownout // Disable brownout
WRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG, 0); WRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG, 0);
#ifdef CAMERA_POWER_GPIO
pinMode(CAMERA_POWER_GPIO, OUTPUT);
digitalWrite(CAMERA_POWER_GPIO, CAMERA_POWER_ON_LEVEL);
#endif
#ifdef USER_LED_GPIO #ifdef USER_LED_GPIO
pinMode(USER_LED_GPIO, OUTPUT); pinMode(USER_LED_GPIO, OUTPUT);
digitalWrite(USER_LED_GPIO, !USER_LED_ON_LEVEL); digitalWrite(USER_LED_GPIO, !USER_LED_ON_LEVEL);