Skip to content

v4.1.0.0

Compare
Choose a tag to compare
@xcguang xcguang released this 18 Jul 12:44
· 18 commits to release/v4.1.0.0 since this release

v4.1.0.0 Release Notes

v4.1.0.0 is released for ESP32-C2, ESP32-C3, ESP32-C6, and ESP32. The changes since the previous version are as follows.

ESP32C2-AT

Documentation for Release v4.1.0.0 is available at https://docs.espressif.com/projects/esp-at/en/release-v4.1.0.0/esp32c2/index.html. ESP32C2-AT v4.1.0.0 is a major update for ESP32C2-AT v3.3.0.0.

The firmware:

This is the list of changes since release v3.3.0.0:

Known Issues

  • AT+FS may fail after repeated read/write operations

Changelog

Basic

  • Added the AT+SYSRAM setup command to detail memory capacity
  • Added the AT+SYSROLLBACK query command to obtain the address and version of the current and rollback firmware
  • Added the AT+RFCAL command to support RF full calibration
  • Added deduplication support for the AT+SYSMFG command
  • Added sleep support in the BLE‑only firmware
  • Added support to disable sleep when Wi‑Fi and BLE coexist
  • Fixed an issue where AT+SYSMSGFILTER did not work when the data contained \r\n

Wi-Fi

  • Added the AT+CWBANDWIDTH command to set Wi‑Fi bandwidth
  • Added the AT+CWCONFIG command to set the global inactive time and listen interval
  • Expand authmode range for AT+CWLAPOPT, AT+WPS, AT+CWSTARTSMART and AT+BLUFI
  • Fixed a station‑connection failure when using AT+CWJAP after connecting to an Enterprise AP with AT+CWJEAP
  • Fixed a crash when setting hostname length to 32 bytes via AT+CWHOSTNAME
  • Fixed two WPA2‑Enterprise connection issues
  • Fixed a potential Wi‑Fi issue where the device disconnected immediately after powering on and connecting to the AP
  • Fixed an issue where AT+CWLAP did not return valid APs when BLUFI was enabled
  • Fixed incorrect Wi‑Fi reconnection behavior after sending the AT+CWQAP and AT+CWRECONNCFG commands
  • Fixed a Wi‑Fi disconnection issue when sending the AT+CWRECONNCFG command twice
  • Fixed an issue where IPv6 information was output in passthrough mode

TCP/IP

  • Added a netif parameter to the AT+CIPSERVER command
  • Added the AT+CIPSSLCCIPHER command to configure the SSL cipher‑suite list
  • Added a timeout parameter to the AT+CIPSTART and AT+CIPDOMAIN commands
  • Added support for a backup DNS server in AT+CIPDNS in AT+CIPDNS
  • Fixed AT+CWDHCP returning an incorrect DHCP state after the DHCP server was disabled
  • Fixed an issue where AT+CIPRECVLEN? always returned a fixed set of five connections
  • Fixed several issues where AT+CIPSTATUS returned incorrect statuses
  • Fixed an infinite‑loop issue when the SSL server encountered a PKI read error
  • Fixed some potential reconnection issues in passthrough mode
  • Fixed an issue where TLS resources were not freed if TLS negotiation failed
  • Fixed an issue where AT+CIPCLOSE could not close a connection after reaching the maximum number of open sockets
  • Fixed an issue where the UDP mode in AT+CIPSTART did not work in passive‑read mode
  • Fixed an asynchronous issue with AT+CIPRECVLEN
  • Fixed an issue where AT+CIPSTO did not take effect when data transmission failed

mDNS

  • Added mDNS query support to AT+MDNS
  • Added the instance, proto, and txt parameters to the AT+MDNS command

HTTP

  • Enabled HTTP commands on the esp32c2‑2mb firmware
  • Added HTTP status‑code output for HTTP commands
  • Added the AT+HTTPCFG command to configure certificates for HTTP
  • Added HTTP‑header deduplication to the AT+HTTPCHEAD command

MQTT

  • Change MQTT message retransmission interval from 1 second to 5 seconds to improve connection stability
  • Fixed a potential issue where MQTT subscribe via AT+MQTTSUB failed but returned OK
  • Fixed an issue where an MQTT QoS 2 PUBREL packet might not be retransmitted

FatFS

  • Added FatFS support on 2 MB flash
  • Added a data‑length check when writing to FatFS
  • Fixed several FatFS mount and unmount issues
  • Fixed a mismatch between the generated fatfs.bin size and the required size
  • Fixed an issue where FatFS did not work if fatfs.bin was not pre‑burned before flashing
  • Fixed an issue where fwrite() returned OK but data was not written to the file system

OTA

  • Enabled app rollback support
  • Added compressed OTA v3 support and a sanity checker

WebServer

  • Fixed a compilation error when WebSocket and info logging were enabled
  • Fixed two slist issues where the pointer fail_item was used after free
  • Fixed a potential crash when printing if the SSID length was 32 bytes
  • Fixed an issue where AT‑Web netconfig failed when used with the WeChat applet

WebSocket

  • Added additional parameters to the AT+WSCFG command to configure certificates in WebSocket

Bluetooth

  • Fixed AT command response interleaving issues causing data corruption
  • Fixed AT command response issues where the \r character was missing
  • Added BLE light sleep support on esp32c2
  • Added BLE adv type information
  • Fixed missing +BLESCANDONE issue
  • Resolved data loss issue in BLE passthrough mode
  • Optimized BLE WRITE/INDICATE flow control mechanism
  • Fixed crash in BLE transparent transmission mode
  • Fixed AT+BTENCCLEAR not properly clearing BT pairing information
  • Fixed BLE_TT_MODE printed twice in BLE passthrough mode
  • Fixed missing +WRITE response
  • Fixed BLUFI memory leak
  • Fixed issue where MTU size greater than attribute length caused data transmission failure
  • Fixed that AT+RFPOWER query not returning BLE power when using nimble protocol
  • Fixed extra +BLEDISCONN message when sending AT+BLEDISCONN=0

Interface

  • Optimized the UART1 clock source
  • Fixed a potential crash when AT was not ready but received data
  • Fixed a potential UART voltage fluctuation during light sleep
  • Fixed some socket interface issues
  • Fixed an SDIO compilation warning
  • Fixed a heap‑corruption issue when using the SDIO interface

System

  • esp-idf version updated to ~v5.4.2
  • Added an unfilled factory binary
  • Added a checker to prevent duplicate keys in *.defaults
  • Added some return value checks for driver commands
  • Added pre_wakeup_callback and process_light_sleep hook events
  • Added a hook function for memory allocation failure
  • Added the esp_at_ready_before() API to perform tasks before ESP‑AT is ready
  • Added the at_exe_cmd() API to execute AT commands via ESP‑AT itself
  • Supported the new log system and improved log readability
  • Added support to configure the default system storage mode
  • Added support to print the firmware source
  • Added support to override default configurations
  • Optimized resources to increase available RAM
  • Reduced power consumption when a beacon is lost
  • Optimized the root CMake file
  • Decoupled Wi‑Fi and BLE functions from the base commands
  • Renamed esp_at_get_netconn_count() to esp_at_get_netconn_max_count()
  • Exposed esp_at_get_smartconfig_start_config() API
  • Reconfigured TWDT to disable the panic trigger when AT debug is enabled
  • Provided some weak symbols to allow external overriding (esp_at_nvs_set_xxx/esp_at_nvs_get_xxx/esp_at_log_write)
  • Fixed an issue where the factory binary was not generated in some cases
  • Fixed an issue where patches could not be applied on Windows
  • Fixed several MCU wake‑up issues

Optimization

  • TCP & SSL: TCP/SSL connections are now proactively closed immediately when their associated netif state changes (netif down, stop, or lost IP). In previous versions, the connections would remain open until a keep-alive timeout, send timeout, or max retry threshold was reached - often taking tens of seconds to close. This change significantly reduces latency in connection teardown and improves system responsiveness.
  • Upgraded supported python version and some package versions
  • Optimized patching process
  • Replaced the previous script with esptool.py merge_bin
  • Fixed a potential issue where the patch is applied multiple times
  • Fixed an issue where gatts_cfg was excessively modified by the at.py script

Examples

  • Added a fatfs_to_http_server example
  • Added a http_get_to_fatfs example
  • Added a WebSocket example document
  • Added an AT interface security example

Documentation

  • Improved documentation for AT commands, examples, and development
  • Added richer content for new features and changes
  • Added a chatbox on docs.espressif.com/projects/esp-at
  • Added a disclaimer for the esp-at project
  • Added some document format checks

ESP32C3-AT

Documentation for Release v4.1.0.0 is available at https://docs.espressif.com/projects/esp-at/en/release-v4.1.0.0/esp32c3/index.html. ESP32C3-AT v4.1.0.0 is a major update for ESP32C3-AT v3.3.0.0.

The firmwares:

This is the list of changes since release v3.3.0.0:

Known Issues

  • AT+FS may fail after repeated read/write operations

Changelog

Basic

  • Added the AT+SYSRAM setup command to detail memory capacity
  • Added the AT+SYSROLLBACK query command to obtain the address and version of the current and rollback firmware
  • Added the AT+RFCAL command to support RF full calibration
  • Added deduplication support for the AT+SYSMFG command
  • Added sleep support in the BLE‑only firmware
  • Added support to disable sleep when Wi‑Fi and BLE coexist
  • Fixed an issue where AT+SYSMSGFILTER did not work when the data contained \r\n

Wi-Fi

  • Added the AT+CWBANDWIDTH command to set Wi‑Fi bandwidth
  • Added the AT+CWCONFIG command to set the global inactive time and listen interval
  • Expand authmode range for AT+CWLAPOPT, AT+WPS, AT+CWSTARTSMART and AT+BLUFI
  • Fixed a station‑connection failure when using AT+CWJAP after connecting to an Enterprise AP with AT+CWJEAP
  • Fixed a crash when setting hostname length to 32 bytes via AT+CWHOSTNAME
  • Fixed two WPA2‑Enterprise connection issues
  • Fixed a potential Wi‑Fi issue where the device disconnected immediately after powering on and connecting to the AP
  • Fixed an issue where AT+CWLAP did not return valid APs when BLUFI was enabled
  • Fixed incorrect Wi‑Fi reconnection behavior after sending the AT+CWQAP and AT+CWRECONNCFG commands
  • Fixed a Wi‑Fi disconnection issue when sending the AT+CWRECONNCFG command twice
  • Fixed an issue where IPv6 information was output in passthrough mode

TCP/IP

  • Added a netif parameter to the AT+CIPSERVER command
  • Added the AT+CIPSSLCCIPHER command to configure the SSL cipher‑suite list
  • Added a timeout parameter to the AT+CIPSTART and AT+CIPDOMAIN commands
  • Added support for a backup DNS server in AT+CIPDNS in AT+CIPDNS
  • Fixed AT+CWDHCP returning an incorrect DHCP state after the DHCP server was disabled
  • Fixed an issue where AT+CIPRECVLEN? always returned a fixed set of five connections
  • Fixed several issues where AT+CIPSTATUS returned incorrect statuses
  • Fixed an infinite‑loop issue when the SSL server encountered a PKI read error
  • Fixed some potential reconnection issues in passthrough mode
  • Fixed an issue where TLS resources were not freed if TLS negotiation failed
  • Fixed an issue where AT+CIPCLOSE could not close a connection after reaching the maximum number of open sockets
  • Fixed an issue where the UDP mode in AT+CIPSTART did not work in passive‑read mode
  • Fixed an asynchronous issue with AT+CIPRECVLEN
  • Fixed an issue where AT+CIPSTO did not take effect when data transmission failed

mDNS

  • Added mDNS query support to AT+MDNS
  • Added the instance, proto, and txt parameters to the AT+MDNS command

HTTP

  • Added HTTP status‑code output for HTTP commands
  • Added the AT+HTTPCFG command to configure certificates for HTTP
  • Added HTTP‑header deduplication to the AT+HTTPCHEAD command

MQTT

  • Change MQTT message retransmission interval from 1 second to 5 seconds to improve connection stability
  • Fixed a potential issue where MQTT subscribe via AT+MQTTSUB failed but returned OK
  • Fixed an issue where an MQTT QoS 2 PUBREL packet might not be retransmitted

FatFS

  • Added FatFS support on 2 MB flash
  • Added a data‑length check when writing to FatFS
  • Fixed several FatFS mount and unmount issues
  • Fixed a mismatch between the generated fatfs.bin size and the required size
  • Fixed an issue where FatFS did not work if fatfs.bin was not pre‑burned before flashing
  • Fixed an issue where fwrite() returned OK but data was not written to the file system

OTA

  • Enabled app rollback support
  • Added compressed OTA v3 support and a sanity checker

WebServer

  • Fixed a compilation error when WebSocket and info logging were enabled
  • Fixed two slist issues where the pointer fail_item was used after free
  • Fixed a potential crash when printing if the SSID length was 32 bytes
  • Fixed an issue where AT‑Web netconfig failed when used with the WeChat applet

WebSocket

  • Added additional parameters to the AT+WSCFG command to configure certificates in WebSocket

Bluetooth

  • Fixed AT command response interleaving issues causing data corruption
  • Fixed AT command response issues where the \r character was missing
  • Fixed missing +BLECONN issue with system message enabled in BLE passthrough mode
  • Fixed AT+BTENCCLEAR not properly clearing BT pairing information
  • Fixed BLE_TT_MODE printed twice in BLE passthrough mode when using nimble protocol
  • Fixed missing +BLESCANDONE when stopping BLE scan
  • Fixed missing +WRITE when BLE peer device writes data
  • Removed redundant print information
  • Fixed memory leak during the service discovery process

Interface

  • Optimized the UART1 clock source
  • Fixed a potential crash when AT was not ready but received data
  • Fixed a potential UART voltage fluctuation during light sleep
  • Fixed some socket interface issues
  • Fixed an SDIO compilation warning
  • Fixed a heap‑corruption issue when using the SDIO interface

System

  • esp-idf version updated to ~v5.4.2
  • Added an unfilled factory binary
  • Added a checker to prevent duplicate keys in *.defaults
  • Added some return value checks for driver commands
  • Added pre_wakeup_callback and process_light_sleep hook events
  • Added a hook function for memory allocation failure
  • Added the esp_at_ready_before() API to perform tasks before ESP‑AT is ready
  • Added the at_exe_cmd() API to execute AT commands via ESP‑AT itself
  • Supported the new log system and improved log readability
  • Added support to configure the default system storage mode
  • Added support to print the firmware source
  • Added support to override default configurations
  • Optimized resources to increase available RAM
  • Reduced power consumption when a beacon is lost
  • Optimized the root CMake file
  • Decoupled Wi‑Fi and BLE functions from the base commands
  • Renamed esp_at_get_netconn_count() to esp_at_get_netconn_max_count()
  • Exposed esp_at_get_smartconfig_start_config() API
  • Reconfigured TWDT to disable the panic trigger when AT debug is enabled
  • Provided some weak symbols to allow external overriding (esp_at_nvs_set_xxx/esp_at_nvs_get_xxx/esp_at_log_write)
  • Fixed an issue where the factory binary was not generated in some cases
  • Fixed an issue where patches could not be applied on Windows
  • Fixed several MCU wake‑up issues

Optimization

  • TCP & SSL: TCP/SSL connections are now proactively closed immediately when their associated netif state changes (netif down, stop, or lost IP). In previous versions, the connections would remain open until a keep-alive timeout, send timeout, or max retry threshold was reached - often taking tens of seconds to close. This change significantly reduces latency in connection teardown and improves system responsiveness.
  • Upgraded supported python version and some package versions
  • Optimized patching process
  • Replaced the previous script with esptool.py merge_bin
  • Fixed a potential issue where the patch is applied multiple times
  • Fixed an issue where gatts_cfg was excessively modified by the at.py script

Examples

  • Added a fatfs_to_http_server example
  • Added a http_get_to_fatfs example
  • Added a WebSocket example document
  • Added an AT interface security example

Documentation

  • Improved documentation for AT commands, examples, and development
  • Added richer content for new features and changes
  • Added a chatbox on docs.espressif.com/projects/esp-at
  • Added a disclaimer for the esp-at project
  • Added some document format checks

ESP32C6-AT

Documentation for Release v4.1.0.0 is available at https://docs.espressif.com/projects/esp-at/en/release-v4.1.0.0/esp32c6/index.html. ESP32C6-AT v4.1.0.0 is a major update for ESP32C6-AT v4.0.0.0.

The firmwares:

Changelog

Basic

  • Added the AT+SYSRAM setup command to detail memory capacity
  • Added the AT+SYSROLLBACK query command to obtain the address and version of the current and rollback firmware
  • Added the AT+RFCAL command to support RF full calibration
  • Added deduplication support for the AT+SYSMFG command
  • Added sleep support in the BLE‑only firmware
  • Added support to disable sleep when Wi‑Fi and BLE coexist
  • Fixed an issue where AT+SYSMSGFILTER did not work when the data contained \r\n
  • Fixed an AT+SYSFLASH crash issue if read a large amount of data
  • Added support for configurable UART commands

Wi-Fi

  • Added the AT+CWBANDWIDTH command to set Wi‑Fi bandwidth
  • Added the AT+CWCONFIG command to set the global inactive time and listen interval
  • Added Wi‑Fi negotiated PHY‑mode output
  • Expand authmode range for AT+CWLAPOPT, AT+WPS, AT+CWSTARTSMART and AT+BLUFI
  • Extended the Wi‑Fi protocol range for the AT+CWSTAPROTO and AT+CWAPPROTO commands
  • Fixed a station‑connection failure when using AT+CWJAP after connecting to an Enterprise AP with AT+CWJEAP
  • Fixed a crash when setting hostname length to 32 bytes via AT+CWHOSTNAME
  • Fixed two WPA2‑Enterprise connection issues
  • Fixed a potential Wi‑Fi issue where the device disconnected immediately after powering on and connecting to the AP
  • Fixed an issue where AT+CWLAP did not return valid APs when BLUFI was enabled
  • Fixed incorrect Wi‑Fi reconnection behavior after sending the AT+CWQAP and AT+CWRECONNCFG commands
  • Fixed a Wi‑Fi disconnection issue when sending the AT+CWRECONNCFG command twice
  • Fixed an issue where IPv6 information was output in passthrough mode
  • Fixed an issue where AT+CWAUTOCONN did not take effect for Enterprise APs

TCP/IP

  • Added a netif parameter to the AT+CIPSERVER command
  • Added the AT+CIPSSLCCIPHER command to configure the SSL cipher‑suite list
  • Added a timeout parameter to the AT+CIPSTART and AT+CIPDOMAIN commands
  • Enabled the SSL dynamic buffer to increase available RAM size
  • Added support for a backup DNS server in AT+CIPDNS
  • Fixed AT+CWDHCP returning an incorrect DHCP state after the DHCP server was disabled
  • Fixed an issue where AT+CIPRECVLEN? always returned a fixed set of five connections
  • Fixed several issues where AT+CIPSTATUS returned incorrect statuses
  • Fixed an infinite‑loop issue when the SSL server encountered a PKI read error
  • Fixed some potential reconnection issues in passthrough mode
  • Fixed an issue where TLS resources were not freed if TLS negotiation failed
  • Fixed an issue where AT+CIPCLOSE could not close a connection after reaching the maximum number of open sockets
  • Fixed an issue where the UDP mode in AT+CIPSTART did not work in passive‑read mode
  • Fixed an asynchronous issue with AT+CIPRECVLEN
  • Fixed an issue where AT+CIPSTO did not take effect when data transmission failed
  • Fixed an issue where two CLOSED messages were output after exiting passthrough mode
  • Fixed incorrect output when a socket was readable but returned zero bytes

mDNS

  • Added mDNS query support to AT+MDNS
  • Added the instance, proto, and txt parameters to the AT+MDNS command

HTTP

  • Added HTTP status‑code output for HTTP commands
  • Added the AT+HTTPCFG command to configure certificates for HTTP
  • Added HTTP‑header deduplication to the AT+HTTPCHEAD command
  • Added support for configurable HTTP buffer size

MQTT

  • Change MQTT message retransmission interval from 1 second to 5 seconds to improve connection stability
  • Fixed a potential issue where MQTT subscribe via AT+MQTTSUB failed but returned OK
  • Fixed an issue where an MQTT QoS 2 PUBREL packet might not be retransmitted

FatFS

  • Added FatFS support on 2 MB flash
  • Added a data‑length check when writing to FatFS
  • Fixed several FatFS mount and unmount issues
  • Fixed a mismatch between the generated fatfs.bin size and the required size
  • Fixed an issue where FatFS did not work if fatfs.bin was not pre‑burned before flashing
  • Fixed an issue where fwrite() returned OK but data was not written to the file system

OTA

  • Enabled app rollback support
  • Added compressed OTA v3 support and a sanity checker

WebServer

  • Fixed a compilation error when WebSocket and info logging were enabled
  • Fixed two slist issues where the pointer fail_item was used after free
  • Fixed a potential crash when printing if the SSID length was 32 bytes
  • Fixed an issue where AT‑Web netconfig failed when used with the WeChat applet
  • Fixed an issue where Wi‑Fi did not auto‑reconnect after obtaining an IP address and disconnecting while the web server was in use

WebSocket

  • Added additional parameters to the AT+WSCFG command to configure certificates in WebSocket

Bluetooth

  • Fixed AT command response interleaving issues causing data corruption
  • Fixed BLE not working in silence firmware on esp32c6
  • Fixed AT command response issues where the \r character was missing
  • Added BLE light sleep support on esp32c6
  • Added BLE adv type information
  • Fixed missing +BLESCANDONE issue
  • Resolved data loss issue in BLE passthrough mode
  • Optimized BLE WRITE/INDICATE flow control mechanism
  • Fixed crash in BLE transparent transmission mode
  • Fixed AT+BTENCCLEAR not properly clearing BT pairing information
  • Fixed BLE_TT_MODE printed twice in BLE passthrough mode
  • Fixed missing +WRITE response
  • Fixed BLUFI memory leak
  • Fixed issue where MTU size greater than attribute length caused data transmission failure
  • Fixed AT+RFPOWER query not returning BLE power when using nimble protocol
  • Fixed extra +BLEDISCONN message issue when sending AT+BLEDISCONN=0

Interface

  • Optimized the UART1 clock source
  • Fixed a potential crash when AT was not ready but received data
  • Fixed a potential UART voltage fluctuation during light sleep
  • Fixed some socket interface issues
  • Fixed an SDIO compilation warning
  • Fixed a heap‑corruption issue when using the SDIO interface

System

  • esp-idf version updated to ~v5.4.2
  • Added an unfilled factory binary
  • Added a checker to prevent duplicate keys in *.defaults
  • Added some return value checks for driver commands
  • Added pre_wakeup_callback and process_light_sleep hook events
  • Added a hook function for memory allocation failure
  • Added the esp_at_ready_before() API to perform tasks before ESP‑AT is ready
  • Added the at_exe_cmd() API to execute AT commands via ESP‑AT itself
  • Added more prompt messages during compilation
  • Reorganized the main directory of the ESP‑AT repository
  • Supported the new log system and improved log readability
  • Added support to use an external module_config to override the internal one
  • Added support for AT command overrides
  • Added support to configure the default system storage mode
  • Added support to print the firmware source
  • Added support to override default configurations
  • Optimized resources to increase available RAM
  • Reduced power consumption when a beacon is lost
  • Optimized the root CMake file
  • Decoupled Wi‑Fi and BLE functions from the base commands
  • Updated the license and code style to satisfy pre‑commit checks
  • Renamed esp_at_get_netconn_count() to esp_at_get_netconn_max_count()
  • Exposed esp_at_get_smartconfig_start_config() API
  • Reconfigured TWDT to disable the panic trigger when AT debug is enabled
  • Provided some weak symbols to allow external overriding (esp_at_nvs_set_xxx/esp_at_nvs_get_xxx/esp_at_log_write)
  • Fixed an issue where the factory binary was not generated in some cases
  • Fixed an issue where patches could not be applied on Windows
  • Fixed several MCU wake‑up issues
  • Fixed a compile error if no internet
  • Fixed the issue where AT cannot work immediately after restart and prompt ready
  • Added debug options to allow different levels of ESP‑AT debug output
  • Upgraded supported Python version and some package versions
  • Optimized patching process
  • Replaced the previous script with esptool.py merge_bin
  • Fixed a potential issue where the patch is applied multiple times
  • Fixed an issue where gatts_cfg was excessively modified by the at.py script

Documentation

  • Improved documentation for AT commands, examples, and development
  • Added richer content for new features and changes
  • Added a chatbox on docs.espressif.com/projects/esp-at
  • Added a disclaimer for the esp-at project
  • Added document format checks

ESP32-AT

Documentation for Release v4.1.0.0 is available at https://docs.espressif.com/projects/esp-at/en/release-v4.1.0.0/esp32/index.html. ESP32-AT v4.1.0.0 is a major update for ESP32-AT v3.4.0.0.

The firmwares:

This is the list of changes since release v3.4.0.0:

Known Issues

  • AT+FS may fail after repeated read/write operations
  • AT+BLUFI after disabling and re-enabling BLUFI without power cycling, BLE advertising may fail to start. Workaround: Restart the chip or set Wi-Fi mode to STA/NULL.

Changelog

Basic

  • Added the AT+SYSRAM setup command to detail memory capacity
  • Added the AT+SYSROLLBACK query command to obtain the address and version of the current and rollback firmware
  • Added the AT+RFCAL command to support RF full calibration
  • Added deduplication support for the AT+SYSMFG command
  • Added sleep support in the BLE‑only firmware
  • Added support to disable sleep when Wi‑Fi and BLE coexist
  • Fixed an issue where AT+SYSMSGFILTER did not work when the data contained \r\n

Wi-Fi

  • Added the AT+CWBANDWIDTH command to set Wi‑Fi bandwidth
  • Added the AT+CWCONFIG command to set the global inactive time and listen interval
  • Expand authmode range for AT+CWLAPOPT, AT+WPS, AT+CWSTARTSMART and AT+BLUFI
  • Fixed a station‑connection failure when using AT+CWJAP after connecting to an Enterprise AP with AT+CWJEAP
  • Fixed a crash when setting hostname length to 32 bytes via AT+CWHOSTNAME
  • Fixed two WPA2‑Enterprise connection issues
  • Fixed a potential Wi‑Fi issue where the device disconnected immediately after powering on and connecting to the AP
  • Fixed an issue where AT+CWLAP did not return valid APs when BLUFI was enabled
  • Fixed incorrect Wi‑Fi reconnection behavior after sending the AT+CWQAP and AT+CWRECONNCFG commands
  • Fixed a Wi‑Fi disconnection issue when sending the AT+CWRECONNCFG command twice

TCP/IP

  • Added a netif parameter to the AT+CIPSERVER command
  • Added the AT+CIPSSLCCIPHER command to configure the SSL cipher‑suite list
  • Added a timeout parameter to the AT+CIPSTART and AT+CIPDOMAIN commands
  • Added support for a backup DNS server in AT+CIPDNS
  • Fixed AT+CWDHCP returning an incorrect DHCP state after the DHCP server was disabled
  • Fixed an issue where AT+CIPRECVLEN? always returned a fixed set of five connections
  • Fixed several issues where AT+CIPSTATUS returned incorrect statuses
  • Fixed an infinite‑loop issue when the SSL server encountered a PKI read error
  • Fixed some potential reconnection issues in passthrough mode
  • Fixed an issue where TLS resources were not freed if TLS negotiation failed
  • Fixed an issue where AT+CIPCLOSE could not close a connection after reaching the maximum number of open sockets
  • Fixed an issue where the UDP mode in AT+CIPSTART did not work in passive‑read mode
  • Fixed an asynchronous issue with AT+CIPRECVLEN
  • Fixed an issue where AT+CIPSTO did not take effect when data transmission failed

mDNS

  • Added mDNS query support to AT+MDNS
  • Added the instance, proto, and txt parameters to the AT+MDNS command

HTTP

  • Added HTTP status‑code output for HTTP commands
  • Added the AT+HTTPCFG command to configure certificates for HTTP
  • Added HTTP‑header deduplication to the AT+HTTPCHEAD command

MQTT

  • Change MQTT message retransmission interval from 1 second to 5 seconds to improve connection stability
  • Fixed a potential issue where MQTT subscribe via AT+MQTTSUB failed but returned OK
  • Fixed an issue where an MQTT QoS 2 PUBREL packet might not be retransmitted

Ethernet

  • Supported to use ethernet interface only mode

FatFS

  • Added FatFS support on 2 MB flash
  • Added a data‑length check when writing to FatFS
  • Fixed several FatFS mount and unmount issues
  • Fixed a mismatch between the generated fatfs.bin size and the required size
  • Fixed an issue where FatFS did not work if fatfs.bin was not pre‑burned before flashing
  • Fixed an issue where fwrite() returned OK but data was not written to the file system

OTA

  • Enabled app rollback support
  • Added compressed OTA v3 support and a sanity checker

WebServer

  • Fixed a compilation error when WebSocket and info logging were enabled
  • Fixed two slist issues where the pointer fail_item was used after free
  • Fixed a potential crash when printing if the SSID length was 32 bytes
  • Fixed an issue where AT‑Web netconfig failed when used with the WeChat applet

WebSocket

  • Added additional parameters to the AT+WSCFG command to configure certificates in WebSocket

Bluetooth

  • Fixed AT command response interleaving issues causing data corruption
  • Fixed missing +BLECONN issue with system message enabled in BLE passthrough mode
  • Fixed AT+BTENCCLEAR not properly clearing BT pairing information
  • Fixed BLE_TT_MODE printed twice in BLE passthrough mode when using nimble protocol
  • Fixed missing +BLESCANDONE when stopping BLE scan
  • Fixed missing +WRITE when the BLE peer device writes data
  • Removed redundant print information
  • Fixed the memory leak issue during the service discovery process

Interface

  • Optimized the UART1 clock source
  • Fixed a potential crash when AT was not ready but received data
  • Fixed a potential UART voltage fluctuation during light sleep
  • Fixed some socket interface issues
  • Fixed a low throughput issue on esp32
  • Fixed an SDIO compilation warning
  • Fixed a heap‑corruption issue when using the SDIO interface

System

  • esp-idf version updated to ~v5.4.2
  • Added an unfilled factory binary
  • Added a checker to prevent duplicate keys in *.defaults
  • Added some return value checks for driver commands
  • Added pre_wakeup_callback and process_light_sleep hook events
  • Added a hook function for memory allocation failure
  • Supported the new log system and improved log readability
  • Added support to configure the default system storage mode
  • Added support to print the firmware source
  • Added support to override default configurations
  • Optimized resources to increase available RAM
  • Reduced power consumption when a beacon is lost
  • Optimized the root CMake file
  • Decoupled Wi‑Fi and BLE functions from the base commands
  • Renamed esp_at_get_netconn_count() to esp_at_get_netconn_max_count()
  • Moved some wifi iram code to flash on esp32
  • Exposed esp_at_get_smartconfig_start_config() API
  • Reconfigured TWDT to disable the panic trigger when AT debug is enabled
  • Provided some weak symbols to allow external overriding (esp_at_nvs_set_xxx/esp_at_nvs_get_xxx/esp_at_log_write)
  • Reduced iram footprint by enabling CONFIG_HEAP_PLACE_FUNCTION_INTO_FLASH on esp32
  • Fixed an issue where the factory binary was not generated in some cases
  • Fixed an issue where patches could not be applied on Windows
  • Fixed several MCU wake‑up issues

Optimization

  • TCP & SSL: TCP/SSL connections are now proactively closed immediately when their associated netif state changes (netif down, stop, or lost IP). In previous versions, the connections would remain open until a keep-alive timeout, send timeout, or max retry threshold was reached - often taking tens of seconds to close. This change significantly reduces latency in connection teardown and improves system responsiveness.
  • Upgraded supported Python version and some package versions
  • Optimized patching process
  • Replaced the previous script with esptool.py merge_bin
  • Fixed a potential issue where the patch is applied multiple times
  • Fixed an issue where gatts_cfg was excessively modified by the at.py script

Documentation

  • Improved documentation for AT commands, examples, and development
  • Added richer content for new features and changes
  • Added a chatbox on docs.espressif.com/projects/esp-at
  • Added a disclaimer for the esp-at project
  • Added document format checks