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)