diff --git a/app_httpd.cpp b/app_httpd.cpp index 46fdf36..23b8cd1 100644 --- a/app_httpd.cpp +++ b/app_httpd.cpp @@ -443,6 +443,9 @@ static esp_err_t stream_handler(httpd_req_t *req){ } } } + if(res == ESP_OK){ + res = httpd_resp_send_chunk(req, _STREAM_BOUNDARY, strlen(_STREAM_BOUNDARY)); + } if(res == ESP_OK){ size_t hlen = snprintf((char *)part_buf, 64, _STREAM_PART, _jpg_buf_len); res = httpd_resp_send_chunk(req, (const char *)part_buf, hlen); @@ -450,9 +453,6 @@ static esp_err_t stream_handler(httpd_req_t *req){ if(res == ESP_OK){ res = httpd_resp_send_chunk(req, (const char *)_jpg_buf, _jpg_buf_len); } - if(res == ESP_OK){ - res = httpd_resp_send_chunk(req, _STREAM_BOUNDARY, strlen(_STREAM_BOUNDARY)); - } if(fb){ esp_camera_fb_return(fb); fb = NULL; diff --git a/camera_pins.h b/camera_pins.h index 0bbfc9a..c318a56 100644 --- a/camera_pins.h +++ b/camera_pins.h @@ -27,7 +27,7 @@ #define HREF_GPIO_NUM 23 #define PCLK_GPIO_NUM 22 #define LED_PIN 2 // A status led on the RGB; could also use pin 0 or 4 -#define LED_ON HIGH // +#define LED_ON HIGH // #define LED_OFF LOW // //#define LAMP_PIN x // No LED FloodLamp. @@ -75,7 +75,16 @@ #define VSYNC_GPIO_NUM 22 #define HREF_GPIO_NUM 26 #define PCLK_GPIO_NUM 21 -#elif defined(CAMERA_MODEL_M5STACK_WIDE) +// M5 Stack status/illumination LED details unknown/unclear +//#define LED_PIN x // Status led +//#define LED_ON HIGH // +//#define LED_OFF LOW // +//#define LAMP_PIN x // LED FloodLamp. + +#elif defined(CAMERA_MODEL_M5STACK_V2_PSRAM) +// +// ESP32 M5STACK V2 +// #define PWDN_GPIO_NUM -1 #define RESET_GPIO_NUM 15 #define XCLK_GPIO_NUM 27 @@ -94,11 +103,38 @@ #define PCLK_GPIO_NUM 21 // M5 Stack status/illumination LED details unknown/unclear //#define LED_PIN x // Status led -//#define LED_ON HIGH // +//#define LED_ON HIGH // //#define LED_OFF LOW // //#define LAMP_PIN x // LED FloodLamp. -#elif defined(CAMERA_MODEL_M5STACK_NO_PSRAM) + +#elif defined(CAMERA_MODEL_M5STACK_WIDE) +// +// ESP32 M5STACK WIDE +// +#define PWDN_GPIO_NUM -1 +#define RESET_GPIO_NUM 15 +#define XCLK_GPIO_NUM 27 +#define SIOD_GPIO_NUM 22 +#define SIOC_GPIO_NUM 23 +#define Y9_GPIO_NUM 19 +#define Y8_GPIO_NUM 36 +#define Y7_GPIO_NUM 18 +#define Y6_GPIO_NUM 39 +#define Y5_GPIO_NUM 5 +#define Y4_GPIO_NUM 34 +#define Y3_GPIO_NUM 35 +#define Y2_GPIO_NUM 32 +#define VSYNC_GPIO_NUM 25 +#define HREF_GPIO_NUM 26 +#define PCLK_GPIO_NUM 21 +// M5 Stack status/illumination LED details unknown/unclear +//#define LED_PIN x // Status led +//#define LED_ON HIGH // +//#define LED_OFF LOW // +//#define LAMP_PIN x // LED FloodLamp. + +#elif defined(CAMERA_MODEL_M5STACK_ESP32CAM) // // Common M5 Stack without PSRAM // @@ -119,6 +155,11 @@ #define HREF_GPIO_NUM 26 #define PCLK_GPIO_NUM 21 // Note NO PSRAM,; so maximum working resolution is XGA 1024×768 +// M5 Stack status/illumination LED details unknown/unclear +//#define LED_PIN x // Status led +//#define LED_ON HIGH // +//#define LED_OFF LOW // +//#define LAMP_PIN x // LED FloodLamp. #elif defined(CAMERA_MODEL_AI_THINKER) // @@ -146,6 +187,29 @@ #define LED_OFF HIGH // #define LAMP_PIN 4 // LED FloodLamp. +#elif defined(CAMERA_MODEL_TTGO_T_JOURNAL) +#define PWDN_GPIO_NUM 0 +#define RESET_GPIO_NUM 15 +#define XCLK_GPIO_NUM 27 +#define SIOD_GPIO_NUM 25 +#define SIOC_GPIO_NUM 23 +#define Y9_GPIO_NUM 19 +#define Y8_GPIO_NUM 36 +#define Y7_GPIO_NUM 18 +#define Y6_GPIO_NUM 39 +#define Y5_GPIO_NUM 5 +#define Y4_GPIO_NUM 34 +#define Y3_GPIO_NUM 35 +#define Y2_GPIO_NUM 17 +#define VSYNC_GPIO_NUM 22 +#define HREF_GPIO_NUM 26 +#define PCLK_GPIO_NUM 21 +// TTGO T Journal status/illumination LED details unknown/unclear +//#define LED_PIN 33 // Status led +//#define LED_ON LOW // - Pin is inverted. +//#define LED_OFF HIGH // +//#define LAMP_PIN 4 // LED FloodLamp. + #else // that went badly... #error "Camera model not selected, did you forget to uncomment it in myconfig?" diff --git a/myconfig.sample.h b/myconfig.sample.h index 8ae8267..1525289 100644 --- a/myconfig.sample.h +++ b/myconfig.sample.h @@ -22,9 +22,12 @@ const char* password = "my-access-point-password"; // Uncomment one, and only one, of the lines below to select your board model. // Remember to select the appropriate board in the Boards Manager of your IDE/toolchain +// This is not optional #define CAMERA_MODEL_AI_THINKER // default //#define CAMERA_MODEL_WROVER_KIT //#define CAMERA_MODEL_ESP_EYE //#define CAMERA_MODEL_M5STACK_PSRAM +//#define CAMERA_MODEL_M5STACK_V2_PSRAM //#define CAMERA_MODEL_M5STACK_WIDE -//#define CAMERA_MODEL_M5STACK_NO_PSRAM +//#define CAMERA_MODEL_M5STACK_ESP32CAM // Originally: CAMERA_MODEL_M5STACK_NO_PSRAM +//#define CAMERA_MODEL_TTGO_T_JOURNAL