Skip to content
Pre-release

@donghengqaz donghengqaz released this Feb 2, 2021

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.
Assets 3

@donghengqaz donghengqaz released this Jun 29, 2020 · 41 commits to release/v3.3 since this release

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.
Assets 3

@donghengqaz donghengqaz released this May 14, 2020 · 18 commits to release/v3.1 since this release

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.
Assets 2
Pre-release

@donghengqaz donghengqaz released this Dec 26, 2019 · 145 commits to release/v3.3 since this 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 ...).
Assets 3
Dec 5, 2019
Merge branch 'feature/ets_printf_add_%%' into 'master'
esp8266: ets_printf supports format "%%"

See merge request sdk/ESP8266_RTOS_SDK!1204

@donghengqaz donghengqaz released this Dec 5, 2019 · 38 commits to release/v3.1 since this release

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.
Assets 2

@donghengqaz donghengqaz released this Nov 28, 2019 · 2462 commits to master since this release

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.
Assets 2
Jun 17, 2019
Merge branch 'bugfix/fix_pthread_for_cpp' into 'master'
newlib: fix pthread macro lack for cpp

See merge request sdk/ESP8266_RTOS_SDK!988

@donghengqaz donghengqaz released this Jun 14, 2019 · 91 commits to release/v3.2 since this release

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. Modified Documents

  • Revise Breathe version to avoid docs build failure on ReadTheDocs server.
  • Remove sniffer or promiscuous mode use limitation
  • Update the toolchain download link URL
  • Revise header files which are not doxygen style
  • Add general notes to main page of document
  • Add gif in doc to introduce how FOTA works
  • Add factory test example and document
  • Upgraded Sphinx, Breathe and Blockdiag to the latest versions

4. Tools

  • Update requirements.txt script for python
  • Update unit-test-app
  • Fix the windows install prerequisites issue
Assets 2

@wujiangang wujiangang released this Jan 30, 2019 · 107 commits to release/v3.1 since this release

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".
Assets 2