From 3b1eb07d74ccf57d4e422c161e97076ea18766eb Mon Sep 17 00:00:00 2001 From: Mit4el Date: Sat, 27 May 2023 02:02:33 +0300 Subject: [PATCH 1/2] =?UTF-8?q?=D0=A1=D0=B4=D0=B5=D0=BB=D0=B0=D0=BB=20?= =?UTF-8?q?=D1=81=D0=B1=D0=BE=D1=80=D0=BA=D1=83=20=D0=B4=D0=BB=D1=8F=20esp?= =?UTF-8?q?32s2=20(Wemos=20S2=20mini)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/Const.h | 4 ++ platformio.ini | 26 +++++++++++ src/EspFileSystem.cpp | 2 + src/Main.cpp | 15 ++++--- src/PeriodicTasks.cpp | 45 +++++++++++++++++++- src/UpgradeFirm.cpp | 2 +- src/modules/sensors/Acs712/modinfo.json | 1 + src/modules/sensors/Ina219/modinfo.json | 3 ++ src/modules/virtual/GoogleSheet/modinfo.json | 1 + 9 files changed, 92 insertions(+), 7 deletions(-) diff --git a/include/Const.h b/include/Const.h index 20cf9a1f..2195901e 100644 --- a/include/Const.h +++ b/include/Const.h @@ -27,6 +27,10 @@ #define FIRMWARE_NAME "esp32_4mb" #endif +#ifdef esp32s2_4mb +#define FIRMWARE_NAME "esp32s2_4mb" +#endif + //Размер буфера json #define JSON_BUFFER_SIZE 2048 //держим 2 кб не меняем #define WEB_SOCKETS_FRAME_SIZE 2048 diff --git a/platformio.ini b/platformio.ini index 18a9163f..a1810056 100644 --- a/platformio.ini +++ b/platformio.ini @@ -174,6 +174,29 @@ build_src_filter = + ${env:esp32_4mb_fromitems.build_src_filter} +[env:esp32s2_4mb] +lib_deps = + ${common_env_data.lib_deps_external} + ${env:esp32s2_4mb_fromitems.lib_deps} +build_flags = + -Desp32s2_4mb="esp32s2_4mb" + -DARDUINO_USB_CDC_ON_BOOT=1 + -DARDUINO_USB_MODE=0 +framework = arduino +board = lolin_s2_mini +platform = espressif32 @6.3.1 +monitor_filters = esp32_exception_decoder +upload_speed = 921600 +monitor_speed = 115200 +debug_tool = esp-prog +board_build.filesystem = littlefs +build_src_filter = + +<*.cpp> + + + + + + + ${env:esp32s2_4mb_fromitems.build_src_filter} + [env:esp8266_1mb_ota_fromitems] lib_deps = adafruit/Adafruit BME280 Library @@ -471,3 +494,6 @@ build_src_filter = + + +[env:esp32s2_4mb_fromitems] +lib_deps = +build_src_filter = diff --git a/src/EspFileSystem.cpp b/src/EspFileSystem.cpp index 21d6f11f..12c61f7c 100644 --- a/src/EspFileSystem.cpp +++ b/src/EspFileSystem.cpp @@ -76,6 +76,7 @@ uint32_t ESP_getChipId(void) { #endif } +#ifndef esp32s2_4mb uint32_t ESP_getFlashChipId(void) { #ifdef ESP32 // Нет аналогичной (без доп.кода) функций в 32 @@ -85,6 +86,7 @@ uint32_t ESP_getFlashChipId(void) { return ESP.getFlashChipId(); #endif } +#endif const String getMacAddress() { uint8_t mac[6]; diff --git a/src/Main.cpp b/src/Main.cpp index 0e621c25..d872a098 100644 --- a/src/Main.cpp +++ b/src/Main.cpp @@ -3,6 +3,9 @@ #include "classes/IoTDB.h" #include "utils/Statistic.h" #include +#ifdef esp32s2_4mb +#include +#endif IoTScenario iotScen; // объект управления сценарием @@ -66,14 +69,14 @@ void IRAM_ATTR onTimer(){ #endif void initErrorMarker(int id) { -#ifdef esp32_4mb +#ifdef esp32_4mb initErrorMarkerId = id; errorMarkerCounter = 0; #endif } void stopErrorMarker(int id) { -#ifdef esp32_4mb +#ifdef esp32_4mb errorMarkerCounter = -1; if (errorMarkerId) SerialPrint("I", "WARNING!", "A lazy (freezing loop more than " + (String)(COUNTER_ERRORMARKER * STEPPER_ERRORMARKER / 1000) + " ms) section has been found! With ID=" + (String)errorMarkerId); @@ -85,8 +88,10 @@ void stopErrorMarker(int id) { void setup() { - -#ifdef esp32_4mb +#ifdef esp32s2_4mb + USB.begin(); +#endif +#ifdef esp32_4mb My_timer = timerBegin(0, 80, true); timerAttachInterrupt(My_timer, &onTimer, true); timerAlarmWrite(My_timer, STEPPER_ERRORMARKER, true); @@ -129,7 +134,7 @@ void setup() { jsonRead(settingsFlashJson, "i2cFreq", i2cFreq, false); jsonRead(settingsFlashJson, "i2c", i2c, false); if (i2c != 0) { -#ifdef esp32_4mb +#ifdef ESP32 Wire.end(); Wire.begin(pinSDA, pinSCL, (uint32_t)i2cFreq); #else diff --git a/src/PeriodicTasks.cpp b/src/PeriodicTasks.cpp index 64675569..9516a369 100644 --- a/src/PeriodicTasks.cpp +++ b/src/PeriodicTasks.cpp @@ -58,7 +58,50 @@ void printGlobalVarSize() { String ESP_getResetReason(void) { return ESP.getResetReason(); } -#else +#endif +#ifdef esp32s2_4mb +String ESP_getResetReason(void) { + return ESP32GetResetReason(0); // CPU 0 +} +String ESP32GetResetReason(uint32_t cpu_no) { + // tools\sdk\include\esp32\rom\rtc.h + switch (rtc_get_reset_reason((RESET_REASON)cpu_no)) { + case POWERON_RESET: + return F("Vbat power on reset"); // 1 + case RTC_SW_SYS_RESET: + return F("Software reset digital core"); // 3 +// case OWDT_RESET: +// return F("Legacy Watchdog reset digital core"); // 4 + case DEEPSLEEP_RESET: + return F("Deep Sleep reset digital core"); // 5 +// case SDIO_RESET: +// return F("Reset by SLC module, reset digital core"); // 6 + case TG0WDT_SYS_RESET: + return F("Timer Group0 Watchdog reset digital core"); // 7 + case TG1WDT_SYS_RESET: + return F("Timer Group1 Watchdog reset digital core"); // 8 + case RTCWDT_SYS_RESET: + return F("RTC Watchdog Reset digital core"); // 9 + case INTRUSION_RESET: + return F("Instrusion tested to reset CPU"); // 10 + case TG0WDT_CPU_RESET: + return F("Time Group reset CPU"); // 11 + case RTC_SW_CPU_RESET: + return F("Software reset CPU"); // 12 + case RTCWDT_CPU_RESET: + return F("RTC Watchdog Reset CPU"); // 13 +// case EXT_CPU_RESET: +// return F("or APP CPU, reseted by PRO CPU"); // 14 + case RTCWDT_BROWN_OUT_RESET: + return F("Reset when the vdd voltage is not stable"); // 15 + case RTCWDT_RTC_RESET: + return F("RTC Watchdog reset digital core and rtc module"); // 16 + default: + return F("NO_MEAN"); // 0 + } +} +#endif +#ifdef esp32_4mb String ESP_getResetReason(void) { return ESP32GetResetReason(0); // CPU 0 } diff --git a/src/UpgradeFirm.cpp b/src/UpgradeFirm.cpp index 20385771..aec4650f 100644 --- a/src/UpgradeFirm.cpp +++ b/src/UpgradeFirm.cpp @@ -76,7 +76,7 @@ bool upgradeBuild() { ESPhttpUpdate.rebootOnUpdate(false); t_httpUpdate_return retBuild = ESPhttpUpdate.update(wifiClient, getBinPath("firmware.bin")); #endif -#ifdef esp32_4mb +#ifdef ESP32 httpUpdate.rebootOnUpdate(false); HTTPUpdateResult retBuild = httpUpdate.update(wifiClient, getBinPath("firmware.bin")); #endif diff --git a/src/modules/sensors/Acs712/modinfo.json b/src/modules/sensors/Acs712/modinfo.json index 5a38c88b..ec03c837 100644 --- a/src/modules/sensors/Acs712/modinfo.json +++ b/src/modules/sensors/Acs712/modinfo.json @@ -41,6 +41,7 @@ "defActive": true, "usedLibs": { "esp32_4mb": [], + "esp32s2_4mb": [], "esp8266_4mb": [], "esp8266_1mb": [], "esp8266_1mb_ota": [], diff --git a/src/modules/sensors/Ina219/modinfo.json b/src/modules/sensors/Ina219/modinfo.json index 1dc9638f..9bc76dbd 100644 --- a/src/modules/sensors/Ina219/modinfo.json +++ b/src/modules/sensors/Ina219/modinfo.json @@ -88,6 +88,9 @@ "esp32_4mb": [ "https://github.com/adafruit/Adafruit_INA219.git" ], + "esp32s2_4mb": [ + "https://github.com/adafruit/Adafruit_INA219.git" + ], "esp8266_4mb": [ "https://github.com/adafruit/Adafruit_INA219.git" diff --git a/src/modules/virtual/GoogleSheet/modinfo.json b/src/modules/virtual/GoogleSheet/modinfo.json index d6fb0c8d..23192555 100644 --- a/src/modules/virtual/GoogleSheet/modinfo.json +++ b/src/modules/virtual/GoogleSheet/modinfo.json @@ -40,6 +40,7 @@ "defActive": false, "usedLibs": { "esp32_4mb": [], + "esp32s2_4mb": [], "esp8266_4mb": [], "esp8266_1mb": [], "esp8266_1mb_ota": [], From b3705b6924cfba86a92aaa0e07d845d2a2194ea9 Mon Sep 17 00:00:00 2001 From: Mit4el Date: Sat, 27 May 2023 02:29:47 +0300 Subject: [PATCH 2/2] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB?= =?UTF-8?q?=20=D0=BC=D0=BE=D0=B4=D1=83=D0=BB=D0=B8=20=D0=B4=D0=BB=D1=8F=20?= =?UTF-8?q?esp32s2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/exec/TelegramLT/modinfo.json | 1 + src/modules/virtual/Cron/modinfo.json | 1 + src/modules/virtual/Loging/modinfo.json | 1 + src/modules/virtual/LogingDaily/modinfo.json | 1 + src/modules/virtual/Timer/modinfo.json | 1 + src/modules/virtual/VButton/modinfo.json | 1 + src/modules/virtual/Variable/modinfo.json | 1 + src/modules/virtual/VariableColor/modinfo.json | 1 + src/modules/virtual/Weather/modinfo.json | 1 + 9 files changed, 9 insertions(+) diff --git a/src/modules/exec/TelegramLT/modinfo.json b/src/modules/exec/TelegramLT/modinfo.json index e718fd62..49c44966 100644 --- a/src/modules/exec/TelegramLT/modinfo.json +++ b/src/modules/exec/TelegramLT/modinfo.json @@ -56,6 +56,7 @@ "usedLibs": { "esp32_4mb": [], + "esp32s2_4mb": [], "esp8266_4mb": [], "esp8266_1mb": [], "esp8266_1mb_ota": [], diff --git a/src/modules/virtual/Cron/modinfo.json b/src/modules/virtual/Cron/modinfo.json index 54783e3f..dd2c3dbd 100644 --- a/src/modules/virtual/Cron/modinfo.json +++ b/src/modules/virtual/Cron/modinfo.json @@ -50,6 +50,7 @@ "defActive": true, "usedLibs": { "esp32_4mb": [], + "esp32s2_4mb": [], "esp8266_4mb": [], "esp8266_1mb": [], "esp8266_1mb_ota": [], diff --git a/src/modules/virtual/Loging/modinfo.json b/src/modules/virtual/Loging/modinfo.json index 8fbdcbe3..e39018e3 100644 --- a/src/modules/virtual/Loging/modinfo.json +++ b/src/modules/virtual/Loging/modinfo.json @@ -51,6 +51,7 @@ "defActive": true, "usedLibs": { "esp32_4mb": [], + "esp32s2_4mb": [], "esp8266_4mb": [], "esp8266_1mb": [], "esp8266_1mb_ota": [], diff --git a/src/modules/virtual/LogingDaily/modinfo.json b/src/modules/virtual/LogingDaily/modinfo.json index 8118c82a..9c17af4b 100644 --- a/src/modules/virtual/LogingDaily/modinfo.json +++ b/src/modules/virtual/LogingDaily/modinfo.json @@ -44,6 +44,7 @@ "defActive": true, "usedLibs": { "esp32_4mb": [], + "esp32s2_4mb": [], "esp8266_4mb": [], "esp8266_1mb": [], "esp8266_1mb_ota": [], diff --git a/src/modules/virtual/Timer/modinfo.json b/src/modules/virtual/Timer/modinfo.json index def3437c..be4abb02 100644 --- a/src/modules/virtual/Timer/modinfo.json +++ b/src/modules/virtual/Timer/modinfo.json @@ -70,6 +70,7 @@ "defActive": true, "usedLibs": { "esp32_4mb": [], + "esp32s2_4mb": [], "esp8266_4mb": [], "esp8266_1mb": [], "esp8266_1mb_ota": [], diff --git a/src/modules/virtual/VButton/modinfo.json b/src/modules/virtual/VButton/modinfo.json index 36e5fabf..ab78d4d0 100644 --- a/src/modules/virtual/VButton/modinfo.json +++ b/src/modules/virtual/VButton/modinfo.json @@ -36,6 +36,7 @@ "defActive": true, "usedLibs": { "esp32_4mb": [], + "esp32s2_4mb": [], "esp8266_4mb": [], "esp8266_1mb": [], "esp8266_1mb_ota": [], diff --git a/src/modules/virtual/Variable/modinfo.json b/src/modules/virtual/Variable/modinfo.json index 2a50d1c2..feb0370a 100644 --- a/src/modules/virtual/Variable/modinfo.json +++ b/src/modules/virtual/Variable/modinfo.json @@ -96,6 +96,7 @@ "defActive": true, "usedLibs": { "esp32_4mb": [], + "esp32s2_4mb": [], "esp8266_4mb": [], "esp8266_1mb": [], "esp8266_1mb_ota": [], diff --git a/src/modules/virtual/VariableColor/modinfo.json b/src/modules/virtual/VariableColor/modinfo.json index e03c1ff9..59fd429b 100644 --- a/src/modules/virtual/VariableColor/modinfo.json +++ b/src/modules/virtual/VariableColor/modinfo.json @@ -37,6 +37,7 @@ "usedLibs": { "esp32_4mb": [], + "esp32s2_4mb": [], "esp8266_4mb": [], "esp8266_1mb": [], "esp8266_1mb_ota": [], diff --git a/src/modules/virtual/Weather/modinfo.json b/src/modules/virtual/Weather/modinfo.json index cbdad91f..9b315192 100644 --- a/src/modules/virtual/Weather/modinfo.json +++ b/src/modules/virtual/Weather/modinfo.json @@ -44,6 +44,7 @@ "usedLibs": { "esp32_4mb": [], + "esp32s2_4mb": [], "esp8266_4mb": [], "esp8266_1mb": [], "esp8266_1mb_ota": [],