Releases: esp8266/Arduino
Releases · esp8266/Arduino
Release 3.1.2
Release 3.1.2 Notes
Second patch release (includes 3.1.1 and 3.1.0)
Core
- Fix weak assignment in flash_hal.h (#8884)
- Remove stale patch required for older SDK releases (#8858)
- Show 'Exception' cause and 'epc1=...' address when interrupted by Soft WDT (#8851)
- Issue warning when reallocating String buffer too much (#8821, #8849)
- Fix stack offset and division-by-zero origin in postmortem message (#8839)
- IPAddress: Properly handle u8 pointers when assigning and comparing (#8818)
Build system
General
- Don't use -g++ or -gcc suffixes in command line arguments (#8829)
- Log all exceptions in upload.py (#8813)
mkbuildoptglobals.py
- Assert python version (#8886)
- Resolve Windows path encoding problems (#8860)
- Fix not finding preferences.txt (#8814, #8812)
Libraries
- Ethernet: fix library.properties (#8880)
- EspSoftwareSerial 8.0.1: onReceive bug fix and new namespace (#8869)
- Make http-server less verbose in debug mode (#8850)
- SdFat: Fix long operations triggering watchdog (#8844)
- LowPowerDemo: Fix typo (#8841)
- SdFat: FS HAL mode fixes & test (#8833)
- Ticker: Safeguard for internal storage that may be changed during callback execution (#8820)
- HTTPClient example: Fix typo (#8819)
- Basichttpsclient example: fingerprint handled by update scripts (#8311)
Documentation
- Expand the hardware debugging limitations section (#8879)
CI
- Emulation on host: fix UDP seek&peek (#8827)
Release 3.1.1 Notes
Core
- Transparently manage recurrent scheduled functions in delay() (#8802)
- Fix C builds when including coredecls.h and / or core_esp8266_features.h (#8795)
- Typo in EAP patch (#8797)
- Fix clang warnings related to constexpr usage (#8796)
- Fix printf format in Updater debug messages (#8791)
Examples
- Remove 400b stack allocation from Advanced Web example (#8793)
Build system
- Also apply #8226 portable python fix to mkbuildopts script (#8804)
- Attempt to fix elf2bin.py not always working on Windows (#8799)
CI
Release 3.1 Notes
Great additions
- NONOS SDK 3.0.5 (#8736, #8746, #8755, #8770)
- Support for global build defines and options for Arduino IDE (#8504)
- WPA2-Enterprise (#8529, #8566)
- (experimental) Flash-size agnostic builds (#6690)
Additions
- DHCP custom option(s) for DhcpServer (#8582)
- Updater lifetime callbacks (#8653)
- Add
WiFiClient::abort()
(#8738)
Notable changes
- hostByName timeout fixes (#8787)
- PHY status API for ethernet drivers (#8784)
- Update to EspSoftwareSerial 7.0.0 (#8781)
- Keep Servo in the same position after re-attaching (#8753)
- Fix WiFiClientSecure
remoteIP()
,remotePort()
,localIP()
,localPort()
functions (#8693) - mDNS - valid
board
for_adruino._tcp
service (#8634) - Allow longer delays for Ticker (#8625)
- ArduinoOTA and ESP8266HTTPUpdate no longer stop all WiFiClient/WiFiUDP (#8598)
- WiFiServer - rename available() to accept(), deprecate available() (#8419)
- Avoid out-of-bounds reads in String (#8463, #8597)
- Fix compilation issues and update toolchain (#8393, #8613)
- Update to SdFat 2.1.1 with UTF-8 support (#8355)
- lwIP v2.1.3 + various fixes (#8319, #8596)
- WiFiServer - 'rename' available() to accept() (#8419)
- WiFiServer - don't inherit from Server class (#8418)
- I2C clock phase correction in START condition (#8383)
- MMU functions strict aliasing fixes (#8290)
- Add FSTools with examples of how to convert between SPIFFS and LittleFS (#7696)
- Rename
esp_yield()
toesp_suspend()
, updateesp_yield()
to also callesp_schedule()
(#7148)
Breaking changes
None
Changes
SDK
- Added NONOS SDK 3.0.5 (#8736, #8770)
- Resolve flash address issues with SDK 3.0.x (#8755)
- Heap addendum to handle changes in NON-OS SDK 3.0.x (#8746)
- Fix missing NONOS SDK 2.2.x 19-03-13 (#7965, #8363)
Core
- Fix flashinit panic not printing (#8762)
- Fix Stream::parseFloat() (#8785)
- Added missing DRAM fallback to pvPortCallocIram, pvPortZallocIram, and (#8765)
- Fix pre-SDK Cache_Read_Enable for PUYA flash (#8658)
- OTA: Updater lifetime callbacks (#8653)
- Nice stack smashing postmortem message (#8670)
- Ensure xPortGetFreeHeapSize reports DRAM (#8680)
- SPI: writePattern() should not call setDataBits(0) (#8636)
- Correctly handle unaligned address in EspClass::flashWrite u8 overload (#8605)
- Add
esp_is_8285()
, check for ESP8285 at runtime (#8604) - Allow to use temporary strings in configTime (#8606)
- Allow UART1 to be inverted (#8601)
- Avoid reading past end of non-zero terminated char arrays (#8597)
- Fix DTR offset value (#8586)
- WString: remove
operator==(const __FlashStringHelper*)
(#8569) - Permit using the Updater _hash function, even if we don't have a signature appended to the image (#8507, #8545)
- Test: fixing itoa implementation and clean-up of tests and test Makefile (#8531)
- WString: unify numeric conversion and fix assignments (#8526)
- Fix OOM print handling of NULL file pointer (#8527)
- Heap panic / abort cleanup (#8465)
- Heap init code improvements and updates (#8458)
- Fix, calloc now fails on extra-large request. (#8482)
- Flash-size agnostic builds (#6690)
- WString: avoid writing to const storage (#8463)
- Fix Stream::read into buffer ignoring every second byte (#8452, #8453)
- Fix VM Address mask (#8440)
- Import getLocalTime() from esp32/Arduino (#8413)
- Sync umm_malloc style with upstream (#8426)
- StreamConstPtr: disallow passing a String temporary (#8410)
- Fix
umm_blocks()
(#8429) - Missing includes in StreamString.h (#8367)
- Implement
esp_yield()
as a replacement fordelay(0)
(#7148) - Update
mmu_get...
andmmu_set...
(#8290) - Reduce build size by implementing flash string overloads for String (#8106)
Libraries - FS
- Update to LittleFS 2.5.1 (#8543, #8786)
- Fix File::readString to work with binary data (#8742)
- Add FSTools with examples of how to convert between SPIFFS and LITTLEFS. (#7696)
- Correctly using fs:: namespace in SD & SDFS (#8493)
- Move ESP8266SDFat library to master, not branch (#8460)
- Fix info.usedBytes calculation giving weird result (#8445)
- LittleFS: add overrides for Stream::send (#8386)
- Update to SdFat 2.1.1 with UTF-8 support (#8355)
- Clean up SpeedTest output, avoid div-by-0 (#8340)
Libraries - Network
- hostByName timeout fixes (#8787)
- PHY status API for ethernet drivers (#8784)
- lwip2: cleanup logging and use newlib printf (#8769)
- Consistent
netif->status_callback
(#8676) - Make WiFi/Ethernet interface compatible with Arduino Ethernet API (#8645)
- Fix WiFi/Ethernet hostname management (#8626)
- Add
WiFiClient::abort()
(#8738) - Provide
wl_tcp_state
astcp_state
alias (#8609) - Do not call tcp/udp ::stopAll() when it is not required to do so (#8598)
- Fix lwip2 ping (#8596)
- DHCP custom option(s) for DhcpServer (#8582)
- lwIP on ethernet: examples (#8395)
- Define lwIP's s32/u32 to int (#8560)
- Update RFC 5246 URL (#8564)
- lwIP: v2.1.3 + dhcp fixes (#8319)
- WiFiServer - 'rename' available() to accept() (#8419)
- WiFiServer - don't inherit from Server class (#8418)
- WiFi library ArduinoWiFiServer update (#8238)
- Place deprecated attribute in front of function (#8258)
Libraries - WiFi
- Allow passing beacon interval to SoftAP config (#8695)
- Optimize disconnect method in WiFiSTA class (#8760)
- Add eraseap option to WiFi disconnect method. (#8758)
- Allow to access
bss_info
after scan (#8683) - Patch eap.o memory leak (#8566)
- Fix double-free when connecting to WPA2-Enterprise networks (#8529)
- Initialize SoftAP DhcpServer object on demand (#8546)
- Correctly access
WIFI_EVENT_MODE_CHANGE
event info (#8343) - Return
WL_WRONG_PASSWORD
when calling begin() w/ invalid password (#8229)
Libraries - TLS/SSL
- Don't return
true
withWiFiClientSecureBearSSL::connected()
when really disconnected (#8330) - Only check the actual used length of the hash (#8709)
- Fix WiFiClientSecure
remoteIP()
,remotePort()
,localIP()
,localPort()
functions (#8693) - SSL examples updates (#8643)
- Update example certs (#8642)
- Update to latest BearSSL (#8600)
- Delete operator=(Self&) when copy constructor is deleted (#8535)
- Update sessions example to show speed difference (#8528)
Libraries - ESP8266WebServer
- Stop incorrectingly increase number of arguments when setting up arg("plain") (#8599)
- Use String when working with Basic authentication (#8548)
- Fix missing implementation of send stream by reference (#8533)
- Drop inactive connection when another is waiting to improve page load time (#8216)
- Optional ETag support, custom generator function (#8227)
Libraries - Wire
- Buffer length improvements (#8398)
- Allow to override buffer length (#8390)
- I2C clock phase correction in START condition (#8383)
Libraries - HTTPUpdate
- Allow passing custom HTTPClient (#8773)
- Correct class name in readme.rst (#8751)
- Add DEBUG payload output (#8745)
- Add setClientTimeout() (#8740)
- Fix missing include in OTA example (#8667)
- Catch a possible null-dereference (#8508)
- Allow manually setting MD5 checksum (#8204)
Libraries - HTTPClient
- Fix connection reuse for different URIs in ::begin (#8466)
- Prevent empty user-agent in header (#8411)
- Movable HTTPClient and fixing WiFiClient copy (#8237)
- Add writeToPrint (#8056)
- Pass authorization String by value (#8225)
- Add
::DELETE()
(#8214)
Libraries - ArduinoOTA
Libraries - mDNS
Release 3.1.1
Release 3.1.1 Notes
(includes 3.1.0 release notes)
Core
- Non-interruptible delay(), wait for the full duration (#8802)
- Transparently manage recurrent scheduled functions in delay() (#8802)
- Fix C builds when including coredecls.h and / or core_esp8266_features.h (#8795)
- Typo in EAP patch (#8797)
- Fix clang warnings related to constexpr usage (#8796)
- Fix printf format in Updater debug messages (#8791)
Examples
- Remove 400b stack allocation from Advanced Web example (#8793)
Build system
- Also apply #8226 portable python fix to mkbuildopts script (#8804)
- Attempt to fix elf2bin.py not always working on Windows (#8799)
CI
Release 3.1.0 Notes
Great additions
- NONOS SDK 3.0.5 (#8736, #8746, #8755, #8770)
- Support for global build defines and options for Arduino IDE (#8504)
- WPA2-Enterprise (#8529, #8566)
- (experimental) Flash-size agnostic builds (#6690)
Additions
- DHCP custom option(s) for DhcpServer (#8582)
- Updater lifetime callbacks (#8653)
- Add
WiFiClient::abort()
(#8738)
Notable changes
- hostByName timeout fixes (#8787)
- PHY status API for ethernet drivers (#8784)
- Update to EspSoftwareSerial 7.0.0 (#8781)
- Keep Servo in the same position after re-attaching (#8753)
- Fix WiFiClientSecure
remoteIP()
,remotePort()
,localIP()
,localPort()
functions (#8693) - mDNS - valid
board
for_adruino._tcp
service (#8634) - Allow longer delays for Ticker (#8625)
- ArduinoOTA and ESP8266HTTPUpdate no longer stop all WiFiClient/WiFiUDP (#8598)
- WiFiServer - rename available() to accept(), deprecate available() (#8419)
- Avoid out-of-bounds reads in String (#8463, #8597)
- Fix compilation issues and update toolchain (#8393, #8613)
- Update to SdFat 2.1.1 with UTF-8 support (#8355)
- lwIP v2.1.3 + various fixes (#8319, #8596)
- WiFiServer - 'rename' available() to accept() (#8419)
- WiFiServer - don't inherit from Server class (#8418)
- I2C clock phase correction in START condition (#8383)
- MMU functions strict aliasing fixes (#8290)
- Add FSTools with examples of how to convert between SPIFFS and LittleFS (#7696)
- Rename
esp_yield()
toesp_suspend()
, updateesp_yield()
to also callesp_schedule()
(#7148)
Breaking changes
None
Changes
SDK
- Added NONOS SDK 3.0.5 (#8736, #8770)
- Resolve flash address issues with SDK 3.0.x (#8755)
- Heap addendum to handle changes in NON-OS SDK 3.0.x (#8746)
- Fix missing NONOS SDK 2.2.x 19-03-13 (#7965, #8363)
Core
- Fix flashinit panic not printing (#8762)
- Fix Stream::parseFloat() (#8785)
- Added missing DRAM fallback to pvPortCallocIram, pvPortZallocIram, and (#8765)
- Fix pre-SDK Cache_Read_Enable for PUYA flash (#8658)
- OTA: Updater lifetime callbacks (#8653)
- Nice stack smashing postmortem message (#8670)
- Ensure xPortGetFreeHeapSize reports DRAM (#8680)
- SPI: writePattern() should not call setDataBits(0) (#8636)
- Correctly handle unaligned address in EspClass::flashWrite u8 overload (#8605)
- Add
esp_is_8285()
, check for ESP8285 at runtime (#8604) - Allow to use temporary strings in configTime (#8606)
- Allow UART1 to be inverted (#8601)
- Avoid reading past end of non-zero terminated char arrays (#8597)
- Fix DTR offset value (#8586)
- WString: remove
operator==(const __FlashStringHelper*)
(#8569) - Permit using the Updater _hash function, even if we don't have a signature appended to the image (#8507, #8545)
- Test: fixing itoa implementation and clean-up of tests and test Makefile (#8531)
- WString: unify numeric conversion and fix assignments (#8526)
- Fix OOM print handling of NULL file pointer (#8527)
- Heap panic / abort cleanup (#8465)
- Heap init code improvements and updates (#8458)
- Fix, calloc now fails on extra-large request. (#8482)
- Flash-size agnostic builds (#6690)
- WString: avoid writing to const storage (#8463)
- Fix Stream::read into buffer ignoring every second byte (#8452, #8453)
- Fix VM Address mask (#8440)
- Import getLocalTime() from esp32/Arduino (#8413)
- Sync umm_malloc style with upstream (#8426)
- StreamConstPtr: disallow passing a String temporary (#8410)
- Fix
umm_blocks()
(#8429) - Missing includes in StreamString.h (#8367)
- Implement
esp_yield()
as a replacement fordelay(0)
(#7148) - Update
mmu_get...
andmmu_set...
(#8290) - Reduce build size by implementing flash string overloads for String (#8106)
Libraries - FS
- Update to LittleFS 2.5.1 (#8543, #8786)
- Fix File::readString to work with binary data (#8742)
- Add FSTools with examples of how to convert between SPIFFS and LITTLEFS. (#7696)
- Correctly using fs:: namespace in SD & SDFS (#8493)
- Move ESP8266SDFat library to master, not branch (#8460)
- Fix info.usedBytes calculation giving weird result (#8445)
- LittleFS: add overrides for Stream::send (#8386)
- Update to SdFat 2.1.1 with UTF-8 support (#8355)
- Clean up SpeedTest output, avoid div-by-0 (#8340)
Libraries - Network
- hostByName timeout fixes (#8787)
- PHY status API for ethernet drivers (#8784)
- lwip2: cleanup logging and use newlib printf (#8769)
- Consistent
netif->status_callback
(#8676) - Make WiFi/Ethernet interface compatible with Arduino Ethernet API (#8645)
- Fix WiFi/Ethernet hostname management (#8626)
- Add
WiFiClient::abort()
(#8738) - Provide
wl_tcp_state
astcp_state
alias (#8609) - Do not call tcp/udp ::stopAll() when it is not required to do so (#8598)
- Fix lwip2 ping (#8596)
- DHCP custom option(s) for DhcpServer (#8582)
- lwIP on ethernet: examples (#8395)
- Define lwIP's s32/u32 to int (#8560)
- Update RFC 5246 URL (#8564)
- lwIP: v2.1.3 + dhcp fixes (#8319)
- WiFiServer - 'rename' available() to accept() (#8419)
- WiFiServer - don't inherit from Server class (#8418)
- WiFi library ArduinoWiFiServer update (#8238)
- Place deprecated attribute in front of function (#8258)
Libraries - WiFi
- Allow passing beacon interval to SoftAP config (#8695)
- Optimize disconnect method in WiFiSTA class (#8760)
- Add eraseap option to WiFi disconnect method. (#8758)
- Allow to access
bss_info
after scan (#8683) - Patch eap.o memory leak (#8566)
- Fix double-free when connecting to WPA2-Enterprise networks (#8529)
- Initialize SoftAP DhcpServer object on demand (#8546)
- Correctly access
WIFI_EVENT_MODE_CHANGE
event info (#8343) - Return
WL_WRONG_PASSWORD
when calling begin() w/ invalid password (#8229)
Libraries - TLS/SSL
- Don't return
true
withWiFiClientSecureBearSSL::connected()
when really disconnected (#8330) - Only check the actual used length of the hash (#8709)
- Fix WiFiClientSecure
remoteIP()
,remotePort()
,localIP()
,localPort()
functions (#8693) - SSL examples updates (#8643)
- Update example certs (#8642)
- Update to latest BearSSL (#8600)
- Delete operator=(Self&) when copy constructor is deleted (#8535)
- Update sessions example to show speed difference (#8528)
Libraries - ESP8266WebServer
- Stop incorrectingly increase number of arguments when setting up arg("plain") (#8599)
- Use String when working with Basic authentication (#8548)
- Fix missing implementation of send stream by reference (#8533)
- Drop inactive connection when another is waiting to improve page load time (#8216)
- Optional ETag support, custom generator function (#8227)
Libraries - Wire
- Buffer length improvements (#8398)
- Allow to override buffer length (#8390)
- I2C clock phase correction in START condition (#8383)
Libraries - HTTPUpdate
- Allow passing custom HTTPClient (#8773)
- Correct class name in readme.rst (#8751)
- Add DEBUG payload output (#8745)
- Add setClientTimeout() (#8740)
- Fix missing include in OTA example (#8667)
- Catch a possible null-dereference (#8508)
- Allow manually setting MD5 checksum (#8204)
Libraries - HTTPClient
- Fix connection reuse for different URIs in ::begin (#8466)
- Prevent empty user-agent in header (#8411)
- Movable HTTPClient and fixing WiFiClient copy (#8237)
- Add writeToPrint (#8056)
- Pass authorization String by value (#8225)
- Add
::DELETE()
(#8214)
Libraries - ArduinoOTA
Libraries - mDNS
- Restart mDNS when network state changes (#8705)
- Also increase # of sends when a send fails (#8641)
- Report valid Board ID (#8634)
- Fix timeout type (#8394)
- Remove obsolete comments about legacy mDNS impl. (#8377)
Libraries - others
- Update to EspSoftwareSerial 7.0.0 (#8260, #8295, #8353, #8370, #8373, #8541, #8739, #8754, #8781)
- Remove temporary buffer in common ConfigFile example .ino (#8298)
- DNS Server: Add DNS forwarder to DNSServer (#7237)
- Netbios: Use current netif address in response (#8622)
- Servo: Keep Servo in the same position after re-attaching (#8753)
- HTTPUpdateServer Allow external POSTS (CORS) (#6824)
- Ticker: Allow longer delays and some internal updates (#8625)
Tools
- Stack decoder script (#8661)
- Do not show python traceback when esptool fails (#8603, #8608)
- Table output for segment size script (#8551, #8572, #8573)
Documentation
- Correction on Heap API available from ISR (#8708)
- We are no longer using Travis CI (#8706)
- Update WiFi scan docs (#8685)
- Fix Sphinx build warnings (#8686)
- Add missing license headers (#8630)
- Update FS documentation (#8619)
- Document side effects for wifi-off-at-boot (#8614)
- Correct "list" formatting (#8610)
- Update broken links (#8589)
- Add documentation entry about compiler warnings (#8492)
- Remove Python installation from OTA doc (#8417)
- comments on Arduino flush() method (#8318)
Boards
- Add Wemos ESP-WROOM-...
Release 3.1.0
Release 3.1.0 Notes
Great additions
- NONOS SDK 3.0.5 (#8736, #8746, #8755, #8770)
- Support for global build defines and options for Arduino IDE (#8504)
- WPA2-Enterprise (#8529, #8566)
- (experimental) Flash-size agnostic builds (#6690)
Additions
- DHCP custom option(s) for DhcpServer (#8582)
- Updater lifetime callbacks (#8653)
- Add
WiFiClient::abort()
(#8738)
Notable changes
- hostByName timeout fixes (#8787)
- PHY status API for ethernet drivers (#8784)
- Update to EspSoftwareSerial 7.0.0 (#8781)
- Keep Servo in the same position after re-attaching (#8753)
- Fix WiFiClientSecure
remoteIP()
,remotePort()
,localIP()
,localPort()
functions (#8693) - mDNS - valid
board
for_adruino._tcp
service (#8634) - Allow longer delays for Ticker (#8625)
- ArduinoOTA and ESP8266HTTPUpdate no longer stop all WiFiClient/WiFiUDP (#8598)
- WiFiServer - rename available() to accept(), deprecate available() (#8419)
- Avoid out-of-bounds reads in String (#8463, #8597)
- Fix compilation issues and update toolchain (#8393, #8613)
- Update to SdFat 2.1.1 with UTF-8 support (#8355)
- lwIP v2.1.3 + various fixes (#8319, #8596)
- WiFiServer - 'rename' available() to accept() (#8419)
- WiFiServer - don't inherit from Server class (#8418)
- I2C clock phase correction in START condition (#8383)
- MMU functions strict aliasing fixes (#8290)
- Add FSTools with examples of how to convert between SPIFFS and LittleFS (#7696)
- Rename
esp_yield()
toesp_suspend()
, updateesp_yield()
to also callesp_schedule()
(#7148)
Breaking changes
None
Changes
SDK
- Added NONOS SDK 3.0.5 (#8736, #8770)
- Resolve flash address issues with SDK 3.0.x (#8755)
- Heap addendum to handle changes in NON-OS SDK 3.0.x (#8746)
- Fix missing NONOS SDK 2.2.x 19-03-13 (#7965, #8363)
Core
- Fix flashinit panic not printing (#8762)
- Fix Stream::parseFloat() (#8785)
- Added missing DRAM fallback to pvPortCallocIram, pvPortZallocIram, and (#8765)
- Fix pre-SDK Cache_Read_Enable for PUYA flash (#8658)
- OTA: Updater lifetime callbacks (#8653)
- Nice stack smashing postmortem message (#8670)
- Ensure xPortGetFreeHeapSize reports DRAM (#8680)
- SPI: writePattern() should not call setDataBits(0) (#8636)
- Correctly handle unaligned address in EspClass::flashWrite u8 overload (#8605)
- Add
esp_is_8285()
, check for ESP8285 at runtime (#8604) - Allow to use temporary strings in configTime (#8606)
- Allow UART1 to be inverted (#8601)
- Avoid reading past end of non-zero terminated char arrays (#8597)
- Fix DTR offset value (#8586)
- WString: remove
operator==(const __FlashStringHelper*)
(#8569) - Permit using the Updater _hash function, even if we don't have a signature appended to the image (#8507, #8545)
- Test: fixing itoa implementation and clean-up of tests and test Makefile (#8531)
- WString: unify numeric conversion and fix assignments (#8526)
- Fix OOM print handling of NULL file pointer (#8527)
- Heap panic / abort cleanup (#8465)
- Heap init code improvements and updates (#8458)
- Fix, calloc now fails on extra-large request. (#8482)
- Flash-size agnostic builds (#6690)
- WString: avoid writing to const storage (#8463)
- Fix Stream::read into buffer ignoring every second byte (#8452, #8453)
- Fix VM Address mask (#8440)
- Import getLocalTime() from esp32/Arduino (#8413)
- Sync umm_malloc style with upstream (#8426)
- StreamConstPtr: disallow passing a String temporary (#8410)
- Fix
umm_blocks()
(#8429) - Missing includes in StreamString.h (#8367)
- Implement
esp_yield()
as a replacement fordelay(0)
(#7148) - Update
mmu_get...
andmmu_set...
(#8290) - Reduce build size by implementing flash string overloads for String (#8106)
Libraries - FS
- Update to LittleFS 2.5.1 (#8543, #8786)
- Fix File::readString to work with binary data (#8742)
- Add FSTools with examples of how to convert between SPIFFS and LITTLEFS. (#7696)
- Correctly using fs:: namespace in SD & SDFS (#8493)
- Move ESP8266SDFat library to master, not branch (#8460)
- Fix info.usedBytes calculation giving weird result (#8445)
- LittleFS: add overrides for Stream::send (#8386)
- Update to SdFat 2.1.1 with UTF-8 support (#8355)
- Clean up SpeedTest output, avoid div-by-0 (#8340)
Libraries - Network
- hostByName timeout fixes (#8787)
- PHY status API for ethernet drivers (#8784)
- lwip2: cleanup logging and use newlib printf (#8769)
- Consistent
netif->status_callback
(#8676) - Make WiFi/Ethernet interface compatible with Arduino Ethernet API (#8645)
- Fix WiFi/Ethernet hostname management (#8626)
- Add
WiFiClient::abort()
(#8738) - Provide
wl_tcp_state
astcp_state
alias (#8609) - Do not call tcp/udp ::stopAll() when it is not required to do so (#8598)
- Fix lwip2 ping (#8596)
- DHCP custom option(s) for DhcpServer (#8582)
- lwIP on ethernet: examples (#8395)
- Define lwIP's s32/u32 to int (#8560)
- Update RFC 5246 URL (#8564)
- lwIP: v2.1.3 + dhcp fixes (#8319)
- WiFiServer - 'rename' available() to accept() (#8419)
- WiFiServer - don't inherit from Server class (#8418)
- WiFi library ArduinoWiFiServer update (#8238)
- Place deprecated attribute in front of function (#8258)
Libraries - WiFi
- Allow passing beacon interval to SoftAP config (#8695)
- Optimize disconnect method in WiFiSTA class (#8760)
- Add eraseap option to WiFi disconnect method. (#8758)
- Allow to access
bss_info
after scan (#8683) - Patch eap.o memory leak (#8566)
- Fix double-free when connecting to WPA2-Enterprise networks (#8529)
- Initialize SoftAP DhcpServer object on demand (#8546)
- Correctly access
WIFI_EVENT_MODE_CHANGE
event info (#8343) - Return
WL_WRONG_PASSWORD
when calling begin() w/ invalid password (#8229)
Libraries - TLS/SSL
- Don't return
true
withWiFiClientSecureBearSSL::connected()
when really disconnected (#8330) - Only check the actual used length of the hash (#8709)
- Fix WiFiClientSecure
remoteIP()
,remotePort()
,localIP()
,localPort()
functions (#8693) - SSL examples updates (#8643)
- Update example certs (#8642)
- Update to latest BearSSL (#8600)
- Delete operator=(Self&) when copy constructor is deleted (#8535)
- Update sessions example to show speed difference (#8528)
Libraries - ESP8266WebServer
- Stop incorrectingly increase number of arguments when setting up arg("plain") (#8599)
- Use String when working with Basic authentication (#8548)
- Fix missing implementation of send stream by reference (#8533)
- Drop inactive connection when another is waiting to improve page load time (#8216)
- Optional ETag support, custom generator function (#8227)
Libraries - Wire
- Buffer length improvements (#8398)
- Allow to override buffer length (#8390)
- I2C clock phase correction in START condition (#8383)
Libraries - HTTPUpdate
- Allow passing custom HTTPClient (#8773)
- Correct class name in readme.rst (#8751)
- Add DEBUG payload output (#8745)
- Add setClientTimeout() (#8740)
- Fix missing include in OTA example (#8667)
- Catch a possible null-dereference (#8508)
- Allow manually setting MD5 checksum (#8204)
Libraries - HTTPClient
- Fix connection reuse for different URIs in ::begin (#8466)
- Prevent empty user-agent in header (#8411)
- Movable HTTPClient and fixing WiFiClient copy (#8237)
- Add writeToPrint (#8056)
- Pass authorization String by value (#8225)
- Add
::DELETE()
(#8214)
Libraries - ArduinoOTA
Libraries - mDNS
- Restart mDNS when network state changes (#8705)
- Also increase # of sends when a send fails (#8641)
- Report valid Board ID (#8634)
- Fix timeout type (#8394)
- Remove obsolete comments about legacy mDNS impl. (#8377)
Libraries - others
- Update to EspSoftwareSerial 7.0.0 (#8260, #8295, #8353, #8370, #8373, #8541, #8739, #8754, #8781)
- Remove temporary buffer in common ConfigFile example .ino (#8298)
- DNS Server: Add DNS forwarder to DNSServer (#7237)
- Netbios: Use current netif address in response (#8622)
- Servo: Keep Servo in the same position after re-attaching (#8753)
- HTTPUpdateServer Allow external POSTS (CORS) (#6824)
- Ticker: Allow longer delays and some internal updates (#8625)
Tools
- Stack decoder script (#8661)
- Do not show python traceback when esptool fails (#8603, #8608)
- Table output for segment size script (#8551, #8572, #8573)
Documentation
- Correction on Heap API available from ISR (#8708)
- We are no longer using Travis CI (#8706)
- Update WiFi scan docs (#8685)
- Fix Sphinx build warnings (#8686)
- Add missing license headers (#8630)
- Update FS documentation (#8619)
- Document side effects for wifi-off-at-boot (#8614)
- Correct "list" formatting (#8610)
- Update broken links (#8589)
- Add documentation entry about compiler warnings (#8492)
- Remove Python installation from OTA doc (#8417)
- comments on Arduino flush() method (#8318)
Boards
Build system
- PIO: Fix CPPDEFINES loop (#8744)
- ldscripts: Fix typo in section list (#8726)
- Add debug support for build.opt (#8637)
- Rebuilt HAL w/latest toolchain and fixed configure (#8615)
- PIO: Move
_GNU_SOURCE
from CCFLAGS to CPPDEFINES (#8579) - PIO: Improve support for hand-written asm source files (#8583)
- platform.txt: Override python3 anon pipe encoding to utf-8 for 'tools/sizes.py' (#8570)
- Add support for global build defines and options (#8504, #8565)
- Table output for segment size script (#8551)
- Properly quote paths for GCC warnings files (#8523)
- Fix minor typo in generated comment (#8503)
- Migrate from astyle to clang-format (#8464)
- Minor ...
Release 3.0.2
Release 3.0.2 Notes
(includes 3.0.1 and 3.0.0 release notes)
Core
- Internal API: add comments and corrections (#8201)
- String: Avoid copying past end of buffer in ::concat (#8198)
- Call umm_init just before starting SDK (#8207)
- Clean up use of "byte" as a type. uint8_t or (C++17) std::byte are better. (#8090)
- Fix PRxxx printf format macros (#8222)
Libraries
- Update to EspSoftwareSerial bug fix release 6.12.7 (#8195)
- Fixes failing https connections to HelloServerBearSSL (w/MMU48KIRAM) (#8206)
- Use valid categories in library.properties of bundled libraries (#8221)
- Netdump printf fix (#8215)
- Fix with NO_GLOBAL_INSTANCES (#8184)
- Make multiple FS begin calls noops() SDFS/LittleFS (#8235)
CI
- Copy released JSON to board URL, not new one (#8182)
Build system
- Make mkdir.py work under python<3.5 (#8194)
- Certificate and public keys automatic updater (#8218)
- Use only installed Python on Windows (#8226)
Board definitions
- Add wifi kit 8 to boards (#8190)
Release 3.0.1 Notes
Breaking Changes
- BREAKING: "i2s.h" removed, I2S library added (#8108)
Core
- Make String reallocation warning more descriptive (#8131)
- Normalize core header's include guard. (#8110)
- makeword: sync header and implementation (#8097)
- Use optimal bundled library names (#8088) (#8098)
- Added IRAM_ATTR to _stopPWM() so that digitalWrite() would work inside ISR. Fixes #8043 (#8044) (#8048)
- makecorever.py: restore ARDUINO_ESP8266_GIT_VER even without .git/ (#8138)
IDE
Libraries - LittleFS
- Re-add mklittlefs to package.json, fixing "ESP8266 LittleFS Data Upload" (#8060)
- Don't crash when including LittleFS.h w/no FS (#8173)
Libraries - SD/SDFS
- SDFS: fix AvailableForWrite: do not always return 0 when space is available (#8167)
Libraries - ESP8266httpUpdate
- ESP266httpUpdate: remove dead API and fix doc (#8063)
Libraries - ESP8266WiFi
Libraries - SoftwareSerial
- Update EspSoftwareSerial to bug fix release 6.12.6
Libraries - ESP8266HTTPClient
- ESP8266HTTPClient: remove old example (#8111)
- Change protocol detection so uppercase or lowercase works (#8137)
Toolchain
- Update toolchain to gcc 10.3 w/patches (#8104) (#8103)
- Update toolchain to fix pgm_read_float_unaligned (#8091)
- Remove include and lib folders removed since 3.0.0 core (#8125)
- Add errors on invalid/missing function return type (#8165)
- GNU source: honoring libc requirements (#8147)
PlatformIO
Documentation
- Fix readthedoc python dependencies (#8166)
- Documentation: Arduino IDE options: fix hyperlinks and format, options (#8158) (#8154)
CI / Release / Environment
- Add code-spell spelling checks to CI (#8067)
- Release script: protect bash variables and add logs, major/minor/rev macro addition, BASH fix (#8074) (#8126) (#8127) (#8168)
- Remove some no longer applicable artifacts from .gitignore (#8170)
Release 3.0.0 Notes
Great additions
- PoC cache configuration control (aka +16KB heap!) (#7060)
- Hardware WDT Stack Dump Tool (#7010)
- Update to GCC 10.2 (#7607)
Breaking: Deprecation - Removal
- BREAKING: httpclient: remove deprecated API (#7617)
- BREAKING: Update Arduino.h, remove TIM_DIV265 (#7440)
- BREAKING: Remove lwip-v1.4 specific code (#7436)
- BREAKING: Remove axTLS from code and documentation (#7437)
Breaking changes summary
- BREAKING: WString: return bool instead of unsigned char (#7939)
- BREAKING: wifi: remove pseudo-modes for shutdown, expose
::[resumeFrom]shutdown()
(#7956) - BREAKING: Disable WiFi at boot by default (#7902, #7990, #7993)
- BREAKING: base64::encode() compat with esp32: no newlines by default (#7910)
- BREAKING: Use IRAM_ATTR in place of ICACHE_RAM_ATTR (#7921)
- BREAKING: Upgrade to upstream newlib 4.0.0 release (64 bits time_t) (#7708)
- BREAKING: Change servo defaults to safer defaults (#7023)
- BREAKING: Add Print::availableForWrite method (#7658)
- BREAKING: Change return EEPROM.end() to bool (#7630)
- BREAKING: Change return type of channel() (#7656)
- BREAKING: Change return type of RSSI() (#7657)
- BREAKING: Add Wrong Password wifi status case (#7652)
- BREAKING: analogWriteRange 8-bit default (#7456)
- BREAKING: HTTPClient: RequestHandler: Pass String by const reference (#6583)
Boot
- eboot: .RODATA, upstream uzlib, move CRC, save 112 bytes (#7844)
- Update eboot to build with C17, not C99 standard (#7837, #7838)
- Fix eboot crash with exception 28. ets_printf() should take pointer argument. (#7666)
- Use 32b loads to set print strings (#7545)
- Comment out verify step in eboot.c (#7468)
Core
- BREAKING: WString: return bool instead of unsigned char (#7939)
- ESP class should be a singleton: make all member functions static. (#8006)
- Updated HWDT to use IRAM_ATTR instead of ICACHE_RAM_ATTR. (#8013, #8018)
- Hardware WDT Stack Dump Tool (#7010)
- WString: direct operator overloads instead of StringSumHelper (#7781)
- Clean up ICACHE_RAM_ATTR in VM PR (#7924)
- Added ESP32 compatible methods for setting/getting sleep mode (#7901)
- Enable 128K virtual memory via external SPI SRAM (#6994)
- Stream::send() (#6979, #7935, #7951, #7987, #7995)
- [BREAKING] base64::encode() compat with esp32: no newlines by default (#7910)
- BREAKING - Use IRAM_ATTR in place of ICACHE_RAM_ATTR (#7921)
- OOM debug: warn about String reallocation (#7908)
- OOM: avoid warn when calling *alloc(0) (#7909)
- String: add missing long long operator implementations (#7888)
- Support to reboot into UART download mode (#7854, #7897)
- String: compatibility with 64 bits scalars (#7863)
- Update toolchain to support std::remainder (#7849)
- allow to set pin to OUTPUT_OPEN_DRAIN in analogWriteMode (#7841)
- Add 24-bit mode to I2S (#7835)
- Hexdump fix&update (#7831)
- improve silicon aes_unwrap (#7773)
- Supersede #3856, remove undef min/max (#7824)
- Add stub for analogReference() (#7809)
- UART: add yield (#7799)
- BREAKING - Upgrade to upstream newlib 4.0.0 release (#7708)
- Update to latest uzlib upstream (#7776, #7782)
- i2s: adds i2s_rxtxdrive_begin(enableRx, enableTx, driveRxClocks, driveTxClocks) (#7748)
- PoC cache configuration control (#7060, #7754, #7767, #7768, #7812, #7816, #7820, #7790)
- Receiving no data in Updater is an error (#7729)
- PROGMEM compatibility changes to String (#7724)
- schedule_recurrent_function_us should be in iram (#7713)
- Re-implement PWM generator (#7715, #7712, #7022, #7231, #7800, #7996)
- WString: Optimize a bit (#7553)
- Fix sntp_get_real_time prototype in header (#7707)
- Provide String::indexOf for a char* needle (#7706)
- Fix newlib to support <+-nn> timezone names (#7699, #7702)
- BREAKING: Add Print::availableForWrite method (#7658)
- settimeofday_cb: distinguish from user or sntp (#7637)
- Add Copyright notice to Schedule.h (#7653)
- BREAKING: Add Wrong Password wifi status case (#7652)
- New flash writing method with offset/memory/size alignment handling (#7514)
- Add missing sntp_init/sntp_stop (#7628)
- Use direct member initialization instead of ctr initialisation (#7558)
- Prevent rewriting Updater_Signing.h if content unchanged (#7627)
- WString: c_str() returns null pointer after move (#7611)
- WString: mark move ctor as noexcept (#7610)
- sntp: use one time source and fix unsynchronized sntp time stamp (#7595)
- Add clear method to IPAddress (#7586)
- Check also if IP is not IPADDR_NONE (#7585)
- Fix gzip+signed OTA error (#7577)
- new w/ OOM now aborts by defaults, or throw an exception (#7536)
- getCpuFreqMHz(): fix when F_CPU is not defined (#7554)
- Updater MD5 cleanup on begin (#7534)
- Add synthetic IntegerDivideByZero exception (#7496)
- avoid circular #include dependence for PolledTimeout (#7356)
- base64 class uses String, adding harmless #include (#7517)
- sys/pgmspace.h: Refactor inline asm (#7510)
- Add SerialEvent() callback to loop processing (#7505)
- Remove warnings when building NoAssert (#7499)
- BREAKING - analogWriteRange 8-bit default (#7456)
- BREAKING - Pass String by const reference [3.0] (#6583)
Libraries - softserial
- Maintenance release 6.12.3: better dependency declarations for Platformio (#8030)
- EspSoftwareSerial 6.12.2: Inlining push() functions that must be in IRAM for calling from ISRs (#7986)
- Bug-fix release 6.12.1: a documentation error was reported by a user; dropped bit-patterns that masked the stop-bit fixed. (#7938)
- EspSoftwareSerial minor release 6.12.0 completes adaptation to new Stream::send() (#7923)
- Minor EspSoftwareSerial release 6.11.7, for deprecated ICACHE_RAM_ATTR in upcoming ESP8266 Arduino core 3.0.0. (#7922)
- EspSoftwareSerial, bump up Arduino library manager related files 6.11.6 (#7891)
- Update to EspSoftwareSerial 6.11.5 (#7889)
- EspSoftwareSerial bug-fix release 6.11.4 (#7862)
- Update to EspSoftwareSerial 6.11.3: prepares for ESP8266 Arduino core PR 6979. (#7840)
- EspSoftwareSerial 6.11.2: Delegate<> assign operators added. (#7815)
- Minor EspSoftwareSerial release 6.11.1 (#7804)
- Minor EspSoftwareSerial release 6.11.0 (#7802)
- EspSoftwareSerial bug fix release 6.10.1: preciseDelay() could delay() for extremely long time, if period duration was exceeded on entry. (#7771)
- EspSoftwareSerial 6.10.0: override keyword for recent Print::availableForWrite() addition (#7710)
- EspSoftwareSerial 6.9.0: data/strings in flash alignment handling fix. Yielding during write() improvement. (#7604)
Libraries - FS
- Update mklittlefs executable (#7906)
- Track creation time of ...
Release 3.0.1
Breaking Changes
- BREAKING: "i2s.h" removed, I2S library added (#8108)
Core
- Make String reallocation warning more descriptive (#8131)
- Normalize core header's include guard. (#8110)
- makeword: sync header and implementation (#8097)
- Use optimal bundled library names (#8088) (#8098)
- Added IRAM_ATTR to _stopPWM() so that digitalWrite() would work inside ISR. Fixes #8043 (#8044) (#8048)
- makecorever.py: restore ARDUINO_ESP8266_GIT_VER even without .git/ (#8138)
IDE
Libraries - LittleFS
- Re-add mklittlefs to package.json, fixing "ESP8266 LittleFS Data Upload" (#8060)
- Don't crash when including LittleFS.h w/no FS (#8173)
Libraries - SD/SDFS
- SDFS: fix AvailableForWrite: do not always return 0 when space is available (#8167)
Libraries - ESP8266httpUpdate
- ESP266httpUpdate: remove dead API and fix doc (#8063)
Libraries - ESP8266WiFi
Libraries - SoftwareSerial
- Update EspSoftwareSerial to bug fix release 6.12.6
Libraries - ESP8266HTTPClient
- ESP8266HTTPClient: remove old example (#8111)
- Change protocol detection so uppercase or lowercase works (#8137)
Toolchain
- Update toolchain to gcc 10.3 w/patches (#8104) (#8103)
- Update toolchain to fix pgm_read_float_unaligned (#8091)
- Remove include and lib folders removed since 3.0.0 core (#8125)
- Add errors on invalid/missing function return type (#8165)
- GNU source: honoring libc requirements (#8147)
PlatformIO
Documentation
- Fix readthedoc python dependencies (#8166)
- Documentation: Arduino IDE options: fix hyperlinks and format, options (#8158) (#8154)
CI / Release / Environment
- Add code-spell spelling checks to CI (#8067)
- Release script: protect bash variables and add logs, major/minor/rev macro addition, BASH fix (#8074) (#8126) (#8127) (#8168)
- Remove some no longer applicable artifacts from .gitignore (#8170)
Release 3.0.0 Notes
Great additions
- PoC cache configuration control (aka +16KB heap!) (#7060)
- Hardware WDT Stack Dump Tool (#7010)
- Update to GCC 10.2 (#7607)
Breaking: Deprecation - Removal
- BREAKING: httpclient: remove deprecated API (#7617)
- BREAKING: Update Arduino.h, remove TIM_DIV265 (#7440)
- BREAKING: Remove lwip-v1.4 specific code (#7436)
- BREAKING: Remove axTLS from code and documentation (#7437)
Breaking changes summary
- BREAKING: WString: return bool instead of unsigned char (#7939)
- BREAKING: wifi: remove pseudo-modes for shutdown, expose
::[resumeFrom]shutdown()
(#7956) - BREAKING: Disable WiFi at boot by default (#7902, #7990, #7993)
- BREAKING: base64::encode() compat with esp32: no newlines by default (#7910)
- BREAKING: Use IRAM_ATTR in place of ICACHE_RAM_ATTR (#7921)
- BREAKING: Upgrade to upstream newlib 4.0.0 release (64 bits time_t) (#7708)
- BREAKING: Change servo defaults to safer defaults (#7023)
- BREAKING: Add Print::availableForWrite method (#7658)
- BREAKING: Change return EEPROM.end() to bool (#7630)
- BREAKING: Change return type of channel() (#7656)
- BREAKING: Change return type of RSSI() (#7657)
- BREAKING: Add Wrong Password wifi status case (#7652)
- BREAKING: analogWriteRange 8-bit default (#7456)
- BREAKING: HTTPClient: RequestHandler: Pass String by const reference (#6583)
Boot
- eboot: .RODATA, upstream uzlib, move CRC, save 112 bytes (#7844)
- Update eboot to build with C17, not C99 standard (#7837, #7838)
- Fix eboot crash with exception 28. ets_printf() should take pointer argument. (#7666)
- Use 32b loads to set print strings (#7545)
- Comment out verify step in eboot.c (#7468)
Core
- BREAKING: WString: return bool instead of unsigned char (#7939)
- ESP class should be a singleton: make all member functions static. (#8006)
- Updated HWDT to use IRAM_ATTR instead of ICACHE_RAM_ATTR. (#8013, #8018)
- Hardware WDT Stack Dump Tool (#7010)
- WString: direct operator overloads instead of StringSumHelper (#7781)
- Clean up ICACHE_RAM_ATTR in VM PR (#7924)
- Added ESP32 compatible methods for setting/getting sleep mode (#7901)
- Enable 128K virtual memory via external SPI SRAM (#6994)
- Stream::send() (#6979, #7935, #7951, #7987, #7995)
- [BREAKING] base64::encode() compat with esp32: no newlines by default (#7910)
- BREAKING - Use IRAM_ATTR in place of ICACHE_RAM_ATTR (#7921)
- OOM debug: warn about String reallocation (#7908)
- OOM: avoid warn when calling *alloc(0) (#7909)
- String: add missing long long operator implementations (#7888)
- Support to reboot into UART download mode (#7854, #7897)
- String: compatibility with 64 bits scalars (#7863)
- Update toolchain to support std::remainder (#7849)
- allow to set pin to OUTPUT_OPEN_DRAIN in analogWriteMode (#7841)
- Add 24-bit mode to I2S (#7835)
- Hexdump fix&update (#7831)
- improve silicon aes_unwrap (#7773)
- Supersede #3856, remove undef min/max (#7824)
- Add stub for analogReference() (#7809)
- UART: add yield (#7799)
- BREAKING - Upgrade to upstream newlib 4.0.0 release (#7708)
- Update to latest uzlib upstream (#7776, #7782)
- i2s: adds i2s_rxtxdrive_begin(enableRx, enableTx, driveRxClocks, driveTxClocks) (#7748)
- PoC cache configuration control (#7060, #7754, #7767, #7768, #7812, #7816, #7820, #7790)
- Receiving no data in Updater is an error (#7729)
- PROGMEM compatibility changes to String (#7724)
- schedule_recurrent_function_us should be in iram (#7713)
- Re-implement PWM generator (#7715, #7712, #7022, #7231, #7800, #7996)
- WString: Optimize a bit (#7553)
- Fix sntp_get_real_time prototype in header (#7707)
- Provide String::indexOf for a char* needle (#7706)
- Fix newlib to support <+-nn> timezone names (#7699, #7702)
- BREAKING: Add Print::availableForWrite method (#7658)
- settimeofday_cb: distinguish from user or sntp (#7637)
- Add Copyright notice to Schedule.h (#7653)
- BREAKING: Add Wrong Password wifi status case (#7652)
- New flash writing method with offset/memory/size alignment handling (#7514)
- Add missing sntp_init/sntp_stop (#7628)
- Use direct member initialization instead of ctr initialisation (#7558)
- Prevent rewriting Updater_Signing.h if content unchanged (#7627)
- WString: c_str() returns null pointer after move (#7611)
- WString: mark move ctor as noexcept (#7610)
- sntp: use one time source and fix unsynchronized sntp time stamp (#7595)
- Add clear method to IPAddress (#7586)
- Check also if IP is not IPADDR_NONE (#7585)
- Fix gzip+signed OTA error (#7577)
- new w/ OOM now aborts by defaults, or throw an exception (#7536)
- getCpuFreqMHz(): fix when F_CPU is not defined (#7554)
- Updater MD5 cleanup on begin (#7534)
- Add synthetic IntegerDivideByZero exception (#7496)
- avoid circular #include dependence for PolledTimeout (#7356)
- base64 class uses String, adding harmless #include (#7517)
- sys/pgmspace.h: Refactor inline asm (#7510)
- Add SerialEvent() callback to loop processing (#7505)
- Remove warnings when building NoAssert (#7499)
- BREAKING - analogWriteRange 8-bit default (#7456)
- BREAKING - Pass String by const reference [3.0] (#6583)
Libraries - softserial
- Maintenance release 6.12.3: better dependency declarations for Platformio (#8030)
- EspSoftwareSerial 6.12.2: Inlining push() functions that must be in IRAM for calling from ISRs (#7986)
- Bug-fix release 6.12.1: a documentation error was reported by a user; dropped bit-patterns that masked the stop-bit fixed. (#7938)
- EspSoftwareSerial minor release 6.12.0 completes adaptation to new Stream::send() (#7923)
- Minor EspSoftwareSerial release 6.11.7, for deprecated ICACHE_RAM_ATTR in upcoming ESP8266 Arduino core 3.0.0. (#7922)
- EspSoftwareSerial, bump up Arduino library manager related files 6.11.6 (#7891)
- Update to EspSoftwareSerial 6.11.5 (#7889)
- EspSoftwareSerial bug-fix release 6.11.4 (#7862)
- Update to EspSoftwareSerial 6.11.3: prepares for ESP8266 Arduino core PR 6979. (#7840)
- EspSoftwareSerial 6.11.2: Delegate<> assign operators added. (#7815)
- Minor EspSoftwareSerial release 6.11.1 (#7804)
- Minor EspSoftwareSerial release 6.11.0 (#7802)
- EspSoftwareSerial bug fix release 6.10.1: preciseDelay() could delay() for extremely long time, if period duration was exceeded on entry. (#7771)
- EspSoftwareSerial 6.10.0: override keyword for recent Print::availableForWrite() addition (#7710)
- EspSoftwareSerial 6.9.0: data/strings in flash alignment handling fix. Yielding during write() improvement. (#7604)
Libraries - FS
- Update mklittlefs executable (#7906)
- Track creation time of LittleFS FS (#7873)
- Invalid read return value fix (#7817)
- Update to SdFat 2.0.2, speed SD access (#7779)
- Rationalize File timestamp callback (#7785)
- Update to LittleFS v2.3 (#7787)
Libraries - Network
- added ArduinoWiFiServer with send-to-all-clients functionality (#7612)
- internal: rename ClientContext::wait_until_sent() to wait_until_acked() (#7896)
- Added ESP32 compatible methods for setting/getting hostname (#7900)
- AP & dhcp-server: fix uninitialized variables (#7905)
- Netdump: Avoid UB and abort on nullptr buffer (#7822)
- lwip2: use pvPortXalloc/vPortFree and "-free -fipa-pta" (#7793)
- more lwIP physical interfaces (#6680)
- Netump (#7527, #7659)
- replace old Ethernet Arduino-library with v2, submoduled (#6812)
Library - WiFi
Release 3.0.0
Great additions
- PoC cache configuration control (aka +16KB heap!) (#7060)
- Hardware WDT Stack Dump Tool (#7010)
- Update to GCC 10.2 (#7607)
Breaking: Deprecation - Removal
- BREAKING: httpclient: remove deprecated API (#7617)
- BREAKING: Update Arduino.h, remove TIM_DIV265 (#7440)
- BREAKING: Remove lwip-v1.4 specific code (#7436)
- BREAKING: Remove axTLS from code and documentation (#7437)
Breaking changes summary
- BREAKING: WString: return bool instead of unsigned char (#7939)
- BREAKING: wifi: remove pseudo-modes for shutdown, expose
::[resumeFrom]shutdown()
(#7956) - BREAKING: Disable WiFi at boot by default (#7902, #7990, #7993)
- BREAKING: base64::encode() compat with esp32: no newlines by default (#7910)
- BREAKING: Use IRAM_ATTR in place of ICACHE_RAM_ATTR (#7921)
- BREAKING: Upgrade to upstream newlib 4.0.0 release (64 bits time_t) (#7708)
- BREAKING: Change servo defaults to safer defaults (#7023)
- BREAKING: Add Print::availableForWrite method (#7658)
- BREAKING: Change return EEPROM.end() to bool (#7630)
- BREAKING: Change return type of channel() (#7656)
- BREAKING: Change return type of RSSI() (#7657)
- BREAKING: Add Wrong Password wifi status case (#7652)
- BREAKING: analogWriteRange 8-bit default (#7456)
- BREAKING: HTTPClient: RequestHandler: Pass String by const reference (#6583)
Boot
- eboot: .RODATA, upstream uzlib, move CRC, save 112 bytes (#7844)
- Update eboot to build with C17, not C99 standard (#7837, #7838)
- Fix eboot crash with exception 28. ets_printf() should take pointer argument. (#7666)
- Use 32b loads to set print strings (#7545)
- Comment out verify step in eboot.c (#7468)
Core
- BREAKING: WString: return bool instead of unsigned char (#7939)
- ESP class should be a singleton: make all member functions static. (#8006)
- Updated HWDT to use IRAM_ATTR instead of ICACHE_RAM_ATTR. (#8013, #8018)
- Hardware WDT Stack Dump Tool (#7010)
- WString: direct operator overloads instead of StringSumHelper (#7781)
- Clean up ICACHE_RAM_ATTR in VM PR (#7924)
- Added ESP32 compatible methods for setting/getting sleep mode (#7901)
- Enable 128K virtual memory via external SPI SRAM (#6994)
- Stream::send() (#6979, #7935, #7951, #7987, #7995)
- [BREAKING] base64::encode() compat with esp32: no newlines by default (#7910)
- BREAKING - Use IRAM_ATTR in place of ICACHE_RAM_ATTR (#7921)
- OOM debug: warn about String reallocation (#7908)
- OOM: avoid warn when calling *alloc(0) (#7909)
- String: add missing long long operator implementations (#7888)
- Support to reboot into UART download mode (#7854, #7897)
- String: compatibility with 64 bits scalars (#7863)
- Update toolchain to support std::remainder (#7849)
- allow to set pin to OUTPUT_OPEN_DRAIN in analogWriteMode (#7841)
- Add 24-bit mode to I2S (#7835)
- Hexdump fix&update (#7831)
- improve silicon aes_unwrap (#7773)
- Supersede #3856, remove undef min/max (#7824)
- Add stub for analogReference() (#7809)
- UART: add yield (#7799)
- BREAKING - Upgrade to upstream newlib 4.0.0 release (#7708)
- Update to latest uzlib upstream (#7776, #7782)
- i2s: adds i2s_rxtxdrive_begin(enableRx, enableTx, driveRxClocks, driveTxClocks) (#7748)
- PoC cache configuration control (#7060, #7754, #7767, #7768, #7812, #7816, #7820, #7790)
- Receiving no data in Updater is an error (#7729)
- PROGMEM compatibility changes to String (#7724)
- schedule_recurrent_function_us should be in iram (#7713)
- Re-implement PWM generator (#7715, #7712, #7022, #7231, #7800, #7996)
- WString: Optimize a bit (#7553)
- Fix sntp_get_real_time prototype in header (#7707)
- Provide String::indexOf for a char* needle (#7706)
- Fix newlib to support <+-nn> timezone names (#7699, #7702)
- BREAKING: Add Print::availableForWrite method (#7658)
- settimeofday_cb: distinguish from user or sntp (#7637)
- Add Copyright notice to Schedule.h (#7653)
- BREAKING: Add Wrong Password wifi status case (#7652)
- New flash writing method with offset/memory/size alignment handling (#7514)
- Add missing sntp_init/sntp_stop (#7628)
- Use direct member initialization instead of ctr initialisation (#7558)
- Prevent rewriting Updater_Signing.h if content unchanged (#7627)
- WString: c_str() returns null pointer after move (#7611)
- WString: mark move ctor as noexcept (#7610)
- sntp: use one time source and fix unsynchronized sntp time stamp (#7595)
- Add clear method to IPAddress (#7586)
- Check also if IP is not IPADDR_NONE (#7585)
- Fix gzip+signed OTA error (#7577)
- new w/ OOM now aborts by defaults, or throw an exception (#7536)
- getCpuFreqMHz(): fix when F_CPU is not defined (#7554)
- Updater MD5 cleanup on begin (#7534)
- Add synthetic IntegerDivideByZero exception (#7496)
- avoid circular #include dependence for PolledTimeout (#7356)
- base64 class uses String, adding harmless #include (#7517)
- sys/pgmspace.h: Refactor inline asm (#7510)
- Add SerialEvent() callback to loop processing (#7505)
- Remove warnings when building NoAssert (#7499)
- BREAKING - analogWriteRange 8-bit default (#7456)
- BREAKING - Pass String by const reference [3.0] (#6583)
Libraries - softserial
- Maintenance release 6.12.3: better dependency declarations for Platformio (#8030)
- EspSoftwareSerial 6.12.2: Inlining push() functions that must be in IRAM for calling from ISRs (#7986)
- Bug-fix release 6.12.1: a documentation error was reported by a user; dropped bit-patterns that masked the stop-bit fixed. (#7938)
- EspSoftwareSerial minor release 6.12.0 completes adaptation to new Stream::send() (#7923)
- Minor EspSoftwareSerial release 6.11.7, for deprecated ICACHE_RAM_ATTR in upcoming ESP8266 Arduino core 3.0.0. (#7922)
- EspSoftwareSerial, bump up Arduino library manager related files 6.11.6 (#7891)
- Update to EspSoftwareSerial 6.11.5 (#7889)
- EspSoftwareSerial bug-fix release 6.11.4 (#7862)
- Update to EspSoftwareSerial 6.11.3: prepares for ESP8266 Arduino core PR 6979. (#7840)
- EspSoftwareSerial 6.11.2: Delegate<> assign operators added. (#7815)
- Minor EspSoftwareSerial release 6.11.1 (#7804)
- Minor EspSoftwareSerial release 6.11.0 (#7802)
- EspSoftwareSerial bug fix release 6.10.1: preciseDelay() could delay() for extremely long time, if period duration was exceeded on entry. (#7771)
- EspSoftwareSerial 6.10.0: override keyword for recent Print::availableForWrite() addition (#7710)
- EspSoftwareSerial 6.9.0: data/strings in flash alignment handling fix. Yielding during write() improvement. (#7604)
Libraries - FS
- Update mklittlefs executable (#7906)
- Track creation time of LittleFS FS (#7873)
- Invalid read return value fix (#7817)
- Update to SdFat 2.0.2, speed SD access (#7779)
- Rationalize File timestamp callback (#7785)
- Update to LittleFS v2.3 (#7787)
Libraries - Network
- added ArduinoWiFiServer with send-to-all-clients functionality (#7612)
- internal: rename ClientContext::wait_until_sent() to wait_until_acked() (#7896)
- Added ESP32 compatible methods for setting/getting hostname (#7900)
- AP & dhcp-server: fix uninitialized variables (#7905)
- Netdump: Avoid UB and abort on nullptr buffer (#7822)
- lwip2: use pvPortXalloc/vPortFree and "-free -fipa-pta" (#7793)
- more lwIP physical interfaces (#6680)
- Netump (#7527, #7659)
- replace old Ethernet Arduino-library with v2, submoduled (#6812)
Library - WiFi
- WiFi: clean up AP SSID setter & getter, support 32 chars (#7941)
- [BREAKING] wifi: remove pseudo-modes for shutdown, expose
::[resumeFrom]shutdown()
(#7956) - [BREAKING] Disable WiFi at boot by default (#7902)
- Added broadcastIP method to WiFiSTA class (#7899)
- WIFI_RESUME improve speed and example (#7877)
- WiFiServer.cpp: Fix warning (#7755)
- update documentation example (#7697)
- Refactor WiFi scan example (#7655)
- BREAKING: Change return type of channel() (#7656)
- BREAKING: Change return type of RSSI() (#7657)
- Reduce codesize of setOutputPower (#7572)
Library - TLS/SSL
- Fix a warning (#8014)
- Adding comment to ignore SSL certificate in sample code. (#7994)
- Update Root Certificate in example (#7932)
- Adds the method setSSLVersions() also to WiFiClientSecure in order to use that new feature. (#7925)
- Add setSSLVersion call to SSL object (#7920)
- Allow users to inherit and override CertStore (#7827)
- Reduce BearSSL code size by not -O2 FSMs (#7807)
- WiFiServerSecure: Cache SSL sessions (#7774)
- WiFiClientSecure: use context (#7680)
- Update to latest BearSSL as of Nov 2020 (#7732)
- Add Stream loaders for BearSSL (#7675)
- Catch and display SSL errors for fatal alerts (#7681)
- Fix error when debug enabled but no port chosen (#7648)
- Remove stray axtls refs, deprecated compat funcs (#7626)
- Fix error message typo (#7581)
- Update DigestAuthorization.ino (Simple example update) (#7579)
- Update certs-from-mozilla.py (#7573, #7578)
- Use root cert, not fingerprint for api.github.com (#7490)
- Update FP for tls.mbed.org (#7479)
- Change BSSL_CertStore test URL (#7370)
- Update to BearSSL version lost in GCC10 update (#7453)
Library - Webserver
- ESP8266WebServer: Add variadic template version of collectHeaders() (#7296)
- Fix header FSM in webserver, fix Windows uploads (#7805)
- ETag support for WebServer (#7709)
- Rewrite multipart boundary detection (#7728)
- Fixed bug in parsing POST file uploads (#7543)
- Fix long password validation in WebServer (#7676)
- FIX MIME-Type for txt-suffix (#7608)
- FIX StaticRequestHandler crashes when cache_header is null and DEBUG_ESP_CORE is enabled (#7609)
- Avoid #includes with a surrounding namespace (#7560)
- webserver hook: allow to handle external http protocol (#7459, #7492, #7515)
- Made ESP8266WebServer::client() return a reference (fixes #7075) (#7080)
- WebServer: Allow client to send many requests on the same connection (#7414)
- we...
Release 2.7.4
Release 2.7.3
Release 2.7.2
Changes since 2.7.1 (to 2.7.2)
Boot
Core
- Add namespace to FS references in CertStore (#7413)
- For UMM_CRITICAL_METRICS fixed time_stats initializer. (#7390)
- Add a "-- CUT HERE --" marker to exception output (#7369)
- CallbackList API: improve to facilitate executer to know the number of active callbacks (#7361)
- umm_malloc manual merge with upstream (#7337)
- Fix sign in configTime(tz,dst,) (#7320)
- Bring SPIFFS up to latest version (#7276)
- Allow non-aligned PSTR() (#7275)
- Crypto: Add required BearSSL include in header (#7310)
Build system
- Use a prebuild, portable Python3 for OSX (#7348)
- Recognize MSYS(MINGW) as Windows for toolchain get (#7358)
- elf2bin.py objcopy cleanup (#7351)
Libraries
- WiFiMulti: Ability to set connect timeout in WifiMulti->run (#7420)
- BearSSL: Add namespace to FS references in CertStore (#7413)
- httpclient: fix error meaning (#7401)
- EspSoftwareSerial 6.8.5: fixes parity for TX with odd word size modes (#7399, #7367, #7354)
- Add ESP8266WebServerTemplate::enableCORS(bool _ec) (#7388)
- SPI: abs -> std::abs and cast fixes (#7362)
- Fix oversight for ap gw (#7366)
- ESP8266WiFiAP: fix IP address in some cases (#7363)
- LittleFS: Return FALSE on seek past EOF (#7324)
- Webserver: Flash size reduction for mime-type (#7312)
- BearSSL: Allocate stack for SigningVerifier (#7291)
- ESP8266HTTPClient fixes (#6476)
Examples
- Update GitHub cert fingerprint in example (#7397)
- Multi-client Server Sent Event (aka EventSource) demo (#7012)
- Webserver: Graph example (#7299)
Documentation
- Add some pending methods to generic-class docs (#7427)
- doc fixes for LittleFS (#7385)
- Fix typo in readme.rst (#7379)
- Add documentation on recovering from deep sleep with WAKE_RF_DISABLED (#7338)
- Add FTP client/server lib link (#7336)
- Document ESP.getMaxFreeBlockSize() != max malloc size (#7328)
Boards
- modwifi: I2C pin assignment fix (#7416)
Building on host
- emulation on host: option for FS persistence location (#7424)
- emulation on host: FS: minor reset fix (#7417)
- emulation on host: missing mock functions, improve host interface handling (#7404)
- emulation on host: lwIP always receive multicast packets, enable and fix multicast udp server (#7386)
- emulation on host: fix binding from a particular interface (#7372)
- emulation on host: various fixes (#7355)
Changes since 2.7.0 (to 2.7.1)
Hotfixes
- Revert XMC changes in eboot that were causing OTA failure (#7277)
- Revert MDNS listen the current iface causing MDNS death (#7266)
Core (FS)
- Deprecate SPIFFS, move examples to LittleFS (#7263)
Documentation
- Document USTX in USS/UxS not working as expected (#7265)
Changes since 2.6.3 (to 2.7.0)
Breaking Changes
None
Great additions
Core
- Added missing "if (umm_heap == NULL) {..." to umm_free_heap_size_lw (#6929)
- Code size optimisations for ESP.getFullVersion() (#6936)
- I2C: allow clocks below 100KHz (#6934)
- Reduce mem footprint of ESP.getResetInfo() (#7030)
- Code size optimisation of ESP.getResetReason() (#7029)
- Low-Power demo (#6989)
- Fix WMath's map() implementation for inverse/round-trip mapping (#7027)
- Fix optimistic_yield to not yield on each call after x µs (#6804)
- Updated stack offsets for postmortem stack dump (#7066)
- Corrected stack start and end in stack_thunk_dump_stack() (#7085)
- configTime(tzsec,dstsec,): fix UTC/local management (#6993)
- dtostrf: round fix (#7068, #7093)
- simple TZ api: bypass sprintf/sscanf (= do not use 7KB flash) (#7109)
- Pull GPIO initialization into its own 'weak' function. (#7044)
- Attribute
__real_system_restart_local()
as(noreturn)
(#7167) - Move floating point from libgcc out of IRAM (#7180, #7188)
- Tone: extend to 20KHz (#7179)
- Add CryptoInterface library (#6961, #7252)
- Fix for MD5 leak bug (#7197, #7208)
- Use F_CPU if (?) CPU frequency switch is compile-time only (#6833)
- expose setTZ() (#7234)
- XMC flash support - WIP (#6725)
- Allow waveforms to be specified in clock cycles (#7211)
- Waveforms: cherry pick nice changes from ongoing #7122 (#7218)
- Allow stopWaveform to stop timed-out waveforms (#7236)
- Hold transmitter in reset during rate change (#7248)
- Fix minor GCC10 static analyzer warnings (#7255)
Core (FS)
- Skip . and .. on LittleFS::dir::rewind() (#6959)
- Only update LittleFS timestamp when opened write (#6956)
- Update LittleFS to latest upstream head (#6986)
- Add SDFS::Dir::fileTime callback (#6985)
- Add LittleFS support to ESP8266WebServer.serveStatic() (#6987)
- Fix boolean/logical & mixup in LittleFS open (#6996)
- Add fileCreation/getCreation create-time accessors (#7000)
- Improve LittleFS support (#7071)
- Update to LittleFS v2.2.0 (#7240)
Network (Core, Library/ESP8266WiFi)
- lwip2: no more git sub-sub-module deps, faster checksum, backlog limitation and other fixes (#6887)
- Fix/enable UDP packet reassembly (#7036, #7132)
- SNTP: backport espressif sntp api for lwip2 (#7097)
- TCP: fixes backlog limit handling, and allows ephemeral TCP connections (#7096)
- lwip2 update: stop dhcp when interface goes down (#7114)
- Fix UDP send to IPv6 link local addresses (#6541)
- Fix TCP send to IPv6 link local addresses (#7207)
- Updating _port to really used port and made _port accessible (#7003)
- Make DNS resolution order selectable during runtime or compile time (#6865)
- WiFi: ARP gratuitous API for wifi station mode (#6889, #7203)
- fix null pointer call from WiFiClient::localIP() to IPAddress (#7221)
Library - ESP8266WiFi (SSL/TLS)
- Update BearSSL, increase SSL stack (#6980)
- Remove memory leak on multiple calls to initCertStore (#7021)
- Update to latest BearSSL (#7098)
- Abort if BearSSL stack allocation fails (#7152)
Flashing - OTA - Updater
- Allow GZIP compressed flash updates (#6820)
- Add documentation for compressed OTA, fix bug (#6924)
- Add a CRC32 over progmem and ESP.checkFlashCRC (#6566)
- Fix Updater potential overflow, add host tests (#6954)
- allow ".bin.gz" filter in HTTP updater file selector (#7026)
- Updater: prevent closing webserver (option) (#6969)
- Use 2nd stack for update signature verification (#7149)
- Fix espota completion success/fail check (#7204)
Library - SoftwareSerial
Library - ESP8266WebServer
- PROGMEM footprint cleanup for responseCodeToString (#6950)
- Fix search order for index.htm(l)(.gz) files (#7069)
- Add Uri with support for regexUri and globUri (#6696)
- Add flash helper constructor to Uri (#7105)
- Expose webserver's chunk api (#7134)
- Make getContentType available for 3rd party usage (#7254)
Library - ESP8266HTTPClient
- Reduce temporary string creation in HTTPClient::sendHeader (#6937)
- Move a couple larger strings from rodata to flash (#6976)
- clear _canReuse in setUrl if its not a local redirect (#7039)
- Fixes large payload issues for sendRequest (#7051)
- Better follow redirection for
HTTPClient
(#7157)
Library - mDNS
- Update LEAmDNS.cpp (fix issue #6982) (#7025)
- use STA as default interface in mDNS (#7042)
- Additions to UdpContext needed for LEAmDNS2 (#7048)
- mDNS: protect MDNSResponder::queryService against misuse (#7216)
- Add isRunning getter to check is ::begin already called (#7219)
- Changing listen to listen the current iface only instead of 0 (#7217)
Library - Servo
- Define MAX_SERVOS to 12, like original Servo.h (#6999)
Libraries
- Various String handling cleanups (Libraries&Core) (#6945)
- Set a value for SSDP notify interval (#7110)
Documentation
- Installation guide for PlatformIO (#7142)
- Fix RST links for PlatformIO (#7143)
- (STA) Fixed misplacement of back quotes (#7247)
CI
- Fix Windows CI build (#6927)
- fix CI: switch to python3 for pio (#7035)
- update to new prebuilt win sed version (#7062)
- Switch espressif8266 platform to development branch in PlatformIO build (#7170)
- fix style checking: (#7222)
Examples
- CaptivePortal: improve HTML quality (#7227)
- ESP8266WebServer: Revamp of the FSBrowser and SDWebServer examples (#7182)
Boards
- Made changes to include "ESP8266_" with ITEAD board names,
{build.board}
, (#7024) - Add support for eduino wifi (#6554)
- Add 2MB obtion to 8285 generic board (#7163)
- esp8285: properly initialize free gpio as input (#7165)
Build System
- Add back mklittlefs for linux32 target (#7011)
- Use a python3 script to call python3 (#6960)
- boards.txt.py: Use correct file name when writing (#7018)
- PIO: Allow using custom linker scripts (#7078)
- package builder: updates for alpha releases (#7088)
- Switch espressif8266 platform to development branch in PlatformIO build (#7170)
- Use F_CPU if (?) CPU frequency switch is compile-time only (#6833)
Device tests
Boot
Building on host
- host build: optimistic_yield() wrongly delays() instead of avoiding excessive yields (#6802)
Release 2.7.1
Changes since 2.7.0 (to 2.7.1)
Hotfixes
- Revert XMC changes in eboot that were causing OTA failure (#7277)
- Revert MDNS listen the current iface causing MDNS death (#7266)
Core (FS)
- Deprecate SPIFFS, move examples to LittleFS (#7263)
Documentation
- Document USTX in USS/UxS not working as expected (#7265)
Changes since 2.6.3 (to 2.7.0)
Breaking Changes
None
Great additions
Core
- Added missing "if (umm_heap == NULL) {..." to umm_free_heap_size_lw (#6929)
- Code size optimisations for ESP.getFullVersion() (#6936)
- I2C: allow clocks below 100KHz (#6934)
- Reduce mem footprint of ESP.getResetInfo() (#7030)
- Code size optimisation of ESP.getResetReason() (#7029)
- Low-Power demo (#6989)
- Fix WMath's map() implementation for inverse/round-trip mapping (#7027)
- Fix optimistic_yield to not yield on each call after x µs (#6804)
- Updated stack offsets for postmortem stack dump (#7066)
- Corrected stack start and end in stack_thunk_dump_stack() (#7085)
- configTime(tzsec,dstsec,): fix UTC/local management (#6993)
- dtostrf: round fix (#7068, #7093)
- simple TZ api: bypass sprintf/sscanf (= do not use 7KB flash) (#7109)
- Pull GPIO initialization into its own 'weak' function. (#7044)
- Attribute
__real_system_restart_local()
as(noreturn)
(#7167) - Move floating point from libgcc out of IRAM (#7180, #7188)
- Tone: extend to 20KHz (#7179)
- Add CryptoInterface library (#6961, #7252)
- Fix for MD5 leak bug (#7197, #7208)
- Use F_CPU if (?) CPU frequency switch is compile-time only (#6833)
- expose setTZ() (#7234)
- XMC flash support - WIP (#6725)
- Allow waveforms to be specified in clock cycles (#7211)
- Waveforms: cherry pick nice changes from ongoing #7122 (#7218)
- Allow stopWaveform to stop timed-out waveforms (#7236)
- Hold transmitter in reset during rate change (#7248)
- Fix minor GCC10 static analyzer warnings (#7255)
Core (FS)
- Skip . and .. on LittleFS::dir::rewind() (#6959)
- Only update LittleFS timestamp when opened write (#6956)
- Update LittleFS to latest upstream head (#6986)
- Add SDFS::Dir::fileTime callback (#6985)
- Add LittleFS support to ESP8266WebServer.serveStatic() (#6987)
- Fix boolean/logical & mixup in LittleFS open (#6996)
- Add fileCreation/getCreation create-time accessors (#7000)
- Improve LittleFS support (#7071)
- Update to LittleFS v2.2.0 (#7240)
Network (Core, Library/ESP8266WiFi)
- lwip2: no more git sub-sub-module deps, faster checksum, backlog limitation and other fixes (#6887)
- Fix/enable UDP packet reassembly (#7036, #7132)
- SNTP: backport espressif sntp api for lwip2 (#7097)
- TCP: fixes backlog limit handling, and allows ephemeral TCP connections (#7096)
- lwip2 update: stop dhcp when interface goes down (#7114)
- Fix UDP send to IPv6 link local addresses (#6541)
- Fix TCP send to IPv6 link local addresses (#7207)
- Updating _port to really used port and made _port accessible (#7003)
- Make DNS resolution order selectable during runtime or compile time (#6865)
- WiFi: ARP gratuitous API for wifi station mode (#6889, #7203)
- fix null pointer call from WiFiClient::localIP() to IPAddress (#7221)
Library - ESP8266WiFi (SSL/TLS)
- Update BearSSL, increase SSL stack (#6980)
- Remove memory leak on multiple calls to initCertStore (#7021)
- Update to latest BearSSL (#7098)
- Abort if BearSSL stack allocation fails (#7152)
Flashing - OTA - Updater
- Allow GZIP compressed flash updates (#6820)
- Add documentation for compressed OTA, fix bug (#6924)
- Add a CRC32 over progmem and ESP.checkFlashCRC (#6566)
- Fix Updater potential overflow, add host tests (#6954)
- allow ".bin.gz" filter in HTTP updater file selector (#7026)
- Updater: prevent closing webserver (option) (#6969)
- Use 2nd stack for update signature verification (#7149)
- Fix espota completion success/fail check (#7204)
Library - SoftwareSerial
Library - ESP8266WebServer
- PROGMEM footprint cleanup for responseCodeToString (#6950)
- Fix search order for index.htm(l)(.gz) files (#7069)
- Add Uri with support for regexUri and globUri (#6696)
- Add flash helper constructor to Uri (#7105)
- Expose webserver's chunk api (#7134)
- Make getContentType available for 3rd party usage (#7254)
Library - ESP8266HTTPClient
- Reduce temporary string creation in HTTPClient::sendHeader (#6937)
- Move a couple larger strings from rodata to flash (#6976)
- clear _canReuse in setUrl if its not a local redirect (#7039)
- Fixes large payload issues for sendRequest (#7051)
- Better follow redirection for
HTTPClient
(#7157)
Library - mDNS
- Update LEAmDNS.cpp (fix issue #6982) (#7025)
- use STA as default interface in mDNS (#7042)
- Additions to UdpContext needed for LEAmDNS2 (#7048)
- mDNS: protect MDNSResponder::queryService against misuse (#7216)
- Add isRunning getter to check is ::begin already called (#7219)
- Changing listen to listen the current iface only instead of 0 (#7217)
Library - Servo
- Define MAX_SERVOS to 12, like original Servo.h (#6999)
Libraries
- Various String handling cleanups (Libraries&Core) (#6945)
- Set a value for SSDP notify interval (#7110)
Documentation
- Installation guide for PlatformIO (#7142)
- Fix RST links for PlatformIO (#7143)
- (STA) Fixed misplacement of back quotes (#7247)
CI
- Fix Windows CI build (#6927)
- fix CI: switch to python3 for pio (#7035)
- update to new prebuilt win sed version (#7062)
- Switch espressif8266 platform to development branch in PlatformIO build (#7170)
- fix style checking: (#7222)
Examples
- CaptivePortal: improve HTML quality (#7227)
- ESP8266WebServer: Revamp of the FSBrowser and SDWebServer examples (#7182)
Boards
- Made changes to include "ESP8266_" with ITEAD board names,
{build.board}
, (#7024) - Add support for eduino wifi (#6554)
- Add 2MB obtion to 8285 generic board (#7163)
- esp8285: properly initialize free gpio as input (#7165)
Build System
- Add back mklittlefs for linux32 target (#7011)
- Use a python3 script to call python3 (#6960)
- boards.txt.py: Use correct file name when writing (#7018)
- PIO: Allow using custom linker scripts (#7078)
- package builder: updates for alpha releases (#7088)
- Switch espressif8266 platform to development branch in PlatformIO build (#7170)
- Use F_CPU if (?) CPU frequency switch is compile-time only (#6833)
Device tests
Boot
Building on host
- host build: optimistic_yield() wrongly delays() instead of avoiding excessive yields (#6802)