Resolved Issues(Bugs below are eligible for Bug Bounty Program):
1.Espconn may fail to download big chunk of data(FOTA).
2.Invalid TCP data sent issue.
3.Fatal exceptions occur when change WiFi mode in WiFi scan callback.
4.WiFi compatibility problem of special network card.
5.Deep sleep may appear high current under certain circumstances.
Optimization:
1. Add a new method to check memory leaks (API : system_show_malloc).
2. Add print information when exception happens.
3. Resolve the problem of os_timer_disarm.
4. Optimize DHCP server, add API to set up the lease time of DHCP server. More details are in the “Added APIs”.
5. Add event “EVENT_STAMODE_DHCP_TIMEOUT” for the DHCP timeout handling mechanism.
6. Optimize handling of the reception of data and ZWP message.
7. Add new APIs to support SSL bidirectional authentication. More details are in the “Added APIs”.
8. Add new APIs to set up SSL certificates and encryption keys. API espconn_secure_set_default_certificate and espconn_secure_set_default_private_key should be called to set SSL certificate and secure key, if ESP8266 runs as SSL server. More details are in the “Added APIs”.
9. Optimize the process of FOTA (firmware upgrade through WiFi.
10. Optimize mDNS, and resolve the problem that in certain case the ESP8266 softAP can not work in the sta+AP mode.
11. Release mesh as a lib in the esp_iot_sdk, and do not provide SDK of the mesh version any more.
12. Optimize mesh’s handling of UDP packets.
13. Optimize checking of the validity of the mesh API’s parameters.
14. Add an API to set up the largest hop of mesh. For detailed information, go to mesh instructions.
15. Optimize the process of powering up and booting to shorten booting time by 20 ms.
16. Optimize the function of automatic frequency offset calibration.
17. Optimize the function of sniffer.
18. Strengthen reliability of the checking of beacon timeout.
19.Optimize Wi-Fi event mechanism, and add event “ EVENT_SOFTAPMODE_PROBEREQRECVED”, and reason for a failed connection.
20. Optimize Wi-Fi callback function and strengthen reliability of the software.
21. Add the function of data transferring between stations in the soft-AP mode.
22. Update SmartConfig to the version of 2.5.1.
23.Update esp_init_data_default.bin. Please use the newest esp_init_data_default.bin when burning.
24.Modify the espconn pointer in the receive callback of UDP. Parameters remote_ip and remote_port in it are the remote IP and port set by espconn_create. If users want to obtain IP and ports of the current sender, please call espconn_get_connection_info to get relevant information.
Added APIs:
1.System API
system_show_malloc : for checking memory leak, to print the memory usage.
2.DHCP server lease time related APIs
wifi_softap_set_dhcps_lease_time:set ESP8266 softAP DHCP server lease time.
wifi_softap_get_dhcps_lease_time:check ESP8266 softAP DHCP server lease time.
wifi_softap_reset_dhcps_lease_time:reset ESP8266 softAP DHCP server lease time which is 120 minutes by default.
3.wifi_station_dhcpc_set_maxtry:set the maximum number that ESP8266 station DHCP client will try to reconnect to the AP.
4.Force sleep APIs
wifi_fpm_open:enable force sleep function.
wifi_fpm_close:disable force sleep function.
wifi_fpm_do_sleep:force ESP8266 enter sleep mode.
wifi_fpm_do_wakeup:wake ESP8266 up from force sleep.
wifi_fpm_set_sleep_type:set sleep type of force sleep function.
wifi_fpm_get_sleep_type:get sleep type of force sleep function.
wifi_rfid_locp_recv_open:enable RFID LOCP to receive WDS packets.
wifi_rfid_locp_recv_close:disable RFID LOCP.
wifi_register_rfid_locp_recv_cb:register a callback of receiving WDS packets.
wifi_unregister_rfid_locp_recv_cb:unregister the callback of receiving WDS packets.
7.Rate Control APIs
wifi_set_user_fixed_rate:set the fixed rate and mask of sending data from ESP8266
wifi_get_user_fixed_rate:check the fixed rate and mask of ESP8266
wifi_set_user_sup_rate:set the rate range supported by ESP8266 to limit the rate of sending packets from other devices.
wifi_set_user_rate_limit:limit the rate of sending data from ESP8266.
wifi_set_user_limit_rate_mask:set the interfaces of ESP8266 whose rate of sending packets is limited by wifi_set_user_rate_limit.
wifi_get_user_limit_rate_mask:get the interfaces of ESP8266 whose rate of sending packets is limited by wifi_set_user_rate_limit.
8.Espconn APIs
espconn_sendto:send UDP data.
espconn_secure_cert_req_enable:enable certificates verification function when ESP8266 runs as SSL client.
espconn_secure_cert_req_disable:disable certificates verification function when ESP8266 runs as SSL client.
espconn_secure_set_default_certificate:set the certificate when ESP8266 runs as SSL server.
espconn_secure_set_default_private_key:set the encryption key when ESP8266 runs as SSL server.
9.SmartConfig API
smartconfig_set_type: set the protocol type of SmartConfig.
AT_v0.50 Release Note
Note: For AT firmware to support FOTA, flash size need to be 1024KB or larger.
1.Command "AT+CWSAP" add a parameter to set whether broadcast the SSID of ESP8266 soft-AP or not.
2.Add new command "AT+CWSTARTSMART=<type>" to set a specific protocol type for SmartConfig, <type>:1- ESPTOUCH,2-AirKiss,3-ESPTOUCH+AirKiss.
3.Add "AT+CWDHCPS_CUR" and "AT+CWDHCPS_DEF" related commands to set/check DHCP lease time and IP range.
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
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_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,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"
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, 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, so if using pwm, please update makefile refer to the makefile in SDK_v1.1.1 IoT_Demo example. 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_26 Release Note
1.Licensing for SDK 1.1.0 change to the Espressif MIT license since esp_iot_sdk_v1.1.0_15_05_26
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+ and flash download tool_v1.2+, 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.user_rf_pre_init has to be added in user_main.c, user can call system_phy_set_rfoption to set configuration of RF in it.Could refer to user_main.c in IOT_Demo (\esp_iot_sdk\examples)
10.Update smartconfig
(1) Need not call wifi_station_set_auto_connect to disable auto-connect before smartconfig any more
(2) Delete smartconfig_get_status
(3) Updates the example of smartconfig_start in "2C_ESP8266__Programming Guide"
2.Optimize the initial value of AT+CWDHCP? [BBP#10 reporter (ondrej.dolejsi)]
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")[BBP#7 reporter (Jerry Sy)]
esp_iot_sdk_v1.0.0_15_03_20 release note
Resolved Issues:
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
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;
Optimization:
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);
1>、Add API system_restart_enhance: for factory test, support to load and run program in any specific address;
2>、Add APIs to get boot version and start address of current user bin;
3>、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;
AT_v0.22 release note
Important Note:
1.AT added some functions so it's larger than before, if you want to compile it, please modify ld files according to the “!!!readme!!!" file.
2."AT+CIUPDATE" , if you use Espressif AT bin(\esp_iot_sdk_v1.0.0\bin\at) directly it will upgrade bin files from Espressif Cloud; if you compiled your own AT, you need to do your own "AT+CIUPDATE" ,we provide a demo(\esp_iot_sdk_v1.0.0\examples\at ) showing upgrade from local server.
3. Previous version of AT,can not upgrade from Espressif Cloud any more,please use this latest AT.
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
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.
3、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
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
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.
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 packet, and the length of 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;
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 is not 0 , 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 AP’s 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.