Changes since 2.6.3 (to 2.7.0)
Breaking Changes
None
Great additions
Core
- Added missing "if (umm_heap == NULL) {..." to umm_free_heap_size_lw (#6929)
- Code size optimisations for ESP.getFullVersion() (#6936)
- I2C: allow clocks below 100KHz (#6934)
- Reduce mem footprint of ESP.getResetInfo() (#7030)
- Code size optimisation of ESP.getResetReason() (#7029)
- Low-Power demo (#6989)
- Fix WMath's map() implementation for inverse/round-trip mapping (#7027)
- Fix optimistic_yield to not yield on each call after x µs (#6804)
- Updated stack offsets for postmortem stack dump (#7066)
- Corrected stack start and end in stack_thunk_dump_stack() (#7085)
- configTime(tzsec,dstsec,): fix UTC/local management (#6993)
- dtostrf: round fix (#7068, #7093)
- simple TZ api: bypass sprintf/sscanf (= do not use 7KB flash) (#7109)
- Pull GPIO initialization into its own 'weak' function. (#7044)
- Attribute
__real_system_restart_local()
as(noreturn)
(#7167) - Move floating point from libgcc out of IRAM (#7180, #7188)
- Tone: extend to 20KHz (#7179)
- Add CryptoInterface library (#6961, #7252)
- Fix for MD5 leak bug (#7197, #7208)
- Use F_CPU if (?) CPU frequency switch is compile-time only (#6833)
- expose setTZ() (#7234)
- XMC flash support - WIP (#6725)
- Allow waveforms to be specified in clock cycles (#7211)
- Waveforms: cherry pick nice changes from ongoing #7122 (#7218)
- Allow stopWaveform to stop timed-out waveforms (#7236)
- Hold transmitter in reset during rate change (#7248)
- Fix minor GCC10 static analyzer warnings (#7255)
Core (FS)
- Skip . and .. on LittleFS::dir::rewind() (#6959)
- Only update LittleFS timestamp when opened write (#6956)
- Update LittleFS to latest upstream head (#6986)
- Add SDFS::Dir::fileTime callback (#6985)
- Add LittleFS support to ESP8266WebServer.serveStatic() (#6987)
- Fix boolean/logical & mixup in LittleFS open (#6996)
- Add fileCreation/getCreation create-time accessors (#7000)
- Improve LittleFS support (#7071)
- Update to LittleFS v2.2.0 (#7240)
Network (Core, Library/ESP8266WiFi)
- lwip2: no more git sub-sub-module deps, faster checksum, backlog limitation and other fixes (#6887)
- Fix/enable UDP packet reassembly (#7036, #7132)
- SNTP: backport espressif sntp api for lwip2 (#7097)
- TCP: fixes backlog limit handling, and allows ephemeral TCP connections (#7096)
- lwip2 update: stop dhcp when interface goes down (#7114)
- Fix UDP send to IPv6 link local addresses (#6541)
- Fix TCP send to IPv6 link local addresses (#7207)
- Updating _port to really used port and made _port accessible (#7003)
- Make DNS resolution order selectable during runtime or compile time (#6865)
- WiFi: ARP gratuitous API for wifi station mode (#6889, #7203)
- fix null pointer call from WiFiClient::localIP() to IPAddress (#7221)
Library - ESP8266WiFi (SSL/TLS)
- Update BearSSL, increase SSL stack (#6980)
- Remove memory leak on multiple calls to initCertStore (#7021)
- Update to latest BearSSL (#7098)
- Abort if BearSSL stack allocation fails (#7152)
Flashing - OTA - Updater
- Allow GZIP compressed flash updates (#6820)
- Add documentation for compressed OTA, fix bug (#6924)
- Add a CRC32 over progmem and ESP.checkFlashCRC (#6566)
- Fix Updater potential overflow, add host tests (#6954)
- allow ".bin.gz" filter in HTTP updater file selector (#7026)
- Updater: prevent closing webserver (option) (#6969)
- Use 2nd stack for update signature verification (#7149)
- Fix espota completion success/fail check (#7204)
Library - SoftwareSerial
Library - ESP8266WebServer
- PROGMEM footprint cleanup for responseCodeToString (#6950)
- Fix search order for index.htm(l)(.gz) files (#7069)
- Add Uri with support for regexUri and globUri (#6696)
- Add flash helper constructor to Uri (#7105)
- Expose webserver's chunk api (#7134)
- Make getContentType available for 3rd party usage (#7254)
Library - ESP8266HTTPClient
- Reduce temporary string creation in HTTPClient::sendHeader (#6937)
- Move a couple larger strings from rodata to flash (#6976)
- clear _canReuse in setUrl if its not a local redirect (#7039)
- Fixes large payload issues for sendRequest (#7051)
- Better follow redirection for
HTTPClient
(#7157)
Library - mDNS
- Update LEAmDNS.cpp (fix issue #6982) (#7025)
- use STA as default interface in mDNS (#7042)
- Additions to UdpContext needed for LEAmDNS2 (#7048)
- mDNS: protect MDNSResponder::queryService against misuse (#7216)
- Add isRunning getter to check is ::begin already called (#7219)
- Changing listen to listen the current iface only instead of 0 (#7217)
Library - Servo
- Define MAX_SERVOS to 12, like original Servo.h (#6999)
Libraries
- Various String handling cleanups (Libraries&Core) (#6945)
- Set a value for SSDP notify interval (#7110)
Documentation
- Installation guide for PlatformIO (#7142)
- Fix RST links for PlatformIO (#7143)
- (STA) Fixed misplacement of back quotes (#7247)
CI
- Fix Windows CI build (#6927)
- fix CI: switch to python3 for pio (#7035)
- update to new prebuilt win sed version (#7062)
- Switch espressif8266 platform to development branch in PlatformIO build (#7170)
- fix style checking: (#7222)
Examples
- CaptivePortal: improve HTML quality (#7227)
- ESP8266WebServer: Revamp of the FSBrowser and SDWebServer examples (#7182)
Boards
- Made changes to include "ESP8266_" with ITEAD board names,
{build.board}
, (#7024) - Add support for eduino wifi (#6554)
- Add 2MB obtion to 8285 generic board (#7163)
- esp8285: properly initialize free gpio as input (#7165)
Build System
- Add back mklittlefs for linux32 target (#7011)
- Use a python3 script to call python3 (#6960)
- boards.txt.py: Use correct file name when writing (#7018)
- PIO: Allow using custom linker scripts (#7078)
- package builder: updates for alpha releases (#7088)
- Switch espressif8266 platform to development branch in PlatformIO build (#7170)
- Use F_CPU if (?) CPU frequency switch is compile-time only (#6833)
Device tests
Boot
Building on host
- host build: optimistic_yield() wrongly delays() instead of avoiding excessive yields (#6802)