Skip to content

Releases: espressif/ESP8266_RTOS_SDK

ESP8266_RTOS_SDK v3.0.1

29 Dec 12:14
Compare
Choose a tag to compare

ESP8266_RTOS_SDK v3.0.1 is a bugfix-only update for ESP8266_RTOS_SDK v3.0. Release v3.0.1 is compatible with apps written for ESP8266_RTOS_SDK v3.0.x.

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

1. Systems

  • Fix an issue that "esp_restart" may return unexpectly.

2. Wi-Fi

  • Fix the incompatiblity issue of some special APs using CCMP encryption.
  • Fix the beacon timeout issue by disabling AMPDU packet in normal mode.
  • Optimize smartconfig process and efficiency.

3. LwIP

  • Fix the compiling error when UDP sync is disabled.

ESP8266_RTOS_SDK v2.1.0

22 Oct 12:33
Compare
Choose a tag to compare

ESP8266 RTOS SDK v2.1.0

ESP8266 RTOS SDK v2.1.0 is an old-style SDK, not the ESP-IDF style. If you want to use the ESP-IDF style SDK, please refer to ESP8266 RTOS SDK V3.0 or later versions.

This is the list of changes since ESP8266 RTOS SDK v2.0.

1. System

  • remove an unsupported library, i.e. libminic.a
  • add libhal.a to sdk to solve compiling error
  • fix an error in load/store exception handler
  • fix an issue that OTA will erase rf cal sector
  • add an OTA example

2. Wi-Fi

  • support both broadcast and multicast packet for smartconfig. To use it, please upgrade your ESP-TOUCH App to v0.3.7.0
  • fix the PMK saving error when AP does not exit
  • fix an issue that watchdog is triggered because PMK calculation takes too long time
  • fix an issue that system may crash when changing Wi-Fi mode
  • update libphy.a to version 1055_8 to fix beacon timeout in some cases

3. Peripherals Driver

3.1 UART

  • fix an issue that UART fails to print at low baud rate

3.2 SPI Flash

  • modify enum SpiIntSrc_Done and SpiIntSrc_DoneEn's name
  • modify parameter types
  • change upack(1) to pack() to cancel 1-byte alignment, and therefore avoid compiling error

3.3 PWM

  • add api to stop pwm
  • add api to set the phase of each pwm channel
  • add a pwm example

4. Protocol

4.1 lwIP

  • send arp every 10s to avoid network IP change

4.2 wolfSSL

  • add the 3.15.3 version of wolfSSL library
  • add a wolfSSL client example
  • disable RC4 and RABBIT by default
  • enable TLS 1.0 and TLS 1.1 by default

4.3 WebSocket

  • fix compiling error

4.4 CoAP

  • add CoAP source code
  • add a CoAP client example
  • add a CoAP server example

ESP8266_RTOS_SDK v3.0

11 Sep 03:54
Compare
Choose a tag to compare

ESP8266_RTOS_SDK Release v3.0

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

Major Changes:

1. Compiling framework and cross-toolchain

  • Remove unused libraries and header file, i.e., libairkiss.a, libespnow.a and libpwm.a.

2. Wi-Fi

  • Optimize smartconfig and speed up configurating Wi-Fi network.
  • Fix an issue that AP parameters are saved incorrectly.
  • Fix beacon timeout in some cases.
  • Fix "panic" function reenter issue.
  • Fix WPA free data error when lack of memory.

3. Driver

  • Fix the bug of GPIO interrupt.

4. LWIP

  • Optimize UDP sending process and speed up UDP throughput.

5. newlib

  • Add configuration for console UART, including target UART number, baudrate, swap I/O pins.

ESP8266_RTOS_SDK pre-release v3.0-rc1

10 Aug 14:56
Compare
Choose a tag to compare
Pre-release

V3.0-RC1

Notice:
ESP8266_RTOS_SDK V3.0 provides users with brand new framework and APIs that conform to ESP-IDF style. Considering these major changes may cause significant impact on existing projects, it's recommended that this version is only used for the implementation of new projects, instead of being used as an upgrade for any existing mass-production projects for now. However, we do have plans to further upgrade SDK V3.0 in the future, so it can better support projects that has implemented SDK 2.0 (and eariler versions).

1. Breaking Changes

Refactor SDK to be ESP-IDF style, the updated directory is as follows:

  • components
  • docs
  • examples
  • make
  • tools
  • README.md

2. New Components

  • aws iot
  • bootloader of idf compatible
  • espos
  • esptool_py
  • jsmn
  • log
  • newlib
  • NVS flash
  • partition and related scripts
  • SPI driver that support read/write without 4-byte alignment requirement
  • tcpip_adapter
  • unit test

3. Modified Functions and Features

3.1 Compiling framework and cross-toolchain

  • ESP-IDF makefile system described in docs/build_system.rst
  • Refactor the compiling framework
  • Remove gen_misc.sh, and add its configuration in menu
  • Support more C++ functions
  • Add rtc segment and attribute in esp_attr.h
  • Simplify ld files and add more macros for better control
  • Link the rodata section, including strings, into flash by default (except libpp.a and liblog.a)
  • Link FreeRTOS into flash by default
  • Only 2 MB+ SPI flash in the menuconfig is supported
  • Integrate the libhal.a library
  • Update cross-toolchain (xtensa-lx106-elf-xxx) to version 4.8.5
  • Remove two libraries that are no longer being used:
    • libminic.a
    • libmicom.a

3.2 Tools

  • Add a new menu for human-computer interaction, which can be opened by make menuconfig
  • Add support for downloading firmware with command lines
  • Add support for monitoring serial ports with command lines
  • Add realy time information for idf monitor
  • Add more configurations in menu

3.3 Systems

  • [Notice] Change the entry name of user function from user_init to app_main
  • [Notice] Remove the user_rf_cal_sector_set function from the folder applications
  • Add new flash map and partitions, which are described in docs/partition-tables.rst
  • Refactor system APIs, most of which are compatible with esp-idf
  • Refactor startup function and processe
  • Add new feature panic when a crash occurs
  • Add new feature panic when the software watch dog is triggled
  • Add support for full icache(32-KB) mode in menu
  • Fix the load/store error when "a0" is used
  • Remove two header files that are no longer being used:
    • esp_common.h
    • esp_misc.h
  • Remove three APIs and macros that are no longer applicable
    • os_printf
    • ICACHE_FLASH_ATTR
    • ICACHE_RODATA_ATTR
  • Add more configurations in menu

3.4 Drivers

  • Refactor driver APIs
  • Remove some drivers
  • Only the UART and GPIO drivers are supported in this version, others will be added in later versions.

3.5 FreeRTOS

  • Update FreeRTOS to v10.0.1
  • [Important] Modify task stack unit from "unsigned long"(4-byte) to "unsigned char"(1-byte). Therefore, user should modify the size of their task stack to original size x 4
  • Add memory mark for trace heap
  • Add configuration for HZ and CPU system-tick timer
  • Add open source FreeRTOS arch-dependent source
  • Add more configurations in menu

3.6 Wi-Fi

  • Refactor Wi-Fi, phy and sleep APIs, most of which are compatible with esp-idf
  • Add a platform adaptation layer for OS and other components
  • Add a I/O abstract adaptation layer
  • Add configuration for the maximum number of APs that can be scaned in menu
  • Add more Wi-Fi events
  • Support backup mac address
  • Remove the software coupling between Wi-Fi and other components
  • Add more configurations into menu

3.7 LWIP

  • Update LWIP to v2.0.3
  • Support socket TCP cache and retransmitation in LWIP low-layer
  • Support socket UDP cache and retransmitation in LWIP low-layer
  • Modify lwipopts.h and add more configurations in menu
  • Modify the priority of LWIP task to "configMAX_PRIORITIES - 7"
  • Remove the software coupling between LWIP and other components
  • Modify the priority of loop event task to "configMAX_PRIORITIES - 5"
  • Fix issues of LWIP TX_SINGLE_PBUF
  • Fix an error of LWIP timer tick

3.8 SSL

  • Update mbedTLS to v2.8.0
  • Update wolfSSL to v3.15.3
  • Modify esp_config.h and add more configurations in menu

3.9 MQTT

  • Fix bugs of MQTT platform

3.10 newlib

  • Support more functions and APIs
  • Add support to select the output string of stdio functions ends with CR, LF or CR+LF in menu
  • Make newlib C functions thread-safety with private reent by default
  • Add more configurations in menu
  • Add support for selecting from newlib versions
    • Nano version: only support the basic functions and features, which saves RAM and ROM
    • Normal version: support 64-bit integer and float data types, and the C99 stardard

3.11 JSON

  • Update cJSON to v1.7.6

3.12 nopoll

  • Remove nopoll

3.13 espconn

  • Remove espconn

ESP8266_RTOS_SDK Release 2.0.0

02 Apr 06:04
Compare
Choose a tag to compare

System

  1. Memory optimization
    1.1. Support puting .rodata into flash, with modifications of ld file;
    1.2. Modify to use 16KB Cache mode, and the saved 16KB iRAM are used as heap region;
  2. Update to use heap_5.c from FreeRTOS, support multi heap pools;
  3. Update boot to version 1.7:
    3.1. boot currently use bin 3 times,if all fail, turn to boot the bin of last user;
    3.2. Support 8MB & 16MB SPI Flash;
  4. Update ld file, put .rodata in some libs to SPI Flash by default;
  5. Add gcc flag -fno-jump-tables to reduce .rodata usage;
  6. Support eon SPI Flash, dio -> qio mode;
  7. Support 8MB & 16MB SPI flash;
  8. Remove mesh support;
  9. Use gcc to compile all libs;
  10. Show stack info when exception occur;
  11. Improve dio -> qio function of some SPI Flash;
  12. Modify rom ld, export some low level functions;
  13. Fix some os_ macro;
  14. Fix deep sleep crash issue;
  15. Fix wdt crash issue in some cases;

Driver

  1. Fix the issue of hw_timer;
  2. Fix the issue of SPI tx/rx data sometimes wrong;
  3. Fix the issue of setting UART flow control;

Examples

  1. Add websocket demo;
  2. Add wifi_station_machine_demo;
  3. Add openssl server demo;
  4. Add openssl client demo;
  5. Add mqtt demo;

Protocol

Lwip

  1. Add dhcp options;
  2. Enable ETHARP_TRUST_IP_MAC in lwipopt.h;
  3. Modify dhcp/dhcps timer from 60 seconds to 1 second;
  4. Remove time() function in lwip;
  5. Rebind UDP pcb when IP changed;
  6. Fix the error of socket macro definition;
  7. Fix the connection issue of multi-clients;
  8. Fix the issue of containing more than one tcp pbuf in single tx packet;
  9. Fix lwip slow timer delay more than one second;
  10. Fix mss_local is always subtract the IPv6 header size;
  11. Fix multi-thread issues;

espconn

  1. Add source codes of espconn;

mbedTLS

  1. Fix ECP memory leak;

OpenSSL

  1. Add openssl wrap layer;
  2. Add ssl_pm_extend.c for nopoll;

MQTT

  1. Add phao mqtt support, include SSL;

WiFi

  1. Update libphy to version 1055_1;
  2. Save PMK to SPI flash, improve the station connect speed;
  3. Modify scan API, support to scan more info.;
  4. Add the description of vendor IE API;
  5. Add beacon & probe response freq IE;
  6. Add the support of CSA;
  7. Add WiFi station keep alive support;
  8. Add passive & active scan support;
  9. Add country code APIs;
  10. Add support of packets forward in softAP mode;
  11. Fix the bug of mic failure handler;
  12. Fix the issue of group key update;
  13. Fix WPA/WPA2 PTK/GTK; reinstallation vulnerability;
  14. Fix the bug of scan hidden AP;
  15. Fix some potential memory leak;
  16. Fix WiFi tx/rx status wrong which will cause LmacRxBlk:0 error;
  17. Fix WDT when call espnow delete;
  18. Fix wrong behavior of WiFi set MAC address;
  19. Fix WPS connect issue for ELECON router;
  20. Fix short of eapol resend mechanism in softAP;
  21. Fix the send issue caused by low priority of pm task;

ESP8266_RTOS_SDK pre-release 2.0.0-rc1

12 Mar 14:43
Compare
Choose a tag to compare
Pre-release

System

  1. Memory optimization
    1.1. Support puting .rodata into flash, with modifications of ld file;
    1.2. Modify to use 16KB Cache mode, and the saved 16KB iRAM are used as heap region;
  2. Update to use heap_5.c from FreeRTOS, support multi heap pools;
  3. Update boot to version 1.7:
    3.1. boot currently use bin 3 times,if all fail, turn to boot the bin of last user;
    3.2. Support 8MB & 16MB SPI Flash;
  4. Update ld file, put .rodata in some libs to SPI Flash by default;
  5. Add gcc flag -fno-jump-tables to reduce .rodata usage;
  6. Support eon SPI Flash, dio -> qio mode;
  7. Support 8MB & 16MB SPI flash;
  8. Remove mesh support;
  9. Use gcc to compile all libs;
  10. Show stack info when exception occur;
  11. Improve dio -> qio function of some SPI Flash;
  12. Modify rom ld, export some low level functions;
  13. Fix some os_ macro;
  14. Fix deep sleep crash issue;
  15. Fix wdt crash issue in some cases;

Driver

  1. Fix the issue of hw_timer;
  2. Fix the issue of SPI tx/rx data sometimes wrong;
  3. Fix the issue of setting UART flow control;

Examples

  1. Add websocket demo;
  2. Add wifi_station_machine_demo;
  3. Add openssl server demo;
  4. Add openssl client demo;
  5. Add mqtt demo;

Protocol

Lwip

  1. Add dhcp options;
  2. Enable ETHARP_TRUST_IP_MAC in lwipopt.h;
  3. Modify dhcp/dhcps timer from 60 seconds to 1 second;
  4. Remove time() function in lwip;
  5. Rebind UDP pcb when IP changed;
  6. Fix the error of socket macro definition;
  7. Fix the connection issue of multi-clients;
  8. Fix the issue of containing more than one tcp pbuf in single tx packet;
  9. Fix lwip slow timer delay more than one second;
  10. Fix mss_local is always subtract the IPv6 header size;
  11. Fix multi-thread issues;

espconn

  1. Add source codes of espconn;

mbedTLS

  1. Fix ECP memory leak;

OpenSSL

  1. Add openssl wrap layer;

MQTT

  1. Add phao mqtt support;

WiFi

  1. Update libphy to version 1055_1;
  2. Save PMK to SPI flash, improve the station connect speed;
  3. Modify scan API, support to scan more info.;
  4. Add the description of vendor IE API;
  5. Add beacon & probe response freq IE;
  6. Add the support of CSA;
  7. Add WiFi station keep alive support;
  8. Add passive & active scan support;
  9. Add country code APIs;
  10. Add support of packets forward in softAP mode;
  11. Fix the bug of mic failure handler;
  12. Fix the issue of group key update;
  13. Fix WPA/WPA2 PTK/GTK; reinstallation vulnerability;
  14. Fix the bug of scan hidden AP;
  15. Fix some potential memory leak;
  16. Fix WiFi tx/rx status wrong which will cause LmacRxBlk:0 error;
  17. Fix WDT when call espnow delete;

v1.4.0: Version 1.4.0(cb4060d9)

03 Mar 06:30
Compare
Choose a tag to compare
  • update boot.bin to v1.5;
  • phy version to 762;
  • add wifi_station_set/get_hostname api;
  • optimize net80211;
  • optimize ssl;
  • optimize ota;
  • optimize dhcp client;
  • update smartconfig to version 2.5.3;
  • support gpio wakeup;
  • enable IGMP in lwip;
  • some modify due to phy update;
  • add espconn_init in espconn.h;
  • update cjson/freertos/ssl;
  • add lwip/nopoll source code;
  • add libairkiss.a/airkiss.h, update smart_config;
  • update esp_init_data_default.bin;
  • irom0 too large, start addr change to 0x20000;
  • some modifications for system stability;
  • header files update, add API documents (pdf & html);
  • fix a bug in wifi_send_pkt_freedom;
  • modify driver code due to _xt_isr_attach parameter changed;
  • many other optimization;