diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index f2f2c0b5ca1..1523b7231be 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -283,7 +283,7 @@ jobs: uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 if: always() with: - name: sdkconfig-${{ matrix.idf_target }} + name: sdkconfig-${{ matrix.idf_ver }}-${{ matrix.idf_target }} path: ./components/arduino-esp32/idf_component_examples/**/sdkconfig # Save artifacts to gh-pages diff --git a/cores/esp32/esp32-hal-uart.c b/cores/esp32/esp32-hal-uart.c index 6e5a22da9f8..8bd446a8eb8 100644 --- a/cores/esp32/esp32-hal-uart.c +++ b/cores/esp32/esp32-hal-uart.c @@ -389,7 +389,12 @@ static esp_err_t _uartInternalSetPin(uart_port_t uart_num, int tx_io_num, int rx #endif if (tx_rx_same_io || !_uartTrySetIomuxPin(uart_num, rx_io_num, SOC_UART_RX_PIN_IDX)) { if (uart_num < SOC_UART_HP_NUM) { +#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(5, 4, 0) gpio_input_enable(rx_io_num); +#else + gpio_func_sel(rx_io_num, PIN_FUNC_GPIO); + gpio_ll_input_enable(&GPIO, rx_io_num); +#endif esp_rom_gpio_connect_in_signal(rx_io_num, UART_PERIPH_SIGNAL(uart_num, SOC_UART_RX_PIN_IDX), 0); } #if SOC_LP_GPIO_MATRIX_SUPPORTED @@ -422,8 +427,14 @@ static esp_err_t _uartInternalSetPin(uart_port_t uart_num, int tx_io_num, int rx if (cts_io_num >= 0 && !_uartTrySetIomuxPin(uart_num, cts_io_num, SOC_UART_CTS_PIN_IDX)) { if (uart_num < SOC_UART_HP_NUM) { +#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(5, 4, 0) gpio_pullup_en(cts_io_num); gpio_input_enable(cts_io_num); +#else + gpio_func_sel(cts_io_num, PIN_FUNC_GPIO); + gpio_set_pull_mode(cts_io_num, GPIO_PULLUP_ONLY); + gpio_set_direction(cts_io_num, GPIO_MODE_INPUT); +#endif esp_rom_gpio_connect_in_signal(cts_io_num, UART_PERIPH_SIGNAL(uart_num, SOC_UART_CTS_PIN_IDX), 0); } #if SOC_LP_GPIO_MATRIX_SUPPORTED diff --git a/libraries/ESP_NOW/src/ESP32_NOW.cpp b/libraries/ESP_NOW/src/ESP32_NOW.cpp index d461fe1473d..e61160a16dd 100644 --- a/libraries/ESP_NOW/src/ESP32_NOW.cpp +++ b/libraries/ESP_NOW/src/ESP32_NOW.cpp @@ -9,6 +9,10 @@ #include "esp32-hal.h" #include "esp_wifi.h" +#ifndef ESP_NOW_MAX_DATA_LEN_V2 +#define ESP_NOW_MAX_DATA_LEN_V2 1470 +#endif + static void (*new_cb)(const esp_now_recv_info_t *info, const uint8_t *data, int len, void *arg) = nullptr; static void *new_arg = nullptr; // * tx_arg = nullptr, * rx_arg = nullptr, static bool _esp_now_has_begun = false; diff --git a/libraries/Network/src/NetworkClient.cpp b/libraries/Network/src/NetworkClient.cpp index 89411a42453..355cbc6c361 100644 --- a/libraries/Network/src/NetworkClient.cpp +++ b/libraries/Network/src/NetworkClient.cpp @@ -23,11 +23,9 @@ #include #include -// It is already defined in IDF as: -//#define IN6_IS_ADDR_V4MAPPED(a) ip6_addr_isipv4mappedipv6((ip6_addr_t*)(a)) -//#define ip6_addr_isipv4mappedipv6(ip6addr) (((ip6addr)->addr[0] == 0) && ((ip6addr)->addr[1] == 0) && (((ip6addr)->addr[2]) == PP_HTONL(0x0000FFFFUL))) -// Keeping as a memory of the change. -//#define _IN6_IS_ADDR_V4MAPPED(a) ((((__const uint32_t *)(a))[0] == 0) && (((__const uint32_t *)(a))[1] == 0) && (((__const uint32_t *)(a))[2] == htonl(0xffff))) +#ifndef IN6_IS_ADDR_V4MAPPED +#define IN6_IS_ADDR_V4MAPPED(a) ((((__const uint32_t *)(a))[0] == 0) && (((__const uint32_t *)(a))[1] == 0) && (((__const uint32_t *)(a))[2] == htonl(0xffff))) +#endif #define WIFI_CLIENT_DEF_CONN_TIMEOUT_MS (3000) #define WIFI_CLIENT_MAX_WRITE_RETRY (10) diff --git a/libraries/WiFi/examples/WiFiScan/WiFiScan.ino b/libraries/WiFi/examples/WiFiScan/WiFiScan.ino index 98733adb0bb..d840959dcb2 100644 --- a/libraries/WiFi/examples/WiFiScan/WiFiScan.ino +++ b/libraries/WiFi/examples/WiFiScan/WiFiScan.ino @@ -58,7 +58,9 @@ void loop() { Serial.println("-------------------------------------"); Serial.println("Default wifi band mode scan:"); Serial.println("-------------------------------------"); +#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(5, 4, 2) WiFi.setBandMode(WIFI_BAND_MODE_AUTO); +#endif ScanWiFi(); #if CONFIG_SOC_WIFI_SUPPORT_5G // Wait a bit before scanning again. diff --git a/libraries/WiFi/src/AP.cpp b/libraries/WiFi/src/AP.cpp index a649c3898cb..00c3a1e3733 100644 --- a/libraries/WiFi/src/AP.cpp +++ b/libraries/WiFi/src/AP.cpp @@ -305,6 +305,7 @@ bool APClass::enableNAPT(bool enable) { return true; } +#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(5, 4, 2) bool APClass::enableDhcpCaptivePortal() { esp_err_t err = ESP_OK; static char captiveportal_uri[32] = { @@ -343,6 +344,7 @@ bool APClass::enableDhcpCaptivePortal() { return true; } +#endif String APClass::SSID(void) const { if (!started()) { diff --git a/libraries/WiFi/src/WiFiAP.h b/libraries/WiFi/src/WiFiAP.h index 2b7ce469801..67cc0f988d3 100644 --- a/libraries/WiFi/src/WiFiAP.h +++ b/libraries/WiFi/src/WiFiAP.h @@ -53,7 +53,9 @@ class APClass : public NetworkInterface { bool bandwidth(wifi_bandwidth_t bandwidth); bool enableNAPT(bool enable = true); +#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(5, 4, 2) bool enableDhcpCaptivePortal(); +#endif String SSID(void) const; uint8_t stationCount(); diff --git a/libraries/WiFi/src/WiFiGeneric.cpp b/libraries/WiFi/src/WiFiGeneric.cpp index 171bd293738..66f8908af77 100644 --- a/libraries/WiFi/src/WiFiGeneric.cpp +++ b/libraries/WiFi/src/WiFiGeneric.cpp @@ -781,6 +781,7 @@ wifi_ps_type_t WiFiGenericClass::getSleep() { return _sleepEnabled; } +#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(5, 4, 2) /** * control wifi band mode * @param band_mode enum possible band modes @@ -843,6 +844,7 @@ wifi_band_mode_t WiFiGenericClass::getBandMode() { return WIFI_BAND_MODE_2G_ONLY; #endif } +#endif /** * get the current active wifi band diff --git a/libraries/WiFi/src/WiFiGeneric.h b/libraries/WiFi/src/WiFiGeneric.h index ebeecb51e16..cdc1519d30b 100644 --- a/libraries/WiFi/src/WiFiGeneric.h +++ b/libraries/WiFi/src/WiFiGeneric.h @@ -116,8 +116,10 @@ class WiFiGenericClass { bool setTxPower(wifi_power_t power); wifi_power_t getTxPower(); +#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(5, 4, 2) bool setBandMode(wifi_band_mode_t band_mode); wifi_band_mode_t getBandMode(); +#endif wifi_band_t getBand(); bool initiateFTM(uint8_t frm_count = 16, uint16_t burst_period = 2, uint8_t channel = 1, const uint8_t *mac = NULL);