Arduino Versions Save

ESP8266 core for Arduino

3.1.2

1 year ago

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

  • Document updating the GitHub deployment keys (#8790, #8792)

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() to esp_suspend(), update esp_yield() to also call esp_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 for delay(0) (#7148)
  • Update mmu_get... and mmu_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 as tcp_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 with WiFiClientSecureBearSSL::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

  • Fix compilation when no global MDNS instance is available (#8478)
  • Add ::end() (#8379)

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-02 board (#8664)
  • MOD-WIFI-ESP8266(-DEV) update (#8297)

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 git install documentation fix (#8488)
  • Remove obsolete PWMRANGE in keywords.txt (#8447)
  • Correctly link with precompiled libraries (#8392)
  • Remove warnings, errors during host tests in CI (#8358)
  • Respect linking order of libraries for PlatformIO (#8263)

CI

  • Remove paths / paths-ignore condition from CI (#8704)
  • Rework CI workflows (#8688)
  • emulation on host: fix incorrect lwIP DNS implementation (#8627)
  • Github Actions updates and setup dependabot (#8624)
  • Fix python warnings and update device tests runner (#8623)
  • emulation on host: avoid closing STDIN (#8577)
  • emulation on host: allow parallel compilation units (#8574)
  • CI: update arduino IDE url (#8563)
  • emulation on host: fix internal udp management (#8561)
  • emulation on host: fix for latest changes in DNSServer (#8559)
  • Correction to run_CI_locally.sh (#8552)
  • ci: make sure to kill gpg related processes (#8549)
  • Error even w/warnings disabled for no-return fcns (#8495)
  • gitignore: Skip .git{,hub} files when packaging (#8743)
  • emulation on host: minor updates (#8454)
  • Emulation on host: updates (#8409)

3.1.1

1 year ago

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

  • Document updating the GitHub deployment keys (#8790, #8792)

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() to esp_suspend(), update esp_yield() to also call esp_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 for delay(0) (#7148)
  • Update mmu_get... and mmu_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 as tcp_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 with WiFiClientSecureBearSSL::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

  • Fix compilation when no global MDNS instance is available (#8478)
  • Add ::end() (#8379)

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-02 board (#8664)
  • MOD-WIFI-ESP8266(-DEV) update (#8297)

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 git install documentation fix (#8488)
  • Remove obsolete PWMRANGE in keywords.txt (#8447)
  • Correctly link with precompiled libraries (#8392)
  • Remove warnings, errors during host tests in CI (#8358)
  • Respect linking order of libraries for PlatformIO (#8263)

CI

  • Remove paths / paths-ignore condition from CI (#8704)
  • Rework CI workflows (#8688)
  • emulation on host: fix incorrect lwIP DNS implementation (#8627)
  • Github Actions updates and setup dependabot (#8624)
  • Fix python warnings and update device tests runner (#8623)
  • emulation on host: avoid closing STDIN (#8577)
  • emulation on host: allow parallel compilation units (#8574)
  • CI: update arduino IDE url (#8563)
  • emulation on host: fix internal udp management (#8561)
  • emulation on host: fix for latest changes in DNSServer (#8559)
  • Correction to run_CI_locally.sh (#8552)
  • ci: make sure to kill gpg related processes (#8549)
  • Error even w/warnings disabled for no-return fcns (#8495)
  • gitignore: Skip .git{,hub} files when packaging (#8743)
  • emulation on host: minor updates (#8454)
  • Emulation on host: updates (#8409)

3.1.0

1 year ago

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() to esp_suspend(), update esp_yield() to also call esp_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 for delay(0) (#7148)
  • Update mmu_get... and mmu_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 as tcp_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 with WiFiClientSecureBearSSL::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

  • Fix compilation when no global MDNS instance is available (#8478)
  • Add ::end() (#8379)

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-02 board (#8664)
  • MOD-WIFI-ESP8266(-DEV) update (#8297)

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 git install documentation fix (#8488)
  • Remove obsolete PWMRANGE in keywords.txt (#8447)
  • Correctly link with precompiled libraries (#8392)
  • Remove warnings, errors during host tests in CI (#8358)
  • Respect linking order of libraries for PlatformIO (#8263)

CI

  • Remove paths / paths-ignore condition from CI (#8704)
  • Rework CI workflows (#8688)
  • emulation on host: fix incorrect lwIP DNS implementation (#8627)
  • Github Actions updates and setup dependabot (#8624)
  • Fix python warnings and update device tests runner (#8623)
  • emulation on host: avoid closing STDIN (#8577)
  • emulation on host: allow parallel compilation units (#8574)
  • CI: update arduino IDE url (#8563)
  • emulation on host: fix internal udp management (#8561)
  • emulation on host: fix for latest changes in DNSServer (#8559)
  • Correction to run_CI_locally.sh (#8552)
  • ci: make sure to kill gpg related processes (#8549)
  • Error even w/warnings disabled for no-return fcns (#8495)
  • gitignore: Skip .git{,hub} files when packaging (#8743)
  • emulation on host: minor updates (#8454)
  • Emulation on host: updates (#8409)

3.0.2

2 years ago

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

  • Update debug level list link (#8172)
  • Add missing menu.UploadTool name definition (#8153)

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

  • Fix stopAllExcept with WiFiClientSecure (#8136)
  • LwipIntfDev.h - apply static DNS config (#8076)

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

  • PIO: use CCFLAGS for -Werror (#8175) (#8092)
  • Documentation: Note about options on PIO (#8174)

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

  • 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)
  • webserver: do not count "plain" in argument list (#6768)
  • webserver: string optimization (#7446)

Libraries - others

  • Resolve "PWM-locked" / "phase-locked" waveform merge leftover in Servo lib (#7978)
  • Add I2S class support (#7874)
  • At MDNS.end() also release services (#7859)
  • AVRISP: Prevent nullptr dereference on OOM (#7823)
  • HTTPClient: fix error handling (#7811)
  • LEAmDNS: one instance for all interfaces (#7786 - #7540 #7615 #7636 #7640)
  • Add the missing 'rename' method wrapper in SD library. (#7766)
  • Update to ESP8266HTTPClient.cpp for no Content-Length (#7691)
  • BREAKING: Change servo defaults to safer defaults (#7023)
  • Hook up custom timestamp proc for SD/SDFS (#7686)
  • BREAKING: Change return EEPROM.end() to bool (#7630)
  • httpclient: remove deprecated API (#7617)
  • Avoid float-double-conversion (#7559)
  • Use direct member initialization instead of ctr initialisation (#7556)
  • Basic authentication with ESP8266httpUpdate (#7190)

Documentation

  • doc: analogRead must not be called to frequently with WiFi is on (#7981)
  • comments in ClientContext::connect() (#7961)
  • Fix typo in EEPROM debug message (#7934)
  • Fix link to ESP8266 NonOS SDK (#7914)
  • Update a02-my-esp-crashes.rst (#7739)
  • Clarified implementation of the signed OTA implementation (#7736)
  • Specify where Additional Boards Manager URLs is (#7733)
  • update documentation example (#7697)
  • Revive a dead link (#7679)
  • Update OTA HTTP Server Header Information (#7633)
  • Pull deprecated axtls link (#7624)
  • Update README.md (#7623)
  • Update path of gdb (#7603)
  • Fixup weird combination of oneline/multi line comments (#7566)
  • Fix spelling typo under doc/faq (#7538)
  • doc: gcc handles duplicate literal strings (#7531)
  • Fix and add details to Serial doc (#7521)
  • Fix spelling typos in files under doc/esp8266wifi (#7520)
  • Typo (#7502)
  • Mention OTA Update class blocks flash mode changes (#7321)
  • Fix spelling typos in readme.rst (#7447)
  • Grammar fixes (#7441)

CI

  • Fix ESP8266SdFat architecture, Windows CI (#7866)
  • upgrade arduino in CI (#7716)
  • Use smarter cache key, cache Arduino IDE (#7791)
  • Remove Travis-CI configuration (#7674)
  • Allow test framework to use cores/esp8266/Arduino.h directly (#7377)
  • ci: apt update (#7596)
  • Properly replace toolchain in PlatformIO CI script (#7580)
  • PIO: Delete owner field (#7563)
  • Add CI test for eboot build (#7546)
  • Update PIO CI to be less chatty, fix CI fail (#7530)
  • CI: on host: force 64 bit mode like make -j2 CI implicitly does (#7513)
  • Add valgrind mocked test to CI (#7501)
  • Clean up minor warnings from LGTM.com (#7500)
  • Small update to ease manual release generation (#7467)
  • Fix typo in platform.txt causing device test fails (#7463)
  • Transition from TravisCI to GitHub CI (#7444)
  • Fix spelling typos in files under packages dir (#7439)
  • Remove wget dump during CI (#7438)

Build options

  • board manager: wemos d1 clones: new entry with menus for flash mode and flash freq (#7989)
  • board manager: + Agrumino lemon v4 (#7883)
  • Fix improper GENERIC board IDs (#7839)
  • boards.txt: sort by displayed name (#7670)
  • add sdk options to "generic esp8285 module" (#7550)

Build system

  • Update board-specific defines (#7875)
  • Add a check for all URLs in the package file (#7848)
  • Fix typo in 32-bit Windows package JSON (#7847)
  • PIO: Dynamically configure exceptions support (#7834)
  • platform.txt: instruct GCC to perform more aggressive optimization (#7770)
  • makecorever.py: Hide GIT error messages. Fixes #7744 (#7745)
  • Normalize platform.txt pattern numbers (#7752)
  • Fix platform.txt issue for Windows (#7750)
  • Update to pyserial 3.5, esptool 3.0 (#7737)
  • Added GZipped OTA support in elf2bin and PlatformIO (#7727)
  • Use -std=gnu17 instead of -std=c17 for GCC and test (#7588)
  • Compile failure fix with FS_NO_GLOBALS flag (#7685)
  • Update to GCC 10.2 (#7607)
  • Upgrade to GCC 10.1 toolchain (#6294)

Emulation on host

  • minor host fix found while compiling arduinoJson (#8009)
  • emulation on host: millis()/micros() now start at 0 (#7810)
  • mock: +hexdump() from debug.cpp (#7789)
  • emulation on host: makefile rework: only one build dir (#7738, #7740, #7741)
  • emulation on host makefile update, allowing to pass more options (#7552)

3.0.1

2 years ago

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

  • Update debug level list link (#8172)
  • Add missing menu.UploadTool name definition (#8153)

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

  • Fix stopAllExcept with WiFiClientSecure (#8136)
  • LwipIntfDev.h - apply static DNS config (#8076)

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

  • PIO: use CCFLAGS for -Werror (#8175) (#8092)
  • Documentation: Note about options on PIO (#8174)

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

  • 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)
  • webserver: do not count "plain" in argument list (#6768)
  • webserver: string optimization (#7446)

Libraries - others

  • Resolve "PWM-locked" / "phase-locked" waveform merge leftover in Servo lib (#7978)
  • Add I2S class support (#7874)
  • At MDNS.end() also release services (#7859)
  • AVRISP: Prevent nullptr dereference on OOM (#7823)
  • HTTPClient: fix error handling (#7811)
  • LEAmDNS: one instance for all interfaces (#7786 - #7540 #7615 #7636 #7640)
  • Add the missing 'rename' method wrapper in SD library. (#7766)
  • Update to ESP8266HTTPClient.cpp for no Content-Length (#7691)
  • BREAKING: Change servo defaults to safer defaults (#7023)
  • Hook up custom timestamp proc for SD/SDFS (#7686)
  • BREAKING: Change return EEPROM.end() to bool (#7630)
  • httpclient: remove deprecated API (#7617)
  • Avoid float-double-conversion (#7559)
  • Use direct member initialization instead of ctr initialisation (#7556)
  • Basic authentication with ESP8266httpUpdate (#7190)

Documentation

  • doc: analogRead must not be called to frequently with WiFi is on (#7981)
  • comments in ClientContext::connect() (#7961)
  • Fix typo in EEPROM debug message (#7934)
  • Fix link to ESP8266 NonOS SDK (#7914)
  • Update a02-my-esp-crashes.rst (#7739)
  • Clarified implementation of the signed OTA implementation (#7736)
  • Specify where Additional Boards Manager URLs is (#7733)
  • update documentation example (#7697)
  • Revive a dead link (#7679)
  • Update OTA HTTP Server Header Information (#7633)
  • Pull deprecated axtls link (#7624)
  • Update README.md (#7623)
  • Update path of gdb (#7603)
  • Fixup weird combination of oneline/multi line comments (#7566)
  • Fix spelling typo under doc/faq (#7538)
  • doc: gcc handles duplicate literal strings (#7531)
  • Fix and add details to Serial doc (#7521)
  • Fix spelling typos in files under doc/esp8266wifi (#7520)
  • Typo (#7502)
  • Mention OTA Update class blocks flash mode changes (#7321)
  • Fix spelling typos in readme.rst (#7447)
  • Grammar fixes (#7441)

CI

  • Fix ESP8266SdFat architecture, Windows CI (#7866)
  • upgrade arduino in CI (#7716)
  • Use smarter cache key, cache Arduino IDE (#7791)
  • Remove Travis-CI configuration (#7674)
  • Allow test framework to use cores/esp8266/Arduino.h directly (#7377)
  • ci: apt update (#7596)
  • Properly replace toolchain in PlatformIO CI script (#7580)
  • PIO: Delete owner field (#7563)
  • Add CI test for eboot build (#7546)
  • Update PIO CI to be less chatty, fix CI fail (#7530)
  • CI: on host: force 64 bit mode like make -j2 CI implicitly does (#7513)
  • Add valgrind mocked test to CI (#7501)
  • Clean up minor warnings from LGTM.com (#7500)
  • Small update to ease manual release generation (#7467)
  • Fix typo in platform.txt causing device test fails (#7463)
  • Transition from TravisCI to GitHub CI (#7444)
  • Fix spelling typos in files under packages dir (#7439)
  • Remove wget dump during CI (#7438)

Build options

  • board manager: wemos d1 clones: new entry with menus for flash mode and flash freq (#7989)
  • board manager: + Agrumino lemon v4 (#7883)
  • Fix improper GENERIC board IDs (#7839)
  • boards.txt: sort by displayed name (#7670)
  • add sdk options to "generic esp8285 module" (#7550)

Build system

  • Update board-specific defines (#7875)
  • Add a check for all URLs in the package file (#7848)
  • Fix typo in 32-bit Windows package JSON (#7847)
  • PIO: Dynamically configure exceptions support (#7834)
  • platform.txt: instruct GCC to perform more aggressive optimization (#7770)
  • makecorever.py: Hide GIT error messages. Fixes #7744 (#7745)
  • Normalize platform.txt pattern numbers (#7752)
  • Fix platform.txt issue for Windows (#7750)
  • Update to pyserial 3.5, esptool 3.0 (#7737)
  • Added GZipped OTA support in elf2bin and PlatformIO (#7727)
  • Use -std=gnu17 instead of -std=c17 for GCC and test (#7588)
  • Compile failure fix with FS_NO_GLOBALS flag (#7685)
  • Update to GCC 10.2 (#7607)
  • Upgrade to GCC 10.1 toolchain (#6294)

Emulation on host

  • minor host fix found while compiling arduinoJson (#8009)
  • emulation on host: millis()/micros() now start at 0 (#7810)
  • mock: +hexdump() from debug.cpp (#7789)
  • emulation on host: makefile rework: only one build dir (#7738, #7740, #7741)
  • emulation on host makefile update, allowing to pass more options (#7552)

3.0.0

2 years ago

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)
  • webserver: do not count "plain" in argument list (#6768)
  • webserver: string optimization (#7446)

Libraries - others

  • Resolve "PWM-locked" / "phase-locked" waveform merge leftover in Servo lib (#7978)
  • Add I2S class support (#7874)
  • At MDNS.end() also release services (#7859)
  • AVRISP: Prevent nullptr dereference on OOM (#7823)
  • HTTPClient: fix error handling (#7811)
  • LEAmDNS: one instance for all interfaces (#7786 - #7540 #7615 #7636 #7640)
  • Add the missing 'rename' method wrapper in SD library. (#7766)
  • Update to ESP8266HTTPClient.cpp for no Content-Length (#7691)
  • BREAKING: Change servo defaults to safer defaults (#7023)
  • Hook up custom timestamp proc for SD/SDFS (#7686)
  • BREAKING: Change return EEPROM.end() to bool (#7630)
  • httpclient: remove deprecated API (#7617)
  • Avoid float-double-conversion (#7559)
  • Use direct member initialization instead of ctr initialisation (#7556)
  • Basic authentication with ESP8266httpUpdate (#7190)

Documentation

  • doc: analogRead must not be called to frequently with WiFi is on (#7981)
  • comments in ClientContext::connect() (#7961)
  • Fix typo in EEPROM debug message (#7934)
  • Fix link to ESP8266 NonOS SDK (#7914)
  • Update a02-my-esp-crashes.rst (#7739)
  • Clarified implementation of the signed OTA implementation (#7736)
  • Specify where Additional Boards Manager URLs is (#7733)
  • update documentation example (#7697)
  • Revive a dead link (#7679)
  • Update OTA HTTP Server Header Information (#7633)
  • Pull deprecated axtls link (#7624)
  • Update README.md (#7623)
  • Update path of gdb (#7603)
  • Fixup weird combination of oneline/multi line comments (#7566)
  • Fix spelling typo under doc/faq (#7538)
  • doc: gcc handles duplicate literal strings (#7531)
  • Fix and add details to Serial doc (#7521)
  • Fix spelling typos in files under doc/esp8266wifi (#7520)
  • Typo (#7502)
  • Mention OTA Update class blocks flash mode changes (#7321)
  • Fix spelling typos in readme.rst (#7447)
  • Grammar fixes (#7441)

CI

  • Fix ESP8266SdFat architecture, Windows CI (#7866)
  • upgrade arduino in CI (#7716)
  • Use smarter cache key, cache Arduino IDE (#7791)
  • Remove Travis-CI configuration (#7674)
  • Allow test framework to use cores/esp8266/Arduino.h directly (#7377)
  • ci: apt update (#7596)
  • Properly replace toolchain in PlatformIO CI script (#7580)
  • PIO: Delete owner field (#7563)
  • Add CI test for eboot build (#7546)
  • Update PIO CI to be less chatty, fix CI fail (#7530)
  • CI: on host: force 64 bit mode like make -j2 CI implicitly does (#7513)
  • Add valgrind mocked test to CI (#7501)
  • Clean up minor warnings from LGTM.com (#7500)
  • Small update to ease manual release generation (#7467)
  • Fix typo in platform.txt causing device test fails (#7463)
  • Transition from TravisCI to GitHub CI (#7444)
  • Fix spelling typos in files under packages dir (#7439)
  • Remove wget dump during CI (#7438)

Build options

  • board manager: wemos d1 clones: new entry with menus for flash mode and flash freq (#7989)
  • board manager: + Agrumino lemon v4 (#7883)
  • Fix improper GENERIC board IDs (#7839)
  • boards.txt: sort by displayed name (#7670)
  • add sdk options to "generic esp8285 module" (#7550)

Build system

  • Update board-specific defines (#7875)
  • Add a check for all URLs in the package file (#7848)
  • Fix typo in 32-bit Windows package JSON (#7847)
  • PIO: Dynamically configure exceptions support (#7834)
  • platform.txt: instruct GCC to perform more aggressive optimization (#7770)
  • makecorever.py: Hide GIT error messages. Fixes #7744 (#7745)
  • Normalize platform.txt pattern numbers (#7752)
  • Fix platform.txt issue for Windows (#7750)
  • Update to pyserial 3.5, esptool 3.0 (#7737)
  • Added GZipped OTA support in elf2bin and PlatformIO (#7727)
  • Use -std=gnu17 instead of -std=c17 for GCC and test (#7588)
  • Compile failure fix with FS_NO_GLOBALS flag (#7685)
  • Update to GCC 10.2 (#7607)
  • Upgrade to GCC 10.1 toolchain (#6294)

Emulation on host

  • minor host fix found while compiling arduinoJson (#8009)
  • emulation on host: millis()/micros() now start at 0 (#7810)
  • mock: +hexdump() from debug.cpp (#7789)
  • emulation on host: makefile rework: only one build dir (#7738, #7740, #7741)
  • emulation on host makefile update, allowing to pass more options (#7552)

2.7.4

3 years ago

Hotfixes:

  • Backport #7478: Fix uninitted class variables from #7464
  • Backport #7491: Fixed PUYA flash write buffer alignment

2.7.3

3 years ago

Hotfix against "OTA of large files results in device hangs" (#7458)

Also includes backports from 3.0.0-dev:

  • boards: 4dsystems (gen4iod) updates (#7433)
  • Free space of overwritten files in LittleFS (#7434)
  • Keep client certs when server authentication set (#7464)
  • CVE-2020-12638 workaround for WPA downgrade attack (#7486)
  • Initialize _ledPin (#7487)
  • Correct stack string buffer length (#7488)

2.7.2

3 years ago

Changes since 2.7.1 (to 2.7.2)

Boot

  • Xmc flash 2 (#7317) (fixes #6725 #7277)

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<ServerType>::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

  • Allow GZIP compressed flash updates (#6820)
  • Add CryptoInterface library (#6961, #7252)

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

  • EspSoftwareSerial release 6.8.1 (#6922, #6932, #6943, #7034, #7133, #7139, #7205)

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

  • device tests: some of them can be run on host (#6912)
  • Add test for FS::open("w+") (#7241)

Boot

  • eboot: fix linking and padding (#7047)
  • Allow GZIP compressed flash updates (#6820)

Building on host

  • host build: optimistic_yield() wrongly delays() instead of avoiding excessive yields (#6802)

2.7.1

3 years ago

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

  • Allow GZIP compressed flash updates (#6820)
  • Add CryptoInterface library (#6961, #7252)

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

  • EspSoftwareSerial release 6.8.1 (#6922, #6932, #6943, #7034, #7133, #7139, #7205)

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

  • device tests: some of them can be run on host (#6912)
  • Add test for FS::open("w+") (#7241)

Boot

  • eboot: fix linking and padding (#7047)
  • Allow GZIP compressed flash updates (#6820)

Building on host

  • host build: optimistic_yield() wrongly delays() instead of avoiding excessive yields (#6802)