Feature/esp eye support (#34)

- add support for ESP-EYE
This commit is contained in:
DaOfficialWizard 2022-12-29 19:30:32 +00:00 committed by GitHub
parent 44ca285792
commit 8fc9486214
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 368 additions and 62 deletions

View File

@ -13,7 +13,7 @@ jobs:
strategy:
fail-fast: true
matrix:
targets: [esp32Cam_release,
targets: [esp32CAM_release,
# esp32AITinker_release,
# esp_eye_release,
# esp32M5Stack_release,
@ -23,7 +23,7 @@ jobs:
# esp32M5Stack,
# esp_eye,
# wrover,
# esp32Cam_OTA,
# esp32CAM_OTA,
# esp32AITinker_OTA,
# esp32M5Stack_OTA,
# esp_eye_OTA,

64
ESP.code-workspace Normal file
View File

@ -0,0 +1,64 @@
{
"folders": [
{
"path": "ESP"
}
],
"settings": {
"files.associations": {
"*.Rmd": "rmd",
"array": "cpp",
"atomic": "cpp",
"*.tcc": "cpp",
"bitset": "cpp",
"cctype": "cpp",
"clocale": "cpp",
"cmath": "cpp",
"cstdarg": "cpp",
"cstddef": "cpp",
"cstdint": "cpp",
"cstdio": "cpp",
"cstdlib": "cpp",
"cstring": "cpp",
"ctime": "cpp",
"cwchar": "cpp",
"cwctype": "cpp",
"deque": "cpp",
"unordered_map": "cpp",
"unordered_set": "cpp",
"vector": "cpp",
"exception": "cpp",
"algorithm": "cpp",
"functional": "cpp",
"iterator": "cpp",
"map": "cpp",
"memory": "cpp",
"memory_resource": "cpp",
"numeric": "cpp",
"optional": "cpp",
"random": "cpp",
"regex": "cpp",
"set": "cpp",
"string": "cpp",
"string_view": "cpp",
"system_error": "cpp",
"tuple": "cpp",
"type_traits": "cpp",
"utility": "cpp",
"fstream": "cpp",
"initializer_list": "cpp",
"iomanip": "cpp",
"iosfwd": "cpp",
"istream": "cpp",
"limits": "cpp",
"new": "cpp",
"ostream": "cpp",
"sstream": "cpp",
"stdexcept": "cpp",
"streambuf": "cpp",
"cinttypes": "cpp",
"typeinfo": "cpp",
"iostream": "cpp"
}
}
}

View File

@ -367,11 +367,12 @@ std::string ProjectConfig::CameraConfig_t::toRepresentation()
std::string ProjectConfig::WiFiConfig_t::toRepresentation()
{
std::string json = Helpers::format_string(
"{\"name\": \"%s\", \"ssid\": \"%s\", \"password\": \"%s\", \"channel\": %u, \"adhoc\": %s}",
"{\"name\": \"%s\", \"ssid\": \"%s\", \"password\": \"%s\", \"channel\": %u, \"power\": %u,\"adhoc\": %s}",
this->name.c_str(),
this->ssid.c_str(),
this->password.c_str(),
this->channel,
this->power,
this->adhoc ? "true" : "false");
return json;
}
@ -387,6 +388,14 @@ std::string ProjectConfig::AP_WiFiConfig_t::toRepresentation()
return json;
}
std::string ProjectConfig::WiFiTxPower_t::toRepresentation()
{
std::string json = Helpers::format_string(
"\"wifi_tx_power\": {\"power\": %u}",
this->power);
return json;
}
//**********************************************************************************************************************
//*
//! Get Methods
@ -398,4 +407,4 @@ ProjectConfig::CameraConfig_t *ProjectConfig::getCameraConfig() { return &this->
std::vector<ProjectConfig::WiFiConfig_t> *ProjectConfig::getWifiConfigs() { return &this->config.networks; }
ProjectConfig::AP_WiFiConfig_t *ProjectConfig::getAPWifiConfig() { return &this->config.ap_network; }
ProjectConfig::MDNSConfig_t *ProjectConfig::getMDNSConfig() { return &this->config.mdns; }
ProjectConfig::WiFiTxPower_t *ProjectConfig::getWiFiTxPowerConfig() { return &this->config.txpower; }
ProjectConfig::WiFiTxPower_t *ProjectConfig::getWiFiTxPowerConfig() { return &this->config.txpower; }

View File

@ -6,6 +6,25 @@ CameraHandler::CameraHandler(ProjectConfig *configManager,
void CameraHandler::setupCameraPinout()
{
log_i("Camera module is %s", CAMERA_MODULE_NAME);
#if CONFIG_CAMERA_MODULE_ESP_EYE
/* IO13, IO14 is designed for JTAG by default,
* to use it as generalized input,
* firstly declair it as pullup input
**/
pinMode(13, INPUT_PULLUP);
pinMode(14, INPUT_PULLUP);
log_i("ESP_EYE");
#elif CONFIG_CAMERA_MODULE_CAM_BOARD
/* IO13, IO14 is designed for JTAG by default,
* to use it as generalized input,
* firstly declair it as pullup input
**/
pinMode(13, INPUT_PULLUP);
pinMode(14, INPUT_PULLUP);
log_i("CAM_BOARD");
#endif
config.ledc_channel = LEDC_CHANNEL_0;
config.ledc_timer = LEDC_TIMER_0;
config.grab_mode = CAMERA_GRAB_LATEST;

View File

@ -52,7 +52,7 @@ void OTA::SetupOTA()
} });
log_i("Starting up basic OTA server");
log_i("OTA will be live for 30s, after which it will be disabled until restart");
log_i("OTA will be live for 5 minutes, after which it will be disabled until restart");
auto mdnsConfig = _deviceConfig->getMDNSConfig();
ArduinoOTA.setHostname(mdnsConfig->hostname.c_str());
ArduinoOTA.begin();

View File

@ -22,13 +22,12 @@ public:
ProjectConfig *configManager;
StateManager<WiFiState_e> *stateManager;
ProjectConfig::WiFiTxPower_t *txpower;
bool _enable_adhoc;
private:
void setUpADHOC();
void adhoc(const char *ssid, uint8_t channel, const char *password = NULL);
void adhoc(const std::string &ssid, uint8_t channel, const std::string &password = std::string());
bool iniSTA(const char *ssid, const char *password, uint8_t channel, wifi_power_t power);
std::string ssid;

View File

@ -6,7 +6,6 @@ WiFiHandler::WiFiHandler(ProjectConfig *configManager,
const std::string &password,
uint8_t channel) : configManager(configManager),
stateManager(stateManager),
txpower(NULL),
ssid(ssid),
password(password),
channel(channel),
@ -22,7 +21,7 @@ void WiFiHandler::setupWifi()
this->setUpADHOC();
return;
}
txpower = configManager->getWiFiTxPowerConfig();
ProjectConfig::WiFiTxPower_t *txpower = configManager->getWiFiTxPowerConfig();
WiFi.mode(WIFI_STA);
WiFi.setSleep(WIFI_PS_NONE);
@ -67,24 +66,25 @@ void WiFiHandler::setupWifi()
}
}
void WiFiHandler::adhoc(const char *ssid, uint8_t channel, const char *password)
void WiFiHandler::adhoc(const std::string &ssid, uint8_t channel, const std::string &password)
{
stateManager->setState(WiFiState_e::WiFiState_ADHOC);
log_i("\n[INFO]: Setting Access Point...\n");
log_i("\n[INFO]: Configuring access point...\n");
WiFi.mode(WIFI_AP);
WiFi.setSleep(WIFI_PS_NONE);
Serial.printf("\r\nStarting AP. \r\nAP IP address: ");
Serial.printf("\r\nStarting AP. \r\n");
IPAddress IP = WiFi.softAPIP();
Serial.printf("[INFO]: AP IP address: %s.\r\n", IP.toString().c_str());
// You can remove the password parameter if you want the AP to be open.
WiFi.softAP(ssid, password, channel); // AP mode with password
ProjectConfig::WiFiTxPower_t *txpower = configManager->getWiFiTxPowerConfig();
WiFi.softAP(ssid.c_str(), password.c_str(), channel); // AP mode with password
WiFi.setTxPower((wifi_power_t)txpower->power);
}
void WiFiHandler::setUpADHOC()
{
log_i("\n[INFO]: Setting Access Point...\n");
log_i("\n[INFO]: Setting Up Access Point...\n");
size_t ssidLen = configManager->getAPWifiConfig()->ssid.length();
size_t passwordLen = configManager->getAPWifiConfig()->password.length();
if (ssidLen <= 0)
@ -96,17 +96,18 @@ void WiFiHandler::setUpADHOC()
if (passwordLen <= 0)
{
log_i("\n[INFO]: Configuring access point without a password\n");
this->adhoc(configManager->getAPWifiConfig()->ssid.c_str(),
this->adhoc(configManager->getAPWifiConfig()->ssid,
configManager->getAPWifiConfig()->channel);
return;
}
this->adhoc(configManager->getAPWifiConfig()->ssid.c_str(),
this->adhoc(configManager->getAPWifiConfig()->ssid,
configManager->getAPWifiConfig()->channel,
configManager->getAPWifiConfig()->password.c_str());
configManager->getAPWifiConfig()->password);
log_i("\n[INFO]: Configuring access point...\n");
log_d("\n[DEBUG]: ssid: %s\n", configManager->getAPWifiConfig()->ssid.c_str());
log_d("\n[DEBUG]: password: %s\n", configManager->getAPWifiConfig()->password.c_str());
log_d("\n[DEBUG]: ssid: %s\n", configManager->getAPWifiConfig()->ssid);
log_d("\n[DEBUG]: password: %s\n", configManager->getAPWifiConfig()->password);
log_d("\n[DEBUG]: channel: %d\n", configManager->getAPWifiConfig()->channel);
}
@ -137,11 +138,9 @@ bool WiFiHandler::iniSTA(const char *ssid, const char *password, uint8_t channel
return false;
}
}
stateManager->setState(WiFiState_e::WiFiState_Connected);
log_i("Successfully connected to %s \n\r", ssid);
log_i("Setting TX power to: %d \n\r", (uint8_t)power);
WiFi.setTxPower(power);
return true;
}

View File

@ -33,7 +33,7 @@ esp_err_t StreamHelpers::stream(httpd_req_t *req)
fb = esp_camera_fb_get();
if (!fb)
{
log_e("Camera capture failed");
log_e("Camera capture failed with response: %s", esp_err_to_name(res));
res = ESP_FAIL;
}
else
@ -43,10 +43,8 @@ esp_err_t StreamHelpers::stream(httpd_req_t *req)
_jpg_buf_len = fb->len;
_jpg_buf = fb->buf;
}
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, 128, STREAM_PART, _jpg_buf_len, _timestamp.tv_sec, _timestamp.tv_usec);
@ -54,7 +52,6 @@ esp_err_t StreamHelpers::stream(httpd_req_t *req)
}
if (res == ESP_OK)
res = httpd_resp_send_chunk(req, (const char *)_jpg_buf, _jpg_buf_len);
if (fb)
{
esp_camera_fb_return(fb);
@ -66,18 +63,14 @@ esp_err_t StreamHelpers::stream(httpd_req_t *req)
free(_jpg_buf);
_jpg_buf = NULL;
}
if (res != ESP_OK)
break;
long request_end = millis();
long latency = (request_end - last_request_time);
last_request_time = request_end;
log_d("Size: %uKB, Time: %ums (%ifps)\n", _jpg_buf_len / 1024, latency, 1000 / latency);
}
last_frame = 0;
return res;
}
@ -105,9 +98,7 @@ int StreamServer::startStreamServer()
{
httpd_register_uri_handler(camera_stream, &stream_page);
Serial.println("Stream server initialized");
Serial.print("\n\rThe stream is under: http://");
Serial.print(WiFi.localIP());
Serial.printf(":%i\n\r", this->STREAM_SERVER_PORT);
Serial.printf("\n\rThe stream is under: http://%s:%i\n\r", WiFi.localIP().toString().c_str(), this->STREAM_SERVER_PORT);
return 0;
}
}

View File

@ -9,7 +9,7 @@
; https://docs.platformio.org/page/projectconf.html
[platformio]
default_envs = esp32Cam ; do not change this value
default_envs = esp32AITinker ; do not change this value unless you know what you are doing
; The below options are available for all environments
; The ssid and password are requried for the trackers to connect to your network!!!
@ -67,25 +67,27 @@ build_flags =
-DPCLK_GPIO_NUM=${pinoutsESPCAM_M5STACK.PCLK_GPIO_NUM} ; Set the PCLK pin
[pinoutsESPCAM]
; AI Tinker camera, the ov2650
; ESP32CAM, the ov2640
PWDN_GPIO_NUM = 32
RESET_GPIO_NUM = -1
XCLK_GPIO_NUM = 0
SIOD_GPIO_NUM = 26
SIOC_GPIO_NUM = 27
Y9_GPIO_NUM = 35
Y8_GPIO_NUM = 34
Y7_GPIO_NUM = 39
Y6_GPIO_NUM = 36
Y5_GPIO_NUM = 21
Y4_GPIO_NUM = 19
Y3_GPIO_NUM = 18
Y2_GPIO_NUM = 5
VSYNC_GPIO_NUM = 25
HREF_GPIO_NUM = 23
PCLK_GPIO_NUM = 22
RESET_GPIO_NUM = 33
XCLK_GPIO_NUM = 4
SIOD_GPIO_NUM = 18
SIOC_GPIO_NUM = 23
Y9_GPIO_NUM = 36
Y8_GPIO_NUM = 19
Y7_GPIO_NUM = 21
Y6_GPIO_NUM = 39
Y5_GPIO_NUM = 35
Y4_GPIO_NUM = 14
Y3_GPIO_NUM = 13
Y2_GPIO_NUM = 34
VSYNC_GPIO_NUM = 5
HREF_GPIO_NUM = 27
PCLK_GPIO_NUM = 25
build_flags =
build_flags =
'-DCAMERA_MODULE_NAME="ESP32_CAM"'
-DCONFIG_CAMERA_MODULE_CAM_BOARD=1
; CAMERA PINOUT DEFINITIONS
-DPWDN_GPIO_NUM=${pinoutsESPCAM.PWDN_GPIO_NUM} ; Set the PWDN pin
-DRESET_GPIO_NUM=${pinoutsESPCAM.RESET_GPIO_NUM} ; Set the RESET pin
@ -104,8 +106,88 @@ build_flags =
-DHREF_GPIO_NUM=${pinoutsESPCAM.HREF_GPIO_NUM} ; Set the HREF pin
-DPCLK_GPIO_NUM=${pinoutsESPCAM.PCLK_GPIO_NUM} ; Set the PCLK pin
[pinoutsAITinker]
; AI Tinker camera, the ov2650
PWDN_GPIO_NUM = 32
RESET_GPIO_NUM = -1
XCLK_GPIO_NUM = 0
SIOD_GPIO_NUM = 26
SIOC_GPIO_NUM = 27
Y9_GPIO_NUM = 35
Y8_GPIO_NUM = 34
Y7_GPIO_NUM = 39
Y6_GPIO_NUM = 36
Y5_GPIO_NUM = 21
Y4_GPIO_NUM = 19
Y3_GPIO_NUM = 18
Y2_GPIO_NUM = 5
VSYNC_GPIO_NUM = 25
HREF_GPIO_NUM = 23
PCLK_GPIO_NUM = 22
build_flags =
'-DCAMERA_MODULE_NAME="ESP32_CAM_AI_THINKER"'
-DCONFIG_CAMERA_MODULE_AITINKER_BOARD=1
; CAMERA PINOUT DEFINITIONS
-DPWDN_GPIO_NUM=${pinoutsAITinker.PWDN_GPIO_NUM} ; Set the PWDN pin
-DRESET_GPIO_NUM=${pinoutsAITinker.RESET_GPIO_NUM} ; Set the RESET pin
-DXCLK_GPIO_NUM=${pinoutsAITinker.XCLK_GPIO_NUM} ; Set the XCLK pin
-DSIOD_GPIO_NUM=${pinoutsAITinker.SIOD_GPIO_NUM} ; Set the SIOD pin
-DSIOC_GPIO_NUM=${pinoutsAITinker.SIOC_GPIO_NUM} ; Set the SIOC pin
-DY9_GPIO_NUM=${pinoutsAITinker.Y9_GPIO_NUM} ; Set the Y9 pin
-DY8_GPIO_NUM=${pinoutsAITinker.Y8_GPIO_NUM} ; Set the Y8 pin
-DY7_GPIO_NUM=${pinoutsAITinker.Y7_GPIO_NUM} ; Set the Y7 pin
-DY6_GPIO_NUM=${pinoutsAITinker.Y6_GPIO_NUM} ; Set the Y6 pin
-DY5_GPIO_NUM=${pinoutsAITinker.Y5_GPIO_NUM} ; Set the Y5 pin
-DY4_GPIO_NUM=${pinoutsAITinker.Y4_GPIO_NUM} ; Set the Y4 pin
-DY3_GPIO_NUM=${pinoutsAITinker.Y3_GPIO_NUM} ; Set the Y3 pin
-DY2_GPIO_NUM=${pinoutsAITinker.Y2_GPIO_NUM} ; Set the Y2 pin
-DVSYNC_GPIO_NUM=${pinoutsAITinker.VSYNC_GPIO_NUM} ; Set the VSYNC pin
-DHREF_GPIO_NUM=${pinoutsAITinker.HREF_GPIO_NUM} ; Set the HREF pin
-DPCLK_GPIO_NUM=${pinoutsAITinker.PCLK_GPIO_NUM} ; Set the PCLK pin
[pinoutsESP-EYE]
; CAMERA_MODULE_ESP-EYE_KIT
PWDN_GPIO_NUM = -1
RESET_GPIO_NUM = -1
XCLK_GPIO_NUM = 4
SIOD_GPIO_NUM = 18
SIOC_GPIO_NUM = 23
Y9_GPIO_NUM = 36
Y8_GPIO_NUM = 37
Y7_GPIO_NUM = 38
Y6_GPIO_NUM = 39
Y5_GPIO_NUM = 35
Y4_GPIO_NUM = 14
Y3_GPIO_NUM = 13
Y2_GPIO_NUM = 34
VSYNC_GPIO_NUM = 5
HREF_GPIO_NUM = 27
PCLK_GPIO_NUM = 25
build_flags =
'-DCAMERA_MODULE_NAME="ESP32_CAM_ESP_EYE"'
-DCONFIG_CAMERA_MODULE_ESP_EYE=1
; CAMERA PINOUT DEFINITIONS
-DPWDN_GPIO_NUM=${pinoutsESP-EYE.PWDN_GPIO_NUM} ; Set the PWDN pin
-DRESET_GPIO_NUM=${pinoutsESP-EYE.RESET_GPIO_NUM} ; Set the RESET pin
-DXCLK_GPIO_NUM=${pinoutsESP-EYE.XCLK_GPIO_NUM} ; Set the XCLK pin
-DSIOD_GPIO_NUM=${pinoutsESP-EYE.SIOD_GPIO_NUM} ; Set the SIOD pin
-DSIOC_GPIO_NUM=${pinoutsESP-EYE.SIOC_GPIO_NUM} ; Set the SIOC pin
-DY9_GPIO_NUM=${pinoutsESP-EYE.Y9_GPIO_NUM} ; Set the Y9 pin
-DY8_GPIO_NUM=${pinoutsESP-EYE.Y8_GPIO_NUM} ; Set the Y8 pin
-DY7_GPIO_NUM=${pinoutsESP-EYE.Y7_GPIO_NUM} ; Set the Y7 pin
-DY6_GPIO_NUM=${pinoutsESP-EYE.Y6_GPIO_NUM} ; Set the Y6 pin
-DY5_GPIO_NUM=${pinoutsESP-EYE.Y5_GPIO_NUM} ; Set the Y5 pin
-DY4_GPIO_NUM=${pinoutsESP-EYE.Y4_GPIO_NUM} ; Set the Y4 pin
-DY3_GPIO_NUM=${pinoutsESP-EYE.Y3_GPIO_NUM} ; Set the Y3 pin
-DY2_GPIO_NUM=${pinoutsESP-EYE.Y2_GPIO_NUM} ; Set the Y2 pin
-DVSYNC_GPIO_NUM=${pinoutsESP-EYE.VSYNC_GPIO_NUM} ; Set the VSYNC pin
-DHREF_GPIO_NUM=${pinoutsESP-EYE.HREF_GPIO_NUM} ; Set the HREF pin
-DPCLK_GPIO_NUM=${pinoutsESP-EYE.PCLK_GPIO_NUM} ; Set the PCLK pin
[pinoutsESPWROVER]
; CAMERA_MODEL_WROVER_KIT
; CAMERA_MODULE_WROVER_KIT
PWDN_GPIO_NUM = -1
RESET_GPIO_NUM = -1
XCLK_GPIO_NUM = 21
@ -117,13 +199,15 @@ Y7_GPIO_NUM = 39
Y6_GPIO_NUM = 36
Y5_GPIO_NUM = 19
Y4_GPIO_NUM = 18
Y3_GPIO_NUM = 5
Y2_GPIO_NUM = 4
Y3_GPIO_NUM = 5
Y2_GPIO_NUM = 4
VSYNC_GPIO_NUM = 25
HREF_GPIO_NUM = 23
PCLK_GPIO_NUM = 22
build_flags =
'-DCAMERA_MODULE_NAME="ESP32_CAM_WROVER_KIT"'
-DCONFIG_CAMERA_MODULE_WROVER_KIT=1
; CAMERA PINOUT DEFINITIONS
-DPWDN_GPIO_NUM=${pinoutsESPWROVER.PWDN_GPIO_NUM} ; Set the PWDN pin
-DRESET_GPIO_NUM=${pinoutsESPWROVER.RESET_GPIO_NUM} ; Set the RESET pin
@ -159,8 +243,8 @@ monitor_filters =
board_build.partitions = min_spiffs.csv ; uncomment this to use the min_spiffs partition table, supports OTA and 1MB of SPIFFS
build_flags =
!python tools\autoversioning.py ; add build version to build as preprocessor defines
!python tools\git_rev.py ; add git revision to build as preprocessor defines
!python tools/\autoversioning.py ; add build version to build as preprocessor defines
!python tools/\git_rev.py ; add git revision to build as preprocessor defines
-DOTA_SERVER_PORT=${wifi.OTAServerPort} ; Set the OTA server
-DENABLE_ADHOC=${wifi.enableADHOC}
-DADHOC_CHANNEL=${wifi.adhocChannel}
@ -194,7 +278,7 @@ lib_deps =
build_type = debug
extra_scripts = pre:tools/customname.py
[env:esp32Cam]
[env:esp32AITinker]
platform = ${common.platform}
board = esp32cam
framework = ${common.framework}
@ -213,9 +297,9 @@ build_flags = ${common.build_flags}
-DCORE_DEBUG_LEVEL=4 ; set the debug level
-DDEBUG_MODE=1 ; Set the debug mode
; CAMERA PINOUT DEFINITIONS
${pinoutsESPCAM.build_flags}
${pinoutsAITinker.build_flags}
[env:esp32Cam_release]
[env:esp32AITinker_release]
platform = ${common.platform}
board = esp32cam
framework = ${common.framework}
@ -233,10 +317,10 @@ build_flags = ${common.build_flags}
-DDEBUG_MODE=0 ; Set the debug mode
-DCORE_DEBUG_LEVEL=1
; CAMERA PINOUT DEFINITIONS
${pinoutsESPCAM.build_flags}
${pinoutsAITinker.build_flags}
; Experimental OTA Environment - do not select unless you know what you are doing
[env:esp32Cam_OTA]
[env:esp32AITinker_OTA]
platform = ${common.platform}
board = esp32cam
framework = ${common.framework}
@ -245,7 +329,7 @@ build_flags = ${common.build_flags}
-DCORE_DEBUG_LEVEL=1
-DDEBUG_ESP_OTA
; CAMERA PINOUT DEFINITIONS
${pinoutsESPCAM.build_flags}
${pinoutsAITinker.build_flags}
lib_deps = ${common.lib_deps}
upload_speed = ${common.upload_speed}
@ -332,6 +416,147 @@ upload_flags =
build_type = release
extra_scripts = ${common.extra_scripts}
[env:esp32CAM]
platform = ${common.platform}
board = esp32cam
framework = ${common.framework}
monitor_speed = ${common.monitor_speed}
monitor_rts = ${common.monitor_rts}
monitor_dtr = ${common.monitor_dtr}
monitor_filters = ${common.monitor_filters}
;build_unflags = ${common.build_unflags}
board_build.partitions = ${common.board_build.partitions} ;
lib_ldf_mode = ${common.lib_ldf_mode}
upload_speed = ${common.upload_speed}
lib_deps = ${common.lib_deps}
build_type = ${common.build_type}
extra_scripts = ${common.extra_scripts}
build_flags = ${common.build_flags}
-DDEBUG_MODE=1 ; Set the debug mode
; CAMERA PINOUT DEFINITIONS
${pinoutsESPCAM.build_flags}
[env:esp32CAM_release]
platform = ${common.platform}
board = esp32cam
framework = ${common.framework}
monitor_speed = ${common.monitor_speed}
monitor_rts = ${common.monitor_rts}
monitor_dtr = ${common.monitor_dtr}
;build_unflags = ${common.build_unflags}
board_build.partitions = ${common.board_build.partitions} ;
lib_ldf_mode = ${common.lib_ldf_mode}
upload_speed = ${common.upload_speed}
lib_deps = ${common.lib_deps}
build_type = release
extra_scripts = ${common.extra_scripts}
build_flags = ${common.build_flags}
-DDEBUG_MODE=0 ; Set the debug mode
-DCORE_DEBUG_LEVEL=1
; CAMERA PINOUT DEFINITIONS
${pinoutsESPCAM.build_flags}
; Experimental OTA Environment - do not select unless you know what you are doing
[env:esp32CAM_OTA]
platform = ${common.platform}
board = esp32cam
framework = ${common.framework}
build_flags = ${common.build_flags}
-DDEBUG_MODE=0 ; Set the debug mode
-DCORE_DEBUG_LEVEL=1
-DDEBUG_ESP_OTA
; CAMERA PINOUT DEFINITIONS
${pinoutsESPCAM.build_flags}
lib_deps = ${common.lib_deps}
upload_speed = ${common.upload_speed}
monitor_speed = ${common.monitor_speed}
monitor_rts = ${common.monitor_rts}
monitor_dtr = ${common.monitor_dtr}
;build_unflags = ${common.build_unflags}
board_build.partitions = ${common.board_build.partitions} ; uncomment this to use the min_spiffs partition table, great for using OTA
lib_ldf_mode = ${common.lib_ldf_mode}
upload_port = 192.168.1.38
upload_protocol = espota
upload_flags =
--port=3232
--auth=12345678
build_type = release
extra_scripts = ${common.extra_scripts}
[env:esp_eye]
platform = ${common.platform}
board = esp-wrover-kit
framework = ${common.framework}
;board_build.f_flash = 80000000L
;board_build.flash_mode = qio
monitor_speed = ${common.monitor_speed}
; monitor_rts = ${common.monitor_rts}
; monitor_dtr = ${common.monitor_dtr}
monitor_filters = ${common.monitor_filters}
;build_unflags = ${common.build_unflags}
board_build.partitions = ${common.board_build.partitions} ;
lib_ldf_mode = ${common.lib_ldf_mode}
upload_speed = ${common.upload_speed}
lib_deps = ${common.lib_deps}
build_type = ${common.build_type}
extra_scripts = ${common.extra_scripts}
build_flags = ${common.build_flags}
-DDEBUG_MODE=1 ; Set the debug mode
; CAMERA PINOUT DEFINITIONS
${pinoutsESP-EYE.build_flags}
[env:esp_eye_release]
platform = ${common.platform}
board = esp-wrover-kit
framework = ${common.framework}
;board_build.f_flash = 80000000L
;board_build.flash_mode = qio
monitor_speed = ${common.monitor_speed}
; monitor_rts = ${common.monitor_rts}
; monitor_dtr = ${common.monitor_dtr}
;build_unflags = ${common.build_unflags}
board_build.partitions = ${common.board_build.partitions} ;
lib_ldf_mode = ${common.lib_ldf_mode}
upload_speed = ${common.upload_speed}
lib_deps = ${common.lib_deps}
build_type = release
extra_scripts = ${common.extra_scripts}
build_flags = ${common.build_flags}
-DDEBUG_MODE=0 ; Set the debug mode
-DCORE_DEBUG_LEVEL=1
; CAMERA PINOUT DEFINITIONS
${pinoutsESP-EYE.build_flags}
; Experimental OTA Environment - do not select unless you know what you are doing
[env:esp_eye_OTA]
platform = ${common.platform}
board = esp-wrover-kit
framework = ${common.framework}
;board_build.f_flash = 80000000L
;board_build.flash_mode = qio
build_flags = ${common.build_flags}
-DDEBUG_MODE=0 ; Set the debug mode
-DCORE_DEBUG_LEVEL=1
-DDEBUG_ESP_OTA
; CAMERA PINOUT DEFINITIONS
${pinoutsESP-EYE.build_flags}
lib_deps = ${common.lib_deps}
upload_speed = ${common.upload_speed}
monitor_speed = ${common.monitor_speed}
;monitor_rts = ${common.monitor_rts}
;monitor_dtr = ${common.monitor_dtr}
;build_unflags = ${common.build_unflags}
board_build.partitions = ${common.board_build.partitions} ; uncomment this to use the min_spiffs partition table, great for using OTA
lib_ldf_mode = ${common.lib_ldf_mode}
upload_port = 192.168.1.38
upload_protocol = espota
upload_flags =
--port=3232
--auth=12345678
build_type = release
extra_scripts = ${common.extra_scripts}
[env:wrover]
platform = ${common.platform}
board = esp-wrover-kit
@ -341,7 +566,7 @@ board_build.flash_mode = qio
monitor_speed = ${common.monitor_speed}
monitor_filters = ${common.monitor_filters}
;build_unflags = ${common.build_unflags}
board_build.partitions = ${common.board_build.partitions} ; uncomment this to use the huge_app partition table, does not support OTA and only 1MB of SPIFFS
board_build.partitions = ${common.board_build.partitions}
lib_ldf_mode = ${common.lib_ldf_mode}
upload_speed = ${common.upload_speed}
lib_deps = ${common.lib_deps}