diff --git a/boards/esp32cam_aithinker.json b/boards/esp32cam_aithinker.json new file mode 100644 index 0000000..eb139ad --- /dev/null +++ b/boards/esp32cam_aithinker.json @@ -0,0 +1,64 @@ +{ + "build": { + "arduino":{ + "ldscript": "esp32_out.ld", + "partitions": "huge_app.csv" + }, + "core": "esp32", + "extra_flags": [ + "'-D ARDUINO_ESP32_DEV'", + "'-D BOARD_HAS_PSRAM'", + "'-mfix-esp32-psram-cache-issue'", + "'-D LED_BUILTIN=33'", + "'-D CAMERA_CONFIG_PIN_PWDN=32'", + "'-D CAMERA_CONFIG_PIN_RESET=GPIO_NUM_NC'", + "'-D CAMERA_CONFIG_PIN_XCLK=0'", + "'-D CAMERA_CONFIG_PIN_SCCB_SDA=26'", + "'-D CAMERA_CONFIG_PIN_SCCB_SCL=27'", + "'-D CAMERA_CONFIG_PIN_Y9=35'", + "'-D CAMERA_CONFIG_PIN_Y8=34'", + "'-D CAMERA_CONFIG_PIN_Y7=39'", + "'-D CAMERA_CONFIG_PIN_Y6=36'", + "'-D CAMERA_CONFIG_PIN_Y5=21'", + "'-D CAMERA_CONFIG_PIN_Y4=19'", + "'-D CAMERA_CONFIG_PIN_Y3=18'", + "'-D CAMERA_CONFIG_PIN_Y2=5'", + "'-D CAMERA_CONFIG_PIN_VSYNC=25'", + "'-D CAMERA_CONFIG_PIN_HREF=23'", + "'-D CAMERA_CONFIG_PIN_PCLK=22'", + "'-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'" + ], + "f_cpu": "240000000L", + "f_flash": "40000000L", + "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 AI Thinker", + "upload": { + "flash_size": "4MB", + "maximum_ram_size": 327680, + "maximum_size": 4194304, + "require_upload_port": true, + "speed": 460800 + }, + "url": "https://wiki.ai-thinker.com/esp32-cam", + "vendor": "AI Thinker" +} diff --git a/boards/esp32cam_esp32s3_cam_lcd.json b/boards/esp32cam_esp32s3_cam_lcd.json new file mode 100644 index 0000000..9c299de --- /dev/null +++ b/boards/esp32cam_esp32s3_cam_lcd.json @@ -0,0 +1,77 @@ +{ + "build": { + "arduino": { + "ldscript": "esp32s3_out.ld", + "partitions": "default_8MB.csv", + "memory_type": "qio_opi" + }, + "core": "esp32", + "extra_flags": [ + "'-D ARDUINO_XIAO_ESP32S3'", + "'-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 LED_BUILTIN=33'", + "'-D CAMERA_CONFIG_PIN_PWDN=GPIO_NUM_NC'", + "'-D CAMERA_CONFIG_PIN_RESET=GPIO_NUM_NC'", + "'-D CAMERA_CONFIG_PIN_XCLK=40'", + "'-D CAMERA_CONFIG_PIN_SCCB_SDA=17'", + "'-D CAMERA_CONFIG_PIN_SCCB_SCL=18'", + "'-D CAMERA_CONFIG_PIN_Y9=39'", + "'-D CAMERA_CONFIG_PIN_Y8=41'", + "'-D CAMERA_CONFIG_PIN_Y7=42'", + "'-D CAMERA_CONFIG_PIN_Y6=12'", + "'-D CAMERA_CONFIG_PIN_Y5=3'", + "'-D CAMERA_CONFIG_PIN_Y4=14'", + "'-D CAMERA_CONFIG_PIN_Y3=47'", + "'-D CAMERA_CONFIG_PIN_Y2=13'", + "'-D CAMERA_CONFIG_PIN_VSYNC=21'", + "'-D CAMERA_CONFIG_PIN_HREF=38'", + "'-D CAMERA_CONFIG_PIN_PCLK=11'", + "'-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'" + + ], + "f_cpu": "240000000L", + "f_flash": "80000000L", + "flash_mode": "qio", + "hwids": [ + [ + "0x2886", + "0x0056" + ], + [ + "0x2886", + "0x8056" + ] + ], + "mcu": "esp32s3", + "variant": "XIAO_ESP32S3" + }, + "connectivity": [ + "bluetooth", + "wifi" + ], + "debug": { + "openocd_target": "esp32s3.cfg" + }, + "frameworks": [ + "arduino", + "espidf" + ], + "name": "Seeed Studio XIAO ESP32S3", + "upload": { + "flash_size": "8MB", + "maximum_ram_size": 327680, + "maximum_size": 8388608, + "require_upload_port": true, + "speed": 460800 + }, + "url": "https://www.seeedstudio.com/XIAO-ESP32S3-p-5627.html", + "vendor": "Seeed Studio" +} diff --git a/boards/esp32cam_esp_eye.json b/boards/esp32cam_esp_eye.json new file mode 100644 index 0000000..803bce0 --- /dev/null +++ b/boards/esp32cam_esp_eye.json @@ -0,0 +1,64 @@ +{ + "build": { + "arduino":{ + "ldscript": "esp32_out.ld", + "partitions": "huge_app.csv" + }, + "core": "esp32", + "extra_flags": [ + "'-D ARDUINO_ESP32_DEV'", + "'-D BOARD_HAS_PSRAM'", + "'-mfix-esp32-psram-cache-issue'", + "'-D LED_BUILTIN=14'", + "'-D CAMERA_CONFIG_PIN_PWDN=GPIO_NUM_NC'", + "'-D CAMERA_CONFIG_PIN_RESET=GPIO_NUM_NC'", + "'-D CAMERA_CONFIG_PIN_XCLK=11'", + "'-D CAMERA_CONFIG_PIN_SCCB_SDA=17'", + "'-D CAMERA_CONFIG_PIN_SCCB_SCL=41'", + "'-D CAMERA_CONFIG_PIN_Y9=13'", + "'-D CAMERA_CONFIG_PIN_Y8=4'", + "'-D CAMERA_CONFIG_PIN_Y7=10'", + "'-D CAMERA_CONFIG_PIN_Y6=5'", + "'-D CAMERA_CONFIG_PIN_Y5=7'", + "'-D CAMERA_CONFIG_PIN_Y4=16'", + "'-D CAMERA_CONFIG_PIN_Y3=15'", + "'-D CAMERA_CONFIG_PIN_Y2=6'", + "'-D CAMERA_CONFIG_PIN_VSYNC=42'", + "'-D CAMERA_CONFIG_PIN_HREF=18'", + "'-D CAMERA_CONFIG_PIN_PCLK=12'", + "'-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=1'", + "'-D CAMERA_CONFIG_FB_LOCATION=CAMERA_FB_IN_PSRAM'" + ], + "f_cpu": "240000000L", + "f_flash": "40000000L", + "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 AI Thinker", + "upload": { + "flash_size": "4MB", + "maximum_ram_size": 327680, + "maximum_size": 4194304, + "require_upload_port": true, + "speed": 460800 + }, + "url": "https://www.espressif.com/en/products/devkits/esp-eye/overview", + "vendor": "Espressif" +} diff --git a/boards/esp32cam_m5stack.json b/boards/esp32cam_m5stack.json new file mode 100644 index 0000000..a295c8b --- /dev/null +++ b/boards/esp32cam_m5stack.json @@ -0,0 +1,63 @@ +{ + "build": { + "arduino":{ + "ldscript": "esp32_out.ld", + "partitions": "huge_app.csv" + }, + "core": "esp32", + "extra_flags": [ + "'-D ARDUINO_ESP32_DEV'", + "'-D BOARD_HAS_PSRAM'", + "'-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=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=25'", + "'-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'" + ], + "f_cpu": "240000000L", + "f_flash": "40000000L", + "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 M5 STACK", + "upload": { + "flash_size": "4MB", + "maximum_ram_size": 327680, + "maximum_size": 4194304, + "require_upload_port": true, + "speed": 460800 + }, + "url": "https://shop.m5stack.com/collections/m5-cameras", + "vendor": "M5STACK" +} diff --git a/boards/esp32cam_m5stack_esp32cam.json b/boards/esp32cam_m5stack_esp32cam.json new file mode 100644 index 0000000..b7d2200 --- /dev/null +++ b/boards/esp32cam_m5stack_esp32cam.json @@ -0,0 +1,63 @@ +{ + "build": { + "arduino":{ + "ldscript": "esp32_out.ld", + "partitions": "huge_app.csv" + }, + "core": "esp32", + "extra_flags": [ + "'-D ARDUINO_ESP32_DEV'", + "'-D BOARD_HAS_PSRAM'", + "'-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=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=17'", + "'-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'" + ], + "f_cpu": "240000000L", + "f_flash": "40000000L", + "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 M5 STACK", + "upload": { + "flash_size": "4MB", + "maximum_ram_size": 327680, + "maximum_size": 4194304, + "require_upload_port": true, + "speed": 460800 + }, + "url": "https://shop.m5stack.com/collections/m5-cameras", + "vendor": "M5STACK" +} diff --git a/boards/esp32cam_m5stack_unitcam.json b/boards/esp32cam_m5stack_unitcam.json new file mode 100644 index 0000000..5372303 --- /dev/null +++ b/boards/esp32cam_m5stack_unitcam.json @@ -0,0 +1,63 @@ +{ + "build": { + "arduino":{ + "ldscript": "esp32_out.ld", + "partitions": "huge_app.csv" + }, + "core": "esp32", + "extra_flags": [ + "'-D ARDUINO_ESP32_DEV'", + "'-D BOARD_HAS_PSRAM'", + "'-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=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'" + ], + "f_cpu": "240000000L", + "f_flash": "40000000L", + "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 M5 STACK", + "upload": { + "flash_size": "4MB", + "maximum_ram_size": 327680, + "maximum_size": 4194304, + "require_upload_port": true, + "speed": 460800 + }, + "url": "https://shop.m5stack.com/collections/m5-cameras", + "vendor": "M5STACK" +} diff --git a/boards/esp32cam_m5stack_v2.json b/boards/esp32cam_m5stack_v2.json new file mode 100644 index 0000000..a295c8b --- /dev/null +++ b/boards/esp32cam_m5stack_v2.json @@ -0,0 +1,63 @@ +{ + "build": { + "arduino":{ + "ldscript": "esp32_out.ld", + "partitions": "huge_app.csv" + }, + "core": "esp32", + "extra_flags": [ + "'-D ARDUINO_ESP32_DEV'", + "'-D BOARD_HAS_PSRAM'", + "'-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=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=25'", + "'-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'" + ], + "f_cpu": "240000000L", + "f_flash": "40000000L", + "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 M5 STACK", + "upload": { + "flash_size": "4MB", + "maximum_ram_size": 327680, + "maximum_size": 4194304, + "require_upload_port": true, + "speed": 460800 + }, + "url": "https://shop.m5stack.com/collections/m5-cameras", + "vendor": "M5STACK" +} diff --git a/boards/esp32cam_m5stack_wide.json b/boards/esp32cam_m5stack_wide.json new file mode 100644 index 0000000..65519a2 --- /dev/null +++ b/boards/esp32cam_m5stack_wide.json @@ -0,0 +1,64 @@ +{ + "build": { + "arduino":{ + "ldscript": "esp32_out.ld", + "partitions": "huge_app.csv" + }, + "core": "esp32", + "extra_flags": [ + "'-D ARDUINO_ESP32_DEV'", + "'-D BOARD_HAS_PSRAM'", + "'-mfix-esp32-psram-cache-issue'", + "'-D LED_BUILTIN=2'", + "'-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=22'", + "'-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=25'", + "'-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'" + ], + "f_cpu": "240000000L", + "f_flash": "40000000L", + "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 M5 STACK", + "upload": { + "flash_size": "4MB", + "maximum_ram_size": 327680, + "maximum_size": 4194304, + "require_upload_port": true, + "speed": 460800 + }, + "url": "https://shop.m5stack.com/collections/m5-cameras", + "vendor": "M5STACK" +} diff --git a/boards/esp32cam_ttgo_t_camera.json b/boards/esp32cam_ttgo_t_camera.json new file mode 100644 index 0000000..82f4c34 --- /dev/null +++ b/boards/esp32cam_ttgo_t_camera.json @@ -0,0 +1,65 @@ +{ + "build": { + "arduino": { + "ldscript": "esp32_out.ld", + "partitions": "huge_app.csv" + }, + "core": "esp32", + "extra_flags": [ + "'-D ARDUINO_ESP32_DEV'", + "'-D CAMERA_CONFIG_PIN_PWDN=26'", + "'-D CAMERA_CONFIG_PIN_RESET=GPIO_NUM_NC'", + "'-D CAMERA_CONFIG_PIN_XCLK=32'", + "'-D CAMERA_CONFIG_PIN_SCCB_SDA=13'", + "'-D CAMERA_CONFIG_PIN_SCCB_SCL=12'", + "'-D CAMERA_CONFIG_PIN_Y9=39'", + "'-D CAMERA_CONFIG_PIN_Y8=36'", + "'-D CAMERA_CONFIG_PIN_Y7=23'", + "'-D CAMERA_CONFIG_PIN_Y6=18'", + "'-D CAMERA_CONFIG_PIN_Y5=15'", + "'-D CAMERA_CONFIG_PIN_Y4=4'", + "'-D CAMERA_CONFIG_PIN_Y3=14'", + "'-D CAMERA_CONFIG_PIN_Y2=5'", + "'-D CAMERA_CONFIG_PIN_VSYNC=27'", + "'-D CAMERA_CONFIG_PIN_HREF=25'", + "'-D CAMERA_CONFIG_PIN_PCLK=19'", + "'-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=1'", + "'-D CAMERA_CONFIG_FB_LOCATION=CAMERA_FB_IN_DRAM'", + "'-D LCD_SSD1306_PIN_SDA=21'", + "'-D LCD_SSD1306_PIN_SCL=22'", + "'-D BUTTON_RIGHT_PIN=34'", + "'-D PIR_PIN=33'" + ], + "f_cpu": "240000000L", + "f_flash": "40000000L", + "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 TTGO-T-CAMERA", + "upload": { + "flash_size": "4MB", + "maximum_ram_size": 327680, + "maximum_size": 4194304, + "require_upload_port": true, + "speed": 460800 + }, + "url": "https://www.lilygo.cc/products/", + "vendor": "LILYGO" +} \ No newline at end of file diff --git a/boards/esp32cam_ttgo_t_journal.json b/boards/esp32cam_ttgo_t_journal.json new file mode 100644 index 0000000..8feb07d --- /dev/null +++ b/boards/esp32cam_ttgo_t_journal.json @@ -0,0 +1,61 @@ +{ + "build": { + "arduino": { + "ldscript": "esp32_out.ld", + "partitions": "huge_app.csv" + }, + "core": "esp32", + "extra_flags": [ + "'-D ARDUINO_ESP32_DEV'", + "'-D CAMERA_CONFIG_PIN_PWDN=0'", + "'-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=17'", + "'-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=1'", + "'-D CAMERA_CONFIG_FB_LOCATION=CAMERA_FB_IN_DRAM'" + ], + "f_cpu": "240000000L", + "f_flash": "40000000L", + "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 TTGO-T-CAMERA", + "upload": { + "flash_size": "4MB", + "maximum_ram_size": 327680, + "maximum_size": 4194304, + "require_upload_port": true, + "speed": 460800 + }, + "url": "https://www.lilygo.cc/products/", + "vendor": "LILYGO" +} \ No newline at end of file diff --git a/boards/esp32cam_wrover_kit.json b/boards/esp32cam_wrover_kit.json new file mode 100644 index 0000000..7ea2d14 --- /dev/null +++ b/boards/esp32cam_wrover_kit.json @@ -0,0 +1,64 @@ +{ + "build": { + "arduino":{ + "ldscript": "esp32_out.ld", + "partitions": "huge_app.csv" + }, + "core": "esp32", + "extra_flags": [ + "'-D ARDUINO_ESP32_DEV'", + "'-D BOARD_HAS_PSRAM'", + "'-mfix-esp32-psram-cache-issue'", + "'-D LED_BUILTIN=2'", + "'-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=26'", + "'-D CAMERA_CONFIG_PIN_SCCB_SCL=27'", + "'-D CAMERA_CONFIG_PIN_Y9=35'", + "'-D CAMERA_CONFIG_PIN_Y8=34'", + "'-D CAMERA_CONFIG_PIN_Y7=39'", + "'-D CAMERA_CONFIG_PIN_Y6=36'", + "'-D CAMERA_CONFIG_PIN_Y5=19'", + "'-D CAMERA_CONFIG_PIN_Y4=18'", + "'-D CAMERA_CONFIG_PIN_Y3=5'", + "'-D CAMERA_CONFIG_PIN_Y2=4'", + "'-D CAMERA_CONFIG_PIN_VSYNC=25'", + "'-D CAMERA_CONFIG_PIN_HREF=23'", + "'-D CAMERA_CONFIG_PIN_PCLK=22'", + "'-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'" + ], + "f_cpu": "240000000L", + "f_flash": "40000000L", + "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 WROVER kit", + "upload": { + "flash_size": "4MB", + "maximum_ram_size": 327680, + "maximum_size": 4194304, + "require_upload_port": true, + "speed": 460800 + }, + "url": "https://wiki.ai-thinker.com/esp32-cam", + "vendor": "AI Thinker" +} diff --git a/boards/esp32cam_xiao_esp32s3.json b/boards/esp32cam_xiao_esp32s3.json new file mode 100644 index 0000000..e5d4ba3 --- /dev/null +++ b/boards/esp32cam_xiao_esp32s3.json @@ -0,0 +1,77 @@ +{ + "build": { + "arduino": { + "ldscript": "esp32s3_out.ld", + "partitions": "default_8MB.csv", + "memory_type": "qio_opi" + }, + "core": "esp32", + "extra_flags": [ + "'-D ARDUINO_XIAO_ESP32S3'", + "'-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 LED_BUILTIN=33'", + "'-D CAMERA_CONFIG_PIN_PWDN=GPIO_NUM_NC'", + "'-D CAMERA_CONFIG_PIN_RESET=GPIO_NUM_NC'", + "'-D CAMERA_CONFIG_PIN_XCLK=10'", + "'-D CAMERA_CONFIG_PIN_SCCB_SDA=40'", + "'-D CAMERA_CONFIG_PIN_SCCB_SCL=39'", + "'-D CAMERA_CONFIG_PIN_Y9=48'", + "'-D CAMERA_CONFIG_PIN_Y8=11'", + "'-D CAMERA_CONFIG_PIN_Y7=12'", + "'-D CAMERA_CONFIG_PIN_Y6=14'", + "'-D CAMERA_CONFIG_PIN_Y5=16'", + "'-D CAMERA_CONFIG_PIN_Y4=18'", + "'-D CAMERA_CONFIG_PIN_Y3=17'", + "'-D CAMERA_CONFIG_PIN_Y2=15'", + "'-D CAMERA_CONFIG_PIN_VSYNC=38'", + "'-D CAMERA_CONFIG_PIN_HREF=47'", + "'-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'" + + ], + "f_cpu": "240000000L", + "f_flash": "80000000L", + "flash_mode": "qio", + "hwids": [ + [ + "0x2886", + "0x0056" + ], + [ + "0x2886", + "0x8056" + ] + ], + "mcu": "esp32s3", + "variant": "XIAO_ESP32S3" + }, + "connectivity": [ + "bluetooth", + "wifi" + ], + "debug": { + "openocd_target": "esp32s3.cfg" + }, + "frameworks": [ + "arduino", + "espidf" + ], + "name": "Seeed Studio XIAO ESP32S3", + "upload": { + "flash_size": "8MB", + "maximum_ram_size": 327680, + "maximum_size": 8388608, + "require_upload_port": true, + "speed": 460800 + }, + "url": "https://www.seeedstudio.com/XIAO-ESP32S3-p-5627.html", + "vendor": "Seeed Studio" +} diff --git a/html/index.html b/html/index.html index 4f70823..f2a0d54 100644 --- a/html/index.html +++ b/html/index.html @@ -150,9 +150,9 @@
Signal strength:
{{SignalStrength}} dbm
IPv4 address:
-
{{IpV4}}
+
{{IPv4}}
IPv6 address:
-
{{IpV6}}
+
{{IPv6}}
{{#NetworkState.ApMode}} diff --git a/include/camera_config.h b/include/camera_config.h index 341cbb4..3319382 100644 --- a/include/camera_config.h +++ b/include/camera_config.h @@ -2,217 +2,217 @@ #include -constexpr camera_config_t esp32cam_camera_settings = { - .pin_pwdn = -1, - .pin_reset = 15, - .pin_xclk = 27, - .pin_sscb_sda = 25, - .pin_sscb_scl = 23, - .pin_d7 = 19, - .pin_d6 = 36, - .pin_d5 = 18, - .pin_d4 = 39, - .pin_d3 = 5, - .pin_d2 = 34, - .pin_d1 = 35, - .pin_d0 = 17, - .pin_vsync = 22, - .pin_href = 26, - .pin_pclk = 21, - .xclk_freq_hz = 20000000, - .ledc_timer = LEDC_TIMER_0, - .ledc_channel = LEDC_CHANNEL_0, - .pixel_format = PIXFORMAT_JPEG, - .frame_size = FRAMESIZE_SVGA, - .jpeg_quality = 12, - .fb_count = 1, - .fb_location = CAMERA_FB_IN_DRAM, - .grab_mode = CAMERA_GRAB_LATEST}; +// constexpr camera_config_t esp32cam_camera_settings = { +// .pin_pwdn = -1, +// .pin_reset = 15, +// .pin_xclk = 27, +// .pin_sscb_sda = 25, +// .pin_sscb_scl = 23, +// .pin_d7 = 19, +// .pin_d6 = 36, +// .pin_d5 = 18, +// .pin_d4 = 39, +// .pin_d3 = 5, +// .pin_d2 = 34, +// .pin_d1 = 35, +// .pin_d0 = 17, +// .pin_vsync = 22, +// .pin_href = 26, +// .pin_pclk = 21, +// .xclk_freq_hz = 20000000, +// .ledc_timer = LEDC_TIMER_0, +// .ledc_channel = LEDC_CHANNEL_0, +// .pixel_format = PIXFORMAT_JPEG, +// .frame_size = FRAMESIZE_SVGA, +// .jpeg_quality = 12, +// .fb_count = 1, +// .fb_location = CAMERA_FB_IN_DRAM, +// .grab_mode = CAMERA_GRAB_LATEST}; -constexpr camera_config_t esp_eye_camera_settings = { - .pin_pwdn = -1, - .pin_reset = -1, - .pin_xclk = 4, - .pin_sscb_sda = 18, - .pin_sscb_scl = 23, - .pin_d7 = 36, - .pin_d6 = 37, - .pin_d5 = 38, - .pin_d4 = 39, - .pin_d3 = 35, - .pin_d2 = 14, - .pin_d1 = 13, - .pin_d0 = 34, - .pin_vsync = 5, - .pin_href = 27, - .pin_pclk = 25, - .xclk_freq_hz = 20000000, - .ledc_timer = LEDC_TIMER_0, - .ledc_channel = LEDC_CHANNEL_0, - .pixel_format = PIXFORMAT_JPEG, - .frame_size = FRAMESIZE_SVGA, - .jpeg_quality = 12, - .fb_count = 1, - .fb_location = CAMERA_FB_IN_DRAM, - .grab_mode = CAMERA_GRAB_LATEST}; +// constexpr camera_config_t esp_eye_camera_settings = { +// .pin_pwdn = -1, +// .pin_reset = -1, +// .pin_xclk = 4, +// .pin_sscb_sda = 18, +// .pin_sscb_scl = 23, +// .pin_d7 = 36, +// .pin_d6 = 37, +// .pin_d5 = 38, +// .pin_d4 = 39, +// .pin_d3 = 35, +// .pin_d2 = 14, +// .pin_d1 = 13, +// .pin_d0 = 34, +// .pin_vsync = 5, +// .pin_href = 27, +// .pin_pclk = 25, +// .xclk_freq_hz = 20000000, +// .ledc_timer = LEDC_TIMER_0, +// .ledc_channel = LEDC_CHANNEL_0, +// .pixel_format = PIXFORMAT_JPEG, +// .frame_size = FRAMESIZE_SVGA, +// .jpeg_quality = 12, +// .fb_count = 1, +// .fb_location = CAMERA_FB_IN_DRAM, +// .grab_mode = CAMERA_GRAB_LATEST}; -constexpr camera_config_t aithinker_camera_settings = { - .pin_pwdn = 32, - .pin_reset = -1, - .pin_xclk = 0, - .pin_sscb_sda = 26, - .pin_sscb_scl = 27, - .pin_d7 = 35, - .pin_d6 = 34, - .pin_d5 = 39, - .pin_d4 = 36, - .pin_d3 = 21, - .pin_d2 = 19, - .pin_d1 = 18, - .pin_d0 = 5, - .pin_vsync = 25, - .pin_href = 23, - .pin_pclk = 22, - .xclk_freq_hz = 20000000, - .ledc_timer = LEDC_TIMER_1, - .ledc_channel = LEDC_CHANNEL_1, - .pixel_format = PIXFORMAT_JPEG, - .frame_size = FRAMESIZE_SVGA, - .jpeg_quality = 12, - .fb_count = 2, - .fb_location = CAMERA_FB_IN_PSRAM, - .grab_mode = CAMERA_GRAB_LATEST}; +// constexpr camera_config_t aithinker_camera_settings = { +// .pin_pwdn = 32, +// .pin_reset = -1, +// .pin_xclk = 0, +// .pin_sscb_sda = 26, +// .pin_sscb_scl = 27, +// .pin_d7 = 35, +// .pin_d6 = 34, +// .pin_d5 = 39, +// .pin_d4 = 36, +// .pin_d3 = 21, +// .pin_d2 = 19, +// .pin_d1 = 18, +// .pin_d0 = 5, +// .pin_vsync = 25, +// .pin_href = 23, +// .pin_pclk = 22, +// .xclk_freq_hz = 20000000, +// .ledc_timer = LEDC_TIMER_1, +// .ledc_channel = LEDC_CHANNEL_1, +// .pixel_format = PIXFORMAT_JPEG, +// .frame_size = FRAMESIZE_SVGA, +// .jpeg_quality = 12, +// .fb_count = 2, +// .fb_location = CAMERA_FB_IN_PSRAM, +// .grab_mode = CAMERA_GRAB_LATEST}; -constexpr camera_config_t ttgo_t_camera_settings = { - .pin_pwdn = 26, - .pin_reset = -1, - .pin_xclk = 32, - .pin_sscb_sda = 13, - .pin_sscb_scl = 12, - .pin_d7 = 39, - .pin_d6 = 36, - .pin_d5 = 23, - .pin_d4 = 18, - .pin_d3 = 15, - .pin_d2 = 4, - .pin_d1 = 14, - .pin_d0 = 5, - .pin_vsync = 27, - .pin_href = 25, - .pin_pclk = 19, - .xclk_freq_hz = 20000000, - .ledc_timer = LEDC_TIMER_0, - .ledc_channel = LEDC_CHANNEL_0, - .pixel_format = PIXFORMAT_JPEG, - .frame_size = FRAMESIZE_SVGA, - .jpeg_quality = 12, - .fb_count = 1, - .fb_location = CAMERA_FB_IN_DRAM, - .grab_mode = CAMERA_GRAB_LATEST}; +// constexpr camera_config_t ttgo_t_camera_settings = { +// .pin_pwdn = 26, +// .pin_reset = -1, +// .pin_xclk = 32, +// .pin_sscb_sda = 13, +// .pin_sscb_scl = 12, +// .pin_d7 = 39, +// .pin_d6 = 36, +// .pin_d5 = 23, +// .pin_d4 = 18, +// .pin_d3 = 15, +// .pin_d2 = 4, +// .pin_d1 = 14, +// .pin_d0 = 5, +// .pin_vsync = 27, +// .pin_href = 25, +// .pin_pclk = 19, +// .xclk_freq_hz = 20000000, +// .ledc_timer = LEDC_TIMER_0, +// .ledc_channel = LEDC_CHANNEL_0, +// .pixel_format = PIXFORMAT_JPEG, +// .frame_size = FRAMESIZE_SVGA, +// .jpeg_quality = 12, +// .fb_count = 1, +// .fb_location = CAMERA_FB_IN_DRAM, +// .grab_mode = CAMERA_GRAB_LATEST}; -constexpr camera_config_t m5stack_camera_settings = { - .pin_reset = -1, - .pin_xclk = 10, - .pin_sscb_sda = 40, - .pin_sscb_scl = 39, - .pin_d7 = 48, - .pin_d6 = 11, - .pin_d5 = 12, - .pin_d4 = 14, - .pin_d3 = 16, - .pin_d2 = 18, - .pin_d1 = 17, - .pin_d0 = 15, - .pin_vsync = 38, - .pin_href = 47, - .pin_pclk = 13, - .xclk_freq_hz = 20000000, - .ledc_timer = LEDC_TIMER_0, - .ledc_channel = LEDC_CHANNEL_0, - .pixel_format = PIXFORMAT_JPEG, - .frame_size = FRAMESIZE_SVGA, - .jpeg_quality = 12, - .fb_count = 1, - .fb_location = CAMERA_FB_IN_DRAM, - .grab_mode = CAMERA_GRAB_LATEST}; +// constexpr camera_config_t m5stack_camera_settings = { +// .pin_reset = -1, +// .pin_xclk = 10, +// .pin_sscb_sda = 40, +// .pin_sscb_scl = 39, +// .pin_d7 = 48, +// .pin_d6 = 11, +// .pin_d5 = 12, +// .pin_d4 = 14, +// .pin_d3 = 16, +// .pin_d2 = 18, +// .pin_d1 = 17, +// .pin_d0 = 15, +// .pin_vsync = 38, +// .pin_href = 47, +// .pin_pclk = 13, +// .xclk_freq_hz = 20000000, +// .ledc_timer = LEDC_TIMER_0, +// .ledc_channel = LEDC_CHANNEL_0, +// .pixel_format = PIXFORMAT_JPEG, +// .frame_size = FRAMESIZE_SVGA, +// .jpeg_quality = 12, +// .fb_count = 1, +// .fb_location = CAMERA_FB_IN_DRAM, +// .grab_mode = CAMERA_GRAB_LATEST}; -constexpr camera_config_t wrover_kit_camera_settings = { - .pin_pwdn = -1, - .pin_reset = -1, - .pin_xclk = 21, - .pin_sscb_sda = 26, - .pin_sscb_scl = 27, - .pin_d7 = 35, - .pin_d6 = 34, - .pin_d5 = 39, - .pin_d4 = 36, - .pin_d3 = 19, - .pin_d2 = 18, - .pin_d1 = 5, - .pin_d0 = 4, - .pin_vsync = 25, - .pin_href = 23, - .pin_pclk = 22, - .xclk_freq_hz = 20000000, - .ledc_timer = LEDC_TIMER_0, - .ledc_channel = LEDC_CHANNEL_0, - .pixel_format = PIXFORMAT_JPEG, - .frame_size = FRAMESIZE_SVGA, - .jpeg_quality = 12, - .fb_count = 2, - .fb_location = CAMERA_FB_IN_PSRAM, - .grab_mode = CAMERA_GRAB_LATEST}; +// constexpr camera_config_t wrover_kit_camera_settings = { +// .pin_pwdn = -1, +// .pin_reset = -1, +// .pin_xclk = 21, +// .pin_sscb_sda = 26, +// .pin_sscb_scl = 27, +// .pin_d7 = 35, +// .pin_d6 = 34, +// .pin_d5 = 39, +// .pin_d4 = 36, +// .pin_d3 = 19, +// .pin_d2 = 18, +// .pin_d1 = 5, +// .pin_d0 = 4, +// .pin_vsync = 25, +// .pin_href = 23, +// .pin_pclk = 22, +// .xclk_freq_hz = 20000000, +// .ledc_timer = LEDC_TIMER_0, +// .ledc_channel = LEDC_CHANNEL_0, +// .pixel_format = PIXFORMAT_JPEG, +// .frame_size = FRAMESIZE_SVGA, +// .jpeg_quality = 12, +// .fb_count = 2, +// .fb_location = CAMERA_FB_IN_PSRAM, +// .grab_mode = CAMERA_GRAB_LATEST}; -constexpr camera_config_t xiao_esp32s3_camera_settings = { - .pin_pwdn = -1, - .pin_reset = -1, - .pin_xclk = 10, - .pin_sscb_sda = 40, - .pin_sscb_scl = 39, - .pin_d7 = 48, - .pin_d6 = 11, - .pin_d5 = 12, - .pin_d4 = 14, - .pin_d3 = 16, - .pin_d2 = 18, - .pin_d1 = 17, - .pin_d0 = 15, - .pin_vsync = 38, - .pin_href = 47, - .pin_pclk = 13, - .xclk_freq_hz = 20000000, - .ledc_timer = LEDC_TIMER_0, - .ledc_channel = LEDC_CHANNEL_0, - .pixel_format = PIXFORMAT_JPEG, // for streaming - .frame_size = FRAMESIZE_UXGA, - .jpeg_quality = 12, - .fb_count = 2, - .fb_location = CAMERA_FB_IN_PSRAM, - .grab_mode = CAMERA_GRAB_LATEST}; +// constexpr camera_config_t xiao_esp32s3_camera_settings = { +// .pin_pwdn = -1, +// .pin_reset = -1, +// .pin_xclk = 10, +// .pin_sscb_sda = 40, +// .pin_sscb_scl = 39, +// .pin_d7 = 48, +// .pin_d6 = 11, +// .pin_d5 = 12, +// .pin_d4 = 14, +// .pin_d3 = 16, +// .pin_d2 = 18, +// .pin_d1 = 17, +// .pin_d0 = 15, +// .pin_vsync = 38, +// .pin_href = 47, +// .pin_pclk = 13, +// .xclk_freq_hz = 20000000, +// .ledc_timer = LEDC_TIMER_0, +// .ledc_channel = LEDC_CHANNEL_0, +// .pixel_format = PIXFORMAT_JPEG, // for streaming +// .frame_size = FRAMESIZE_UXGA, +// .jpeg_quality = 12, +// .fb_count = 2, +// .fb_location = CAMERA_FB_IN_PSRAM, +// .grab_mode = CAMERA_GRAB_LATEST}; -constexpr camera_config_t m5stack_unitcams3_camera_settings = { - .pin_pwdn = -1, - .pin_reset = 15, - .pin_xclk = 27, - .pin_sscb_sda = 25, - .pin_sscb_scl = 23, - .pin_d7 = 19, - .pin_d6 = 36, - .pin_d5 = 18, - .pin_d4 = 39, - .pin_d3 = 5, - .pin_d2 = 34, - .pin_d1 = 35, - .pin_d0 = 32, - .pin_vsync = 22, - .pin_href = 26, - .pin_pclk = 21, - .xclk_freq_hz = 20000000, - .ledc_timer = LEDC_TIMER_0, - .ledc_channel = LEDC_CHANNEL_0, - .pixel_format = PIXFORMAT_JPEG, - .frame_size = FRAMESIZE_SVGA, - .jpeg_quality = 12, - .fb_count = 1, - .fb_location = CAMERA_FB_IN_PSRAM, - .grab_mode = CAMERA_GRAB_LATEST}; \ No newline at end of file +// constexpr camera_config_t m5stack_unitcams3_camera_settings = { +// .pin_pwdn = -1, +// .pin_reset = 15, +// .pin_xclk = 27, +// .pin_sscb_sda = 25, +// .pin_sscb_scl = 23, +// .pin_d7 = 19, +// .pin_d6 = 36, +// .pin_d5 = 18, +// .pin_d4 = 39, +// .pin_d3 = 5, +// .pin_d2 = 34, +// .pin_d1 = 35, +// .pin_d0 = 32, +// .pin_vsync = 22, +// .pin_href = 26, +// .pin_pclk = 21, +// .xclk_freq_hz = 20000000, +// .ledc_timer = LEDC_TIMER_0, +// .ledc_channel = LEDC_CHANNEL_0, +// .pixel_format = PIXFORMAT_JPEG, +// .frame_size = FRAMESIZE_SVGA, +// .jpeg_quality = 12, +// .fb_count = 1, +// .fb_location = CAMERA_FB_IN_PSRAM, +// .grab_mode = CAMERA_GRAB_LATEST}; \ No newline at end of file diff --git a/include/settings.h b/include/settings.h index cb3ec9b..0e925f5 100644 --- a/include/settings.h +++ b/include/settings.h @@ -11,6 +11,7 @@ #define RTSP_PORT 554 +#if 0 #if defined(BOARD_ESP32CAM) constexpr const char *board_name = "ESP32CAM"; constexpr camera_config_t default_camera_config = esp32cam_camera_settings; @@ -38,6 +39,7 @@ constexpr camera_config_t default_camera_config = m5stack_unitcams3_camera_setti #else #error No board defined #endif +#endif #define DEFAULT_FRAME_DURATION 200 #define DEFAULT_FRAME_SIZE "VGA (640x480)" diff --git a/platformio.ini b/platformio.ini index e0b9fe7..def5d8d 100644 --- a/platformio.ini +++ b/platformio.ini @@ -10,14 +10,17 @@ ############################################################################### [platformio] -#default_envs = esp32cam -#default_envs = ai_thinker_esp32cam -#default_envs = esp_eye -#default_envs = ttgo-t-beam +#default_envs = esp32cam_aithinker +#default_envs = esp32cam_esp_eye +#default_envs = m5stack_cam #default_envs = m5stack_esp32cam -#default_envs = esp32_wrover_cam +#default_envs = m5stack_unitcam +#default_envs = esp32cam_ttgo_t_camera +#default_envs = esp32cam_ttgo_t_journal +#default_envs = esp32cam_wrover_kit + +#default_envs = ttgo-t-beam #default_envs = seeed_xiao_esp32s3 -#default_envs = m5stack_unitcams3 [env] platform = espressif32 @@ -37,8 +40,9 @@ monitor_filters = log2file, time, default, esp32_exception_decoder build_flags = -O2 - -D CORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_VERBOSE - -D IOTWEBCONF_PASSWORD_LEN=64 + -D 'BOARD_NAME="${this.board}"' + -D 'CORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_VERBOSE' + -D 'IOTWEBCONF_PASSWORD_LEN=64' board_build.embed_txtfiles = html/index.min.html @@ -48,49 +52,76 @@ lib_deps = geeksville/Micro-RTSP@^0.1.6 rzeldent/micro-moustache@^1.0.1 -[env:esp32cam] -board = esp32cam -build_flags = - -DBOARD_ESP32CAM - -DLED_BUILTIN=33 +[env:esp32cam_aithinker] +board = esp32cam_aithinker -[env:ai_thinker_esp32cam] -board = esp32cam -build_flags = - -DBOARD_AITHINKER_ESP32CAM - -DLED_BUILTIN=33 +[env:esp32cam_esp_eye] +board = esp32cam_esp_eye -[env:esp_eye] -board = esp32cam -build_flags = - -DBOARD_ESP_EYE - -DLED_BUILTIN=33 +[env:esp32cam_m5stack_cam] +board = esp32cam_m5stack_cam -[env:ttgo_t_camera] -board = ttgo-t-beam -build_flags = - -DBOARD_TTGO_T_CAMERA +[env:esp32cam_m5stack_esp32cam] +board = esp32cam_m5stack_esp32cam -[env:m5stack_esp32cam] -board = m5stack-core-esp32 -build_flags = - -DBOARD_M5STACK_ESP32CAM - -DLED_BUILTIN=33 +[env:esp32cam_m5stack_unitcam] +board = esp32cam_m5stack_unitcam -[env:esp32_wrover_cam] -board = esp-wrover-kit -build_flags = - -DBOARD_ESP32_WROVER_CAM - -DLED_BUILTIN=2 +[env:esp32cam_ttgo_t_camera] +board = esp32cam_ttgo_t_camera -[env:seeed_xiao_esp32s3] -board = seeed_xiao_esp32s3 -build_flags = - -D BOARD_SEEED_XIAO_ESP32S3_SENSE - -D BOARD_HAS_PSRAM +[env:esp32cam_ttgo_t_journal] +board = esp32cam_ttgo_t_journal -[env:m5stack_unitcams3] -board = esp32s3box -build_flags = - -D BOARD_M5STACK_UNITCAMS3 - -D BOARD_HAS_PSRAM \ No newline at end of file +[env:esp32cam_wrover_kit] +board = esp32cam_wrover_kit + + + + +; [env:esp32cam] +; board = esp32cam +; build_flags = +; -DBOARD_ESP32CAM +; -DLED_BUILTIN=33 + +; [env:ai_thinker_esp32cam] +; board = esp32cam +; build_flags = +; -DBOARD_AITHINKER_ESP32CAM +; -DLED_BUILTIN=33 + +; [env:esp_eye] +; board = esp32cam +; build_flags = +; -DBOARD_ESP_EYE +; -DLED_BUILTIN=33 + +; [env:ttgo_t_camera] +; board = ttgo-t-beam +; build_flags = +; -DBOARD_TTGO_T_CAMERA + +; [env:m5stack_esp32cam] +; board = m5stack-core-esp32 +; build_flags = +; -DBOARD_M5STACK_ESP32CAM +; -DLED_BUILTIN=33 + +; [env:esp32_wrover_cam] +; board = esp-wrover-kit +; build_flags = +; -DBOARD_ESP32_WROVER_CAM +; -DLED_BUILTIN=2 + +; [env:seeed_xiao_esp32s3] +; board = seeed_xiao_esp32s3 +; build_flags = +; -D BOARD_SEEED_XIAO_ESP32S3_SENSE +; -D BOARD_HAS_PSRAM + +; [env:m5stack_unitcams3] +; board = esp32s3box +; build_flags = +; -D BOARD_M5STACK_UNITCAMS3 +; -D BOARD_HAS_PSRAM \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp index 90fcd06..aec4641 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -2,6 +2,7 @@ #include #include #include +#include #include #include #include @@ -97,7 +98,7 @@ void handle_root() // Version / CPU {"AppTitle", APP_TITLE}, {"AppVersion", APP_VERSION}, - {"BoardType", board_name}, + {"BoardType", BOARD_NAME}, {"ThingName", iotWebConf.getThingName()}, {"SDKVersion", ESP.getSdkVersion()}, {"ChipModel", ESP.getChipModel()}, @@ -118,8 +119,8 @@ void handle_root() {"AccessPoint", WiFi.SSID()}, {"SignalStrength", String(WiFi.RSSI())}, {"WifiMode", wifi_modes[WiFi.getMode()]}, - {"IpV4", ipv4.toString()}, - {"IpV6", ipv6.toString()}, + {"IPv4", ipv4.toString()}, + {"IPv6", ipv6.toString()}, {"NetworkState.ApMode", String(iotWebConf.getState() == iotwebconf::NetworkState::ApMode)}, {"NetworkState.OnLine", String(iotWebConf.getState() == iotwebconf::NetworkState::OnLine)}, // Camera @@ -171,7 +172,7 @@ void handle_snapshot() } // Remove old images stored in the frame buffer - auto frame_buffers = default_camera_config.fb_count; + auto frame_buffers = CAMERA_CONFIG_FB_COUNT; while (frame_buffers--) cam.run(); @@ -222,16 +223,47 @@ void handle_stream() esp_err_t initialize_camera() { log_v("initialize_camera"); - // Copy the settings - camera_config_t camera_config; - memset(&camera_config, 0, sizeof(camera_config_t)); - memcpy(&camera_config, &default_camera_config, sizeof(camera_config_t)); + + constexpr auto pixformat = PIXFORMAT_JPEG; log_i("Frame size: %s", param_frame_size.value()); auto frame_size = lookup_frame_size(param_frame_size.value()); log_i("JPEG quality: %d", param_jpg_quality.value()); + auto jpeg_quality = param_jpg_quality.value(); log_i("Frame duration: %d ms", param_frame_duration.value()); - camera_config.frame_size = frame_size; - camera_config.jpeg_quality = param_jpg_quality.value(); + constexpr auto i2c_port = I2C_NUM_0; + + camera_config_t camera_config = { + .pin_pwdn = CAMERA_CONFIG_PIN_PWDN, // GPIO pin for camera power down line + .pin_reset = CAMERA_CONFIG_PIN_RESET, // GPIO pin for camera reset line + .pin_xclk = CAMERA_CONFIG_PIN_XCLK, // GPIO pin for camera XCLK line + .pin_sccb_sda = CAMERA_CONFIG_PIN_SCCB_SDA, // GPIO pin for camera SDA line + .pin_sccb_scl = CAMERA_CONFIG_PIN_SCCB_SCL, // GPIO pin for camera SCL line + .pin_d7 = CAMERA_CONFIG_PIN_Y9, // GPIO pin for camera D7 line + .pin_d6 = CAMERA_CONFIG_PIN_Y8, // GPIO pin for camera D6 line + .pin_d5 = CAMERA_CONFIG_PIN_Y7, // GPIO pin for camera D5 line + .pin_d4 = CAMERA_CONFIG_PIN_Y6, // GPIO pin for camera D4 line + .pin_d3 = CAMERA_CONFIG_PIN_Y5, // GPIO pin for camera D3 line + .pin_d2 = CAMERA_CONFIG_PIN_Y4, // GPIO pin for camera D2 line + .pin_d1 = CAMERA_CONFIG_PIN_Y3, // GPIO pin for camera D1 line + .pin_d0 = CAMERA_CONFIG_PIN_Y2, // GPIO pin for camera D0 line + .pin_vsync = CAMERA_CONFIG_PIN_VSYNC, // GPIO pin for camera VSYNC line + .pin_href = CAMERA_CONFIG_PIN_HREF, // GPIO pin for camera HREF line + .pin_pclk = CAMERA_CONFIG_PIN_PCLK, // GPIO pin for camera PCLK line + .xclk_freq_hz = CAMERA_CONFIG_CLK_FREQ_HZ, // Frequency of XCLK signal, in Hz. EXPERIMENTAL: Set to 16MHz on ESP32-S2 or ESP32-S3 to enable EDMA mode + .ledc_timer = CAMERA_CONFIG_LEDC_TIMER, // LEDC timer to be used for generating XCLK + .ledc_channel = CAMERA_CONFIG_LEDC_CHANNEL, // LEDC channel to be used for generating XCLK + .pixel_format = pixformat, // Format of the pixel data: PIXFORMAT_ + YUV422|GRAYSCALE|RGB565|JPEG + .frame_size = frame_size, // Size of the output image: FRAMESIZE_ + QVGA|CIF|VGA|SVGA|XGA|SXGA|UXGA + .jpeg_quality = jpeg_quality, // Quality of JPEG output. 0-63 lower means higher quality + .fb_count = CAMERA_CONFIG_FB_COUNT, // Number of frame buffers to be allocated. If more than one, then each frame will be acquired (double speed) + .fb_location = CAMERA_CONFIG_FB_LOCATION, // The location where the frame buffer will be allocated + .grab_mode = CAMERA_GRAB_LATEST, // When buffers should be filled +#if CONFIG_CAMERA_CONVERTER_ENABLED + conv_mode = CONV_DISABLE, // RGB<->YUV Conversion mode +#endif + .sccb_i2c_port = i2c_port // If pin_sccb_sda is -1, use the already configured I2C bus by number + }; + return cam.init(camera_config); } @@ -311,10 +343,10 @@ void setup() log_i("CPU Freq: %d Mhz, %d core(s)", getCpuFrequencyMhz(), ESP.getChipCores()); log_i("Free heap: %d bytes", ESP.getFreeHeap()); log_i("SDK version: %s", ESP.getSdkVersion()); - log_i("Board: %s", board_name); + log_i("Board: %s", BOARD_NAME); log_i("Starting " APP_TITLE "..."); - if (default_camera_config.fb_location == CAMERA_FB_IN_PSRAM) + if (CAMERA_CONFIG_FB_LOCATION == CAMERA_FB_IN_PSRAM) { if (!psramInit()) log_e("Failed to initialize PSRAM"); @@ -350,9 +382,9 @@ void setup() iotWebConf.getApTimeoutParameter()->visible = true; iotWebConf.setConfigSavedCallback(on_config_saved); iotWebConf.setWifiConnectionCallback(on_connected); - #ifdef LED_BUILTIN +#ifdef LED_BUILTIN iotWebConf.setStatusPin(LED_BUILTIN, LOW); - #endif +#endif iotWebConf.init(); camera_init_result = initialize_camera();