github esp8266/Arduino 2.5.1

Changes since 2.5.0 (to 2.5.1)

Breaking changes

  • Hardware SPI: unswap mode 2 and 3 for portability (#5948)
  • Revert to nonos-sdk 2.2.1, new sdk-switching option in IDE menu for generic board only (#5763)

Great Additions

  • SD Filesystem compatible with 8266 File, using latest SdFat (#5525, #5861)
  • Unification of SPIFFS and SD, into single compatible FS, File, and Dir objects (#5525)
  • Use esptool.py to handle sketch upload, make python available on Windows, too (#5635)
  • Small String Optimization (SSO) (#5690)

Documentation

  • Clarify analog output doc for pwm limits (#6051)
  • Upgrade to https: serving for JSON, links in docs (#5992)
  • Added notice to update submodules to test README (#6008)
  • Add note about needing 0.4 esp8266fs uploader (#5976)
  • UDP: Correct out of bounds condition and remove an unnecessary cast (#5924)
  • submodules: git command for updating (#5882)
  • Update adruino link in platform.txt (#5900)

Core

  • Use "bool" for "boolean" type (#5693)
  • Migrate configTime() to use sntp_set_timezone_in_seconds() to correctly allow timezone spec in seconds without rounding (#5835)
  • Test for StreamString SSO bug (#6035) (#6041)
  • Fix StreamString SSO bug (#6035)
  • Use original ESP8266-specific speeds for SPI speeds (#6023)
  • restore proper arduino Client:: & Wire:: API (#5969)
  • ISR code must be in ICACHE_RAM (#6002)
  • ISR: check for address in IRAM (#5995)
  • Add String::toDouble from upstream Arduino core (#5986)
  • Unaligned access support for pgm_read_word/dword (#5692)
  • Make SPIFFS garbage collection publicly available (#5944)
  • Fix String.replace overlapping strcpy (#5966)
  • Split IRAM into 2 linker sections to move std::fcn to IRAM (#5922)
  • Hardware SPI: unswap mode 2 and 3 for portability (#5948)
  • polledTimeout: add option to use CPU count instead of millis() (#5870)
  • use static_assert to check on fw structure changes over updates (#5937, #5939)
  • Fix String::replace() garbage at end of string (#5897)
  • fix DEBUG macros (all stringsin flash) (#5728)
  • Fix Serial.write(0) overloading (#5878)
  • SD Filesystem compatible with 8266 File, using latest SdFat (#5525, #5861)
  • const for Ticker::active() (#5850)
  • Remove redundant check for zero size SPIFFS partition (#5841)
  • Implement sntp_get|set_timezone_in_seconds() (#5828)
  • Fix repaintable stack calculation (#5821)
  • Revert to nonos-sdk 2.2.1, new sdk-switching option in IDE menu for generic board only (#5763)
  • prepare allman style (#5774)
  • fix UdpContext::(connect,listen) signature by using IPAddress (#5742)
  • Small String Optimization (#5690)
  • Fix pgm_read_ptr() (#5735)
  • Use "bool" for "boolean" type (#5693)

SSL-TLS:

  • Fix MFLN probe and allow returning whether MFLN succeeded or not after a connection. (#6000)
  • BearSSL Max Fragment Length Negotation and Node.js server (#5929)
  • example: Fix the changed structure of the input file (#5891)
  • Add OOM check and debug message in CertStore (#5820)
  • Add debug messages on BSSL errors (#5723)
  • New menu option to minimize BearSSL ROM with only RSA (#6006)

Libraries: MDNS

  • MDNS Callback setting needs std::bind parameter by reference instead of by value (#6037)
  • Fix OTA in AP mode (#5894)
  • LEAmDNS: remove implicit debug statements (#5895)

Libraries: WiFi

  • WiFi: fix switching to static address after WiFi.begin() with lwip2 (#6026)
  • udp: restore correct address/port when parsing packet (#6011)
  • reenable ARP queuing in lwIP2 (#5978)
  • lwIP-v2: new patch to randomize tcp source ports (#5906)
  • bugfix: restore WiFi::setSleepMode functionality with sdk-2.2.x (#5919)
  • Fix SSID reporting for 32-char SSIDs (#5889)
  • Allow to disable DHCP gateway offer when set up of AP. (#4421)
  • lwip2: ipv6: fix udp_new() #5744 (#5752)
  • UdpContext::setMulticastInterface(): fix for IPv6 (#5743)

Libraries:

  • SPISlave: Fix spi slave timing (#6022)
  • Fix ssdp (#5750)
  • optionally allow redirects on HTTPClient & OTA updates (#5009)
  • OTA: Add progress callback to Updater class. (#5754)
  • Fix hardcoded dependency of ArduinoOTA on mDNS (#5768)
  • change ESP8266WebServer::send_P to function the same as ::send (#5507)
  • Honor timeout in HTTPClient (#6056)

Examples

  • Fix example DigestAuthorization.ino: Fix WiFiClient vs. HttpClient declaration order (#6029)
  • Fix example StreamHttpClient.ino: Fix WiFiClient vs. HttpClient declaration order (#6030)

Emulation on Host:

  • Various fixes (#5764, #5765, #5766, #5771, #5772, #5802, #5809, #5840, #5829, #5994, #6013)
  • emulation on host: Add full UART driver emulation. (#5785)

Submodules:

  • SoftwareSerial: version 5.0.4 (#5965, #5977, #5993, #5981)
  • SoftwareSerial: fix for inverse logic mode (#5972)

Boards:

  • boards: Invent One: fix analog pin (#5741)

Build system, Toolchain & Newlib

  • Fix default git version for non git users (#6044)
  • git clean honors .gitignore, tools downloaded by tools/get.py in place (#6036)
  • PlatformIO: generate core_version.h when using feature/stage (#5917)
  • Fix boards-manager install issues on Linux and Windows (#5898)
  • Fix crash in certain PMEM printf format parsing (#5968)
  • fix boards.txt.py with python3 (#5887)
  • add optional espressif fw nonos-sdk 2.2.x (19.03.13) (#5873)
  • Adjust python module search path to avoid picking up pre-existing pyserial/esptool instead of one under tools/ (#5854)
  • PlatformIO: Append FLASHMODE_* macro (#5813)
  • Make signing.py Python2.6+ and Python3+ compat (#5807)
  • PlatformIO: Make exceptions off by default #5538 (#5814)
  • Clean up uploader.py, use implied paths (#5805)
  • Use Pythonic way of calling esptool, avoid fork(#5797)
  • Use local copy of python distro to include a subdir (#5796)
  • Use esptool.py to handle sketch upload, make python available on Windows, too (#5635)
  • Move __PRETTY_FUNCTION__ to progmem (#5758)
  • msys2 support for tools/get.py (#5751)
  • Wrap get.py's "if __name__ == '__main__':" into a function so it can be externally called (#4475)
  • Move .C to .CPP in the code (#5696)
latest releases: 3.0.1, 3.0.0, 2.7.4...
2 years ago