esp_iot_sdk_v1.3.0_15_08_10_p1 Release Note
----------------------------------------

Here is a patch based on esp_iot_sdk_v1.3.0 (non-OS SDK) resolved issue that if there are 2 connections, one is normal TCP connection, the other is SSL connection, it may cause memory leak.

Download and unzip the attachment, replace the lib in esp_iot_sdk/lib folder.

Please do not set the same priority for two different tasks when using system_os_task.

Sorry for the inconvenience.


esp_iot_sdk_v1.3.0_15_08_08 Release Note
----------------------------------------

Resolved Issues（Bugs below are eligible for Bug Bounty Program):
1.Device can't connect to router after it gets ssid and password when using ESPTOUCH with router's ssid hidden. [冯智]
2.Format string of os_random can't be supported by atoi. [杨朝位]
3.Optimized os_printf seems to have an issue on 4 bytes aligned and other valuable suggestions. [Andrey Filimonov]
4.SmartConfig can’t get IP address after connected to router. [孙大明]

Optimization:
1.Memory optimization to save 12KBytes.
2.Optimize RF calibration to short the booting time,more details in documentation "2A-ESP8266__IOT_SDK_User_Manual" chapter "Appendix".
3.Optimize Wi-Fi function to solve issue that ESP8266 may fail to connect to a special router.
4.Optimize software timer to solve the a connecting problem.Please do not call "os_delay_us" or "while" or "for" to occupy CPU more than 10 ms in timer callback.
5.Optimize system_get_rst_info to obtain more accurate information about the start-up.
6.Optimize function of Wi-Fi scanning to be more reliable.
7.Optimize function of changing Wi-Fi mode to be more reliable.
8.Optimize WPS to improve connectivity.And WPS does not support WEP, it will return status "WPS_CB_ST_WEP".
9.Optimize Wi-Fi function to solve softAP multiple stations DHCP issue.
10.Optimize TCP in LAST_ACK status.
11.Optimize TLS to support SHA256, SHA384, SHA512.
12.Memory optimization during TLS hand-shaking.
13.Optimize OTA funtion to download big chunk of data.
14.Add CRC32 in OTA function.Folder "tools" in esp_iot_sdk has to be updated, otherwise OTA will fail.
15.Optimize mDNS to support both softAP and station interfaces.
16.Optimize ESP-NOW, more details in "Add APIs"
17.Update SmartConfig to version 2.4.7
18.Remove "-O2" from makefile.
19.Optimize header files to improve compatibility, will not affect compilation.

Add APIs:
1.system_soft_wdt_feed : feed software watchdog
2.wifi_softap_get_dhcps_lease：get IP range of ESP8266 softAP DHCP server
3.ESP-NOW APIs
esp_now_set_kok: set the secure key to encrypt ESP-NOW communication key
esp_now_register_send_cb: register ESP-NOW send callback
esp_now_unregister_send_cb: unregister ESP-NOW send callback

AT_v0.40 Release Note:
Note: For AT firmware to support FOTA, flash size need to be 1024KB or more than that.

1.Add parameter <max conn> in command "AT+CWSAP" to set the maximum number of connections allowed.




esp_iot_sdk_v1.2.0_15_07_13_p4 Release Note
-------------------------------------------

Here is a patch of memory optimization based on SDK_v1.2.0
1. It saved about 8KBytes memory.
2. It revised problem that change mode may cause memory leak.
3. Update SmartConfig to version 2.4.3

Please replace the lib in \esp_iot_sdk_v1.2.0\lib

Thanks for your interest in Espressif Systems and ESP8266 !




esp_iot_sdk_v1.2.0_15_07_09_p3 Release Note
-------------------------------------------

Here is a patch based on SDK_v1.2.0 solved problem that if AP’s SSID is hidden，ESPTOUCH may get wrong BSSID of AP and cause connection fail.
Please replace the lib in \esp_iot_sdk_v1.2.0\lib

Sorry for the inconvenience.




esp_iot_sdk_v1.2.0_15_07_09_p2 Release Note
-------------------------------------------

Updated libssl again. To support SHA-256 and SHA-512.

Thanks for your interest in Espressif Systems and ESP8266 !




esp_iot_sdk_v1.2.0_15_07_08_p1 Release Note
-------------------------------------------

Here is a patch based on SDK_v1.2.0 solved problem that abnormal SSL disconnection may cause reset.
Please replace the lib in \esp_iot_sdk_v1.2.0\lib

Sorry for the inconvenience.




esp_iot_sdk_v1.2.0_15_07_03 Release Note
-------------------------------------------
Resolved Issues（Bugs below are eligible for Bug Bounty Program):
1.TLS server disconnect to ESP8266 may cause crash. [孙新虎]

Optimization:
1.Update SmartConfig to version 2.4 , corresponding to ESPTOUCH APP v0.3.4 (https://github.com/EspressifApp/), delete parameter "sc_type type" in smartconfig_start, SmartConfig type can be got automatically.
2.Add parameter "sint16 freq_offset; " in structure "bss_info" to get AP's frequency offset.
3.Folder "ld" is updated, please use the latest one (\esp_iot_sdk_v1.2.0\ld )
4.Add UDP transparent transmission example in documentation "4B-ESP8266__AT Command Examples"
5.Revise the scan issue that may cause Wi-Fi connection break.
6.Add ESP-NOW function, more details in "Add APIs"
7.Add WPS function,more details in "Add APIs"
8.Fixed a DNS fail issue with special router
9.Optimize espconn,revise issues below:
(1) enter sent callback late in UDP transmission
(2) TCP shakehand may fail issue
(3) SSL connection fail may cause crash
(4) optimize SSL error handler
10. Memory optimization

Add APIs:
1.ESP-NOW APIs
esp_now_init: init ESP-NOW function
esp_now_deinit: deinit ESP-NOW function
esp_now_register_recv_cb: register ESP-NOW receive callback
esp_now_unregister_recv_cb: unregister ESP-NOW receive callback
esp_now_send: send ESP-NOW packet
esp_now_add_peer: add an ESP-NOW peer
esp_now_del_peer: delete an ESP-NOW peer
esp_now_set_self_role: set ESP-NOW role of device itself
esp_now_get_self_role: get ESP-NOW role of device itself
esp_now_set_peer_role: set ESP-NOW role about another device
esp_now_get_peer_role: get ESP-NOW role about another device
esp_now_set_peer_key: set ESP-NOW key of a device
esp_now_get_peer_key: get ESP-NOW key of a device

2. WPS APIs
wifi_wps_enable : enable WPS function
wifi_wps_disable: disable WPS function
wifi_wps_start: start WPS communication
wifi_set_wps_cb: set WPS callback

3.software watchdog APIs
system_soft_wdt_stop: stop software watchdog
system_soft_wdt_restart: restart software watchdog

4.sntp_get_timezone: get SNTP timezone

AT_v0.30 Release Note:
Note: For AT firmware to support FOTA, flash size need to be 1024KB or more than that.

1.Command "AT+CWSTARTSMART" need not parameter any more, SmartConfig type can be got automatically.
2.AP's frequency offset can be got by command "AT+CWLAP"
3.Memory optimization




esp_iot_sdk_1.1.2_15_06_25_p2 Release Note
-------------------------------------------

Here is a patch based on SDK_v1.1.2 solved problem of abnormal current during modem-sleep.
Please replace the lib in \esp_iot_sdk_v1.1.2\lib

Sorry for the inconvenience.

esp_iot_sdk_v1.1.2_15_06_24_p1.1 Release Note
-------------------------------------------

Here is a patch for AT firmware based on SDK_v1.1.2 resolved issue that AT user parameter area was located in wrong address，it may cause WiFi configuration goes wrong.

Please update to this new AT bin files and call "AT+RESTORE" to factory reset. If you call “AT+CIPUPDATE” to upgrade，please also call "AT+RESTORE" to factory reset once.

“AT_bin_v0.25_1024+KB_flash_can_upgrade.zip”
- normal AT bin，runs with boot.bin，can FOTA upgrade，need to use 1024KB flash

“AT_bin_v0.25_for_512KB_flash_cannot_upgrade.zip”
- for old version module which flash size is 512KB
eagle.flash.bin downloads to flash 0x00000
eagle.irom0text.bin downloads to flash 0x40000
can not FOTA upgrade，please don‘t call “AT+CIPUPDATE”

"SDK_v1.1.2_AT_patch_01.zip"
- libs for users who need to compile their own AT firmware，replace libs in \esp_iot_sdk_v1.1.2\lib

So sorry for the inconvenience.

esp_iot_sdk_v1.1.2_15_06_16_p1 Release Note
-------------------------------------------
Here is a patch based on SDK_v1.1.2 resolved issue that "wifi_station_scan" cause loss of wireless connectivity.

Please replace them in esp_iot_sdk/lib folder.

Sorry for the inconvenience.




esp_iot_sdk_v1.1.2_15_06_12 Release Note
-------------------------------------------

Optimization:
1. support certificate issuer verification for SSL
2. Update SPI driver, support overlap mode

Add APIs:
1. wifi_station_set_hostname : set ESP8266 station DHCP hostname
2. wifi_station_get_hostname : get ESP8266 station DHCP hostname
3. spi_flash_set_read_func ：set user specified reading SPI function on overlap mode
4. espconn_secure_ca_disable : disable SSL CA verify
5. espconn_secure_ca_enable : enable SSL CA verify

Add Documentation:
1. SPI overlap introduction: \esp_iot_sdk\document, sorry that it has only Chinese version now，we will add English version of this documentation ASAP.
2. SSL introduction: \esp_iot_sdk\document




esp_iot_sdk_v1.1.1_15_06_05 Release Note
-------------------------------------------

Resolved Issues（Bugs below are eligible for Bug Bounty Program):
1.Too short timer which set by os_arm_timer_us may cause crash. [Tommy]
2.Call os_malloc in low heap situation may cause crash. [MeneerThijs]
3.Memory leak issue when SSL connection fail. [孙新虎]

Optimization:
1.Update JSON parser to handle with illegal parameter and illegal calling progress.
2.Add parameter of user_esp_platform_check_ip in user_websever.c which in IOT_Demo.
3.Update UART driver to solve the problem that if send data through UART while ESP8266 startup may cause UART invalid.
4.Update smartconfig to version 2.2, corresponding phone APP v0.3.2. And update the description and example of smartconfig_start in document "2C_ESP8266__Programming Guide"
5.Update code in iram to solve the problem that space for text is not enough.
6.Update PWM driver and provide libpwm.a in esp_iot_sdk, update PWM APIs in "2C_ESP8266__Programming Guide", more details in "Added APIs" below.
7.Revised issue that multicast may fail in ESP8266 softAP mode.
8.Update folder "driver",add folder "driver_lib" in \esp_iot_sdk\examples , add "hw_timer.c" about frc1 hardware timer.
9.Remove useless driver code in IOT_Demo
10.Update IOT_Demo to use the latest PWM driver in light demo.
11.Provide liblwip_536.a of which MSS size is 536
12.Revised issue that boot may fail when 80Mhz SPI clock selected
13.Update esp_init_data_default.bin about RF option in \esp_iot_sdk\bin

Added APIs：
1.PWM APIs：
Updated： pwm_init，add parameter to set PWM channel and GPIO pin
Added：
（1）get_pwm_version：get version information of PWM driver
（2）pwm_set_period：set PWM period
（3）pwm_get_period：get PWM period
Deleted：
（1）pwm_set_freq：set PWM frequency
（2）pwm_get_freq：get PWM frequency
2.Read/write flash with protection
（1）system_param_save_with_protect：write data into flash with backup protection
（2）system_param_load：read data which saved into flash with backup protection
3.system_get_rst_info：get information about current startup，it is a normal startup or watch dog reset
4.at_response：set AT response
5.at_register_response_func：register a callback for user-define AT response.
6.Update document "2C_ESP8266__Programming Guide" to add description of interrupt definition in ets_sys.h

AT_v0.25 Release Note:
Note: For AT firmware to support FOTA, flash size need to be 1024KB or more than that.
Optimization:
1.Add parameter about UDP local port in command "AT+SAVETRANSLINK"

Added AT command：
1.AT+CIPDINFO：set configuration whether show remote IP and remote port with “+IPD” or not



esp_iot_sdk_v1.1.0_15_05_27_p1 Release Note
-------------------------------------------

Here is a patch based on SDK_v1.1.0 resolved issues below:
1. SDK 1.1.0 may boot fail if SPI Flash speed is 80MHz.
2. Memory Leak in libssl when SSL connection fail.
3. Update smartconfig, please using it with the latest Espressif APP https://github.com/EspressifApp

Sorry for the inconvenience.

esp_iot_sdk_v1.1.0_15_05_22 Release Note
----------------------------------------
Resolved Issues（Bugs below are eligible for Bug Bounty Program):
1.Predictable TLS random values leads to insecure connections [projectgus]
2.Connection problem in softAP+station mode.[智捷通]
3.Low heap cause of reset when connect using SSL. [TuanPM]
4.Smart config issue [bigbear]

Document "2C_ESP8266__Programming Guide" updates:
1.Update Demo code of rtc timer in appendix, and rtc timer will return to zero after deep-sleep wake up. [andrew]
2.Add "3.espconn callback" in appendix to introduce espconn callbacks and the pointer may be different in different callback.[nagverma]
3.Add RF description in “2.Overview”，if RF is disabled，ESP8266 station and soft-AP are both disabled.[yiaiguo]
4.Revise name of API "wifi_softap_set_dhcps_offer_option" [ryan]

Optimization:
1.Solving the problem that some Wi-Fi events may be missing during test.
2.UART Wi-Fi passthrough of UDP maybe change to oneway. [orgmar]
3.Optimized FOTA to make upgrade faster
4.ESP8266 soft-AP can connected to 8 stations at most, softap_config.max_connection default is 4
5.ESP8266 station will connect to the stronger WiFi signal, if there are several APs sharing the same SSID.[stefan]
6.Add 1024KB+1024KB flash map which need boot_v1.4+, more details in document "2A-ESP8266_IOT_SDK_User_Manual"
7.Optimized PWM driver
8.Revised structure mdns_info to support 10 groups of text data.
9.Add user_rf_pre_init in user_main.c, user can set configuration of RF in it.

Added APIs：
1.sntp_set_timezone: set SNTP time zone.
2.espconn_dns_setserver : set default DNS server
3.system_uart_de_swap : disable UART0 swap
4.system_get_flash_size_map: get flash size and flash map
5.system_phy_set_max_tpw : set maximum RF TX power
6.system_phy_set_tpw_via_vdd33 ：set RF TX power according to VDD33
7.system_phy_set_rfoption : set RF option
8.wifi_station_get_rssi：get rssi of AP which ESP8266 station connected to 　
9.wifi_softap_get_station_num ：get number count of stations connected to ESP8266 soft-AP

AT_v0.24 Release Note:
Note: For AT firmware to support FOTA, flash size need to be 1024KB or more than that.
Optimization:
1.Disable data echo of command "AT+CIPSEND"
2.Optimized "AT+CWJAP?" to get channel and rssi
3.ESP8266 station IP can only be got and inquiried after ESP8266 station connected to AP

Added AT command：
1.AT+RFPOWER ：set maximum RF TX power
2.AT+RFVDD ： set RF TX power according to VDD33


自从乐鑫信息科技于 2015-03-20 启动 Bug 赏金计划以来，我们收到了一些重要问题反馈及建议，感谢世界各地的开发者对 ESP8266的关注，推动我们的软件更进一步，技术支持团队也得到迅速地成长。我们将在如下发布日志中点名感谢您的帮助。

esp_iot_sdk_v1.1.0_15_05_22 Release Note
修正问题（符合乐鑫 Bug 赏金计划）:
1.随机值的生成可以被预测，完善随机数的产生机制 [projectgus]
2.softAP+station 模式下，可能连接 ESP8266 soft-AP 失败 [智捷通]
3.内存不足导致 SSL 连接时重启. [TuanPM]
4.Smart config 相关问题 [bigbear]

文档 "2C_ESP8266__Programming Guide" 更新:
1.更新附录中的 RTC 示例代码，RTC 时钟会因 deep-sleep 清零. [andrew]
2.附录新增 "3.espconn callback"介绍 espconn callbacks，不同的 espconn callback 中 espconn 结构体指针可能不同.[nagverma]
3.“2.概述”中增加 RF 设置的说明，如果不打开 RF ，ESP8266 station 和 soft-AP 均失效。[yiaiguo]
4.修正 API 名称 "wifi_softap_set_dhcps_offer_option" [ryan]

优化:
1.解决特定测试环境下某些 Wi-Fi events 可能缺失的问题。
2.UDP 透传可能变成单向传输的相关问题 [orgmar]
3.优化 FOTA 的底层实现，加快升级速度
4.ESP8266 soft-AP 最多可连接 8 个 station, 默认最大连接个数为 4
5.当多个 AP 的 SSID password相同时，ESP8266 station 默认连接信号最强的 AP。[stefan]
6.更新 boot_v1.4+ 及编译文件，支持 1024KB+1024KB flash map , flash map 的详细介绍见文档 "2A-ESP8266_IOT_SDK_User_Manual"
7.优化 PWM driver
8.优化 structure mdns_info 支持 10 组 text data.
9.在 user_main.c 中新增 user_rf_pre_init , 用户可在 user_rf_pre_init 中调用 system_phy_set_rfoption 配置 RF 初始化.

新增 APIs：
1.sntp_set_timezone: SNTP 设置时区
2.espconn_dns_setserver : 设置默认 DNS server
3.system_uart_de_swap : 取消 UART0 转换
4.system_get_flash_size_map: 查询 flash size 和 flash map
5.system_phy_set_max_tpw : 设置 RF TX power 最大值
6.system_phy_set_tpw_via_vdd33 ：根据 VDD33 设置 RF TX power
7.system_phy_set_rfoption : 设置 RF
8.wifi_station_get_rssi：查询 ESP8266 station 连接的 AP 的信号强度 　
9.wifi_softap_get_station_num ：查询连接到 ESP8266 soft-AP 的 station 数目

AT_v0.24 Release Note:
注意：运行 AT 固件，支持云端升级，请使用 1024KB 或以上容量的 flash

优化:
1."AT+CIPSEND" 发送数据时，数据不回显
2.优化"AT+CWJAP?" 可获得信道和信号强度
3.必须在 ESP8266 station 连接到 AP 后，才能查询到 ESP8266 station IP

新增 AT command：
1.AT+RFPOWER ：设置 RF TX power 最大值
2.AT+RFVDD ： 根据 VDD33 设置 RF TX power

Thanks for your interest in ESP8266 !

esp_iot_sdk_v1.0.1_15_05_04_p1
-------------------------------------------
Here is a patch for station+softAP issue that users may have, based on SDK_v1.0.1,
solved problem that connect to ESP8266 softAP may fail in station+softAP mode.

Sorry for the inconvenience.

esp_iot_sdk_v1.0.1_15_04_24 Release Note
-------------------------------------------

Resolved Issues(Bugs below are eligible for Bug Bounty Program):
1. SSL connection may fail if SSL packet size larger than 2kBytes [PeteW ]
2. UDP remote IP to be 0.0.0.0 may cause reset [Jerry S]
3. Optimize wifi_get_ip_info to fix loss of wireless connectivity problem
4. Air-Kiss restart [Orgmar]

Optimization:
1. Optimized IOT_Espressif_EspTouch.APK (apply for access from Espressif) for improved compatibility. [???]
2. TCP server can not open again immediately with the same port [624908539]
3. Update UART driver for parity bit value may be incorrect [1062583993]
4. Add define of “ICACHE_RODATA_ATTR” for Symbol 'ICACHE_RODATA_ATTR' could not be resolved. [???]
5. Add API wifi_softap_dhcps_set_offer_option to enable/disable ESP8266 softAP DHCP server default gateway. [xyz769]
6. AT register_uart_rx_intr may enter callback twice. [???]
7.optimize document that WPA password length range : 8 ~ 64 bytes [785057041]
8. ESP8266 softAP DHCP server record 8 DHCP client's IP at most [ygjeon]
9. To set static IP (wifi_set_ip_info) has to disable DHCP first(wifi_softap_dhcps_stop or wifi_station_dhcpc_stop)
10.Add example of wifi_softap_set_dhcps_lease
11. smartconfig_start can only be called in ESP8266 station mode

Added APIs:
1. Wi-Fi related APIs:
wifi_station_set_reconnect_policy: enable/disable reconnect when ESP8266 disconnect from router,default to be enable reconnect.
wifi_set_event_handler_cb: set event handler of ESP8266 softAP or station status change.
wifi_softap_dhcps_set_offer_option: enable/disable get router information from ESP8266 softAP, default to be enable.
2. SNTP APIs:
sntp_get_current_timestamp: get current timestamp from Jan 01, 1970, 00:00 (GMT)
sntp_get_real_time: char,get real time (GTM + 8 time zone)
sntp_init: initialize SNTP
sntp_stop: stop SNTP
sntp_setserver: set SNTP server by IP
sntp_getserver: get SNTP server IP
sntp_setservername: set SNTP server by domain name
sntp_getservername: get domain name of SNTP server set by sntp_setservername
3. MDNS APIs:
espconn_mdns_init: initialize mDNS
espconn_mdns_close: close mDNS
espconn_mdns_server_register: register mDNS server
espconn_mdns_server_unregister: unregister mDNS server
espconn_mdns_get_servername: get mDNS server name
espconn_mdns_set_servername: set mDNS server name
espconn_mdns_set_hostname: get mDNS host name
espconn_mdns_get_hostname: set mDNS host name
espconn_mdns_disable: disable mDNS
espconn_mdns_enable: endisable mDNS

AT_v0.23 Release Note:
Optimized:
1.AT+CWJAP add parameter "bssid", for several APs may have the same SSID

New AT commands:
1. AT+CIPSENDBUF: write data into TCP-send-buffer; non-blocking. Background task automatically handles transmission. Has much higher throughput.
2. AT+CIPBUFRESET: resets segment count in TCP-send-buffer
3. AT+CIPBUFSTATUS: checks status of TCP-send-buffer
4. AT+CIPCHECKSEGID: checks if a specific segment in TCP-send-buffer has sent successfully



esp_iot_sdk_v1.0.1_b2_15_04_10 release note
-------------------------------------------

Fix bugs:
1.Call espconn_sent to send UDP packet in user_init cause reset.[BBP#2 reporter (????)]
2.UART & FlowControl issue: send data to FIFO without CTS flag will cause WDT [BBP#11 reporter (pvxx)]
3.SSL issue,add an API (espconn_secure_set_size) to set SSL buffer size [BBP#29 reporter (PeteW)]
4.UDP broadcast issue in WEP

Optimize:
1.Add more details about measure ADC & VDD3P3 in appendix of document“2C-SDK-Espressif IoT SDK Programming Guide”[BBP#15 reporter (DarkByte)]
2.Can not do any WiFi related operation if WiFi mode is in NULL_MODE [BBP#23 reporter (hao.wang)]
3.start_ip and end_ip won't change through API wifi_softap_set_dhcps_lease [BBP#37 reporter (glb)]
4.AT get into busy state [BBP#35 reporter (tommy_hk)]
5.ssid + password length limitation when using AirKiss [BBP#45 reporter (zhchbin)]

Add APIs:
1.espconn_secure_set_size:set buffer size for SSL packet
2.espconn_secure_get_size:get SSL buffer size
3.at_register_uart_rx_intr:set UART0 to be used by user or AT commands

Add AT command:
1.AT+SLEEP: set ESP8266 sleep mode

esp_iot_sdk_v1.0.1_b1_15_04_02 Release note
-------------------------------------------

Fix bugs:
1. Connect to ESP8266 softAP fail after SmartConfig;
2. SmartConfig loses one bit of SSID

Optimize:
1. espconn_set_opt: set configuration of TCP connection,add parameter for TCP keep-alive

Add APIs:
1. espconn_clear_opt: clear configuration of TCP connection
2. espconn_set_keepalive: set configuration of TCP keep-alive to detect if TCP connection broke
3. espconn_get_keepalive: get configuration of TCP keep-alive

AT_v0.23_b1 release note
Note: AT added some functions so flash size need to be 1024KB or more than that.

Fix bug:
1. Always "busy" if TCP connection abnormally broke during AT+CIPSEND

Optimize:
1. Add UDP transparent transmission
2. Optimize the initial value of AT+CWDHCP?
3. Add TCP keep-alive function in AT+CIPSTART

Add AT command:
1. Add AT+CIPSENDEX which support quit from sending mode by "\0" (so an useful "\0" need to be "\\0")

esp_iot_sdk_v1.0.0_15_03_20 Release Note
----------------------------------------

Optimize:
1. Optimize smartconfig to version v1.0; Please don't call any other APIs during SmartConfig.
2. Optimize AT to version 0.22.0.0;
3. Optimize the protection of system parameters, and add error-check about it;
4. Optimize beacon delay of ESP8266 softAP;
5. Optimize boot to version 1.3(b3);
   - Add API system_restart_enhance: for factory test, support to load and run program in any specific address;
   - Add APIs to get boot version and start address of current user bin;
   - Fix compatibility problem of dual flash;
6. Optimize sniffer, structure sniffer_buf changed, please refer to document;
7. Optimize espconn;
8. Optimize pwm;
9. Other optimize to make the software more reliable;

Add APIs:
1. system_update_cpu_freq: change CPU frequency;
2. wifi_promiscuous_set_mac: set a mac address filter during sniffer;
3. wifi_set_broadcast_if : set which interface will UDP broadcast send from;

Fix bugs:
1. Interrupt during flash erasing will cause wdt reset;
2. Read/write rtc memory;
3. If router disconnect to ESP8266, ESP8266 won't reconnect;
4. Connect to router which hid its SSID

AT_v0.22 release note

Fix bug:
1. Wrong return value of AT+CIPSTATUS;
2. wdt rest after "0,CONNECT FAIL";

Add AT commands:
1. Change AT commands of which configuration will store into flash to two kinds:
   XXX_CUR: current, only set configuration won't save it into Flash;
   XXX_DEF: default, set configuration and save it to Flash
2. Add SmartConfig in AT:
   AT+CWSTARTSMART/AT+CWSTOPSMART: start / stop SmartConfig
   Notice: please refer to the document, call  "AT+CWSTOPSMART" to stop SmartConfig first since "AT+CWSTARTSMART", then call other AT commands. Don't call any other AT commands during SmartConfig.
2. AT+SAVETRANSLINK: save transparent transmission link to Flash;
   Note:AT+CIPMODE=1 set to enter transparent transmission mode, won't save to Flash.


Add AT APIs
1. at_customLinkMax: set the max link that allowed, most can be 10; if you want to set it, please set it before at_init; if you didn't set it, the max link allowed is 5 by default.
2. at_enter_special_state/ at_leave_special_state:Enter/leave AT processing state. In processing state, AT core will return "busy" for any further AT commands.
3. at_set_custom_info:set custom version information of AT which can be got by AT+GMR;
4. at_get_version:get version information of AT lib .

Optimize
1. Add UDP remote ip and remote port is allowed to be parameters of "AT+CIPSEND"
2. Move "AT+CIUPDATE" from lib to AT "demo\esp_iot_sdk\examples\at", AT demo shows how to upgrade AT firmware from a local server. Notice that AT upgrade the bin files name have to be "user1.bin" and "user2.bin".
3. Optimize "AT+CIPSTA", add gateway and netmask as parameters
4. Optimize transparent transmission.

esp_iot_sdk_v0.9.5_15_01_22 Release Note
----------------------------------------

AT becomes a lib attached to esp_iot_sdk, programming guide in "document" shows APIs for user to define their own AT commands, AT bin files are in \esp_iot_sdk\bin\at

Fix bugs:
1. Incorrect status got by API : wifi_station_get_connect_status;
2. Sniffer can not quit without restart;
3. wifi_station_ap_change always return true;
4. TCP connection issues

Add APIs:
1. system_deep_sleep_set_option: set what the chip will do when deep-sleep wake up;
2. wifi_status_led_uninstall;
3. wifi_station_ap_get_info: get information of AP that ESP8266 station connected.
4. wifi_station_dhcpc_status & wifi_softap_dhcps_status : get DHCP status
5. smart config APIs, more details in documents.
6. add beacon_interval parameter in struct softap_config
7. espconn_recv_hold and espconn_recv_unhold to block TCP receiving data and unblock it.
8. AT APIs to let user define their own AT, more details in documents.

Optimize:
1. light sleep, modem sleep, deep sleep
2. compile method: ./gen_misc.sh, then follow the tips and steps.
3. when no buffer for os_malloc, return NULL instead of malloc assert.
4. users can enable #define USE_OPTIMIZE_PRINTF in user_config.h to remove strings of os_printf from ram to irom
5. faster the re-connection of ESP8266 station to router after deep-sleep.
6. update to boot v1.2 to support new format user.bin;
7. update ARP
8. update SSL
9. revised system_deep_sleep,system_deep_sleep(0),set no wake up timer,connect a GPIO to pin RST, the chip will wake up by a falling-edge on pin RST

esp_iot_sdk_v0.9.4_14_12_19 Release Note
----------------------------------------

1. Update sniffer to support capture HT20/HT40 packet;
2. Add APIs to set and get sleep type;
3. Add APIs to get version info of sdk, delete version.h;
4. RAW in LWIP is open source now, add API of function ping;
5. Update spi driver;
6. Optimize APIs related to espconn;
7. Fix some bugs to make the software more reliable;

Known Issue:
1. exception of small probability occured while recving multi-client data in softap
2. restart of small probability occured while tcp client reconnecting

So sorry that we have some known issues here, we will solve it ASAP.

esp_iot_sdk_v0.9.3_14_11_21 Release Note
----------------------------------------

1. Add license documentation of ESPRESSIF SDK
2. Add APIs to read and write RTC memory, and APIs to get RTC time.
3. Add APIs to swap UART0
4. Add API to read ADC, delete adc.c.
5. Add API to read spi flash id
6. Revise struct station_config, add bssid parameters to distinguish different AP with same ssid ;
   Note: if station_config.bssid_set == 1 , station_config.bssid has to be set, or connection will fail. So in general, station_config.bssid_set need to be 0.
7. Revise struct scan_config, add scan_config.show_hidden to set whether scan APs which ssid is hidden or not; not scan, set scan_config.show_hidden to be 0.
   Add bss_info.is_hidden in struct bss_info to show if this APTs ssid is hidden.
8. Revise struct softap_config, add softap_config.ssid_len. If softap_config.ssid_len == 0, check ssid till find a termination characters; otherwise it depends on softap_config.ssid_len.
9. Revise API "wifi_softap_set_config" to take effect immediately, needs not restart to make the configuration enable any more.
10. Add APIs to set and get physical layer mode(802.11b/g/n)
11. Add APIs to enable and disable DHCP server of ESP8266 softAP
12. Add APIs to enable and disable DHCP client of ESP8266 station
13. Add API to set range of ip address that get from DHCP server
14. Add APIs to set and get how many TCP connections allowed at max.
15. Add APIs to set and get how many TCP clients allowed at max to a TCP server.
16. Revise "wifi_set_ip_info" and "wifi_set_macaddr" to take effect immediately.
17. Fix some bugs to make the software more reliable.

ESP8266EX: Fix A Potential Error For UART RX in esp_iot_sdk_v0.9.2_14_10_24
---------------------------------------------------------------------------

The previously released SDK for ESP8266EX inadvertently introduced a bug that may cause a little packet loss when transferring packet by Uart RX.
So for now,I will release the patch for this bug.Please download the patch from the attachment,and refer to the following steps:
Following Commands:
1. REPLACE LIBPHY.A IN SDK/LIB
2. ADD LIBPP.A TO SDK/LIB
3. MODIFY SDK/APP/MAKEFILE
4. ADD "-lpp \" AS BELOW
-lgcc
-lhal
-lpp
-lphy
-lnet80211
-llwip
-lwpa
-lmain
-lssc
-lssl

esp_iot_sdk_v0.9.2_14_10_24 Release Note
----------------------------------------

Initial version for public, can be compiled on both windows and lubuntu.
