Skip to content

Releases: espressif/ESP8266_RTOS_SDK

ESP8266_RTOS_SDK Release v3.4

08 Apr 07:24
Compare
Choose a tag to compare

This is the list of changes since release v3.3.

1. Important Notes

  • Removed aws-iot component and related example, if you need to implement aws-iot, please refer to https://github.com/espressif/esp-aws-iot.
  • Removed ibm-mqtt component and related example, if you need to implement MQTT, please refer to https://github.com/espressif/esp-mqtt.
  • Added support policy for each SDK version.
  • Supported WPA3/PMF/802.11kv.
  • Updated GCC to version 8.4.0, you can run ./install.sh in the root directory of RTOS SDK to install GCC and its related components.
  • For security, with RTOS v3.4, if user sets a password to connect to an AP, then it cannot connect to an open AP with the same SSID.
  • Supported SmartConfig V2 and provided example.

2. Changes in Functions and Features:

2.1 App Update

  • Added App description section in the compiled firmware.

2.2 COAP

  • Synced COAP component and example from ESP-IDF.
  • Added examples of COAP multicast client and sever.

2.3 Driver

  • Supported SPI Flash GD25Q64 QIO mode.
  • Added API reference document for I2S.
  • Removed i2s_bbpll_clk_enable since I2S clock is enabled by default during initialization.
  • LEDC: Fixed PWM duty setting error.
  • Supported float number in PWM.
  • Optimized PWM hardware timer enable/disable, to ensure it will not be affected by other hardware drivers.
  • Fixed an issue of ADC read.

2.4 ESP Common

  • Added esp-common component, moved some common functions into it, synced from ESP-IDF.

2.5 ESP Event

  • Added esp-event component.
  • Optimized example to use esp-event APIs.

2.6 ESP HTTP Client

  • Synced esp_http_client component and example from ESP-IDF.

2.7 ESP MQTT

  • Synced esp-mqtt component and example from ESP-IDF.

2.8 ESP TLS

  • Fixed an incorrect definition issue in example.
  • Fixed a compiling error with mbedTLS.
  • Fixed a wolfSSL_set_tlsext_host_name missing error when compiling with wolfSSL.

2.9 FatFS

  • Added FatFS.

2.10 Free ModBus

  • Added free-modbus.
  • modbus protocol supports TCP transmission.

2.11 FreeRTOS

  • Added a hardware detection for task stack overflow.
  • Optimized interrupt workflow to speed it up.
  • Added errno for thread safety.
  • Added a feature to modify task stack depth dynamically.

2.12 Heap

  • Added a configuration to enable/disable heap trace. If it is disabled, then malloc/free will be speeded up.
  • Add integer overflow checks

2.13 LwIP

  • Synced esp-lwip component and example from ESP-IDF.
  • Added a configuration to enable auto-config for IPv6 address.
  • Fixed an issue that system returns OK even if it actually fails to send data when ran out of Wi-Fi TX buffer.
  • Increased the default TCP buffer size for sending data from 2880 bytes to 5760 bytes.
  • Added an iperf example to test TCP/UDP throughput.
  • Optimized the time that DHCP client needs to get an IP address.
  • Supported enabling more LwIP debug log in menuconfig.
  • Added IPv6 ICMP example.
  • Fixed an issue of IPv6 multicast.

2.14 MbedTLS

  • Fixed compiling error of unit test.
  • Improved calculate speed of bignum.

2.15 mDNS

  • Synced mDNS component and example from ESP-IDF.

2.16 System

  • Supported print "%" with ets_printf.
  • Supported GDB stub in panic.
  • Added rtc uninitialized section and data uninitialized section.
  • Fixed a deep sleep failure issue.
  • Refactored ets timer to save memory.
  • Supported link application firmware to the SPI flash's first 8MB space.
  • Optimized compilation configuration, user can configure it by . ./export.sh.
  • Added esp_random to get hardware random number.
  • Fixed an issue of calling esp_restart.
  • Changed the default frequency to be 160MHz since CPU starts.
  • Added non-mask watchdog to monitor the system in critical section.
  • Changed the task priority of app_main from 15 to be 1.
  • Added fast boot mode, the system start-up time is about 20ms in this mode.
  • Added a function to get the value of RTC hardware clock.
  • Fixed a deep sleep time overflow issue.
  • Fixed an issue of calling ets_printf when read/write SPI flash.
  • Updated GCC to version 8.4.0.
  • Disabled warning detection by default when compiling with cmake.
  • Added a configuration to support 40MHz crystal oscillator.
  • Fixed an issue of closing NMI
  • Fixed an issue that the system may fail to wake up if set it deep sleep for a very short time (1~6us).

2.17 TCP Transport

  • Synced TCP transport component and example from ESP-IDF.

2.18 TCPIP Adapter

  • Added esp_netif_init and esp_netif_deinit to sync the same framework with ESP-IDF.
  • Increased efficiency of getting an IP address by disabling power save function during DHCP.

2.19 Util

  • Removed Util component, and move arithmetic codes into mbedtls component and esp8266 component.

2.20 VFS

  • Synced VFS component from ESP-IDF to support FatFS.

2.21 Wear Levelling

  • Added wear-levelling component for FatFS.

2.22 Wi-Fi

  • Updated libphy.a to version 1163.0, which saved more memory and optimized Wi-Fi performance.
  • Optimized Wi-Fi sleep arithmetic to save more power in modem/light sleep mode.
  • Refactor softap sleep arithmetic to increase efficiency of sending data to station.
  • Refactored MAC arithmetic of sending data to increase efficiency and save memory.
  • Supported WPA3.
  • Supported PMF.
  • Supported PMF & ESP-NOW coexistence.
  • Fixed a connecting fail issue of iPhone in ESP8266 softAP mode.
  • Fixed a possible beacon attack issue during beacon auth mode change.
  • Fixed a possible system restart issue when Wi-Fi and PWM are used at the same time.
  • Fixed some ESP-Now issues.
  • Supported getting frequency offset by scanning.
  • Supported rssi info and phy mode in esp_wifi_sta_get_ap_info() api.
  • Fixed an issue that softAP may fail to store PMK if system powers down unexpectedly.
  • Fixed some Wi-Fi country code issues.
  • Supported receiving multicast packets in ESP-NOW.
  • Fixed an issue that Wi-Fi mode changed when enters deep sleep.
  • esp_wifi_scan_start() returns error, if user calls it during station connecting to an AP.
  • Fixed an issue that device will send 802.11 ACK even if sta or softap is stopped.
  • Fixed an issue that softap checked dis-assoc packet sequence with data sequence.
  • Fixed an issue that softap still does 4-way handshake when station tries to connect to it with wrong ssid.
  • Refactored Wi-Fi connecting arithmetic to improve its performance if there are many APs with a same SSID but different passwords.
  • Fixed an issue that device may receive packets which are forwarded by AP but originally sent by itself.
  • Fixed an issue that device will rewrite flash even if sets the same station config.
  • Supported 802.11kv, added Wi-Fi roaming example.
  • Changed default DTIM in softAP mode from 2 to be 1.
  • Added a configuration to set maximum and minimum packet length in sniffer mode.
  • Improved the performance of catching packets in the air in sniffer mode.
  • Fixed cipher mode error when scanning AP info.
  • Optimized SmartConfig efficiency.
  • Changed SmartConfig to use esp_event to sync status.
  • For security, with RTOS v3.4, if user sets a password to connect to an AP, then it cannot connect to an open AP with the same SSID.
  • Supported SmartConfig V2 and provided example.
  • Fixed an issue that Wi-Fi RX buffer may fail to release with some specific router.
  • Fixed connecting fail issues with some specific routers.
  • Fixed an issue that if scanning more than 5 seconds then it will fail.
  • Fixed an issue that if ESP8266 station connects to a router and also enables ESP-Now, its key pn will be updated incorrectly and Wi-Fi data may loss.
  • Fixed a possible system crash issue when AMPDU registers were rewrote
  • Fixed dump CCMP length error
  • Fixed RF state error when scan again in scan callback function

2.23 Wi-Fi Provisioning

  • Synced Wi-Fi Provisioning component and example from ESP-IDF.

2.24 WPA Supplicant

  • Refactored WPA Supplicant to support WPA3, and keep the same framework with ESP-IDF.

ESP8266_RTOS_SDK Pre-release v3.4-rc

02 Feb 07:06
Compare
Choose a tag to compare
Pre-release

ESP8266_RTOS_SDK Pre-release v3.4-rc

This is the list of changes since release v3.3.

1. Important Notes

  • Removed aws-iot component and related example, if you need to implement aws-iot, please refer to https://github.com/espressif/esp-aws-iot.
  • Removed ibm-mqtt component and related example, if you need to implement MQTT, please refer to https://github.com/espressif/esp-mqtt.
  • Added support policy for each SDK version.
  • Supported WPA3/PMF/802.11kv.
  • Updated GCC to version 8.4.0, you can run ./install.sh in the root directory of RTOS SDK to install GCC and its related components.
  • For security, with RTOS v3.4, if user sets a password to connect to an AP, then it cannot connect to an open AP with the same SSID.
  • Supported SmartConfig V2 and provided example.

2. Changes in Functions and Features:

2.1 App Update

  • Added App description section in the compiled firmware.

2.2 COAP

  • Synced COAP component and example from ESP-IDF.
  • Added examples of COAP multicast client and sever.

2.3 Driver

  • Supported SPI Flash GD25Q64 QIO mode.
  • Added API reference document for I2S.
  • Removed i2s_bbpll_clk_enable since I2S clock is enabled by default during initialization.
  • LEDC: Fixed PWM duty setting error.
  • Supported float number in PWM.
  • Optimized PWM hardware timer enable/disable, to ensure it will not be affected by other hardware drivers.
  • Fixed an issue of ADC read.

2.4 ESP Common

  • Added esp-common component, moved some common functions into it, synced from ESP-IDF.

2.5 ESP Event

  • Added esp-event component.
  • Optimized example to use esp-event APIs.

2.6 ESP HTTP Client

  • Synced esp_http_client component and example from ESP-IDF.

2.7 ESP MQTT

  • Synced esp-mqtt component and example from ESP-IDF.

2.8 ESP TLS

  • Fixed an incorrect definition issue in example.
  • Fixed a compiling error with mbedTLS.
  • Fixed a wolfSSL_set_tlsext_host_name missing error when compiling with wolfSSL.

2.9 FatFS

  • Added FatFS.

2.10 Free ModBus

  • Added free-modbus.
  • modbus protocol supports TCP transmission.

2.11 FreeRTOS

  • Added a hardware detection for task stack overflow.
  • Optimized interrupt workflow to speed it up.
  • Added errno for thread safety.
  • Added a feature to modify task stack depth dynamically.

2.12 Heap

  • Added a configuration to enable/disable heap trace. If it is disabled, then malloc/free will be speeded up.
  • Add integer overflow checks

2.13 LwIP

  • Synced esp-lwip component and example from ESP-IDF.
  • Added a configuration to enable auto-config for IPv6 address.
  • Fixed an issue that system returns OK even if it actually fails to send data when ran out of Wi-Fi TX buffer.
  • Increased the default TCP buffer size for sending data from 2880 bytes to 5760 bytes.
  • Added an iperf example to test TCP/UDP throughput.
  • Optimized the time that DHCP client needs to get an IP address.
  • Supported enabling more LwIP debug log in menuconfig.
  • Added IPv6 ICMP example.
  • Fixed an issue of IPv6 multicast.

2.14 MbedTLS

  • Fixed compiling error of unit test.
  • Improved calculate speed of bignum.

2.15 mDNS

  • Synced mDNS component and example from ESP-IDF.

2.16 System

  • Supported print "%" with ets_printf.
  • Supported GDB stub in panic.
  • Added rtc uninitialized section and data uninitialized section.
  • Fixed a deep sleep failure issue.
  • Refactored ets timer to save memory.
  • Supported link application firmware to the SPI flash's first 8MB space.
  • Optimized compilation configuration, user can configure it by . ./export.sh.
  • Added esp_random to get hardware random number.
  • Fixed an issue of calling esp_restart.
  • Changed the default frequency to be 160MHz since CPU starts.
  • Added non-mask watchdog to monitor the system in critical section.
  • Changed the task priority of app_main from 15 to be 1.
  • Added fast boot mode, the system start-up time is about 20ms in this mode.
  • Added a function to get the value of RTC hardware clock.
  • Fixed a deep sleep time overflow issue.
  • Fixed an issue of calling ets_printf when read/write SPI flash.
  • Updated GCC to version 8.4.0.
  • Disabled warning detection by default when compiling with cmake.
  • Added a configuration to support 40MHz crystal oscillator.
  • Fixed an issue of closing NMI
  • Fixed an issue that the system may fail to wake up if set it deep sleep for a very short time (1~6us).

2.17 TCP Transport

  • Synced TCP transport component and example from ESP-IDF.

2.18 TCPIP Adapter

  • Added esp_netif_init and esp_netif_deinit to sync the same framework with ESP-IDF.
  • Increased efficiency of getting an IP address by disabling power save function during DHCP.

2.19 Util

  • Removed Util component, and move arithmetic codes into mbedtls component and esp8266 component.

2.20 VFS

  • Synced VFS component from ESP-IDF to support FatFS.

2.21 Wear Levelling

  • Added wear-levelling component for FatFS.

2.22 Wi-Fi

  • Updated libphy.a to version 1163.0, which saved more memory and optimized Wi-Fi performance.
  • Optimized Wi-Fi sleep arithmetic to save more power in modem/light sleep mode.
  • Refactor softap sleep arithmetic to increase efficiency of sending data to station.
  • Refactored MAC arithmetic of sending data to increase efficiency and save memory.
  • Supported WPA3.
  • Supported PMF.
  • Supported PMF & ESP-NOW coexistence.
  • Fixed a connecting fail issue of iPhone in ESP8266 softAP mode.
  • Fixed a possible beacon attack issue during beacon auth mode change.
  • Fixed a possible system restart issue when Wi-Fi and PWM are used at the same time.
  • Fixed some ESP-Now issues.
  • Supported getting frequency offset by scanning.
  • Supported rssi info and phy mode in esp_wifi_sta_get_ap_info() api.
  • Fixed an issue that softAP may fail to store PMK if system powers down unexpectedly.
  • Fixed some Wi-Fi country code issues.
  • Supported receiving multicast packets in ESP-NOW.
  • Fixed an issue that Wi-Fi mode changed when enters deep sleep.
  • esp_wifi_scan_start() returns error, if user calls it during station connecting to an AP.
  • Fixed an issue that device will send 802.11 ACK even if sta or softap is stopped.
  • Fixed an issue that softap checked dis-assoc packet sequence with data sequence.
  • Fixed an issue that softap still does 4-way handshake when station tries to connect to it with wrong ssid.
  • Refactored Wi-Fi connecting arithmetic to improve its performance if there are many APs with a same SSID but different passwords.
  • Fixed an issue that device may receive packets which are forwarded by AP but originally sent by itself.
  • Fixed an issue that device will rewrite flash even if sets the same station config.
  • Supported 802.11kv, added Wi-Fi roaming example.
  • Changed default DTIM in softAP mode from 2 to be 1.
  • Added a configuration to set maximum and minimum packet length in sniffer mode.
  • Improved the performance of catching packets in the air in sniffer mode.
  • Fixed cipher mode error when scanning AP info.
  • Optimized SmartConfig efficiency.
  • Changed SmartConfig to use esp_event to sync status.
  • For security, with RTOS v3.4, if user sets a password to connect to an AP, then it cannot connect to an open AP with the same SSID.
  • Supported SmartConfig V2 and provided example.
  • Fixed an issue that Wi-Fi RX buffer may fail to release with some specific router.
  • Fixed connecting fail issues with some specific routers.
  • Fixed an issue that if scanning more than 5 seconds then it will fail.
  • Fixed an issue that if ESP8266 station connects to a router and also enables ESP-Now, its key pn will be updated incorrectly and Wi-Fi data may loss.
  • Fixed a possible system crash issue when AMPDU registers were rewrote
  • Fixed dump CCMP length error
  • Fixed RF state error when scan again in scan callback function

2.23 Wi-Fi Provisioning

  • Synced Wi-Fi Provisioning component and example from ESP-IDF.

2.24 WPA Supplicant

  • Refactored WPA Supplicant to support WPA3, and keep the same framework with ESP-IDF.

ESP8266_RTOS_SDK Release v3.3

29 Jun 13:01
Compare
Choose a tag to compare

This is the list of changes since release v3.3-rc1.

1. Important Notes

  • Update libphy.a to version 1159.0, optimize the compatibility of configuration parameters in PHY.
  • Fix the inaccuracy sleep time of light sleep.
  • Support dynamic resource management in mbedTLS to reduce memory allocation.

2. Changes in Functions and Features:

2.1 Bootloader

  • Support enable/disable JTAG specific I/O.

2.2 Driver

  • Fix an issue that the UART data may loss when closing UART.
  • Fix a UART initialization issue.
  • Fix an error when setting GPIO16 to be pull-up or pull-down.

2.3 ESP MQTT

  • Fix API declaration issue in esp-mqtt.

2.4 ESP-TLS

  • Update pthread components from esp-idf.

2.5 ESP WolfSSL

  • Fix cmake compilation issue of wolfSSL.

2.6 LwIP

  • Fix an illegal address issue when joining IGMPv6 multicast group.
  • Fix a issue of retry when DHCP fails to rebind.
  • Add header file un.h refer to esp-idf, to solve some compilation issue.
  • Add a configuration in LwIP to set the interval of TCP re-sending when timeout.
  • Support lwip_shutdown in LwIP socket multi-thread security framework.

2.7 MbedTLS

  • Update mbedTLS components to v2.16.15.
  • Fix a compilation error of mbedTLS.
  • Support dynamic resource management in mbedTLS to reduce memory allocation.

2.8 System

  • Add information of station's IP address to the SYSTEM_EVENT_AP_STAIPASSIGNED event.
  • Fix an issue of inaccuracy system time when wake-up from light sleep by GPIO.

2.9 TCP Transport

  • Update tcp_transport components from esp-idf.

2.10 TCPIP Adapter

  • Add esp_netif_init and esp_netif_deinit to keep the same framework with esp-idf.

2.11 Wi-Fi

  • Fix a C++ compilation issue when calling Wi-Fi initialization structure.
  • Fix a compilation issue when enable CONFIG_ESP8266_WIFI_CONNECT_OPEN_ROUTER_WHEN_PWD_IS_SET in menuconfig.
  • Fix typos in Wi-Fi configurations.
  • Fix a memory leak issue when softAP received illegal packets from station.
  • Fix an issue when setting incorrect authmode to softAP.
  • Fix an issue that device will connect to router automatically when changing its country code.
  • Fix an issue of closing WPA2-Enterprise.
  • Fix the inaccuracy sleep time of light sleep.
  • Update libphy.a to version 1159.0, optimize the compatibility of configuration parameters in PHY.
  • Add wifi_unregister_wap2_cb to unregister WPA2 callback.
  • Support enable/disable Wi-Fi PLCP sending.

ESP8266_RTOS_SDK Release v3.1.2

14 May 07:48
Compare
Choose a tag to compare

This is the list of changes since release v3.1.1.

2. Changes in Functions and Features:

2.1 Driver

  1. Fix the returning error when setting GPIO16 Pull-UP/Pull-Down.
  2. Fix a UART data loss issue when close UART.

2.2 SPI Flash

  1. Support SPI flash GD25Q64 QIO mode.

2.3 SSC

  1. Update SSC library

2.4 Wi-Fi

  1. Update to phy 1058.14, optimize the compatibility of the configuration parameters.
  2. Support partial calibration.
  3. Fix a crash issue when ESP8266 softAP receives an illegal Wi-Fi packet.

3. Tools

  • Update idf_monitor.py.

ESP8266_RTOS_SDK Pre-release v3.3-rc1

26 Dec 06:19
Compare
Choose a tag to compare
Pre-release

This is the list of changes since release v3.2.

1. Important Notes

  • Refactor Wi-Fi software architecture to support 802.11n better.
  • Refactor system low power management to be more power saving.
  • Refactor xtensa LX106 panic backtrace.
  • Support WPA2 Enterprise.
  • IBM-MQTT, AWS-IoT and wolfSSL will be removed from SDK at next version (v3.4) and may be provided as independent projects instead.

2. Changes in Functions and Features:

2.1 APP Update

  • Add a feature to read the connected AP information which stored by old SDK when update from old SDK to new SDK through OTA. Users can refer to the example ESP8266_RTOS_SDK/examples/system/ota/native_ota to use this feature.

2.2 Build System

  • Update global "kconfig" and related compiling scripts.
  • Update python and related packages.
  • Update make and cmake compiling scripts.
  • Add "make size" and related functions to analyze static resources.
  • Remove unused functions and varibles to solve compiler warning.

2.3 Common Component

  • Add a feature to check stack for gcc.

2.4 Cross Tools Chain(GCC)

  • Fix disassembly instruction decoding error.

2.5 Driver

  • Refactor SPI driver.
  • Fix PWM period issue.
  • Modify UART APIs to be compatibile with ESP-IDF.
  • Add HSPI logic layer driver.
  • Add LEDC driver.
  • Add infrared transceiver driver.

2.6 ESP-Tool

  • Remove segment address logs.

2.7 ESP-TLS

  • Update pthread components from esp-idf.

2.8 ESP-WolfSSL

  • Add ESP-WolfSSL components, but wolfSSL may be an independent project in the future version (v3.4).

2.9 ESP8266

  • Remove 40MHZ XTAL option in menuconfig.
  • Refactor xtensa LX106 panic backtrace.
  • Refactor ccompare hardware timer driver.

2.10 Examples

  • Fix a state sync issue in openSSL cilent example.
  • Add low power management example in /examples/wifi/power_save.
  • Add "hello_world" example.
  • Add example common components.

2.11 FreeRTOS

  • Enable timer pending functions.

2.12 HTTP Client

  • Add default algorithm description in digest authorization.

2.13 HTTPS OTA

  • Update SSL to support no certificate.
  • Add an option to configure HTTP buffer and OTA buffer size.

2.14 Heap

  • Add a function to get DRAM region free size.
  • Add an option to enable/disable using IRAM as heap.

2.15 JSON

  • Update cjson to v1.7.12.

2.16 LwIP

  • Fix an issue that lacking of gcc standard header file declare when enable vfs.
  • Fix aton parse wrong parameters.
  • Fix ping statistical result error.
  • Enable TCP queue ooseq by default to improve communication quality.
  • Add TCP TX/RX debug log to make debugging easier.
  • Add gratuitous ARP.
  • Add an option to configue DHCP discover retransmission interval.

2.17 MQTT

  • Add notes that IBM-MQTT is not supported.

2.18 MbedTLS

  • Update mbedTLS components to v2.16.2.
  • Update openSSL components from esp-idf.

2.19 NewLib

  • Fix console uart output port error when enable vfs.
  • Fix pthread macro issue when compiling C++ code.
  • Fix abort function which may cause critical error.
  • Update nano mode library to support printing float format.
  • Support API clock_gettime.
  • Update normal newlib to support printing null string value.
  • Add function _getpid_r to pass compiling.

2.20 PThread

  • Update pthread components from esp-idf.

2.21 SPI Flash

  • Fix an issue that GD32Q64 can't enable QIO mode.

2.22 SSL

  • Remove wolfSSL and its examples.
  • Remove SSL component, keep mbedTLS and openSSL components.

2.23 System

  • Refactor system low power management.
  • Fix esp_timer crash issue.
  • Fix panic reenter when reboot
  • Add a macro definition of SDK software version.

2.24 TCPIP Adapter

  • Fix an issue that some unsupported functions may return "OK".

2.25 Util

  • Refactor SHA algorithm to speed up process.
  • Add AES OFB algorithm.
  • Add AES XTS algorithm.
  • Add ARC4 algorithm.
  • Add MD5 algorithm.

2.26 Wi-Fi

  • Refactor Wi-Fi low power management.
  • Refactor Wi-Fi software architecture to support 802.11n better.
  • Fix an issue that device may fail to connect to router.
  • Fix an issue that Wi-Fi connection may break in some cases.
  • Fix an issue that receiving AMPDU package may cause crash.
  • Fix an issue that getting bandwidth parameter will crash when the parameter is NULL.
  • Fix an issue that TSF is not accurate in softAP mode.
  • Fix calculating TBTT error in light sleep mode.
  • Fix Wi-Fi link error when Wi-Fi debug is enabled, and link the "libpp_dbg.a" to iRAM.
  • Fix the issue of inconsistent status code in asscociation of different routers.
  • Fix an airkiss callback issue, user fails to get the remote IP address in struct sc_callback_data when sc_status_link_over event comes.
  • Fix clock initialization error when init_data[112] = 1.
  • Fix an error when station getting AP authmode.
  • Fix an issue that station getting AP information may cause crash when it fails to connect to an AP.
  • Fix receiving data frame error in sniffer mode.
  • Fix probe request length error.
  • Modify description of wifi_promiscuous_pkt_t structure.
  • Modify APIs that enable/disable wakeup from light sleep.
  • Modify the max number of scaned AP to 99.
  • Support Wi-Fi partial calibration during phy initialization.
  • Support WPS and optimize WPS performance.
  • Add an option of whether connecting to an open router when password is set.
  • Add a feature to set phy calculation option according to the calculation data checking result.
  • Add WPA2 Enterprise solution.
  • Optimize sniffer mode.
  • Optimize Wi-Fi sleep performance when DTIM > 2.

3. Tools

  • Update idf_monitor.py.

4. Modified Documents

  • Remove components' version description.
  • Solve catch error "/dev/ttyUSBx: [Errno 13] Permission denied"(x = 0, 1, 2 ...).

ESP8266_RTOS_SDK Release v3.1.1

05 Dec 08:33
Compare
Choose a tag to compare

This is the list of changes since release v3.1.

1. Important Notes

  • Fix an issue that device may fail to connect to router.

2. Changes in Functions and Features:

2.1 APP Update

  • Add a feature to copy old RF parameters to the new SDK partition.

2.2 Build System

  • Fix linking error when some functions' attribute is "unlikely".
  • Fix an issue that combine binary overwrite checking may fail.
  • Fix component nested issue
  • Fix OTA firmware link address error

2.3 Driver

  • Fix PWM jitter issue.

2.4 FreeRTOS

  • Fix an issue that platform data may cause exception.
  • Optimize FreeRTOS sleep module.
  • Optimize FreeRTOS process efficiency.

2.5 Heap

  • Fix an issue that sniffer may cause crash when read/write/erase flash.
  • Fix an issue that heap functions may block Wi-Fi RX/TX in some cases.

2.6 LwIP

  • Fix UDP send fail in some case.

2.8 System

  • Fix delete "esp_timer" causing crash.
  • Fix "abort" function cause critical error.
  • Fix watch dog may be triggered when entering light sleep.
  • Optimize the method to get APP information from partition table.

2.9 Wi-Fi

  • Fix set phy mode error.
  • Fix Wi-Fi software state machine mixed.
  • Fix Wi-Fi connection broke in some cases.
  • Fix clock error when init_data[112] = 1.
  • Fix an issue that station gets AP information may cause system crash when it fails to connect to AP.
  • Fix Wi-Fi connection broke issue when signal is weak.
  • Fix header file dependence issue.
  • Fix Wi-Fi disconnection fails in some case.

3. Tools

  • Fix incorrect requirements modules for python.

4. Modified Documents

  • Fix document format error for auto script of read the docs.
  • Add gif to introduce FOTA work flow.

ESP8266_RTOS_SDK Release v2.1.1

28 Nov 13:05
Compare
Choose a tag to compare

1. Important Notes

  • Fix an issue that device may fail to connect to router.

2. Changes in Functions and Features:

2.1 Driver

  • Fix PWM jitter.

2.2 LwIP

  • Fix IPv6 maxresp parameters error may cause system crash.
  • Fix pbuf_free may cause system crash when lack of DRAM memory.

2.3 mbedTLS

  • Fix macro SSL_VERIFY_NONE redefined issue.
  • Fix API ssl_set_bio redefined issue.

2.4 SmartConfig

  • Optimize smartconfig performance by adding length filter.

2.5 SPIFFS

  • Fix debug macro and parameters error.
  • Fix data no-align load/store error.

2.6 System

  • Fix duplicate backups of the same data.
  • Fix backup data error in some cases.
  • Fix backup data being erased in some cases.

2.7 Wi-Fi

  • Fix AMPDU recieving error.
  • Fix CCMP encryption incompatible issue with some APs.
  • Fix an issue that device fails to connect to some special AP with 11b only mode.
  • Fix Wi-Fi connection broke in some cases.
  • Fix Wi-Fi station disconnect may cause system crash.
  • Fix status code error in ADDBA response packet.
  • Optimized Wi-Fi performance when signal is weak.

ESP8266_RTOS_SDK Release v3.2

14 Jun 07:23
Compare
Choose a tag to compare

ESP8266_RTOS_SDK Release v3.2

This is the list of changes since release v3.1.

1. Important Notes

  • Provide 4KB more heap for user since v3.2.
    • Test Environment: ESP8266 runs as a station, connects to an AP and gets an IP address from the AP.
    • Test Result:
      • After the chip got IP, the system's free heap size of v3.2 is 76716 Bytes;
      • After the chip got IP, the system's free heap size of the latest release/v3.1 is 72812 Bytes.
    • Conclusion: 4KB more heap is available for user with the v3.2.
  • V3.2 reduced the application binary size. For example, when compiling the example "openssl _demo", the generated app bin size is about 30KB less than the V3.1.
  • V3.2 removed the use limitation when using sniffer/promiscuous mode and operating the flash together.
  • If you need to call the esp_wifi_set_protocol, it should be called in the SYSTEM_EVENT_STA_START event.
  • For better compatibility, the ESP8266 is in bg mode by default. And application can set it to be bgn mode for reconnecting when it fails to connect some special APs, refer to the example "simple_wifi".

2. Changes in Functions and Features:

2.1 APP Update

  • Fix an issue that the base address of OTA copy cache buffer may not be aligned by 4 bytes.
  • Fix an issue of upgrading from old SDK to the new IDF style SDK, which caused by incorrect flash map.
  • Add combine binary overwrite checking.
  • Add a feature to check OTA firmware's entry function link address in case mistakenly download a wrong firmware.
  • Add a feature to copy old RF parameters to new SDK partition for that users' RF parameters are customized.
  • Add a feature to generate OTA initial binary.
  • Add a feature to get the target AP's SSID and password saved by the old SDK. So users can make the system connects to the same AP even if upgrading from an old SDK to the new style SDK.
  • Add a feature to check the wrong partition table.
  • Spilt OTA example into sub-examples to adapt to various use scenarios.

2.2 AWS IoT

  • AWS-IoT using esp-tls instead of mbedTLS, and this change makes it able to use wolfSSL.
  • Update to latest AWS certificate.

2.3 Bootloader

  • Add a feature that bootloader will copy app firmware from OTA_1 partition to OTA_0 partition after finishing FOTA. In this case, users can generate only one app firmware (OTA_0), instead of two firmwares (both OTA_0 and OTA_1), when using ESP8285 (or ESP8266 + 1MB Flash).

2.4 Build System

  • Fix print_flash_cmd print information error.
  • Optimize compiling script to get partition information from partition table binary.
  • Porting from esp-idf to support cmake
  • Update cmake project configuration file of components and examples to support cmake

2.5 CJSON

  • Add a feature to check if 32-bit type data overflowed when using newlib in nano mode.

2.6 Console

  • Add console component and example

2.7 Driver

  • Fix PWM error phase
  • Fix the blockage issue when UART enables swap
  • Fix a bug that PWM may be interrupted by Wi-Fi
  • Fix PWM jitter when connecting AP
  • Fix PWM channel number type error
  • Fix SPI example readme wave image error
  • Modify UART tx done API to add ticks for waitting
  • Add ADC driver and example
  • Add I2S driver and example
  • Add SPI RAM driver
  • Optimizing HSPI example

2.8 ESPOS

  • Remove ESPOS component

2.9 ESP-TLS

  • Update from esp-idf
  • Fix an issue of receiving fail when working in non-block mode

2.10 Esptool

  • Add a feature to disable the main part of rom UART0 printing
  • Add a feature to make software reset after finishing downloading

2.11 Factory-test

  • Add factory test example and document

2.12 FreeRTOS

  • Divide ringbuf to be an independent component from freertos
  • Remove unnecessary stack panic information so that only useful stack data will be print
  • Remove unused or unsupported platform code from freertos, only left the useful part for the xtensa LX106
  • Add a configuration to link some functions to IRAM to speed up task switch
  • Add an option to enable queue sets
  • Add an option to disable some functions to optimize firmware bin size
  • Add an option to disable FreeRTOS if user wants to use other OS instead
  • Add an option to enable facility
  • Add a function to get CPU usage
  • Add an option for idle task stack size, changed the default size from 768 to 1024 bytes
  • Add CPU wait in idle task to save power
  • Add an option for panic so that users can select whether it outputs panic information or not
  • Add independent tick/idle hook functionality

2.13 HEAP

  • Modify heap raw malloc/free link from flash to iram, to remove sniffer/promiscuous mode use limitation

2.14 HTTP Client

  • Add esp_http_client component from esp-idf
  • Add wolfssl platform support for http client

2.15 HTTP Parser

  • Add http parser from esp-idf

2.16 HTTP Server

  • Add the esp_http_server component from esp-idf

2.17 HTTPS OTA

  • Add esp_https_ota component from esp-idf

2.18 Log

  • Fix log time stamp error

2.19 LwIP

  • Fix compiling error when disable "set socket SO_LINGER default"
  • Fix a bug that socket multi-thread does not check socket offset when using VFS
  • Fix UDP sync register message error when using raw socket
  • Fix a crash issue when multi threads reenter lwip_close
  • Modify netif hostname according to rfc952
  • Add "<time.h>" declare to "lwipopts.h"
  • Add "<sys/select.h>" header file
  • Add a function to increase TCP sending speed at non-blocking mode
  • Add standard "fcntl" and "ioctl" APIs for application if VFS is disabled
  • Add a reserved DNS server to avoid DHCP changing all DNS server addresses
  • Add Auto-IP triggers callback so that application can know IP changes when running mDNS
  • Clean up LwIP port source code
  • Enable LWIP loopback by default in the example http_server series and wifi-provisioning

2.20 MQTT

  • Add esp-mqtt component and example
  • Fix compiling error when disable WS or WSS

2.21 NVS Flash

  • Added nvs_partition_gen_utility.py

2.22 Partition table

  • Fix partition load redefined error

2.23 Protobuf-c

  • Add protobuf-C component

2.24 Protocomm

  • Add protocomm component

2.25 SPIFFS

  • Add SPIFFS component and example

2.26 SSL

  • remove AX-TLS
  • Add license note to README and header file of wolfSSL
  • Modify network wrapper from mbedtls to esp-tls
  • Modify network wrapper from wolfSSL to esp-tls

2.27 System

  • Fix %p format print error of ets_printf
  • Fix a bug that startup function cannot support multiple segments
  • Fix a bug that RTC segment is always loaded even if it is woke up from deep sleep
  • Fix compiling error that "esp_sleep.h" leaks "gpio.h" declaring
  • Modify macro name of platform from TARGET_PLATFORM_ESP8266 to IDF_TARGET_ESP8266
  • Add interrupt overhead time test
  • Add an option to configure CPU frequency to be 160MHz before app_main
  • Add an API esp_timer_get_time to get microsecond
  • Add a function to print version of "phy" library
  • Add error number description
  • Add a feature that software disables UART swap before restart
  • Add an option to init OS before starting for "RTT"
  • Refactor link section to make unused function/data not linked
  • Refactor GPIO wakeup API in force sleep mode
  • Remove esp_socket to save RAM and ROM
  • Update libphy.a to 1055_22
    • Optimize time waking from light sleep to reduce power consumption
    • Disable calculating No.14 channel when power on

2.28 TCP Transport

  • Add tcp_transport component

2.29 TCPIP-Adapter

  • Fix a memory leak issue that received pbuf may not be freed

2.30 Util

  • Add a function to speed up loading data from instruction bus
  • Add new SHA(1/256/512) algorithm and unit test
  • Add new AES(ECB/CBC/CFB128/CFB8/CTR) algorithm and unit test
  • Add util_assert to check input parameters
  • Refactor CRC to speed up loading data from lookup table, which is laying out at instruction bus

2.31 Virtual File System

  • Add VFS component
  • Disable VFS components by default

2.32 Wi-Fi

  • Remove WME information by default
  • Refactor the method that sync data from Wi-Fi driver to 802.11 stack task, to reduce the time of close NMI which may cause Wi-Fi status wrong
  • Fix a crash issue when receiving a wrong beacon whose DTIM is 0
  • Fix a crash issue when Wi-Fi tx state error
  • Fix transmitting error when "RTS", "CTS", "transmiting start" and "transmiting complete" events are triggered in the same time
  • Fix a bug that Wi-Fi may fail to enter force sleep mode when pm is enabled
  • Fix PWM error at sniffer mode
  • Fix a bug that queue sends data in blocking mode when locking the scheduler
  • Fix a bug that esf_buf did not set critical state
  • Fix a bug that station does not use random SEQ to associate AP
  • Fix a memory leak issue when scanning in sta+softap mode with some special AP
  • Fix description of phy power level
  • Fix description of some members of wifi_pkt_rx_ctrl_t in esp_wifi_types.h
  • Modify smartconfig type to sc_callbac
  • Modify ESP8266 Wi-Fi API to keep consistent with ESP32
  • Using global functions instead of function table to reduce unused function
  • Add esp-log to internal library
  • Add a configuration to set Wi-Fi TX power
  • Add a feature that Wi-Fi sends deauth to ap before connecting
  • Add sniffer example
  • Add new APIs:
    • esp_wifi_set_promiscuous_ctrl_filter
    • esp_wifi_get_promiscuous_ctrl_filter
    • esp_wifi_get_bandwidth
  • Reduce the time of station connecting to an AP

2.33 Wi-Fi Provisioning

  • Add wifi-provisioning and example component

2.34 WPA Supplicant

  • Disable "Use faster div, esptmod, sqr, montgomery multiplication algorithm" when enable wolfSSL

3. ...

Read more

ESP8266_RTOS_SDK Release v3.1

30 Jan 11:05
Compare
Choose a tag to compare

This is the list of changes since pre-release v3.1-rc1.

1. Important Notes

  • V3.1 updated the bootloader to initialize SPI flash I/O mode and clock. So if you are using the V3.0 bootloader, and now upgrade to the new SDK, please disable the following configuration in the menuconfig:
    "Bootloader config ---> [ ] Bootloader init SPI flash"
  • We moved some functions from IRAM to flash, including malloc and free fucntions, to save more memory. In this case, please do not read/write/erase flash during sniffer/promiscuous mode. You need to disable the sniffer/promiscuous mode at first, then read/write/erase flash.
  • ESP8285 or ESP8266 + 1MB flash can use "Copy OTA Mode" for OTA, more details are in the examples/system/ota.

2. Changes in Functions and Features:

2.1 OTA Function

  • Support "Copy OTA Mode" for ESP8285 or ESP8266 + 1MB flash instead of generating 2 OTA binaries. More details are in the examples/system/ota.
  • Optimized the firmware upgrading from an old SDK (NonOS SDK, or RTOS SDK that earlier than v3.0) to a new SDK(IDF style RTOS SDK v3.0 or later versions). More details are in the document.
  • Removed the old "ota" example, and renamed the "universal_ota" to be the new "ota" example instead.

2.2 AWS IoT

  • Fixed the issue that AWS cannot work when using wolfSSL instead of mbedTLS.

2.3 Driver

  • Fixed SPI example README.md wave image error.

2.4 NVS flash

  • Fixed the issue that NVS stored data may be broke when power off at some abnormal circumstances.

3. Modified Documents

  • Added document "fota-from-old-new.rst" that introduces how to update from an old SDK to a new SDK(IDF style) by OTA.
  • Optimized README.md of example OTA.
  • Updated wolfSSL license and copyright.
  • Added document "General Notes".

ESP8266_RTOS_SDK pre-release v3.1-rc1

16 Jan 08:45
Compare
Choose a tag to compare
Pre-release

This is the list of changes since release RTOS SDK v3.0:

1. Major Improvements

ESP8266_RTOS_SDK V3.1 provides more global heap memory and offers better performance.

  • Heap memory increased by 10KB in comparison to V3.0.
  • Some system global variables are now linked to IRAM which frees up more DRAM and significantly improves calculation and communication performance of the application. This configuration can be disabled in menuconfig if necessary.

2. Added Components

  • coap
  • esp-tls
  • heap
  • libsodium
  • mDNS
  • pthread
  • wpa_supplicant

3. Changes in Functions and Features

3.1 Compiling Framework and Cross-toolchain

  • Now using GCC v5.2.0 by default, you can find the download link in README.md
  • Added the command make ota to build firmware that supports the OTA function.
  • Removed unused and unsupported libraries, including libairkiss.a and libcirom.a

3.2 Systems

  • Updated libphy.a to version 1055_8.
  • Fixed the issue where panic may re-enter itself and fail to dump information.
  • Fixed the issue where esp_restart may return unexpectedly.
  • Fixed the issue with incorrect UART baudrate after the software restarts.
  • Added a configuration in menuconfig for the stack size of ESP8266’s interrupt function.
  • Added a configuration in menuconfig for the stack size of the user start task, which is especially useful for the app_main function.
  • Added more APIs for the A-I/O function.
  • Added a deep heap trace function for OS adapter APIs, which, instead of returning just the address of a function, now returns the name of the function, as well as the file, and the line where it can be found.
  • Added the global macro __ESP_FILE__ replacing __FILE__; from now on, it provides a file name without the full path to save flash space and to optimize debug information.
  • Added the function esp_timer based on the FreeRTOS timer, as opposed to the hardware timer.
  • Added a feature that allows panic to show the system operation status, including NMI, ISR or task.
  • Added a feature where the software jumps into panic when calling abort.
  • Added a configuration in menuconfig for the stack size of the event loop task.
  • Added a new ets_vprintf to save the stack sizes of the task, interrupt and NMI. For debugging Wi-Fi, go to menuconfig and enable the setting Link ets_printf to IRAM.
  • Added a feature allowing ets_putc to support CR/LR/CRLR selection, so both ets_printf/ESP_EARLY_LOGX and printf sets of functions can use it.
  • Added a configuration disabling console UART in menuconfig.
  • Added a function showing the reason for system reset.
  • Freed up 4~5KB of flash by removing .irom0.text from libcore.a.
  • Saved more RAM by moving some functions from IRAM to flash.

3.3 Drivers

  • Fixed a bug where the UART1 interrupt could lead to a crash.
  • Refactored watchdog is now fed at OS idle task instead of ppT task.
  • Saved RAM by refactoring the SPI flash driver which helped to reduce the size of some functions linked to IRAM.
  • Added the I2C driver and an example.
  • Added the PWM driver and an example.
  • Added the hw_timer driver and an example.
  • Added ADC functions.
  • Added the HSPI driver.

3.4 FreeRTOS

  • Fixed the issue of the incorrect RTOS software frequency when switching the CPU frequency from 80MHz to 160MHz. Please pay attention to the HELP notes if you have to change the RTOS software frequency.
  • Changed the license of OS hardware platform port files from GPL to MIT.
  • Added management functions for idle/systick hook callback.
  • Added the API function xPortGetTickRateHz to get RTOS rate frequency.
  • Added the API function xTaskCreatePinnedToCore for code compatible with ESP-IDF.
  • Added a configuration in menuconfig for the stack size of the OS timer task.

3.5 Wi-Fi

  • Fixed the issue of incorrect parameters when saving to flash.
  • Fixed the WPA free data error causing failure due to lack of memory while sending packets.
  • Fixed the packet decryption error which occurred on some specific routers.
  • Fixed the incorrect IP address issue in SmartConfig’s callback.
  • Fixed the issue where assoc capability info is sent incorrectly with LDPC support. ESP8266 does not support LDPC.
  • Added a feature allowing to obtain a cellphone’s IP address during AirKiss.
  • Fixed the issue where a softAP could stop sending packets during stress test.
  • Fixed the incompatibility issue of the CCMP encryption with some specific APs.
  • Fixed the beacon timeout issue.
  • Fixed the issue where a station fails to connect to some specific APs in 11b only mode.
  • Fixed the issue where ESP-NOW in STA+AP mode could set the key index incorrectly.
  • Fixed the disconnect reason code error.
  • Fixed the issue where a station could use the mismatch status code in ADDBA response to join some specific APs.
  • Fixed the issue of WiFi crashing due to lack of memory.
  • Fixed the issue where system could crash if sniffer callback took too long to return.
  • Fixed the issue of the incorrect scan results if the WiFi channel was set to 14.
  • Fixed the BSSID error that could cause failure while connecting to an AP.
  • Optimized the short-distance communication performance.
  • Reduced power consumption.
  • Changed to operating in 11g mode by default to optimize the compatibility with different routers.
  • Refactored phy set/get parameters for APIs including:
    • esp_wifi_set_protoco
    • esp_wifi_get_protocol
    • esp_wifi_set_max_tx_power
  • Refactored WPS APIs and included a WPS example.
  • Refactored ESP-NOW now supports broadcast BSSID, also an ESP-NOW example is included.
  • For debugging purposes, added the description for error codes of data sending errors in the header file esp_wifi_types.h.
  • Added a configuration in menuconfig for the stack size of the ppTask task, which is especially useful for the sniffer callback function, usually having a large stack.
  • Added the API function esp_wifi_send_pkt_freedom for sending a raw 802.11 packet.
  • Added the function allowing to change the smartconfig's ACK information.
  • Added the callback function allowing application users to receive a probe request packet.
  • Optimized software speed.
  • Optimized WPA calculation performance by using DRAM instead of IRAM.
  • Optimized WiFi TX performance.
  • Optimized the sniffer for receiving more packets within the same time.
  • Optimized the smartconfig process and its efficiency.
  • Optimized the speed of joining an AP by using saved PMK instead of calculating them again.

3.6 LwIP

  • Fixed the issue of possible packet losses when receiving UDP multicast packets.
  • Fixed the issue where one UDP packet could exceed 1472 bytes if IP_FRAG was disabled.
  • Fixed some debug information typos.
  • Fixed the incorrect format output data types in the cc.h header file.
  • Disabled TCP cache pbuf.
  • Modified the TCP window max limitation to 14600 (10 * MSS).
  • Made LWIP_DHCP_AUTOIP_COOP automatically enabled if LWIP_AUTOIP is turned on in menuconfig.
  • Refactored socket multi-thread feature to save memory and optimize performance.
  • Refactored the internal heap management API to make debugging easier.
  • Added a configuration in menuconfig that allows to set a maximum number of sockets.
  • Added the header file netinet/in.h.
  • Added the header file sntp/sntp.h.
  • Added the header file arpa/inet.h.
  • Added a configuration for server number of IPv6 DNS in menuconfig.
  • Added an SNTP example.
  • Added a feature that allows UDP cache to support both raw UDP and socket for optimization of UDP throughput performance.
  • Added the ping application function.
  • Added a socket IPv4 and IPv6 example.
  • Added IPv6 multicast support for socket.
  • Added a configuration for autoIP in menuconfig.
  • Added a configuration in menuconfig for the TCP-IP mailbox size.
  • Added a TCP feedback handler.
  • Added a configuration in menuconfig to enable/disable setting SO_LINGER by default for multi-thread applications. If you use a TCP server or HTTP(S) applications, It is recommended to disable the setting.
  • Disabled IPv6 by default to save heap memory.
  • Optimized IPv6 multicast support.
  • Optimized the response speed of the application recv/send thread.
  • Optimized the new allocated TCP port to use hardware random integer.

3.7 SSL

  • Update WolfSSL, which in many cases saves more memory than mbedTLS.
  • Added a configuration to enable/disable the Diffie-Hellman-Merkle(DHM) module.
  • Added a configuration for CTR mode of mbedTLS.
  • Added a configuration for RSA bits of mbedTLS. If a 1024-bit RSA certification is used, it will show a warning.
  • Saved memory by separating mbedTLS Tx and Rx buffers when setting up.

3.8 MQTT

  • Refactored the MQTT example.
  • Added MQTT configurations in menuconfig.
  • Formatted the MQTT code.
  • Fixed some debug information typos.
  • Fixed the low throughput issue caused by taskYIELD.
  • Fixed the issue where the application could be blocked during socket select.
  • Fixed the ping timeout issue.
  • Fixed the issue causing MQTTPublish/MQTTConnect to return -1.
  • Fixed the watchdog reset issue in high throughput.
  • Optimized the communication performance in bad network environment.

3.9 Newlib

  • Fixed the compiling error of the assert function, occurring if DEBUG mode is enabled.
  • Replaced the LwIP private ioctl API with the general ioctl API. The function itself is not changed.
  • Replaced the LwIP private fcntl API with the general fcntl API. The function itself is not changed.
  • Made the abort functio...
Read more