18 Commits

Author SHA1 Message Date
Rene
b87ddbaa95 Merge pull request #178 from rzeldent/develop
Develop
2025-11-11 22:42:13 +01:00
Rene
46eaabc576 Merge branch 'main' into develop 2025-11-11 22:41:51 +01:00
Rene
efb7258bcc Comment out default environment and upload port in platformio.ini 2025-11-11 16:54:39 +01:00
Rene
c1beb4d6e3 Merge pull request #177 from csabyka/develop
Added S3 wroom n16r8 board
2025-11-11 16:51:38 +01:00
Csaba Mártha
e3a7a0c89b Added s3 wroom n16r8 2025-11-11 13:11:38 +01:00
Rene
346deda2bb Merge pull request #170 from StaticRocket/develop
platformio.ini: add m5stack-timer-cam
2025-04-20 21:09:24 +02:00
Randolph Sapp
e466d592be platformio.ini: add m5stack-timer-cam
Add the m5stack-timer-cam definitions following information from the
board documentation [1] and the board entry on platform.io [2]. Tweak
the upload speed to use a known working value. Mention the X version in
the readme as well since it uses the same board and is just a chassis
change.

[1] https://docs.m5stack.com/en/unit/timercam
[2] ec69109ed6/boards/m5stack-timer-cam.json

Signed-off-by: Randolph Sapp <rs@ti.com>
2025-04-20 02:12:52 -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
32cbc2479d Merge pull request #158 from rzeldent:133-esp32-cam-led-flash-not-working
133-esp32-cam-led-flash-not-working
2025-01-05 13:02:44 +01:00
Rene Zeldenthuis
e93511d0c8 Added functions for flasg from API 2025-01-05 12:38:21 +01:00
Rene Zeldenthuis
8be1484386 Merge branch 'main' into develop 2024-12-29 13:27:29 +01: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
Dominik Rimpf
069e6ff2e7 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
2024-08-24 11:32:26 +02:00
10 changed files with 391 additions and 51 deletions

View File

@@ -42,6 +42,8 @@ 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 Timer CAM (Original and X)
- M5STACK - M5STACK
- Seeed Studio XIAO ESP32S3 SENSE - Seeed Studio XIAO ESP32S3 SENSE
- TTGO T-CAMERA - TTGO T-CAMERA
@@ -100,7 +102,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 +153,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
@@ -311,7 +313,7 @@ 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 |
@@ -321,6 +323,7 @@ Not all the boards are equipped with PSRAM:
| M5STACK_ESP32CAM | No | | M5STACK_ESP32CAM | No |
| M5STACK_UNITCAM | No | | M5STACK_UNITCAM | No |
| M5STACK_UNITCAMS3 | 8Mb | | M5STACK_UNITCAMS3 | 8Mb |
| M5STACK_M5PoECAM-W | 8MB |
| AI_THINKER | 8Mb | | AI_THINKER | 8Mb |
| TTGO_T_JOURNAL | No | | TTGO_T_JOURNAL | No |
| ESP32_CAM_BOARD | ? | | ESP32_CAM_BOARD | ? |
@@ -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

@@ -9,6 +9,7 @@
"'-D ESP32CAM_AI_THINKER'", "'-D ESP32CAM_AI_THINKER'",
"'-D BOARD_HAS_PSRAM'", "'-D BOARD_HAS_PSRAM'",
"'-mfix-esp32-psram-cache-issue'", "'-mfix-esp32-psram-cache-issue'",
"'-D FLASH_LED_GPIO=4'",
"'-D USER_LED_GPIO=33'", "'-D USER_LED_GPIO=33'",
"'-D USER_LED_ON_LEVEL=LOW'", "'-D USER_LED_ON_LEVEL=LOW'",
"'-D CAMERA_CONFIG_PIN_PWDN=32'", "'-D CAMERA_CONFIG_PIN_PWDN=32'",

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

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

@@ -0,0 +1,72 @@
{
"build": {
"arduino": {
"ldscript": "esp32s3_out.ld",
"partitions": "default_16MB.csv",
"memory_type": "qio_opi"
},
"core": "esp32",
"extra_flags": [
"'-D ARDUINO_ESP32S3_DEV'",
"'-D ARDUINO_USB_MODE=1'",
"'-D BOARD_HAS_PSRAM'",
"'-D ARDUINO_RUNNING_CORE=1'",
"'-D ARDUINO_EVENT_RUNNING_CORE=1'",
"'-D ARDUINO_USB_CDC_ON_BOOT=1'",
"'-D CAMERA_CONFIG_PIN_PWDN=GPIO_NUM_NC'",
"'-D CAMERA_CONFIG_PIN_RESET=GPIO_NUM_NC'",
"'-D CAMERA_CONFIG_PIN_XCLK=15'",
"'-D CAMERA_CONFIG_PIN_SCCB_SDA=4'",
"'-D CAMERA_CONFIG_PIN_SCCB_SCL=5'",
"'-D CAMERA_CONFIG_PIN_Y9=16'",
"'-D CAMERA_CONFIG_PIN_Y8=17'",
"'-D CAMERA_CONFIG_PIN_Y7=18'",
"'-D CAMERA_CONFIG_PIN_Y6=12'",
"'-D CAMERA_CONFIG_PIN_Y5=10'",
"'-D CAMERA_CONFIG_PIN_Y4=8'",
"'-D CAMERA_CONFIG_PIN_Y3=9'",
"'-D CAMERA_CONFIG_PIN_Y2=11'",
"'-D CAMERA_CONFIG_PIN_VSYNC=6'",
"'-D CAMERA_CONFIG_PIN_HREF=7'",
"'-D CAMERA_CONFIG_PIN_PCLK=13'",
"'-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'"
],
"f_cpu": "240000000L",
"f_flash": "80000000L",
"flash_mode": "dio",
"psram_type": "opi",
"hwids": [
[
"0x303A",
"0x1001"
]
],
"mcu": "esp32s3",
"variant": "esp32s3"
},
"connectivity": [
"wifi"
],
"debug": {
"openocd_target": "esp32s3.cfg"
},
"frameworks": [
"arduino",
"espidf"
],
"name": "ESP32 S3 WROOM n16r8",
"upload": {
"flash_size": "16MB",
"maximum_ram_size": 327680,
"maximum_size": 16777216,
"require_upload_port": true,
"speed": 921600
},
"url": "https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/hw-reference/esp32s3/user-guide-devkitc-1.html",
"vendor": "Espressif"
}

View File

@@ -0,0 +1,69 @@
{
"build": {
"arduino":{
"ldscript": "esp32_out.ld",
"partitions": "huge_app.csv"
},
"core": "esp32",
"extra_flags": [
"'-D ARDUINO_M5Stack_Timer_CAM'",
"'-D BOARD_HAS_PSRAM'",
"'-mfix-esp32-psram-cache-issue'",
"'-mfix-esp32-psram-cache-strategy=memw'",
"'-D USER_LED_GPIO=2'",
"'-D USER_LED_ON_LEVEL=HIGH'",
"'-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=25'",
"'-D CAMERA_CONFIG_PIN_SCCB_SCL=23'",
"'-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=4'",
"'-D GROVE_SCL=13'"
],
"f_cpu": "240000000L",
"f_flash": "40000000L",
"flash_mode": "dio",
"mcu": "esp32",
"variant": "m5stack_timer_cam"
},
"connectivity": [
"wifi",
"bluetooth",
"ethernet",
"can"
],
"debug": {
"openocd_board": "esp-wroom-32.cfg"
},
"frameworks": [
"arduino",
"espidf"
],
"name": "M5Stack Timer CAM",
"upload": {
"flash_size": "4MB",
"maximum_ram_size": 327680,
"maximum_size": 4194304,
"require_upload_port": true,
"speed": 115200
},
"url": "https://docs.m5stack.com/en/unit/timercam",
"vendor": "M5STACK"
}

View File

@@ -10,6 +10,7 @@
############################################################################### ###############################################################################
[platformio] [platformio]
#default_envs = esp32cam_s3_wroom_n16r8
#default_envs = esp32cam_ai_thinker #default_envs = esp32cam_ai_thinker
#default_envs = esp32cam_espressif_esp_eye #default_envs = esp32cam_espressif_esp_eye
#default_envs = esp32cam_espressif_esp32s2_cam_board #default_envs = esp32cam_espressif_esp32s2_cam_board
@@ -20,18 +21,19 @@
#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
[env] [env]
platform = espressif32 platform = espressif32@6.9.0
framework = arduino framework = arduino
#upload_port = /dev/tty.usbmodem*
#upload_protocol = espota #upload_protocol = espota
#upload_port = 192.168.178.223 #upload_port = 192.168.178.223
#upload_flags = --auth='ESP32CAM-RTSP' #upload_flags = --auth='ESP32CAM-RTSP'
@@ -83,6 +85,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
@@ -101,6 +106,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
@@ -109,3 +117,9 @@ board = esp32cam_ttgo_t_camera
[env:esp32cam_ttgo_t_journal] [env:esp32cam_ttgo_t_journal]
board = esp32cam_ttgo_t_journal board = esp32cam_ttgo_t_journal
[env:m5stack-timer-cam]
board = m5stack-timer-cam
[env:esp32cam_s3_wroom_n16r8]
board = esp32cam_s3_wroom_n16r8

View File

@@ -150,6 +150,20 @@ void handle_root()
web_server.send(200, "text/html", html); web_server.send(200, "text/html", html);
} }
#ifdef FLASH_LED_GPIO
void handle_flash()
{
log_v("handle_flash");
// If no value present, use off, otherwise convert v to integer. Depends on analog resolution for max value
auto v = web_server.hasArg("v") ? web_server.arg("v").toInt() : 0;
// If conversion fails, v = 0
analogWrite(FLASH_LED_GPIO, v);
web_server.sendHeader("Cache-Control", "no-cache, no-store, must-revalidate");
web_server.send(200);
}
#endif
void handle_snapshot() void handle_snapshot()
{ {
log_v("handle_snapshot"); log_v("handle_snapshot");
@@ -316,13 +330,25 @@ void setup()
// Disable brownout // Disable brownout
WRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG, 0); WRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG, 0);
Serial.begin(115200);
Serial.setDebugOutput(true);
#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);
#endif #endif
Serial.begin(115200); #ifdef FLASH_LED_GPIO
Serial.setDebugOutput(true); pinMode(FLASH_LED_GPIO, OUTPUT);
// Set resolution to 8 bits
analogWriteResolution(8);
// Turn flash led off
analogWrite(FLASH_LED_GPIO, 0);
#endif
#ifdef ARDUINO_USB_CDC_ON_BOOT #ifdef ARDUINO_USB_CDC_ON_BOOT
// Delay for USB to connect/settle // Delay for USB to connect/settle
@@ -397,7 +423,10 @@ void setup()
web_server.on("/snapshot", HTTP_GET, handle_snapshot); web_server.on("/snapshot", HTTP_GET, handle_snapshot);
// Camera stream // Camera stream
web_server.on("/stream", HTTP_GET, handle_stream); web_server.on("/stream", HTTP_GET, handle_stream);
#ifdef FLASH_LED_GPIO
// Flash led
web_server.on("/flash", HTTP_GET, handle_flash);
#endif
web_server.onNotFound([]() web_server.onNotFound([]()
{ iotWebConf.handleNotFound(); }); { iotWebConf.handleNotFound(); });
} }