Changes since 2.4.1.
Core
- Correct millis() drift (#3078, #4264)
- Raise exception when assert happens (#4480, #4482)
- Fix stack trace unwinding within continuation library (#4385)
- Return from Print::write(buffer, size) if any byte fails to write (#4527)
- Warn if inefficient Print::write implementation is not overridden (#4537)
- String: fix overlapping memcpy call in String::trim (#4938)
- String: fix creation and concat issues (#4955, #4962)
- Increase available DRAM by moving exception/panic messages into IRAM, assert strings and file names into flash. (#4187)
- Increase available IRAM by moving cont_init from into flash (#4384)
- Save 192 bytes of RAM bytes when attachInterrupt is not used (#4601)
- Move continuation stack from .bss onto sys stack, saving 4kB of RAM, if WPS is not needed (#4622)
- Allow changing vtables location (#4567, #4582)
- Add linker MAP artifact to standard build process (#4186)
- Record information on failed allocation, dump it to UART on a panic (#4220)
- Fix OOM debug support for Arduino 1.9 (#4357)
- HardwareSerial: RX fifo latency fix (#4328)
- HardwareSerial: improve UART FIFO overrun handling and stability (#4536, #4568)
- HardwareSerial: add functions for baud rate detection (#4978)
- Add support for hardware Sigma Delta generator (#4119, #4494)
- New waveform generation code supporting multiple analogWrite, Servo, Tone at the same time (#4640, #4872)
- Scheduled interrupt handler support (#4609, #4879, #4890)
- Allow using GPIO16 for analogWrite (#4895)
- Fix digitalPinToBitMask(), portOutputRegister(), portInputRegister() for GPIO16 (#4964)
- I2S: add callbacks on DMA reads (#4205)
- I2S: multiple fixes for IRQs, protocol, factoring (#4574)
- I2S: add input API and examples (#4539)
- Updater: fix overflow in binary size check (#4552)
- Updater: copy the existing flash mode over the one set in an OTA update image (#4876, #4877)
- Allow sending debug information to classes other than HardwareSerial (#4611)
- Add
ESP.deepSleepMax()
function to get maximum possible deep sleep time (#4627) - Add
avr/pgmspace.h
and handling of__PROG_TYPES_COMPAT__
for compatibility (#4619) - Force ARDUINO macro to
10805
- Fix base64_encode_expected_len returning value which is not large enough (#4773, #4786, #4934)
- Add extra parens in SDK macro definitions (#2617, #4508)
ESP8266WiFi
- Fix memory leak when reusing WiFiClient object (#4497, #4516, #4549)
- Fix issues around WiFi.persistent handling (#3798)
- Add WiFi.getAutoReconnect() function (#4359)
- Fix random crash in ClientContext::write(Stream) and write_P(PGM_P buf, size_t size) (#2504, #4530)
- Add softAP SSID & PSK query API (#4138)
- Fix WiFiClient not detecting connection reset by peer (#4626)
- Allow scanning on specific channel or for specific SSID (#4636)
- lwip2 Update (#4729)
- lwip2: Fix static address management (#4677)
- lwip2: fix disconnection, fix reconnection (#4851)
- Add new WiFiClientSecure and WiFiServerSecure implementations based on BearSSL, offering lower memory consumption and higher robustness (#4273)
- WiFiClientSecure: report connected when any bytes are available for read (#4754)
Other Libraries
- ESP8266mDNS: support for compressed DNS messages (#3769, #4648, #4752)
- ESP8266mDNS: return
bool
from addServiceTxt (#4507) - ESP8266mDNS: clear previous result when
queryService()
is called (#4893, #4894) - SPISlave: add
end
method (#4248) - ESP8266WebServer: fix WebServerSecure streamFile() (#4545)
- SPI:
const
-ify input buffers (#4552) - SPI: Support Arduino API's
SPI::transfer(void*, size)
, optimized (#4925) - I2C: improve bus recovery procedure (#4070)
- I2C: add support for 50kHz clock (#3401)
- I2C: clock frequency set by
setClock
now survives re-initialization (#3389) - Add ESP_EEPROM to list of ESP libraries (#4529)
- SoftwareSerial: update to version to 3.4.1 (#4623)
- ESP8266HTTPUpdate: make timeout configurable (#4705)
- ESP8266HTTPUpdateServer: allow to update credentials after setup is performed (#4789)
- ESP8266SSDP: add
setUUID
method (#4981) - ESP8266WiFiMesh: new version (#4718)
Documentation
- Documentation improvements and fixes (#4502, #4503, #4504, #4512, #4532, #4131, #4534, #4621, #4671, #4730, #4753, #4794, #4933, #4949, #4958, #4971)
- Remove reference to an arrow/_right that doesn't exist (#4401)
- Add Windows 10 installation instructions (#4797)
- Improve the compatibility of links between Github and readthedocs (#4800)
Boards
- Support 4M2M board option (#4454)
- Support 512k32k board option (#4871, #4880)
- Define SDA and SCL pins for Olimex MOD-WIFI-ESP8266(-DEV) (#4562)
- Add WiFiduino board (#4590)
- Change flash mode from QIO to DIO for gen4iod board (#4616)
- A0 pin number can be changed in the variants (#4778)
- Add WiFi Slot board (#3916)
- Wemos D1 Mini Lite documentation update (#4809)
- NodeMCU documentation update (#4715)
- Add XinaBox board (#4929)
- Add Seeed Wio Link board (#4943)
- Change "WeMos" to new brand name "LOLIN" (#4984)