github esp8266/Arduino 3.1.1
Release 3.1.1

latest release: 3.1.2
15 months 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

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

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)

Don't miss a new Arduino release

NewReleases is sending notifications on new releases.