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
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()
toesp_suspend()
, updateesp_yield()
to also callesp_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 fordelay(0)
(#7148) - Update
mmu_get...
andmmu_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
astcp_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
withWiFiClientSecureBearSSL::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
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
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)