From 841599c24826858baf917c2bbb1849eb56077da7 Mon Sep 17 00:00:00 2001 From: Rodrigo Garcia Date: Mon, 17 Jan 2022 09:44:49 -0300 Subject: [PATCH 01/14] Fixes String(float) issue with Stack Smashing (#6138) Fixes #5873 --- cores/esp32/WString.cpp | 24 ++++++++++++++++++------ cores/esp32/WString.h | 4 ++-- cores/esp32/stdlib_noniso.c | 4 ++-- cores/esp32/stdlib_noniso.h | 2 +- 4 files changed, 23 insertions(+), 11 deletions(-) diff --git a/cores/esp32/WString.cpp b/cores/esp32/WString.cpp index b78cf2eed90..ded2a3c1e78 100644 --- a/cores/esp32/WString.cpp +++ b/cores/esp32/WString.cpp @@ -112,16 +112,28 @@ String::String(unsigned long value, unsigned char base) { *this = buf; } -String::String(float value, unsigned char decimalPlaces) { +String::String(float value, unsigned int decimalPlaces) { init(); - char buf[33]; - *this = dtostrf(value, (decimalPlaces + 2), decimalPlaces, buf); + char *buf = (char*)malloc(decimalPlaces + 42); + if (buf) { + *this = dtostrf(value, (decimalPlaces + 2), decimalPlaces, buf); + free(buf); + } else { + *this = "nan"; + log_e("No enought memory for the operation."); + } } -String::String(double value, unsigned char decimalPlaces) { +String::String(double value, unsigned int decimalPlaces) { init(); - char buf[33]; - *this = dtostrf(value, (decimalPlaces + 2), decimalPlaces, buf); + char *buf = (char*)malloc(decimalPlaces + 312); + if (buf) { + *this = dtostrf(value, (decimalPlaces + 2), decimalPlaces, buf); + free(buf); + } else { + *this = "nan"; + log_e("No enought memory for the operation."); + } } String::~String() { diff --git a/cores/esp32/WString.h b/cores/esp32/WString.h index 958b01792e8..3190a247dda 100644 --- a/cores/esp32/WString.h +++ b/cores/esp32/WString.h @@ -71,8 +71,8 @@ class String { explicit String(unsigned int, unsigned char base = 10); explicit String(long, unsigned char base = 10); explicit String(unsigned long, unsigned char base = 10); - explicit String(float, unsigned char decimalPlaces = 2); - explicit String(double, unsigned char decimalPlaces = 2); + explicit String(float, unsigned int decimalPlaces = 2); + explicit String(double, unsigned int decimalPlaces = 2); ~String(void); // memory management diff --git a/cores/esp32/stdlib_noniso.c b/cores/esp32/stdlib_noniso.c index 8f24520dac3..e66edace7e3 100644 --- a/cores/esp32/stdlib_noniso.c +++ b/cores/esp32/stdlib_noniso.c @@ -88,7 +88,7 @@ char* ultoa(unsigned long value, char* result, int base) { return result; } -char * dtostrf(double number, signed char width, unsigned char prec, char *s) { +char * dtostrf(double number, signed int width, unsigned int prec, char *s) { bool negative = false; if (isnan(number)) { @@ -117,7 +117,7 @@ char * dtostrf(double number, signed char width, unsigned char prec, char *s) { // Round correctly so that print(1.999, 2) prints as "2.00" // I optimized out most of the divisions double rounding = 2.0; - for (uint8_t i = 0; i < prec; ++i) + for (uint32_t i = 0; i < prec; ++i) rounding *= 10.0; rounding = 1.0 / rounding; diff --git a/cores/esp32/stdlib_noniso.h b/cores/esp32/stdlib_noniso.h index 3df2cc2a1b6..e5bb44e563a 100644 --- a/cores/esp32/stdlib_noniso.h +++ b/cores/esp32/stdlib_noniso.h @@ -39,7 +39,7 @@ char* utoa (unsigned int val, char *s, int radix); char* ultoa (unsigned long val, char *s, int radix); -char* dtostrf (double val, signed char width, unsigned char prec, char *s); +char* dtostrf (double val, signed int width, unsigned int prec, char *s); #ifdef __cplusplus } // extern "C" From 1bbe61ab6f96263ba138a065801ac889f81b1ce1 Mon Sep 17 00:00:00 2001 From: Rodrigo Garcia Date: Mon, 17 Jan 2022 09:47:08 -0300 Subject: [PATCH 02/14] Allows user to bypass PSRAM test and boot faster with WROVER (#6135) Fixes #5737 --- cores/esp32/Arduino.h | 6 +++++- cores/esp32/esp32-hal-psram.c | 10 +++++++++- cores/esp32/esp32-hal.h | 3 +++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/cores/esp32/Arduino.h b/cores/esp32/Arduino.h index 8014d3c8342..b1e8f7cd7de 100644 --- a/cores/esp32/Arduino.h +++ b/cores/esp32/Arduino.h @@ -166,6 +166,7 @@ void shiftOut(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder, uint8_t val); #include "Udp.h" #include "HardwareSerial.h" #include "Esp.h" +#include "esp32/spiram.h" using std::abs; using std::isinf; @@ -181,7 +182,10 @@ uint16_t makeWord(uint8_t h, uint8_t l); size_t getArduinoLoopTaskStackSize(void); #define SET_LOOP_TASK_STACK_SIZE(sz) size_t getArduinoLoopTaskStackSize() { return sz;} - + +// allows user to bypass esp_spiram_test() +#define BYPASS_SPIRAM_TEST(bypass) bool testSPIRAM(void) { if (bypass) return true; else return esp_spiram_test(); } + unsigned long pulseIn(uint8_t pin, uint8_t state, unsigned long timeout = 1000000L); unsigned long pulseInLong(uint8_t pin, uint8_t state, unsigned long timeout = 1000000L); diff --git a/cores/esp32/esp32-hal-psram.c b/cores/esp32/esp32-hal-psram.c index 7a8cc0befef..44612562977 100644 --- a/cores/esp32/esp32-hal-psram.c +++ b/cores/esp32/esp32-hal-psram.c @@ -35,6 +35,13 @@ static volatile bool spiramDetected = false; static volatile bool spiramFailed = false; +//allows user to bypass SPI RAM test routine +__attribute__((weak)) bool testSPIRAM(void) +{ + return esp_spiram_test(); +} + + bool psramInit(){ if (spiramDetected) { return true; @@ -66,7 +73,8 @@ bool psramInit(){ return false; } esp_spiram_init_cache(); - if (!esp_spiram_test()) { + //testSPIRAM() allows user to bypass SPI RAM test routine + if (!testSPIRAM()) { spiramFailed = true; log_e("PSRAM test failed!"); return false; diff --git a/cores/esp32/esp32-hal.h b/cores/esp32/esp32-hal.h index 115a050b172..55e9f95769b 100644 --- a/cores/esp32/esp32-hal.h +++ b/cores/esp32/esp32-hal.h @@ -95,6 +95,9 @@ void analogWrite(uint8_t pin, int value); //returns chip temperature in Celsius float temperatureRead(); +//allows user to bypass SPI RAM test routine +bool testSPIRAM(void); + #if CONFIG_AUTOSTART_ARDUINO //enable/disable WDT for Arduino's setup and loop functions void enableLoopWDT(); From 5ae3886c66b077fd5c892f208b239e4d2bd0b9ef Mon Sep 17 00:00:00 2001 From: Rodrigo Garcia Date: Mon, 17 Jan 2022 09:54:13 -0300 Subject: [PATCH 03/14] Fixes UART MODBUS and Loopback issue (#6133) --- cores/esp32/esp32-hal-uart.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/cores/esp32/esp32-hal-uart.c b/cores/esp32/esp32-hal-uart.c index c34c54b1a25..580c55ddce8 100644 --- a/cores/esp32/esp32-hal-uart.c +++ b/cores/esp32/esp32-hal-uart.c @@ -153,9 +153,6 @@ uart_t* uartBegin(uint8_t uart_nr, uint32_t baudrate, uint32_t config, int8_t rx ESP_ERROR_CHECK(uart_set_line_inverse(uart_nr, UART_SIGNAL_TXD_INV | UART_SIGNAL_RXD_INV)); } - // Set RS485 half duplex mode on UART. This shall force flush to wait up to sending all bits out - ESP_ERROR_CHECK(uart_set_mode(uart_nr, UART_MODE_RS485_HALF_DUPLEX)); - UART_MUTEX_UNLOCK(); uartFlush(uart); @@ -306,7 +303,7 @@ void uartFlushTxOnly(uart_t* uart, bool txOnly) } UART_MUTEX_LOCK(); - ESP_ERROR_CHECK(uart_wait_tx_done(uart->num, portMAX_DELAY)); + while(!uart_ll_is_tx_idle(UART_LL_GET_HW(uart->num))); if ( !txOnly ) { ESP_ERROR_CHECK(uart_flush_input(uart->num)); From c014eaf3524dd45049a812a393c8fdfc92feb886 Mon Sep 17 00:00:00 2001 From: Rodrigo Garcia Date: Mon, 17 Jan 2022 11:04:12 -0300 Subject: [PATCH 04/14] Adds UART RX IRQ Callback with onReceive() (#6134) * Adds UART RX IRQ Callback with onReceive() --- cores/esp32/HardwareSerial.cpp | 5 ++ cores/esp32/HardwareSerial.h | 4 ++ cores/esp32/esp32-hal-uart.c | 90 +++++++++++++++++++++++++++++++--- cores/esp32/esp32-hal-uart.h | 2 + 4 files changed, 93 insertions(+), 8 deletions(-) diff --git a/cores/esp32/HardwareSerial.cpp b/cores/esp32/HardwareSerial.cpp index aed14b19c72..82799ffcfc4 100644 --- a/cores/esp32/HardwareSerial.cpp +++ b/cores/esp32/HardwareSerial.cpp @@ -159,6 +159,11 @@ void HardwareSerial::begin(unsigned long baud, uint32_t config, int8_t rxPin, in } } +void HardwareSerial::onReceive(void(*function)(void)) +{ + uartOnReceive(_uart, function); +} + void HardwareSerial::updateBaudRate(unsigned long baud) { uartSetBaudRate(_uart, baud); diff --git a/cores/esp32/HardwareSerial.h b/cores/esp32/HardwareSerial.h index 40282361bf5..796412c8ce3 100644 --- a/cores/esp32/HardwareSerial.h +++ b/cores/esp32/HardwareSerial.h @@ -57,6 +57,10 @@ class HardwareSerial: public Stream public: HardwareSerial(int uart_nr); + // onReceive will setup a callback for whenever UART data is received + // it will work as UART Rx interrupt + void onReceive(void(*function)(void)); + void begin(unsigned long baud, uint32_t config=SERIAL_8N1, int8_t rxPin=-1, int8_t txPin=-1, bool invert=false, unsigned long timeout_ms = 20000UL, uint8_t rxfifo_full_thrhd = 112); void end(bool turnOffDebug = true); void updateBaudRate(unsigned long baud); diff --git a/cores/esp32/esp32-hal-uart.c b/cores/esp32/esp32-hal-uart.c index 580c55ddce8..dc22e0dc019 100644 --- a/cores/esp32/esp32-hal-uart.c +++ b/cores/esp32/esp32-hal-uart.c @@ -34,7 +34,9 @@ struct uart_struct_t { uint8_t num; bool has_peek; uint8_t peek_byte; - + QueueHandle_t uart_event_queue; + void (*onReceive)(void); + TaskHandle_t envent_task; }; #if CONFIG_DISABLE_HAL_LOCKS @@ -43,12 +45,12 @@ struct uart_struct_t { #define UART_MUTEX_UNLOCK() static uart_t _uart_bus_array[] = { - {0, false, 0}, + {0, false, 0, NULL, NULL, NULL}, #if SOC_UART_NUM > 1 - {1, false, 0}, + {1, false, 0, NULL, NULL, NULL}, #endif #if SOC_UART_NUM > 2 - {2, false, 0}, + {2, false, 0, NULL, NULL, NULL}, #endif }; @@ -58,12 +60,12 @@ static uart_t _uart_bus_array[] = { #define UART_MUTEX_UNLOCK() xSemaphoreGive(uart->lock) static uart_t _uart_bus_array[] = { - {NULL, 0, false, 0}, + {NULL, 0, false, 0, NULL, NULL, NULL}, #if SOC_UART_NUM > 1 - {NULL, 1, false, 0}, + {NULL, 1, false, 0, NULL, NULL, NULL}, #endif #if SOC_UART_NUM > 2 - {NULL, 2, false, 0}, + {NULL, 2, false, 0, NULL, NULL, NULL}, #endif }; @@ -82,6 +84,67 @@ uint32_t _get_effective_baudrate(uint32_t baudrate) } } + +void uartOnReceive(uart_t* uart, void(*function)(void)) +{ + if(uart == NULL || function == NULL) { + return; + } + UART_MUTEX_LOCK(); + uart->onReceive = function; + UART_MUTEX_UNLOCK(); +} + + +static void uart_event_task(void *args) +{ + uart_t* uart = (uart_t *)args; + uart_event_t event; + for(;;) { + //Waiting for UART event. + if(xQueueReceive(uart->uart_event_queue, (void * )&event, (portTickType)portMAX_DELAY)) { + switch(event.type) { + //Event of UART receving data + case UART_DATA: + UART_MUTEX_LOCK(); + if(uart->onReceive) uart->onReceive(); + UART_MUTEX_UNLOCK(); + break; + //Event of HW FIFO overflow detected + case UART_FIFO_OVF: + log_w("UART%d FIFO Overflow. Flushing data. Consider adding Flow Control to your Application.", uart->num); + uart_flush_input(uart->num); + xQueueReset(uart->uart_event_queue); + break; + //Event of UART ring buffer full + case UART_BUFFER_FULL: + log_w("UART%d Buffer Full. Flushing data. Consider encreasing your buffer size of your Application.", uart->num); + uart_flush_input(uart->num); + xQueueReset(uart->uart_event_queue); + break; + //Event of UART RX break detected + case UART_BREAK: + log_w("UART%d RX break.", uart->num); + break; + //Event of UART parity check error + case UART_PARITY_ERR: + log_w("UART%d parity error.", uart->num); + break; + //Event of UART frame error + case UART_FRAME_ERR: + log_w("UART%d frame error.", uart->num); + break; + //Others + default: + log_w("UART%d unknown event type %d.", uart->num, event.type); + break; + } + } + } + vTaskDelete(NULL); +} + + bool uartIsDriverInstalled(uart_t* uart) { if(uart == NULL) { @@ -143,7 +206,7 @@ uart_t* uartBegin(uint8_t uart_nr, uint32_t baudrate, uint32_t config, int8_t rx uart_config.source_clk = UART_SCLK_APB; - ESP_ERROR_CHECK(uart_driver_install(uart_nr, 2*queueLen, 0, 0, NULL, 0)); + ESP_ERROR_CHECK(uart_driver_install(uart_nr, 2*queueLen, 0, 20, &(uart->uart_event_queue), 0)); ESP_ERROR_CHECK(uart_param_config(uart_nr, &uart_config)); ESP_ERROR_CHECK(uart_set_pin(uart_nr, txPin, rxPin, UART_PIN_NO_CHANGE, UART_PIN_NO_CHANGE)); @@ -153,6 +216,12 @@ uart_t* uartBegin(uint8_t uart_nr, uint32_t baudrate, uint32_t config, int8_t rx ESP_ERROR_CHECK(uart_set_line_inverse(uart_nr, UART_SIGNAL_TXD_INV | UART_SIGNAL_RXD_INV)); } + // Creating UART event Task + xTaskCreate(uart_event_task, "uart_event_task", 2048, uart, configMAX_PRIORITIES - 1, &(uart->envent_task)); + if (!uart->envent_task) { + log_e(" -- UART%d Event Task not Created!", uart_nr); + } + UART_MUTEX_UNLOCK(); uartFlush(uart); @@ -167,6 +236,11 @@ void uartEnd(uart_t* uart) UART_MUTEX_LOCK(); uart_driver_delete(uart->num); + if (uart->envent_task) { + vTaskDelete(uart->envent_task); + uart->envent_task = NULL; + uart->onReceive = NULL; + } UART_MUTEX_UNLOCK(); } diff --git a/cores/esp32/esp32-hal-uart.h b/cores/esp32/esp32-hal-uart.h index 609f380f59e..ff790bf6691 100644 --- a/cores/esp32/esp32-hal-uart.h +++ b/cores/esp32/esp32-hal-uart.h @@ -54,6 +54,8 @@ typedef struct uart_struct_t uart_t; uart_t* uartBegin(uint8_t uart_nr, uint32_t baudrate, uint32_t config, int8_t rxPin, int8_t txPin, uint16_t queueLen, bool inverted, uint8_t rxfifo_full_thrhd); void uartEnd(uart_t* uart); +void uartOnReceive(uart_t* uart, void(*function)(void)); + uint32_t uartAvailable(uart_t* uart); uint32_t uartAvailableForWrite(uart_t* uart); uint8_t uartRead(uart_t* uart); From b3b340329611b44fcb3112d17d8b11db3a714af6 Mon Sep 17 00:00:00 2001 From: vortigont Date: Mon, 17 Jan 2022 17:09:58 +0300 Subject: [PATCH 05/14] NTP Examples: revert obsolete comment and updated Time example (#6073) * Revert "Examples update, add a note for configTime() that only one ntp server is supported by lwip", fixed in espressif/esp32-arduino-lib-builder#51 This reverts commit 6b1020967a171c549b3d956825fd0d395de9cce0. * SimpleTime: add NTPoDHCP option and TimeZone env variable --- cores/esp32/esp32-hal-time.c | 4 -- .../examples/Time/SimpleTime/SimpleTime.ino | 55 +++++++++++++++---- .../FFat/examples/FFat_time/FFat_time.ino | 4 -- .../httpUpdateSecure/httpUpdateSecure.ino | 4 -- .../examples/LITTLEFS_time/LITTLEFS_time.ino | 4 -- libraries/SD/examples/SD_time/SD_time.ino | 4 -- .../SD_MMC/examples/SDMMC_time/SDMMC_time.ino | 4 -- .../examples/SPIFFS_time/SPIFFS_time.ino | 4 -- 8 files changed, 43 insertions(+), 40 deletions(-) diff --git a/cores/esp32/esp32-hal-time.c b/cores/esp32/esp32-hal-time.c index 2d0276ff3e3..e7048307284 100644 --- a/cores/esp32/esp32-hal-time.c +++ b/cores/esp32/esp32-hal-time.c @@ -44,8 +44,6 @@ static void setTimeZone(long offset, int daylight) /* * configTime * Source: https://github.com/esp8266/Arduino/blob/master/cores/esp8266/time.c - * Note: Bundled Arduino lwip supports only ONE ntp server, 2nd and 3rd options are silently ignored - * see CONFIG_LWIP_DHCP_MAX_NTP_SERVERS define in ./tools/sdk/esp32/sdkconfig * */ void configTime(long gmtOffset_sec, int daylightOffset_sec, const char* server1, const char* server2, const char* server3) { @@ -65,8 +63,6 @@ void configTime(long gmtOffset_sec, int daylightOffset_sec, const char* server1, /* * configTzTime * sntp setup using TZ environment variable - * Note: Bundled Arduino lwip supports only ONE ntp server, 2nd and 3rd options are silently ignored - * see CONFIG_LWIP_DHCP_MAX_NTP_SERVERS define in ./tools/sdk/esp32/sdkconfig * */ void configTzTime(const char* tz, const char* server1, const char* server2, const char* server3) { diff --git a/libraries/ESP32/examples/Time/SimpleTime/SimpleTime.ino b/libraries/ESP32/examples/Time/SimpleTime/SimpleTime.ino index 988c2a4d83b..427deb014de 100644 --- a/libraries/ESP32/examples/Time/SimpleTime/SimpleTime.ino +++ b/libraries/ESP32/examples/Time/SimpleTime/SimpleTime.ino @@ -1,27 +1,65 @@ #include #include "time.h" +#include "sntp.h" const char* ssid = "YOUR_SSID"; const char* password = "YOUR_PASS"; -const char* ntpServer = "pool.ntp.org"; +const char* ntpServer1 = "pool.ntp.org"; +const char* ntpServer2 = "time.nist.gov"; const long gmtOffset_sec = 3600; const int daylightOffset_sec = 3600; +const char* time_zone = "CET-1CEST,M3.5.0,M10.5.0/3"; // TimeZone rule for Europe/Rome including daylight adjustment rules (optional) + void printLocalTime() { struct tm timeinfo; if(!getLocalTime(&timeinfo)){ - Serial.println("Failed to obtain time"); + Serial.println("No time available (yet)"); return; } Serial.println(&timeinfo, "%A, %B %d %Y %H:%M:%S"); } +// Callback function (get's called when time adjusts via NTP) +void timeavailable(struct timeval *t) +{ + Serial.println("Got time adjustment from NTP!"); + printLocalTime(); +} + void setup() { Serial.begin(115200); - + + // set notification call-back function + sntp_set_time_sync_notification_cb( timeavailable ); + + /** + * NTP server address could be aquired via DHCP, + * + * NOTE: This call should be made BEFORE esp32 aquires IP address via DHCP, + * otherwise SNTP option 42 would be rejected by default. + * NOTE: configTime() function call if made AFTER DHCP-client run + * will OVERRIDE aquired NTP server address + */ + sntp_servermode_dhcp(1); // (optional) + + /** + * This will set configured ntp servers and constant TimeZone/daylightOffset + * should be OK if your time zone does not need to adjust daylightOffset twice a year, + * in such a case time adjustment won't be handled automagicaly. + */ + configTime(gmtOffset_sec, daylightOffset_sec, ntpServer1, ntpServer2); + + /** + * A more convenient approach to handle TimeZones with daylightOffset + * would be to specify a environmnet variable with TimeZone definition including daylight adjustmnet rules. + * A list of rules for your zone could be obtained from https://github.com/esp8266/Arduino/blob/master/cores/esp8266/TZ.h + */ + //configTzTime(time_zone, ntpServer1, ntpServer2); + //connect to WiFi Serial.printf("Connecting to %s ", ssid); WiFi.begin(ssid, password); @@ -30,18 +68,11 @@ void setup() Serial.print("."); } Serial.println(" CONNECTED"); - - //init and get the time - configTime(gmtOffset_sec, daylightOffset_sec, ntpServer); - printLocalTime(); - //disconnect WiFi as it's no longer needed - WiFi.disconnect(true); - WiFi.mode(WIFI_OFF); } void loop() { - delay(1000); - printLocalTime(); + delay(5000); + printLocalTime(); // it will take some time to sync time :) } diff --git a/libraries/FFat/examples/FFat_time/FFat_time.ino b/libraries/FFat/examples/FFat_time/FFat_time.ino index 090a3bbc767..475cfea026b 100644 --- a/libraries/FFat/examples/FFat_time/FFat_time.ino +++ b/libraries/FFat/examples/FFat_time/FFat_time.ino @@ -148,10 +148,6 @@ void setup(){ Serial.println("IP address: "); Serial.println(WiFi.localIP()); Serial.println("Contacting Time Server"); - /* - Note: Bundled Arduino lwip supports only ONE ntp server, 2nd and 3rd options are silently ignored - see CONFIG_LWIP_DHCP_MAX_NTP_SERVERS define in ./tools/sdk/esp32/sdkconfig - */ configTime(3600*timezone, daysavetime*3600, "time.nist.gov", "0.pool.ntp.org", "1.pool.ntp.org"); struct tm tmstruct ; delay(2000); diff --git a/libraries/HTTPUpdate/examples/httpUpdateSecure/httpUpdateSecure.ino b/libraries/HTTPUpdate/examples/httpUpdateSecure/httpUpdateSecure.ino index cff8f45cec9..1c85ace02a5 100644 --- a/libraries/HTTPUpdate/examples/httpUpdateSecure/httpUpdateSecure.ino +++ b/libraries/HTTPUpdate/examples/httpUpdateSecure/httpUpdateSecure.ino @@ -17,10 +17,6 @@ WiFiMulti WiFiMulti; // Set time via NTP, as required for x.509 validation void setClock() { - /* - Note: Bundled Arduino lwip supports only ONE ntp server, 2nd and 3rd options are silently ignored - see CONFIG_LWIP_DHCP_MAX_NTP_SERVERS define in ./tools/sdk/esp32/sdkconfig - */ configTime(0, 0, "pool.ntp.org", "time.nist.gov"); // UTC Serial.print(F("Waiting for NTP time sync: ")); diff --git a/libraries/LittleFS/examples/LITTLEFS_time/LITTLEFS_time.ino b/libraries/LittleFS/examples/LITTLEFS_time/LITTLEFS_time.ino index bb5b9c3ae91..038261b1127 100644 --- a/libraries/LittleFS/examples/LITTLEFS_time/LITTLEFS_time.ino +++ b/libraries/LittleFS/examples/LITTLEFS_time/LITTLEFS_time.ino @@ -160,10 +160,6 @@ void setup(){ Serial.println("IP address: "); Serial.println(WiFi.localIP()); Serial.println("Contacting Time Server"); - /* - Note: Bundled Arduino lwip supports only ONE ntp server, 2nd and 3rd options are silently ignored - see CONFIG_LWIP_DHCP_MAX_NTP_SERVERS define in ./tools/sdk/esp32/sdkconfig - */ configTime(3600*timezone, daysavetime*3600, "time.nist.gov", "0.pool.ntp.org", "1.pool.ntp.org"); struct tm tmstruct ; delay(2000); diff --git a/libraries/SD/examples/SD_time/SD_time.ino b/libraries/SD/examples/SD_time/SD_time.ino index ff35d673448..cef80dd600c 100644 --- a/libraries/SD/examples/SD_time/SD_time.ino +++ b/libraries/SD/examples/SD_time/SD_time.ino @@ -164,10 +164,6 @@ void setup(){ Serial.println("IP address: "); Serial.println(WiFi.localIP()); Serial.println("Contacting Time Server"); - /* - Note: Bundled Arduino lwip supports only ONE ntp server, 2nd and 3rd options are silently ignored - see CONFIG_LWIP_DHCP_MAX_NTP_SERVERS define in ./tools/sdk/esp32/sdkconfig - */ configTime(3600*timezone, daysavetime*3600, "time.nist.gov", "0.pool.ntp.org", "1.pool.ntp.org"); struct tm tmstruct ; delay(2000); diff --git a/libraries/SD_MMC/examples/SDMMC_time/SDMMC_time.ino b/libraries/SD_MMC/examples/SDMMC_time/SDMMC_time.ino index c15a1648a3c..4472f8c6c37 100644 --- a/libraries/SD_MMC/examples/SDMMC_time/SDMMC_time.ino +++ b/libraries/SD_MMC/examples/SDMMC_time/SDMMC_time.ino @@ -164,10 +164,6 @@ void setup(){ Serial.println("IP address: "); Serial.println(WiFi.localIP()); Serial.println("Contacting Time Server"); - /* - Note: Bundled Arduino lwip supports only ONE ntp server, 2nd and 3rd options are silently ignored - see CONFIG_LWIP_DHCP_MAX_NTP_SERVERS define in ./tools/sdk/esp32/sdkconfig - */ configTime(3600*timezone, daysavetime*3600, "time.nist.gov", "0.pool.ntp.org", "1.pool.ntp.org"); struct tm tmstruct ; delay(2000); diff --git a/libraries/SPIFFS/examples/SPIFFS_time/SPIFFS_time.ino b/libraries/SPIFFS/examples/SPIFFS_time/SPIFFS_time.ino index 60cd6484dfd..a86759693a9 100644 --- a/libraries/SPIFFS/examples/SPIFFS_time/SPIFFS_time.ino +++ b/libraries/SPIFFS/examples/SPIFFS_time/SPIFFS_time.ino @@ -148,10 +148,6 @@ void setup(){ Serial.println("IP address: "); Serial.println(WiFi.localIP()); Serial.println("Contacting Time Server"); - /* - Note: Bundled Arduino lwip supports only ONE ntp server, 2nd and 3rd options are silently ignored - see CONFIG_LWIP_DHCP_MAX_NTP_SERVERS define in ./tools/sdk/esp32/sdkconfig - */ configTime(3600*timezone, daysavetime*3600, "time.nist.gov", "0.pool.ntp.org", "1.pool.ntp.org"); struct tm tmstruct ; delay(2000); From 1d3ff0520a918acd8bf07632d81ad15170a8e4c2 Mon Sep 17 00:00:00 2001 From: "Limor \"Ladyada\" Fried" Date: Mon, 17 Jan 2022 09:10:53 -0500 Subject: [PATCH 06/14] Add variantInit setups for adafruit boards (#6076) --- .../adafruit_feather_esp32s2/pins_arduino.h | 1 + variants/adafruit_feather_esp32s2/variant.cpp | 45 ++++++++++++++ .../variant.cpp | 37 ++++++++++++ .../adafruit_feather_esp32s2_tft/variant.cpp | 37 ++++++++++++ .../adafruit_funhouse_esp32s2/variant.cpp | 37 ++++++++++++ .../adafruit_magtag29_esp32s2/variant.cpp | 37 ++++++++++++ variants/adafruit_metro_esp32s2/variant.cpp | 37 ++++++++++++ variants/adafruit_qtpy_esp32/pins_arduino.h | 60 +++++++++++++++++++ variants/adafruit_qtpy_esp32s2/variant.cpp | 40 +++++++++++++ 9 files changed, 331 insertions(+) create mode 100644 variants/adafruit_feather_esp32s2/variant.cpp create mode 100644 variants/adafruit_feather_esp32s2_reversetft/variant.cpp create mode 100644 variants/adafruit_feather_esp32s2_tft/variant.cpp create mode 100644 variants/adafruit_funhouse_esp32s2/variant.cpp create mode 100644 variants/adafruit_magtag29_esp32s2/variant.cpp create mode 100644 variants/adafruit_metro_esp32s2/variant.cpp create mode 100644 variants/adafruit_qtpy_esp32/pins_arduino.h create mode 100644 variants/adafruit_qtpy_esp32s2/variant.cpp diff --git a/variants/adafruit_feather_esp32s2/pins_arduino.h b/variants/adafruit_feather_esp32s2/pins_arduino.h index 88e22cd1b64..4e5e13de6e2 100644 --- a/variants/adafruit_feather_esp32s2/pins_arduino.h +++ b/variants/adafruit_feather_esp32s2/pins_arduino.h @@ -25,6 +25,7 @@ #define NEOPIXEL_NUM 1 // number of neopixels #define NEOPIXEL_POWER 21 // power pin #define NEOPIXEL_POWER_ON HIGH // power pin state when on +#define I2C_POWER 7 // I2C power pin static const uint8_t SDA = 3; static const uint8_t SCL = 4; diff --git a/variants/adafruit_feather_esp32s2/variant.cpp b/variants/adafruit_feather_esp32s2/variant.cpp new file mode 100644 index 00000000000..97e26fb9c60 --- /dev/null +++ b/variants/adafruit_feather_esp32s2/variant.cpp @@ -0,0 +1,45 @@ +/* + * The MIT License (MIT) + * + * Copyright (c) 2021 Ha Thach (tinyusb.org) for Adafruit Industries + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + + +#include "esp32-hal-gpio.h" +#include "pins_arduino.h" + +extern "C" { + +// Initialize variant/board, called before setup() +void initVariant(void) +{ + // This board has a power control pin, and we must set it to output and high + // in order to enable the NeoPixels. + pinMode(NEOPIXEL_POWER, OUTPUT); + digitalWrite(NEOPIXEL_POWER, HIGH); + + // This board has a power control pin, and we must set it to output and low + // in order to enable the I2C port. + pinMode(PIN_I2C_POWER, OUTPUT); + digitalWrite(PIN_I2C_POWER, LOW); +} + +} diff --git a/variants/adafruit_feather_esp32s2_reversetft/variant.cpp b/variants/adafruit_feather_esp32s2_reversetft/variant.cpp new file mode 100644 index 00000000000..750f5f72b02 --- /dev/null +++ b/variants/adafruit_feather_esp32s2_reversetft/variant.cpp @@ -0,0 +1,37 @@ +/* + * The MIT License (MIT) + * + * Copyright (c) 2021 Ha Thach (tinyusb.org) for Adafruit Industries + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + + +#include "esp32-hal-gpio.h" +#include "pins_arduino.h" + +extern "C" { + +// Initialize variant/board, called before setup() +void initVariant(void) +{ + +} + +} diff --git a/variants/adafruit_feather_esp32s2_tft/variant.cpp b/variants/adafruit_feather_esp32s2_tft/variant.cpp new file mode 100644 index 00000000000..750f5f72b02 --- /dev/null +++ b/variants/adafruit_feather_esp32s2_tft/variant.cpp @@ -0,0 +1,37 @@ +/* + * The MIT License (MIT) + * + * Copyright (c) 2021 Ha Thach (tinyusb.org) for Adafruit Industries + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + + +#include "esp32-hal-gpio.h" +#include "pins_arduino.h" + +extern "C" { + +// Initialize variant/board, called before setup() +void initVariant(void) +{ + +} + +} diff --git a/variants/adafruit_funhouse_esp32s2/variant.cpp b/variants/adafruit_funhouse_esp32s2/variant.cpp new file mode 100644 index 00000000000..750f5f72b02 --- /dev/null +++ b/variants/adafruit_funhouse_esp32s2/variant.cpp @@ -0,0 +1,37 @@ +/* + * The MIT License (MIT) + * + * Copyright (c) 2021 Ha Thach (tinyusb.org) for Adafruit Industries + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + + +#include "esp32-hal-gpio.h" +#include "pins_arduino.h" + +extern "C" { + +// Initialize variant/board, called before setup() +void initVariant(void) +{ + +} + +} diff --git a/variants/adafruit_magtag29_esp32s2/variant.cpp b/variants/adafruit_magtag29_esp32s2/variant.cpp new file mode 100644 index 00000000000..750f5f72b02 --- /dev/null +++ b/variants/adafruit_magtag29_esp32s2/variant.cpp @@ -0,0 +1,37 @@ +/* + * The MIT License (MIT) + * + * Copyright (c) 2021 Ha Thach (tinyusb.org) for Adafruit Industries + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + + +#include "esp32-hal-gpio.h" +#include "pins_arduino.h" + +extern "C" { + +// Initialize variant/board, called before setup() +void initVariant(void) +{ + +} + +} diff --git a/variants/adafruit_metro_esp32s2/variant.cpp b/variants/adafruit_metro_esp32s2/variant.cpp new file mode 100644 index 00000000000..750f5f72b02 --- /dev/null +++ b/variants/adafruit_metro_esp32s2/variant.cpp @@ -0,0 +1,37 @@ +/* + * The MIT License (MIT) + * + * Copyright (c) 2021 Ha Thach (tinyusb.org) for Adafruit Industries + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + + +#include "esp32-hal-gpio.h" +#include "pins_arduino.h" + +extern "C" { + +// Initialize variant/board, called before setup() +void initVariant(void) +{ + +} + +} diff --git a/variants/adafruit_qtpy_esp32/pins_arduino.h b/variants/adafruit_qtpy_esp32/pins_arduino.h new file mode 100644 index 00000000000..72a5606c5d6 --- /dev/null +++ b/variants/adafruit_qtpy_esp32/pins_arduino.h @@ -0,0 +1,60 @@ +#ifndef Pins_Arduino_h +#define Pins_Arduino_h + +#include + +#define EXTERNAL_NUM_INTERRUPTS 16 +#define NUM_DIGITAL_PINS 40 +#define NUM_ANALOG_INPUTS 16 + +#define analogInputToDigitalPin(p) (((p)<20)?(esp32_adc2gpio[(p)]):-1) +#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) +#define digitalPinHasPWM(p) (p < 34) + +static const uint8_t NEOPIXEL = 5; +static const uint8_t NEOPIXEL_POWER = 8; + +static const uint8_t TX = 32; +static const uint8_t RX = 7; + +static const uint8_t TX1 = 32; +static const uint8_t RX1 = 7; + +static const uint8_t SDA = 25; +static const uint8_t SCL = 33; + +static const uint8_t SDA1 = 22; +static const uint8_t SCL1 = 19; + +static const uint8_t SS = 27; +static const uint8_t MOSI = 13; +static const uint8_t MISO = 12; +static const uint8_t SCK = 14; + +static const uint8_t A0 = 15; +static const uint8_t A1 = 4; +static const uint8_t A2 = 27; +static const uint8_t A3 = 26; +static const uint8_t A4 = 25; +static const uint8_t A5 = 33; +static const uint8_t A6 = 32; +static const uint8_t A7 = 7; +static const uint8_t A8 = 14; +static const uint8_t A9 = 12; +static const uint8_t A10 = 13; + +static const uint8_t SWITCH = 0; + +static const uint8_t T0 = 4; +static const uint8_t T3 = 15; +static const uint8_t T4 = 13; +static const uint8_t T5 = 12; +static const uint8_t T6 = 14; +static const uint8_t T7 = 27; +static const uint8_t T8 = 33; +static const uint8_t T9 = 32; + +static const uint8_t DAC1 = 25; +static const uint8_t DAC2 = 26; + +#endif /* Pins_Arduino_h */ diff --git a/variants/adafruit_qtpy_esp32s2/variant.cpp b/variants/adafruit_qtpy_esp32s2/variant.cpp new file mode 100644 index 00000000000..726ec8fa483 --- /dev/null +++ b/variants/adafruit_qtpy_esp32s2/variant.cpp @@ -0,0 +1,40 @@ +/* + * The MIT License (MIT) + * + * Copyright (c) 2021 Ha Thach (tinyusb.org) for Adafruit Industries + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + + +#include "esp32-hal-gpio.h" +#include "pins_arduino.h" + +extern "C" { + +// Initialize variant/board, called before setup() +void initVariant(void) +{ + // This board has a power control pin, and we must set it to output and high + // in order to enable the NeoPixels. + pinMode(NEOPIXEL_POWER, OUTPUT); + digitalWrite(NEOPIXEL_POWER, HIGH); +} + +} From e84e9c153e6cfea92f8e6eca8c3003b0028e48e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juraj=20Andr=C3=A1ssy?= Date: Mon, 17 Jan 2022 15:12:22 +0100 Subject: [PATCH 07/14] Print.flush() - Arduino API conformance (#6084) --- cores/esp32/Print.h | 3 +++ cores/esp32/Stream.h | 1 - 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/cores/esp32/Print.h b/cores/esp32/Print.h index 4493d4f819f..7aa1a2d00a2 100644 --- a/cores/esp32/Print.h +++ b/cores/esp32/Print.h @@ -108,6 +108,9 @@ class Print size_t println(const Printable&); size_t println(struct tm * timeinfo, const char * format = NULL); size_t println(void); + + virtual void flush() { /* Empty implementation for backward compatibility */ } + }; #endif diff --git a/cores/esp32/Stream.h b/cores/esp32/Stream.h index 2debee7e4f9..8df8226d730 100644 --- a/cores/esp32/Stream.h +++ b/cores/esp32/Stream.h @@ -48,7 +48,6 @@ class Stream: public Print virtual int available() = 0; virtual int read() = 0; virtual int peek() = 0; - virtual void flush() = 0; Stream():_startMillis(0) { From 1ac3aefa611d21890d25500608ea327db9c30b05 Mon Sep 17 00:00:00 2001 From: Darek7D Date: Mon, 17 Jan 2022 15:14:09 +0100 Subject: [PATCH 08/14] Add KSZ8041 support (#6087) --- libraries/Ethernet/src/ETH.cpp | 7 +++++++ libraries/Ethernet/src/ETH.h | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/libraries/Ethernet/src/ETH.cpp b/libraries/Ethernet/src/ETH.cpp index 851eb846170..a08cc3340d8 100644 --- a/libraries/Ethernet/src/ETH.cpp +++ b/libraries/Ethernet/src/ETH.cpp @@ -281,6 +281,13 @@ bool ETHClass::begin(uint8_t phy_addr, int power, int mdc, int mdio, eth_phy_typ eth_phy = esp_eth_phy_new_dm9051(&phy_config); break; #endif + case ETH_PHY_KSZ8041: +#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(4,4,0) + eth_phy = esp_eth_phy_new_ksz8041(&phy_config); +#else + log_e("unsupported ethernet type 'ETH_PHY_KSZ8041'"); +#endif + break; case ETH_PHY_KSZ8081: #if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(4,4,0) eth_phy = esp_eth_phy_new_ksz8081(&phy_config); diff --git a/libraries/Ethernet/src/ETH.h b/libraries/Ethernet/src/ETH.h index 918cd357d94..8b87d4758d5 100644 --- a/libraries/Ethernet/src/ETH.h +++ b/libraries/Ethernet/src/ETH.h @@ -53,7 +53,7 @@ typedef enum { ETH_CLOCK_GPIO0_IN, ETH_CLOCK_GPIO0_OUT, ETH_CLOCK_GPIO16_OUT, ETH_CLOCK_GPIO17_OUT } eth_clock_mode_t; #endif -typedef enum { ETH_PHY_LAN8720, ETH_PHY_TLK110, ETH_PHY_RTL8201, ETH_PHY_DP83848, ETH_PHY_DM9051, ETH_PHY_KSZ8081, ETH_PHY_MAX } eth_phy_type_t; +typedef enum { ETH_PHY_LAN8720, ETH_PHY_TLK110, ETH_PHY_RTL8201, ETH_PHY_DP83848, ETH_PHY_DM9051, ETH_PHY_KSZ8041, ETH_PHY_KSZ8081, ETH_PHY_MAX } eth_phy_type_t; #define ETH_PHY_IP101 ETH_PHY_TLK110 class ETHClass { From 702db5062773b08680352bbc012d14f9e630fd62 Mon Sep 17 00:00:00 2001 From: P-R-O-C-H-Y <90197375+P-R-O-C-H-Y@users.noreply.github.com> Date: Mon, 17 Jan 2022 15:15:16 +0100 Subject: [PATCH 09/14] BUGFIX - Sd check status (#6103) * Edit sd_diskio to check card status * Bugfix of ff_sd_status --- libraries/SD/src/sd_diskio.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/SD/src/sd_diskio.cpp b/libraries/SD/src/sd_diskio.cpp index e69050a74f1..cf85f67d5b1 100644 --- a/libraries/SD/src/sd_diskio.cpp +++ b/libraries/SD/src/sd_diskio.cpp @@ -609,7 +609,7 @@ DSTATUS ff_sd_initialize(uint8_t pdrv) DSTATUS ff_sd_status(uint8_t pdrv) { - if(sdCommand(pdrv, SEND_STATUS, 0, NULL) == 0xFF) + if(sdTransaction(pdrv, SEND_STATUS, 0, NULL)) { log_e("Check status failed"); return STA_NOINIT; From 48a722aae856938d0145240759f6a203bd7a6d2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vojt=C4=9Bch=20Barto=C5=A1ka?= <76958047+VojtechBartoska@users.noreply.github.com> Date: Mon, 17 Jan 2022 15:17:18 +0100 Subject: [PATCH 10/14] Versions and feature Request Template updates (#6096) * Update of versions and Feature request template * Update of versions and Feature request template * Formatting --- .github/ISSUE_TEMPLATE/Feature-request.yml | 8 ++++++++ .github/ISSUE_TEMPLATE/Issue-report.yml | 1 + 2 files changed, 9 insertions(+) diff --git a/.github/ISSUE_TEMPLATE/Feature-request.yml b/.github/ISSUE_TEMPLATE/Feature-request.yml index d50524433da..0788288036c 100644 --- a/.github/ISSUE_TEMPLATE/Feature-request.yml +++ b/.github/ISSUE_TEMPLATE/Feature-request.yml @@ -52,3 +52,11 @@ body: label: Additional context description: Please add any other context or screenshots about the feature request here. placeholder: ex. This would work only when ... + - type: checkboxes + id: confirmation + attributes: + label: I have checked existing list of Feature requests and the Contribution Guide + description: You agree to check all the resources above before opening a new Feature request. + options: + - label: I confirm I have checked existing list of Feature requests and Contribution Guide. + required: true diff --git a/.github/ISSUE_TEMPLATE/Issue-report.yml b/.github/ISSUE_TEMPLATE/Issue-report.yml index f355f26628a..4b0465bb994 100644 --- a/.github/ISSUE_TEMPLATE/Issue-report.yml +++ b/.github/ISSUE_TEMPLATE/Issue-report.yml @@ -40,6 +40,7 @@ body: description: What version of Arduino ESP32 are you running? If possible, consider updating to the latest version. options: - latest master + - v2.0.2 - v2.0.1 - v2.0.0 - v1.0.6 From 460af2e1a5ba4de3a1a6088e192a326127ea3749 Mon Sep 17 00:00:00 2001 From: mrengineer7777 <44048235+mrengineer7777@users.noreply.github.com> Date: Mon, 17 Jan 2022 08:29:50 -0600 Subject: [PATCH 11/14] Fix I2C Slave Compile (#6108) I2C Slave currently doesn't compile for projects where Arduino is an IDF component. This adds missing conditionals. Co-authored-by: Me No Dev --- cores/esp32/esp32-hal-i2c-slave.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cores/esp32/esp32-hal-i2c-slave.c b/cores/esp32/esp32-hal-i2c-slave.c index 49da0c82b0d..20686c96420 100644 --- a/cores/esp32/esp32-hal-i2c-slave.c +++ b/cores/esp32/esp32-hal-i2c-slave.c @@ -360,10 +360,12 @@ esp_err_t i2cSlaveDeinit(uint8_t num){ } i2c_slave_struct_t * i2c = &_i2c_bus_array[num]; +#if !CONFIG_DISABLE_HAL_LOCKS if(!i2c->lock){ log_e("Lock is not initialized! Did you call i2c_slave_init()?"); return ESP_ERR_NO_MEM; } +#endif I2C_SLAVE_MUTEX_LOCK(); i2c_slave_free_resources(i2c); I2C_SLAVE_MUTEX_UNLOCK(); @@ -377,10 +379,12 @@ size_t i2cSlaveWrite(uint8_t num, const uint8_t *buf, uint32_t len, uint32_t tim } size_t to_queue = 0, to_fifo = 0; i2c_slave_struct_t * i2c = &_i2c_bus_array[num]; +#if !CONFIG_DISABLE_HAL_LOCKS if(!i2c->lock){ log_e("Lock is not initialized! Did you call i2c_slave_init()?"); return ESP_ERR_NO_MEM; } +#endif if(!i2c->tx_queue){ return 0; } From a0beb81a4c33d49b3ef2b6c505a24a490cd35298 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eckhard=20V=C3=B6llm?= <34288016+iltis42@users.noreply.github.com> Date: Mon, 17 Jan 2022 15:31:58 +0100 Subject: [PATCH 12/14] Consistently change device index to singed integer in BluetoothSerial lib (#6109) * change parameter to signed int As of wrong paramater, the following problem existed, that will be fixed now with this change. BTScanResultsSet.cpp:67:8: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits] if (i < 0) * Change parameter and variable to int As of wrong paramater, the following problem existed, that will be fixed now with this change. BTScanResultsSet.cpp:67:8: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits] if (i < 0) --- libraries/BluetoothSerial/src/BTScan.h | 6 +++--- libraries/BluetoothSerial/src/BTScanResultsSet.cpp | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/libraries/BluetoothSerial/src/BTScan.h b/libraries/BluetoothSerial/src/BTScan.h index 3650d41625b..2851fdd3626 100644 --- a/libraries/BluetoothSerial/src/BTScan.h +++ b/libraries/BluetoothSerial/src/BTScan.h @@ -24,14 +24,14 @@ class BTScanResults { virtual void dump(Print *print = nullptr); virtual int getCount(); - virtual BTAdvertisedDevice* getDevice(uint32_t i); + virtual BTAdvertisedDevice* getDevice(int i); }; class BTScanResultsSet : public BTScanResults { public: void dump(Print *print = nullptr); int getCount(); - BTAdvertisedDevice* getDevice(uint32_t i); + BTAdvertisedDevice* getDevice(int i); bool add(BTAdvertisedDeviceSet advertisedDevice, bool unique = true); void clear(); @@ -39,4 +39,4 @@ class BTScanResultsSet : public BTScanResults { std::map m_vectorAdvertisedDevices; }; -#endif \ No newline at end of file +#endif diff --git a/libraries/BluetoothSerial/src/BTScanResultsSet.cpp b/libraries/BluetoothSerial/src/BTScanResultsSet.cpp index 79d23e463cd..e347228c848 100644 --- a/libraries/BluetoothSerial/src/BTScanResultsSet.cpp +++ b/libraries/BluetoothSerial/src/BTScanResultsSet.cpp @@ -63,11 +63,11 @@ int BTScanResultsSet::getCount() { * @param [in] i The index of the device. * @return The device at the specified index. */ -BTAdvertisedDevice* BTScanResultsSet::getDevice(uint32_t i) { +BTAdvertisedDevice* BTScanResultsSet::getDevice(int i) { if (i < 0) return nullptr; - uint32_t x = 0; + int x = 0; BTAdvertisedDeviceSet* pDev = &m_vectorAdvertisedDevices.begin()->second; for (auto it = m_vectorAdvertisedDevices.begin(); it != m_vectorAdvertisedDevices.end(); it++) { pDev = &it->second; @@ -92,4 +92,4 @@ bool BTScanResultsSet::add(BTAdvertisedDeviceSet advertisedDevice, bool unique) return false; } -#endif \ No newline at end of file +#endif From 41d972564c1ae12cb765ae9be2d35195e29ff35d Mon Sep 17 00:00:00 2001 From: Shawn A <807787+tablatronix@users.noreply.github.com> Date: Mon, 17 Jan 2022 08:39:16 -0600 Subject: [PATCH 13/14] Proposed fix for #2501 (#6113) Reliability fix for autoReconnect when assoc_fail, autoReconnect did not work before for these failures. Changes behavior of WIFI_REASON_ASSOC_FAIL event when autoReconnect is set, removes WIFI_REASON_ASSOC_FAIL/WL_CONNECT_FAILED so retry waitforconnectresult loop stays active for the retry, was not working before. --- libraries/WiFi/src/WiFiGeneric.cpp | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/libraries/WiFi/src/WiFiGeneric.cpp b/libraries/WiFi/src/WiFiGeneric.cpp index 838c23bf5cd..3bcaececc7a 100644 --- a/libraries/WiFi/src/WiFiGeneric.cpp +++ b/libraries/WiFi/src/WiFiGeneric.cpp @@ -852,7 +852,7 @@ esp_err_t WiFiGenericClass::_eventCallback(arduino_event_t *event) log_w("Reason: %u - %s", reason, reason2str(reason)); if(reason == WIFI_REASON_NO_AP_FOUND) { WiFiSTAClass::_setStatus(WL_NO_SSID_AVAIL); - } else if(reason == WIFI_REASON_AUTH_FAIL || reason == WIFI_REASON_ASSOC_FAIL) { + } else if(reason == WIFI_REASON_AUTH_FAIL) { WiFiSTAClass::_setStatus(WL_CONNECT_FAILED); } else if(reason == WIFI_REASON_BEACON_TIMEOUT || reason == WIFI_REASON_HANDSHAKE_TIMEOUT) { WiFiSTAClass::_setStatus(WL_CONNECTION_LOST); @@ -862,12 +862,17 @@ esp_err_t WiFiGenericClass::_eventCallback(arduino_event_t *event) WiFiSTAClass::_setStatus(WL_DISCONNECTED); } clearStatusBits(STA_CONNECTED_BIT | STA_HAS_IP_BIT | STA_HAS_IP6_BIT); - if(((reason == WIFI_REASON_AUTH_EXPIRE) || - (reason >= WIFI_REASON_BEACON_TIMEOUT && reason != WIFI_REASON_AUTH_FAIL)) && - WiFi.getAutoReconnect()) - { - WiFi.disconnect(); - WiFi.begin(); + if(WiFi.getAutoReconnect()){ + if((reason == WIFI_REASON_AUTH_EXPIRE) || + (reason >= WIFI_REASON_BEACON_TIMEOUT && reason != WIFI_REASON_AUTH_FAIL)) + { + log_d("WiFi AutoReconnect Running"); + WiFi.disconnect(); + WiFi.begin(); + } + } + else if (reason == WIFI_REASON_ASSOC_FAIL){ + WiFiSTAClass::_setStatus(WL_CONNECT_FAILED); } } else if(event->event_id == ARDUINO_EVENT_WIFI_STA_GOT_IP) { #if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_DEBUG From c6e30e0027ba019ef07d4189cfb2e689935f39db Mon Sep 17 00:00:00 2001 From: Gordon Christopher Weeks <627684+gcweeks@users.noreply.github.com> Date: Mon, 17 Jan 2022 06:40:27 -0800 Subject: [PATCH 14/14] Add Core Debug Level option to Tools menu for all boards in boards.txt (#6110) --- boards.txt | 454 ++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 418 insertions(+), 36 deletions(-) mode change 100644 => 100755 boards.txt diff --git a/boards.txt b/boards.txt old mode 100644 new mode 100755 index 2a74cdf751c..0edba99acea --- a/boards.txt +++ b/boards.txt @@ -878,6 +878,7 @@ esp32wroverkit.menu.DebugLevel.verbose=Verbose esp32wroverkit.menu.DebugLevel.verbose.build.code_debug=5 ############################################################## + tinypico.name=UM TinyPICO tinypico.upload.tool=esptool_py @@ -962,6 +963,7 @@ tinypico.menu.DebugLevel.verbose=Verbose tinypico.menu.DebugLevel.verbose.build.code_debug=5 ############################################################## + feathers2.name=UM FeatherS2 feathers2.vid.0=0x239A feathers2.pid.0=0x80AB @@ -1101,6 +1103,7 @@ feathers2.menu.DebugLevel.verbose=Verbose feathers2.menu.DebugLevel.verbose.build.code_debug=5 ############################################################## + feathers2neo.name=UM FeatherS2 Neo feathers2neo.vid.0=0x303a feathers2neo.pid.0=0x80B4 @@ -1226,6 +1229,7 @@ feathers2neo.menu.DebugLevel.verbose=Verbose feathers2neo.menu.DebugLevel.verbose.build.code_debug=5 ############################################################## + tinys2.name=UM TinyS2 tinys2.vid.0=0x303a tinys2.pid.0=0x8001 @@ -1351,6 +1355,7 @@ tinys2.menu.DebugLevel.verbose=Verbose tinys2.menu.DebugLevel.verbose.build.code_debug=5 ############################################################## + S_ODI_Ultra.name=S.ODI Ultra v1 S_ODI_Ultra.upload.tool=esptool_py @@ -1550,6 +1555,7 @@ micros2.menu.DebugLevel.verbose=Verbose micros2.menu.DebugLevel.verbose.build.code_debug=5 ############################################################## + magicbit.name=MagicBit magicbit.upload.tool=esptool_py @@ -1588,7 +1594,22 @@ magicbit.menu.UploadSpeed.921600=921600 magicbit.menu.UploadSpeed.921600.upload.speed=921600 magicbit.menu.UploadSpeed.115200=115200 magicbit.menu.UploadSpeed.115200.upload.speed=115200 + +magicbit.menu.DebugLevel.none=None +magicbit.menu.DebugLevel.none.build.code_debug=0 +magicbit.menu.DebugLevel.error=Error +magicbit.menu.DebugLevel.error.build.code_debug=1 +magicbit.menu.DebugLevel.warn=Warn +magicbit.menu.DebugLevel.warn.build.code_debug=2 +magicbit.menu.DebugLevel.info=Info +magicbit.menu.DebugLevel.info.build.code_debug=3 +magicbit.menu.DebugLevel.debug=Debug +magicbit.menu.DebugLevel.debug.build.code_debug=4 +magicbit.menu.DebugLevel.verbose=Verbose +magicbit.menu.DebugLevel.verbose.build.code_debug=5 + ############################################################## + turta_iot_node.name=Turta IoT Node turta_iot_node.upload.tool=esptool_py @@ -1636,7 +1657,6 @@ turta_iot_node.menu.DebugLevel.verbose.build.code_debug=5 ############################################################## - ttgo-lora32.name=TTGO LoRa32-OLED ttgo-lora32.upload.tool=esptool_py @@ -1706,7 +1726,6 @@ ttgo-lora32.menu.DebugLevel.debug.build.code_debug=4 ttgo-lora32.menu.DebugLevel.verbose=Verbose ttgo-lora32.menu.DebugLevel.verbose.build.code_debug=5 - ############################################################## ttgo-t1.name=TTGO T1 @@ -2130,7 +2149,6 @@ ttgo-t-oi-plus.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (1.9MB APP with OT ttgo-t-oi-plus.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs ttgo-t-oi-plus.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080 - ttgo-t-oi-plus.menu.CPUFreq.160=160MHz (WiFi) ttgo-t-oi-plus.menu.CPUFreq.160.build.f_cpu=160000000L ttgo-t-oi-plus.menu.CPUFreq.80=80MHz (WiFi) @@ -2788,6 +2806,19 @@ sparkfun_lora_gateway_1-channel.menu.UploadSpeed.460800.upload.speed=460800 sparkfun_lora_gateway_1-channel.menu.UploadSpeed.512000.windows=512000 sparkfun_lora_gateway_1-channel.menu.UploadSpeed.512000.upload.speed=512000 +sparkfun_lora_gateway_1-channel.menu.DebugLevel.none=None +sparkfun_lora_gateway_1-channel.menu.DebugLevel.none.build.code_debug=0 +sparkfun_lora_gateway_1-channel.menu.DebugLevel.error=Error +sparkfun_lora_gateway_1-channel.menu.DebugLevel.error.build.code_debug=1 +sparkfun_lora_gateway_1-channel.menu.DebugLevel.warn=Warn +sparkfun_lora_gateway_1-channel.menu.DebugLevel.warn.build.code_debug=2 +sparkfun_lora_gateway_1-channel.menu.DebugLevel.info=Info +sparkfun_lora_gateway_1-channel.menu.DebugLevel.info.build.code_debug=3 +sparkfun_lora_gateway_1-channel.menu.DebugLevel.debug=Debug +sparkfun_lora_gateway_1-channel.menu.DebugLevel.debug.build.code_debug=4 +sparkfun_lora_gateway_1-channel.menu.DebugLevel.verbose=Verbose +sparkfun_lora_gateway_1-channel.menu.DebugLevel.verbose.build.code_debug=5 + ############################################################## nina_w10.name=u-blox NINA-W10 series (ESP32) @@ -2831,6 +2862,19 @@ nina_w10.menu.UploadSpeed.460800.upload.speed=460800 nina_w10.menu.UploadSpeed.512000.windows=512000 nina_w10.menu.UploadSpeed.512000.upload.speed=512000 +nina_w10.menu.DebugLevel.none=None +nina_w10.menu.DebugLevel.none.build.code_debug=0 +nina_w10.menu.DebugLevel.error=Error +nina_w10.menu.DebugLevel.error.build.code_debug=1 +nina_w10.menu.DebugLevel.warn=Warn +nina_w10.menu.DebugLevel.warn.build.code_debug=2 +nina_w10.menu.DebugLevel.info=Info +nina_w10.menu.DebugLevel.info.build.code_debug=3 +nina_w10.menu.DebugLevel.debug=Debug +nina_w10.menu.DebugLevel.debug.build.code_debug=4 +nina_w10.menu.DebugLevel.verbose=Verbose +nina_w10.menu.DebugLevel.verbose.build.code_debug=5 + ############################################################## widora-air.name=Widora AIR @@ -2879,6 +2923,19 @@ widora-air.menu.UploadSpeed.460800.upload.speed=460800 widora-air.menu.UploadSpeed.512000.windows=512000 widora-air.menu.UploadSpeed.512000.upload.speed=512000 +widora-air.menu.DebugLevel.none=None +widora-air.menu.DebugLevel.none.build.code_debug=0 +widora-air.menu.DebugLevel.error=Error +widora-air.menu.DebugLevel.error.build.code_debug=1 +widora-air.menu.DebugLevel.warn=Warn +widora-air.menu.DebugLevel.warn.build.code_debug=2 +widora-air.menu.DebugLevel.info=Info +widora-air.menu.DebugLevel.info.build.code_debug=3 +widora-air.menu.DebugLevel.debug=Debug +widora-air.menu.DebugLevel.debug.build.code_debug=4 +widora-air.menu.DebugLevel.verbose=Verbose +widora-air.menu.DebugLevel.verbose.build.code_debug=5 + ############################################################## esp320.name=Electronic SweetPeas - ESP320 @@ -2927,6 +2984,19 @@ esp320.menu.UploadSpeed.460800.upload.speed=460800 esp320.menu.UploadSpeed.512000.windows=512000 esp320.menu.UploadSpeed.512000.upload.speed=512000 +esp320.menu.DebugLevel.none=None +esp320.menu.DebugLevel.none.build.code_debug=0 +esp320.menu.DebugLevel.error=Error +esp320.menu.DebugLevel.error.build.code_debug=1 +esp320.menu.DebugLevel.warn=Warn +esp320.menu.DebugLevel.warn.build.code_debug=2 +esp320.menu.DebugLevel.info=Info +esp320.menu.DebugLevel.info.build.code_debug=3 +esp320.menu.DebugLevel.debug=Debug +esp320.menu.DebugLevel.debug.build.code_debug=4 +esp320.menu.DebugLevel.verbose=Verbose +esp320.menu.DebugLevel.verbose.build.code_debug=5 + ############################################################## nano32.name=Nano32 @@ -2975,6 +3045,19 @@ nano32.menu.UploadSpeed.460800.upload.speed=460800 nano32.menu.UploadSpeed.512000.windows=512000 nano32.menu.UploadSpeed.512000.upload.speed=512000 +nano32.menu.DebugLevel.none=None +nano32.menu.DebugLevel.none.build.code_debug=0 +nano32.menu.DebugLevel.error=Error +nano32.menu.DebugLevel.error.build.code_debug=1 +nano32.menu.DebugLevel.warn=Warn +nano32.menu.DebugLevel.warn.build.code_debug=2 +nano32.menu.DebugLevel.info=Info +nano32.menu.DebugLevel.info.build.code_debug=3 +nano32.menu.DebugLevel.debug=Debug +nano32.menu.DebugLevel.debug.build.code_debug=4 +nano32.menu.DebugLevel.verbose=Verbose +nano32.menu.DebugLevel.verbose.build.code_debug=5 + ############################################################## d32.name=LOLIN D32 @@ -3015,15 +3098,11 @@ d32.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (Large APPS with OTA) d32.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs d32.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080 - - d32.menu.FlashFreq.80=80MHz d32.menu.FlashFreq.80.build.flash_freq=80m d32.menu.FlashFreq.40=40MHz d32.menu.FlashFreq.40.build.flash_freq=40m - - d32.menu.UploadSpeed.921600=921600 d32.menu.UploadSpeed.921600.upload.speed=921600 d32.menu.UploadSpeed.115200=115200 @@ -3099,15 +3178,11 @@ d32_pro.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (Large APPS with OTA) d32_pro.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs d32_pro.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080 - - d32_pro.menu.FlashFreq.80=80MHz d32_pro.menu.FlashFreq.80.build.flash_freq=80m d32_pro.menu.FlashFreq.40=40MHz d32_pro.menu.FlashFreq.40.build.flash_freq=40m - - d32_pro.menu.UploadSpeed.921600=921600 d32_pro.menu.UploadSpeed.921600.upload.speed=921600 d32_pro.menu.UploadSpeed.115200=115200 @@ -3212,6 +3287,19 @@ lolin32.menu.UploadSpeed.460800.upload.speed=460800 lolin32.menu.UploadSpeed.512000.windows=512000 lolin32.menu.UploadSpeed.512000.upload.speed=512000 +lolin32.menu.DebugLevel.none=None +lolin32.menu.DebugLevel.none.build.code_debug=0 +lolin32.menu.DebugLevel.error=Error +lolin32.menu.DebugLevel.error.build.code_debug=1 +lolin32.menu.DebugLevel.warn=Warn +lolin32.menu.DebugLevel.warn.build.code_debug=2 +lolin32.menu.DebugLevel.info=Info +lolin32.menu.DebugLevel.info.build.code_debug=3 +lolin32.menu.DebugLevel.debug=Debug +lolin32.menu.DebugLevel.debug.build.code_debug=4 +lolin32.menu.DebugLevel.verbose=Verbose +lolin32.menu.DebugLevel.verbose.build.code_debug=5 + ############################################################## lolin32-lite.name=WEMOS LOLIN32 Lite @@ -3287,6 +3375,19 @@ lolin32-lite.menu.UploadSpeed.460800.upload.speed=460800 lolin32-lite.menu.UploadSpeed.512000.windows=512000 lolin32-lite.menu.UploadSpeed.512000.upload.speed=512000 +lolin32-lite.menu.DebugLevel.none=None +lolin32-lite.menu.DebugLevel.none.build.code_debug=0 +lolin32-lite.menu.DebugLevel.error=Error +lolin32-lite.menu.DebugLevel.error.build.code_debug=1 +lolin32-lite.menu.DebugLevel.warn=Warn +lolin32-lite.menu.DebugLevel.warn.build.code_debug=2 +lolin32-lite.menu.DebugLevel.info=Info +lolin32-lite.menu.DebugLevel.info.build.code_debug=3 +lolin32-lite.menu.DebugLevel.debug=Debug +lolin32-lite.menu.DebugLevel.debug.build.code_debug=4 +lolin32-lite.menu.DebugLevel.verbose=Verbose +lolin32-lite.menu.DebugLevel.verbose.build.code_debug=5 + ############################################################## pocket_32.name=Dongsen Tech Pocket 32 @@ -3335,6 +3436,19 @@ pocket_32.menu.UploadSpeed.460800.upload.speed=460800 pocket_32.menu.UploadSpeed.512000.windows=512000 pocket_32.menu.UploadSpeed.512000.upload.speed=512000 +pocket_32.menu.DebugLevel.none=None +pocket_32.menu.DebugLevel.none.build.code_debug=0 +pocket_32.menu.DebugLevel.error=Error +pocket_32.menu.DebugLevel.error.build.code_debug=1 +pocket_32.menu.DebugLevel.warn=Warn +pocket_32.menu.DebugLevel.warn.build.code_debug=2 +pocket_32.menu.DebugLevel.info=Info +pocket_32.menu.DebugLevel.info.build.code_debug=3 +pocket_32.menu.DebugLevel.debug=Debug +pocket_32.menu.DebugLevel.debug.build.code_debug=4 +pocket_32.menu.DebugLevel.verbose=Verbose +pocket_32.menu.DebugLevel.verbose.build.code_debug=5 + ############################################################## WeMosBat.name=WeMos WiFi&Bluetooth Battery @@ -3444,6 +3558,19 @@ espea32.menu.UploadSpeed.460800.upload.speed=460800 espea32.menu.UploadSpeed.512000.windows=512000 espea32.menu.UploadSpeed.512000.upload.speed=512000 +espea32.menu.DebugLevel.none=None +espea32.menu.DebugLevel.none.build.code_debug=0 +espea32.menu.DebugLevel.error=Error +espea32.menu.DebugLevel.error.build.code_debug=1 +espea32.menu.DebugLevel.warn=Warn +espea32.menu.DebugLevel.warn.build.code_debug=2 +espea32.menu.DebugLevel.info=Info +espea32.menu.DebugLevel.info.build.code_debug=3 +espea32.menu.DebugLevel.debug=Debug +espea32.menu.DebugLevel.debug.build.code_debug=4 +espea32.menu.DebugLevel.verbose=Verbose +espea32.menu.DebugLevel.verbose.build.code_debug=5 + ############################################################## quantum.name=Noduino Quantum @@ -3492,6 +3619,19 @@ quantum.menu.UploadSpeed.460800.upload.speed=460800 quantum.menu.UploadSpeed.512000.windows=512000 quantum.menu.UploadSpeed.512000.upload.speed=512000 +quantum.menu.DebugLevel.none=None +quantum.menu.DebugLevel.none.build.code_debug=0 +quantum.menu.DebugLevel.error=Error +quantum.menu.DebugLevel.error.build.code_debug=1 +quantum.menu.DebugLevel.warn=Warn +quantum.menu.DebugLevel.warn.build.code_debug=2 +quantum.menu.DebugLevel.info=Info +quantum.menu.DebugLevel.info.build.code_debug=3 +quantum.menu.DebugLevel.debug=Debug +quantum.menu.DebugLevel.debug.build.code_debug=4 +quantum.menu.DebugLevel.verbose=Verbose +quantum.menu.DebugLevel.verbose.build.code_debug=5 + ############################################################## node32s.name=Node32s @@ -3610,6 +3750,19 @@ hornbill32dev.menu.UploadSpeed.460800.upload.speed=460800 hornbill32dev.menu.UploadSpeed.512000.windows=512000 hornbill32dev.menu.UploadSpeed.512000.upload.speed=512000 +hornbill32dev.menu.DebugLevel.none=None +hornbill32dev.menu.DebugLevel.none.build.code_debug=0 +hornbill32dev.menu.DebugLevel.error=Error +hornbill32dev.menu.DebugLevel.error.build.code_debug=1 +hornbill32dev.menu.DebugLevel.warn=Warn +hornbill32dev.menu.DebugLevel.warn.build.code_debug=2 +hornbill32dev.menu.DebugLevel.info=Info +hornbill32dev.menu.DebugLevel.info.build.code_debug=3 +hornbill32dev.menu.DebugLevel.debug=Debug +hornbill32dev.menu.DebugLevel.debug.build.code_debug=4 +hornbill32dev.menu.DebugLevel.verbose=Verbose +hornbill32dev.menu.DebugLevel.verbose.build.code_debug=5 + ############################################################## hornbill32minima.name=Hornbill ESP32 Minima @@ -3657,6 +3810,19 @@ hornbill32minima.menu.UploadSpeed.460800.upload.speed=460800 hornbill32minima.menu.UploadSpeed.512000.windows=512000 hornbill32minima.menu.UploadSpeed.512000.upload.speed=512000 +hornbill32minima.menu.DebugLevel.none=None +hornbill32minima.menu.DebugLevel.none.build.code_debug=0 +hornbill32minima.menu.DebugLevel.error=Error +hornbill32minima.menu.DebugLevel.error.build.code_debug=1 +hornbill32minima.menu.DebugLevel.warn=Warn +hornbill32minima.menu.DebugLevel.warn.build.code_debug=2 +hornbill32minima.menu.DebugLevel.info=Info +hornbill32minima.menu.DebugLevel.info.build.code_debug=3 +hornbill32minima.menu.DebugLevel.debug=Debug +hornbill32minima.menu.DebugLevel.debug.build.code_debug=4 +hornbill32minima.menu.DebugLevel.verbose=Verbose +hornbill32minima.menu.DebugLevel.verbose.build.code_debug=5 + ############################################################## firebeetle32.name=FireBeetle-ESP32 @@ -3705,6 +3871,19 @@ firebeetle32.menu.UploadSpeed.460800.upload.speed=460800 firebeetle32.menu.UploadSpeed.512000.windows=512000 firebeetle32.menu.UploadSpeed.512000.upload.speed=512000 +firebeetle32.menu.DebugLevel.none=None +firebeetle32.menu.DebugLevel.none.build.code_debug=0 +firebeetle32.menu.DebugLevel.error=Error +firebeetle32.menu.DebugLevel.error.build.code_debug=1 +firebeetle32.menu.DebugLevel.warn=Warn +firebeetle32.menu.DebugLevel.warn.build.code_debug=2 +firebeetle32.menu.DebugLevel.info=Info +firebeetle32.menu.DebugLevel.info.build.code_debug=3 +firebeetle32.menu.DebugLevel.debug=Debug +firebeetle32.menu.DebugLevel.debug.build.code_debug=4 +firebeetle32.menu.DebugLevel.verbose=Verbose +firebeetle32.menu.DebugLevel.verbose.build.code_debug=5 + ############################################################## intorobot-fig.name=IntoRobot Fig @@ -3753,6 +3932,19 @@ intorobot-fig.menu.UploadSpeed.460800.upload.speed=460800 intorobot-fig.menu.UploadSpeed.512000.windows=512000 intorobot-fig.menu.UploadSpeed.512000.upload.speed=512000 +intorobot-fig.menu.DebugLevel.none=None +intorobot-fig.menu.DebugLevel.none.build.code_debug=0 +intorobot-fig.menu.DebugLevel.error=Error +intorobot-fig.menu.DebugLevel.error.build.code_debug=1 +intorobot-fig.menu.DebugLevel.warn=Warn +intorobot-fig.menu.DebugLevel.warn.build.code_debug=2 +intorobot-fig.menu.DebugLevel.info=Info +intorobot-fig.menu.DebugLevel.info.build.code_debug=3 +intorobot-fig.menu.DebugLevel.debug=Debug +intorobot-fig.menu.DebugLevel.debug.build.code_debug=4 +intorobot-fig.menu.DebugLevel.verbose=Verbose +intorobot-fig.menu.DebugLevel.verbose.build.code_debug=5 + ############################################################## onehorse32dev.name=Onehorse ESP32 Dev Module @@ -3801,6 +3993,19 @@ onehorse32dev.menu.UploadSpeed.460800.upload.speed=460800 onehorse32dev.menu.UploadSpeed.512000.windows=512000 onehorse32dev.menu.UploadSpeed.512000.upload.speed=512000 +onehorse32dev.menu.DebugLevel.none=None +onehorse32dev.menu.DebugLevel.none.build.code_debug=0 +onehorse32dev.menu.DebugLevel.error=Error +onehorse32dev.menu.DebugLevel.error.build.code_debug=1 +onehorse32dev.menu.DebugLevel.warn=Warn +onehorse32dev.menu.DebugLevel.warn.build.code_debug=2 +onehorse32dev.menu.DebugLevel.info=Info +onehorse32dev.menu.DebugLevel.info.build.code_debug=3 +onehorse32dev.menu.DebugLevel.debug=Debug +onehorse32dev.menu.DebugLevel.debug.build.code_debug=4 +onehorse32dev.menu.DebugLevel.verbose=Verbose +onehorse32dev.menu.DebugLevel.verbose.build.code_debug=5 + ############################################################## featheresp32.name=Adafruit ESP32 Feather @@ -4042,7 +4247,6 @@ adafruit_metro_esp32s2.menu.DebugLevel.debug.build.code_debug=4 adafruit_metro_esp32s2.menu.DebugLevel.verbose=Verbose adafruit_metro_esp32s2.menu.DebugLevel.verbose.build.code_debug=5 - ############################################################## adafruit_magtag29_esp32s2.name=Adafruit MagTag 2.9" @@ -4214,7 +4418,6 @@ adafruit_magtag29_esp32s2.menu.DebugLevel.debug.build.code_debug=4 adafruit_magtag29_esp32s2.menu.DebugLevel.verbose=Verbose adafruit_magtag29_esp32s2.menu.DebugLevel.verbose.build.code_debug=5 - ############################################################## adafruit_funhouse_esp32s2.name=Adafruit FunHouse @@ -4386,7 +4589,6 @@ adafruit_funhouse_esp32s2.menu.DebugLevel.debug.build.code_debug=4 adafruit_funhouse_esp32s2.menu.DebugLevel.verbose=Verbose adafruit_funhouse_esp32s2.menu.DebugLevel.verbose.build.code_debug=5 - ############################################################## adafruit_feather_esp32s2.name=Adafruit Feather ESP32-S2 @@ -4934,6 +5136,19 @@ nodemcu-32s.menu.UploadSpeed.460800.upload.speed=460800 nodemcu-32s.menu.UploadSpeed.512000.windows=512000 nodemcu-32s.menu.UploadSpeed.512000.upload.speed=512000 +nodemcu-32s.menu.DebugLevel.none=None +nodemcu-32s.menu.DebugLevel.none.build.code_debug=0 +nodemcu-32s.menu.DebugLevel.error=Error +nodemcu-32s.menu.DebugLevel.error.build.code_debug=1 +nodemcu-32s.menu.DebugLevel.warn=Warn +nodemcu-32s.menu.DebugLevel.warn.build.code_debug=2 +nodemcu-32s.menu.DebugLevel.info=Info +nodemcu-32s.menu.DebugLevel.info.build.code_debug=3 +nodemcu-32s.menu.DebugLevel.debug=Debug +nodemcu-32s.menu.DebugLevel.debug.build.code_debug=4 +nodemcu-32s.menu.DebugLevel.verbose=Verbose +nodemcu-32s.menu.DebugLevel.verbose.build.code_debug=5 + ############################################################## mhetesp32devkit.name=MH ET LIVE ESP32DevKIT @@ -5076,7 +5291,7 @@ mhetesp32minikit.menu.DebugLevel.debug.build.code_debug=4 mhetesp32minikit.menu.DebugLevel.verbose=Verbose mhetesp32minikit.menu.DebugLevel.verbose.build.code_debug=5 -################################################################# +############################################################## esp32vn-iot-uno.name=ESP32vn IoT Uno @@ -5124,6 +5339,19 @@ esp32vn-iot-uno.menu.UploadSpeed.460800.upload.speed=460800 esp32vn-iot-uno.menu.UploadSpeed.512000.windows=512000 esp32vn-iot-uno.menu.UploadSpeed.512000.upload.speed=512000 +esp32vn-iot-uno.menu.DebugLevel.none=None +esp32vn-iot-uno.menu.DebugLevel.none.build.code_debug=0 +esp32vn-iot-uno.menu.DebugLevel.error=Error +esp32vn-iot-uno.menu.DebugLevel.error.build.code_debug=1 +esp32vn-iot-uno.menu.DebugLevel.warn=Warn +esp32vn-iot-uno.menu.DebugLevel.warn.build.code_debug=2 +esp32vn-iot-uno.menu.DebugLevel.info=Info +esp32vn-iot-uno.menu.DebugLevel.info.build.code_debug=3 +esp32vn-iot-uno.menu.DebugLevel.debug=Debug +esp32vn-iot-uno.menu.DebugLevel.debug.build.code_debug=4 +esp32vn-iot-uno.menu.DebugLevel.verbose=Verbose +esp32vn-iot-uno.menu.DebugLevel.verbose.build.code_debug=5 + ############################################################## esp32doit-devkit-v1.name=DOIT ESP32 DEVKIT V1 @@ -5276,7 +5504,6 @@ esp32-evb.menu.FlashFreq.80.build.flash_freq=80m esp32-evb.menu.FlashFreq.40=40MHz esp32-evb.menu.FlashFreq.40.build.flash_freq=40m - esp32-evb.menu.UploadSpeed.115200=115200 esp32-evb.menu.UploadSpeed.115200.upload.speed=115200 @@ -5289,6 +5516,19 @@ esp32-evb.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (Large APPS with OTA) esp32-evb.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs esp32-evb.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080 +esp32-evb.menu.DebugLevel.none=None +esp32-evb.menu.DebugLevel.none.build.code_debug=0 +esp32-evb.menu.DebugLevel.error=Error +esp32-evb.menu.DebugLevel.error.build.code_debug=1 +esp32-evb.menu.DebugLevel.warn=Warn +esp32-evb.menu.DebugLevel.warn.build.code_debug=2 +esp32-evb.menu.DebugLevel.info=Info +esp32-evb.menu.DebugLevel.info.build.code_debug=3 +esp32-evb.menu.DebugLevel.debug=Debug +esp32-evb.menu.DebugLevel.debug.build.code_debug=4 +esp32-evb.menu.DebugLevel.verbose=Verbose +esp32-evb.menu.DebugLevel.verbose.build.code_debug=5 + ############################################################## esp32-gateway.name=OLIMEX ESP32-GATEWAY @@ -5328,7 +5568,6 @@ esp32-gateway.menu.FlashFreq.80.build.flash_freq=80m esp32-gateway.menu.FlashFreq.40=40MHz esp32-gateway.menu.FlashFreq.40.build.flash_freq=40m - esp32-gateway.menu.UploadSpeed.115200=115200 esp32-gateway.menu.UploadSpeed.115200.upload.speed=115200 @@ -5341,6 +5580,19 @@ esp32-gateway.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (Large APPS with OT esp32-gateway.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs esp32-gateway.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080 +esp32-gateway.menu.DebugLevel.none=None +esp32-gateway.menu.DebugLevel.none.build.code_debug=0 +esp32-gateway.menu.DebugLevel.error=Error +esp32-gateway.menu.DebugLevel.error.build.code_debug=1 +esp32-gateway.menu.DebugLevel.warn=Warn +esp32-gateway.menu.DebugLevel.warn.build.code_debug=2 +esp32-gateway.menu.DebugLevel.info=Info +esp32-gateway.menu.DebugLevel.info.build.code_debug=3 +esp32-gateway.menu.DebugLevel.debug=Debug +esp32-gateway.menu.DebugLevel.debug.build.code_debug=4 +esp32-gateway.menu.DebugLevel.verbose=Verbose +esp32-gateway.menu.DebugLevel.verbose.build.code_debug=5 + ############################################################## esp32-poe.name=OLIMEX ESP32-PoE @@ -5374,7 +5626,6 @@ esp32-poe.menu.FlashFreq.80.build.flash_freq=80m esp32-poe.menu.FlashFreq.40=40MHz esp32-poe.menu.FlashFreq.40.build.flash_freq=40m - esp32-poe.menu.UploadSpeed.115200=115200 esp32-poe.menu.UploadSpeed.115200.upload.speed=115200 @@ -5387,6 +5638,19 @@ esp32-poe.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (Large APPS with OTA) esp32-poe.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs esp32-poe.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080 +esp32-poe.menu.DebugLevel.none=None +esp32-poe.menu.DebugLevel.none.build.code_debug=0 +esp32-poe.menu.DebugLevel.error=Error +esp32-poe.menu.DebugLevel.error.build.code_debug=1 +esp32-poe.menu.DebugLevel.warn=Warn +esp32-poe.menu.DebugLevel.warn.build.code_debug=2 +esp32-poe.menu.DebugLevel.info=Info +esp32-poe.menu.DebugLevel.info.build.code_debug=3 +esp32-poe.menu.DebugLevel.debug=Debug +esp32-poe.menu.DebugLevel.debug.build.code_debug=4 +esp32-poe.menu.DebugLevel.verbose=Verbose +esp32-poe.menu.DebugLevel.verbose.build.code_debug=5 + ############################################################## esp32-poe-iso.name=OLIMEX ESP32-PoE-ISO @@ -5420,7 +5684,6 @@ esp32-poe-iso.menu.FlashFreq.80.build.flash_freq=80m esp32-poe-iso.menu.FlashFreq.40=40MHz esp32-poe-iso.menu.FlashFreq.40.build.flash_freq=40m - esp32-poe-iso.menu.UploadSpeed.115200=115200 esp32-poe-iso.menu.UploadSpeed.115200.upload.speed=115200 @@ -5433,6 +5696,19 @@ esp32-poe-iso.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (Large APPS with OT esp32-poe-iso.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs esp32-poe-iso.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080 +esp32-poe-iso.menu.DebugLevel.none=None +esp32-poe-iso.menu.DebugLevel.none.build.code_debug=0 +esp32-poe-iso.menu.DebugLevel.error=Error +esp32-poe-iso.menu.DebugLevel.error.build.code_debug=1 +esp32-poe-iso.menu.DebugLevel.warn=Warn +esp32-poe-iso.menu.DebugLevel.warn.build.code_debug=2 +esp32-poe-iso.menu.DebugLevel.info=Info +esp32-poe-iso.menu.DebugLevel.info.build.code_debug=3 +esp32-poe-iso.menu.DebugLevel.debug=Debug +esp32-poe-iso.menu.DebugLevel.debug.build.code_debug=4 +esp32-poe-iso.menu.DebugLevel.verbose=Verbose +esp32-poe-iso.menu.DebugLevel.verbose.build.code_debug=5 + ############################################################## esp32-DevKitLipo.name=OLIMEX ESP32-DevKit-LiPo @@ -5510,6 +5786,20 @@ esp32-DevKitLipo.menu.UploadSpeed.460800.macosx=460800 esp32-DevKitLipo.menu.UploadSpeed.460800.upload.speed=460800 esp32-DevKitLipo.menu.UploadSpeed.512000.windows=512000 esp32-DevKitLipo.menu.UploadSpeed.512000.upload.speed=512000 + +esp32-DevKitLipo.menu.DebugLevel.none=None +esp32-DevKitLipo.menu.DebugLevel.none.build.code_debug=0 +esp32-DevKitLipo.menu.DebugLevel.error=Error +esp32-DevKitLipo.menu.DebugLevel.error.build.code_debug=1 +esp32-DevKitLipo.menu.DebugLevel.warn=Warn +esp32-DevKitLipo.menu.DebugLevel.warn.build.code_debug=2 +esp32-DevKitLipo.menu.DebugLevel.info=Info +esp32-DevKitLipo.menu.DebugLevel.info.build.code_debug=3 +esp32-DevKitLipo.menu.DebugLevel.debug=Debug +esp32-DevKitLipo.menu.DebugLevel.debug.build.code_debug=4 +esp32-DevKitLipo.menu.DebugLevel.verbose=Verbose +esp32-DevKitLipo.menu.DebugLevel.verbose.build.code_debug=5 + ############################################################## espino32.name=ThaiEasyElec's ESPino32 @@ -5558,6 +5848,19 @@ espino32.menu.UploadSpeed.460800.upload.speed=460800 espino32.menu.UploadSpeed.512000.windows=512000 espino32.menu.UploadSpeed.512000.upload.speed=512000 +espino32.menu.DebugLevel.none=None +espino32.menu.DebugLevel.none.build.code_debug=0 +espino32.menu.DebugLevel.error=Error +espino32.menu.DebugLevel.error.build.code_debug=1 +espino32.menu.DebugLevel.warn=Warn +espino32.menu.DebugLevel.warn.build.code_debug=2 +espino32.menu.DebugLevel.info=Info +espino32.menu.DebugLevel.info.build.code_debug=3 +espino32.menu.DebugLevel.debug=Debug +espino32.menu.DebugLevel.debug.build.code_debug=4 +espino32.menu.DebugLevel.verbose=Verbose +espino32.menu.DebugLevel.verbose.build.code_debug=5 + ############################################################## m5stack-core-esp32.name=M5Stack-Core-ESP32 @@ -5750,7 +6053,6 @@ m5stick-c.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (Large APPS with OTA) m5stick-c.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs m5stick-c.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080 - m5stick-c.menu.UploadSpeed.1500000=1500000 m5stick-c.menu.UploadSpeed.1500000.upload.speed=1500000 m5stick-c.menu.UploadSpeed.750000=750000 @@ -5762,8 +6064,6 @@ m5stick-c.menu.UploadSpeed.250000.upload.speed=250000 m5stick-c.menu.UploadSpeed.115200=115200 m5stick-c.menu.UploadSpeed.115200.upload.speed=115200 - - m5stick-c.menu.DebugLevel.none=None m5stick-c.menu.DebugLevel.none.build.code_debug=0 m5stick-c.menu.DebugLevel.error=Error @@ -5815,7 +6115,6 @@ m5stack-atom.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (Large APPS with OTA m5stack-atom.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs m5stack-atom.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080 - m5stack-atom.menu.UploadSpeed.1500000=1500000 m5stack-atom.menu.UploadSpeed.1500000.upload.speed=1500000 m5stack-atom.menu.UploadSpeed.750000=750000 @@ -5827,8 +6126,6 @@ m5stack-atom.menu.UploadSpeed.250000.upload.speed=250000 m5stack-atom.menu.UploadSpeed.115200=115200 m5stack-atom.menu.UploadSpeed.115200.upload.speed=115200 - - m5stack-atom.menu.DebugLevel.none=None m5stack-atom.menu.DebugLevel.none.build.code_debug=0 m5stack-atom.menu.DebugLevel.error=Error @@ -5842,7 +6139,6 @@ m5stack-atom.menu.DebugLevel.debug.build.code_debug=4 m5stack-atom.menu.DebugLevel.verbose=Verbose m5stack-atom.menu.DebugLevel.verbose.build.code_debug=5 - ############################################################## m5stack-core2.name=M5Stack-Core2 @@ -6758,8 +7054,8 @@ espectro32.menu.DebugLevel.debug.build.code_debug=4 espectro32.menu.DebugLevel.verbose=Verbose espectro32.menu.DebugLevel.verbose.build.code_debug=5 - ############################################################## + CoreESP32.name=Microduino-CoreESP32 CoreESP32.upload.tool=esptool_py @@ -6841,7 +7137,6 @@ CoreESP32.menu.DebugLevel.verbose.build.code_debug=5 ############################################################## - alksesp32.name=ALKS ESP32 alksesp32.upload.tool=esptool_py @@ -6977,7 +7272,6 @@ alksesp32.menu.DebugLevel.verbose.build.code_debug=5 ############################################################## - wipy3.name=WiPy 3.0 wipy3.upload.tool=esptool_py @@ -7179,6 +7473,19 @@ bpi-bit.menu.UploadSpeed.460800.upload.speed=460800 bpi-bit.menu.UploadSpeed.512000.windows=512000 bpi-bit.menu.UploadSpeed.512000.upload.speed=512000 +bpi-bit.menu.DebugLevel.none=None +bpi-bit.menu.DebugLevel.none.build.code_debug=0 +bpi-bit.menu.DebugLevel.error=Error +bpi-bit.menu.DebugLevel.error.build.code_debug=1 +bpi-bit.menu.DebugLevel.warn=Warn +bpi-bit.menu.DebugLevel.warn.build.code_debug=2 +bpi-bit.menu.DebugLevel.info=Info +bpi-bit.menu.DebugLevel.info.build.code_debug=3 +bpi-bit.menu.DebugLevel.debug=Debug +bpi-bit.menu.DebugLevel.debug.build.code_debug=4 +bpi-bit.menu.DebugLevel.verbose=Verbose +bpi-bit.menu.DebugLevel.verbose.build.code_debug=5 + ############################################################## wesp32.name=Silicognition wESP32 @@ -7577,8 +7884,6 @@ oroca_edubot.menu.DebugLevel.debug.build.code_debug=4 oroca_edubot.menu.DebugLevel.verbose=Verbose oroca_edubot.menu.DebugLevel.verbose.build.code_debug=5 - - ############################################################## fm-devkit.name=ESP32 FM DevKit @@ -7794,6 +8099,19 @@ esp32cam.menu.FlashFreq.80.build.flash_freq=80m esp32cam.menu.FlashFreq.40=40MHz esp32cam.menu.FlashFreq.40.build.flash_freq=40m +esp32cam.menu.DebugLevel.none=None +esp32cam.menu.DebugLevel.none.build.code_debug=0 +esp32cam.menu.DebugLevel.error=Error +esp32cam.menu.DebugLevel.error.build.code_debug=1 +esp32cam.menu.DebugLevel.warn=Warn +esp32cam.menu.DebugLevel.warn.build.code_debug=2 +esp32cam.menu.DebugLevel.info=Info +esp32cam.menu.DebugLevel.info.build.code_debug=3 +esp32cam.menu.DebugLevel.debug=Debug +esp32cam.menu.DebugLevel.debug.build.code_debug=4 +esp32cam.menu.DebugLevel.verbose=Verbose +esp32cam.menu.DebugLevel.verbose.build.code_debug=5 + ############################################################## twatch.name=TTGO T-Watch @@ -7953,6 +8271,19 @@ d1_mini32.menu.UploadSpeed.460800.upload.speed=460800 d1_mini32.menu.UploadSpeed.512000.windows=512000 d1_mini32.menu.UploadSpeed.512000.upload.speed=512000 +d1_mini32.menu.DebugLevel.none=None +d1_mini32.menu.DebugLevel.none.build.code_debug=0 +d1_mini32.menu.DebugLevel.error=Error +d1_mini32.menu.DebugLevel.error.build.code_debug=1 +d1_mini32.menu.DebugLevel.warn=Warn +d1_mini32.menu.DebugLevel.warn.build.code_debug=2 +d1_mini32.menu.DebugLevel.info=Info +d1_mini32.menu.DebugLevel.info.build.code_debug=3 +d1_mini32.menu.DebugLevel.debug=Debug +d1_mini32.menu.DebugLevel.debug.build.code_debug=4 +d1_mini32.menu.DebugLevel.verbose=Verbose +d1_mini32.menu.DebugLevel.verbose.build.code_debug=5 + ############################################################## gpy.name=Pycom GPy @@ -8167,6 +8498,19 @@ honeylemon.menu.UploadSpeed.460800.upload.speed=460800 honeylemon.menu.UploadSpeed.512000.windows=512000 honeylemon.menu.UploadSpeed.512000.upload.speed=512000 +honeylemon.menu.DebugLevel.none=None +honeylemon.menu.DebugLevel.none.build.code_debug=0 +honeylemon.menu.DebugLevel.error=Error +honeylemon.menu.DebugLevel.error.build.code_debug=1 +honeylemon.menu.DebugLevel.warn=Warn +honeylemon.menu.DebugLevel.warn.build.code_debug=2 +honeylemon.menu.DebugLevel.info=Info +honeylemon.menu.DebugLevel.info.build.code_debug=3 +honeylemon.menu.DebugLevel.debug=Debug +honeylemon.menu.DebugLevel.debug.build.code_debug=4 +honeylemon.menu.DebugLevel.verbose=Verbose +honeylemon.menu.DebugLevel.verbose.build.code_debug=5 + ############################################################## mgbot-iotik32a.name=MGBOT IOTIK 32A @@ -8456,6 +8800,7 @@ mgbot-iotik32b.menu.DebugLevel.verbose=Verbose mgbot-iotik32b.menu.DebugLevel.verbose.build.code_debug=5 ############################################################## + piranha_esp-32.name=Piranha ESP-32 piranha_esp-32.upload.tool=esptool_py @@ -8595,6 +8940,7 @@ metro_esp-32.menu.DebugLevel.verbose=Verbose metro_esp-32.menu.DebugLevel.verbose.build.code_debug=5 ############################################################## + sensesiot_weizen.name=Senses's WEIZEN sensesiot_weizen.upload.tool=esptool_py @@ -8641,7 +8987,21 @@ sensesiot_weizen.menu.UploadSpeed.460800.upload.speed=460800 sensesiot_weizen.menu.UploadSpeed.512000.windows=512000 sensesiot_weizen.menu.UploadSpeed.512000.upload.speed=512000 +sensesiot_weizen.menu.DebugLevel.none=None +sensesiot_weizen.menu.DebugLevel.none.build.code_debug=0 +sensesiot_weizen.menu.DebugLevel.error=Error +sensesiot_weizen.menu.DebugLevel.error.build.code_debug=1 +sensesiot_weizen.menu.DebugLevel.warn=Warn +sensesiot_weizen.menu.DebugLevel.warn.build.code_debug=2 +sensesiot_weizen.menu.DebugLevel.info=Info +sensesiot_weizen.menu.DebugLevel.info.build.code_debug=3 +sensesiot_weizen.menu.DebugLevel.debug=Debug +sensesiot_weizen.menu.DebugLevel.debug.build.code_debug=4 +sensesiot_weizen.menu.DebugLevel.verbose=Verbose +sensesiot_weizen.menu.DebugLevel.verbose.build.code_debug=5 + ############################################################## + kits-edu.name=KITS ESP32 EDU kits-edu.upload.tool=esptool_py @@ -8772,7 +9132,6 @@ mPython.menu.PartitionScheme.fatflash.build.partitions=ffat mPython.menu.CPUFreq.240=240MHz (WiFi/BT) mPython.menu.CPUFreq.240.build.f_cpu=240000000L - mPython.menu.FlashMode.qio=QIO mPython.menu.FlashMode.qio.build.flash_mode=dio mPython.menu.FlashMode.qio.build.boot=qio @@ -8794,7 +9153,6 @@ mPython.menu.FlashFreq.40.build.flash_freq=40m mPython.menu.FlashSize.8M=8MB (64Mb) mPython.menu.FlashSize.8M.build.flash_size=8MB - mPython.menu.UploadSpeed.921600=921600 mPython.menu.UploadSpeed.921600.upload.speed=921600 mPython.menu.UploadSpeed.115200=115200 @@ -8872,6 +9230,19 @@ OpenKB.menu.UploadSpeed.460800.upload.speed=460800 OpenKB.menu.UploadSpeed.512000.windows=512000 OpenKB.menu.UploadSpeed.512000.upload.speed=512000 +OpenKB.menu.DebugLevel.none=None +OpenKB.menu.DebugLevel.none.build.code_debug=0 +OpenKB.menu.DebugLevel.error=Error +OpenKB.menu.DebugLevel.error.build.code_debug=1 +OpenKB.menu.DebugLevel.warn=Warn +OpenKB.menu.DebugLevel.warn.build.code_debug=2 +OpenKB.menu.DebugLevel.info=Info +OpenKB.menu.DebugLevel.info.build.code_debug=3 +OpenKB.menu.DebugLevel.debug=Debug +OpenKB.menu.DebugLevel.debug.build.code_debug=4 +OpenKB.menu.DebugLevel.verbose=Verbose +OpenKB.menu.DebugLevel.verbose.build.code_debug=5 + ############################################################## wifiduino32.name=WiFiduino32 @@ -8943,7 +9314,6 @@ wifiduino32.menu.DebugLevel.debug.build.code_debug=4 wifiduino32.menu.DebugLevel.verbose=Verbose wifiduino32.menu.DebugLevel.verbose.build.code_debug=5 - ############################################################## imbrios-logsens-v1p1.name=IMBRIOS LOGSENS_V1P1 @@ -9019,6 +9389,19 @@ imbrios-logsens-v1p1.menu.UploadSpeed.460800.upload.speed=460800 imbrios-logsens-v1p1.menu.UploadSpeed.512000.windows=512000 imbrios-logsens-v1p1.menu.UploadSpeed.512000.upload.speed=512000 +imbrios-logsens-v1p1.menu.DebugLevel.none=None +imbrios-logsens-v1p1.menu.DebugLevel.none.build.code_debug=0 +imbrios-logsens-v1p1.menu.DebugLevel.error=Error +imbrios-logsens-v1p1.menu.DebugLevel.error.build.code_debug=1 +imbrios-logsens-v1p1.menu.DebugLevel.warn=Warn +imbrios-logsens-v1p1.menu.DebugLevel.warn.build.code_debug=2 +imbrios-logsens-v1p1.menu.DebugLevel.info=Info +imbrios-logsens-v1p1.menu.DebugLevel.info.build.code_debug=3 +imbrios-logsens-v1p1.menu.DebugLevel.debug=Debug +imbrios-logsens-v1p1.menu.DebugLevel.debug.build.code_debug=4 +imbrios-logsens-v1p1.menu.DebugLevel.verbose=Verbose +imbrios-logsens-v1p1.menu.DebugLevel.verbose.build.code_debug=5 + ############################################################## healthypi4.name=ProtoCentral HealthyPi 4 @@ -9092,7 +9475,6 @@ healthypi4.menu.DebugLevel.verbose.build.code_debug=5 ############################################################## - ET-Board.name=ET-Board ET-Board.upload.tool=esptool_py @@ -10571,4 +10953,4 @@ sonoff_dualr3.menu.DebugLevel.debug.build.code_debug=4 sonoff_dualr3.menu.DebugLevel.verbose=Verbose sonoff_dualr3.menu.DebugLevel.verbose.build.code_debug=5 -############################################################## +############################################################## \ No newline at end of file