Releases
3.0.0
Great additions
PoC cache configuration control (aka +16KB heap!) (#7060 )
Hardware WDT Stack Dump Tool (#7010 )
Update to GCC 10.2 (#7607 )
Breaking: Deprecation - Removal
BREAKING: httpclient: remove deprecated API (#7617 )
BREAKING: Update Arduino.h, remove TIM_DIV265 (#7440 )
BREAKING: Remove lwip-v1.4 specific code (#7436 )
BREAKING: Remove axTLS from code and documentation (#7437 )
Breaking changes summary
BREAKING: WString: return bool instead of unsigned char (#7939 )
BREAKING: wifi: remove pseudo-modes for shutdown, expose ::[resumeFrom]shutdown()
(#7956 )
BREAKING: Disable WiFi at boot by default (#7902 , #7990 , #7993 )
BREAKING: base64::encode() compat with esp32: no newlines by default (#7910 )
BREAKING: Use IRAM_ATTR in place of ICACHE_RAM_ATTR (#7921 )
BREAKING: Upgrade to upstream newlib 4.0.0 release (64 bits time_t) (#7708 )
BREAKING: Change servo defaults to safer defaults (#7023 )
BREAKING: Add Print::availableForWrite method (#7658 )
BREAKING: Change return EEPROM.end() to bool (#7630 )
BREAKING: Change return type of channel() (#7656 )
BREAKING: Change return type of RSSI() (#7657 )
BREAKING: Add Wrong Password wifi status case (#7652 )
BREAKING: analogWriteRange 8-bit default (#7456 )
BREAKING: HTTPClient: RequestHandler: Pass String by const reference (#6583 )
Boot
eboot: .RODATA, upstream uzlib, move CRC, save 112 bytes (#7844 )
Update eboot to build with C17, not C99 standard (#7837 , #7838 )
Fix eboot crash with exception 28. ets_printf() should take pointer argument. (#7666 )
Use 32b loads to set print strings (#7545 )
Comment out verify step in eboot.c (#7468 )
Core
BREAKING: WString: return bool instead of unsigned char (#7939 )
ESP class should be a singleton: make all member functions static. (#8006 )
Updated HWDT to use IRAM_ATTR instead of ICACHE_RAM_ATTR. (#8013 , #8018 )
Hardware WDT Stack Dump Tool (#7010 )
WString: direct operator overloads instead of StringSumHelper (#7781 )
Clean up ICACHE_RAM_ATTR in VM PR (#7924 )
Added ESP32 compatible methods for setting/getting sleep mode (#7901 )
Enable 128K virtual memory via external SPI SRAM (#6994 )
Stream::send() (#6979 , #7935 , #7951 , #7987 , #7995 )
[BREAKING] base64::encode() compat with esp32: no newlines by default (#7910 )
BREAKING - Use IRAM_ATTR in place of ICACHE_RAM_ATTR (#7921 )
OOM debug: warn about String reallocation (#7908 )
OOM: avoid warn when calling *alloc(0) (#7909 )
String: add missing long long operator implementations (#7888 )
Support to reboot into UART download mode (#7854 , #7897 )
String: compatibility with 64 bits scalars (#7863 )
Update toolchain to support std::remainder (#7849 )
allow to set pin to OUTPUT_OPEN_DRAIN in analogWriteMode (#7841 )
Add 24-bit mode to I2S (#7835 )
Hexdump fix&update (#7831 )
improve silicon aes_unwrap (#7773 )
Supersede #3856 , remove undef min/max (#7824 )
Add stub for analogReference() (#7809 )
UART: add yield (#7799 )
BREAKING - Upgrade to upstream newlib 4.0.0 release (#7708 )
Update to latest uzlib upstream (#7776 , #7782 )
i2s: adds i2s_rxtxdrive_begin(enableRx, enableTx, driveRxClocks, driveTxClocks) (#7748 )
PoC cache configuration control (#7060 , #7754 , #7767 , #7768 , #7812 , #7816 , #7820 , #7790 )
Receiving no data in Updater is an error (#7729 )
PROGMEM compatibility changes to String (#7724 )
schedule_recurrent_function_us should be in iram (#7713 )
Re-implement PWM generator (#7715 , #7712 , #7022 , #7231 , #7800 , #7996 )
WString: Optimize a bit (#7553 )
Fix sntp_get_real_time prototype in header (#7707 )
Provide String::indexOf for a char* needle (#7706 )
Fix newlib to support <+-nn> timezone names (#7699 , #7702 )
BREAKING: Add Print::availableForWrite method (#7658 )
settimeofday_cb: distinguish from user or sntp (#7637 )
Add Copyright notice to Schedule.h (#7653 )
BREAKING: Add Wrong Password wifi status case (#7652 )
New flash writing method with offset/memory/size alignment handling (#7514 )
Add missing sntp_init/sntp_stop (#7628 )
Use direct member initialization instead of ctr initialisation (#7558 )
Prevent rewriting Updater_Signing.h if content unchanged (#7627 )
WString: c_str() returns null pointer after move (#7611 )
WString: mark move ctor as noexcept (#7610 )
sntp: use one time source and fix unsynchronized sntp time stamp (#7595 )
Add clear method to IPAddress (#7586 )
Check also if IP is not IPADDR_NONE (#7585 )
Fix gzip+signed OTA error (#7577 )
new w/ OOM now aborts by defaults, or throw an exception (#7536 )
getCpuFreqMHz(): fix when F_CPU is not defined (#7554 )
Updater MD5 cleanup on begin (#7534 )
Add synthetic IntegerDivideByZero exception (#7496 )
avoid circular #include dependence for PolledTimeout (#7356 )
base64 class uses String, adding harmless #include (#7517 )
sys/pgmspace.h: Refactor inline asm (#7510 )
Add SerialEvent() callback to loop processing (#7505 )
Remove warnings when building NoAssert (#7499 )
BREAKING - analogWriteRange 8-bit default (#7456 )
BREAKING - Pass String by const reference [3.0] (#6583 )
Libraries - softserial
Maintenance release 6.12.3: better dependency declarations for Platformio (#8030 )
EspSoftwareSerial 6.12.2: Inlining push() functions that must be in IRAM for calling from ISRs (#7986 )
Bug-fix release 6.12.1: a documentation error was reported by a user; dropped bit-patterns that masked the stop-bit fixed. (#7938 )
EspSoftwareSerial minor release 6.12.0 completes adaptation to new Stream::send() (#7923 )
Minor EspSoftwareSerial release 6.11.7, for deprecated ICACHE_RAM_ATTR in upcoming ESP8266 Arduino core 3.0.0. (#7922 )
EspSoftwareSerial, bump up Arduino library manager related files 6.11.6 (#7891 )
Update to EspSoftwareSerial 6.11.5 (#7889 )
EspSoftwareSerial bug-fix release 6.11.4 (#7862 )
Update to EspSoftwareSerial 6.11.3: prepares for ESP8266 Arduino core PR 6979. (#7840 )
EspSoftwareSerial 6.11.2: Delegate<> assign operators added. (#7815 )
Minor EspSoftwareSerial release 6.11.1 (#7804 )
Minor EspSoftwareSerial release 6.11.0 (#7802 )
EspSoftwareSerial bug fix release 6.10.1: preciseDelay() could delay() for extremely long time, if period duration was exceeded on entry. (#7771 )
EspSoftwareSerial 6.10.0: override keyword for recent Print::availableForWrite() addition (#7710 )
EspSoftwareSerial 6.9.0: data/strings in flash alignment handling fix. Yielding during write() improvement. (#7604 )
Libraries - FS
Update mklittlefs executable (#7906 )
Track creation time of LittleFS FS (#7873 )
Invalid read return value fix (#7817 )
Update to SdFat 2.0.2, speed SD access (#7779 )
Rationalize File timestamp callback (#7785 )
Update to LittleFS v2.3 (#7787 )
Libraries - Network
added ArduinoWiFiServer with send-to-all-clients functionality (#7612 )
internal: rename ClientContext::wait_until_sent() to wait_until_acked() (#7896 )
Added ESP32 compatible methods for setting/getting hostname (#7900 )
AP & dhcp-server: fix uninitialized variables (#7905 )
Netdump: Avoid UB and abort on nullptr buffer (#7822 )
lwip2: use pvPortXalloc/vPortFree and "-free -fipa-pta" (#7793 )
more lwIP physical interfaces (#6680 )
Netump (#7527 , #7659 )
replace old Ethernet Arduino-library with v2, submoduled (#6812 )
Library - WiFi
WiFi: clean up AP SSID setter & getter, support 32 chars (#7941 )
[BREAKING] wifi: remove pseudo-modes for shutdown, expose ::[resumeFrom]shutdown()
(#7956 )
[BREAKING] Disable WiFi at boot by default (#7902 )
Added broadcastIP method to WiFiSTA class (#7899 )
WIFI_RESUME improve speed and example (#7877 )
WiFiServer.cpp: Fix warning (#7755 )
update documentation example (#7697 )
Refactor WiFi scan example (#7655 )
BREAKING: Change return type of channel() (#7656 )
BREAKING: Change return type of RSSI() (#7657 )
Reduce codesize of setOutputPower (#7572 )
Library - TLS/SSL
Fix a warning (#8014 )
Adding comment to ignore SSL certificate in sample code. (#7994 )
Update Root Certificate in example (#7932 )
Adds the method setSSLVersions() also to WiFiClientSecure in order to use that new feature. (#7925 )
Add setSSLVersion call to SSL object (#7920 )
Allow users to inherit and override CertStore (#7827 )
Reduce BearSSL code size by not -O2 FSMs (#7807 )
WiFiServerSecure: Cache SSL sessions (#7774 )
WiFiClientSecure: use context (#7680 )
Update to latest BearSSL as of Nov 2020 (#7732 )
Add Stream loaders for BearSSL (#7675 )
Catch and display SSL errors for fatal alerts (#7681 )
Fix error when debug enabled but no port chosen (#7648 )
Remove stray axtls refs, deprecated compat funcs (#7626 )
Fix error message typo (#7581 )
Update DigestAuthorization.ino (Simple example update) (#7579 )
Update certs-from-mozilla.py (#7573 , #7578 )
Use root cert, not fingerprint for api.github.com (#7490 )
Update FP for tls.mbed.org (#7479 )
Change BSSL_CertStore test URL (#7370 )
Update to BearSSL version lost in GCC10 update (#7453 )
Library - Webserver
ESP8266WebServer: Add variadic template version of collectHeaders() (#7296 )
Fix header FSM in webserver, fix Windows uploads (#7805 )
ETag support for WebServer (#7709 )
Rewrite multipart boundary detection (#7728 )
Fixed bug in parsing POST file uploads (#7543 )
Fix long password validation in WebServer (#7676 )
FIX MIME-Type for txt-suffix (#7608 )
FIX StaticRequestHandler crashes when cache_header is null and DEBUG_ESP_CORE is enabled (#7609 )
Avoid #includes with a surrounding namespace (#7560 )
webserver hook: allow to handle external http protocol (#7459 , #7492 , #7515 )
Made ESP8266WebServer::client() return a reference (fixes #7075 ) (#7080 )
WebServer: Allow client to send many requests on the same connection (#7414 )
webserver: do not count "plain" in argument list (#6768 )
webserver: string optimization (#7446 )
Libraries - others
Resolve "PWM-locked" / "phase-locked" waveform merge leftover in Servo lib (#7978 )
Add I2S class support (#7874 )
At MDNS.end() also release services (#7859 )
AVRISP: Prevent nullptr dereference on OOM (#7823 )
HTTPClient: fix error handling (#7811 )
LEAmDNS: one instance for all interfaces (#7786 - #7540 #7615 #7636 #7640 )
Add the missing 'rename' method wrapper in SD library. (#7766 )
Update to ESP8266HTTPClient.cpp for no Content-Length (#7691 )
BREAKING: Change servo defaults to safer defaults (#7023 )
Hook up custom timestamp proc for SD/SDFS (#7686 )
BREAKING: Change return EEPROM.end() to bool (#7630 )
httpclient: remove deprecated API (#7617 )
Avoid float-double-conversion (#7559 )
Use direct member initialization instead of ctr initialisation (#7556 )
Basic authentication with ESP8266httpUpdate (#7190 )
Documentation
doc: analogRead must not be called to frequently with WiFi is on (#7981 )
comments in ClientContext::connect()
(#7961 )
Fix typo in EEPROM debug message (#7934 )
Fix link to ESP8266 NonOS SDK (#7914 )
Update a02-my-esp-crashes.rst (#7739 )
Clarified implementation of the signed OTA implementation (#7736 )
Specify where Additional Boards Manager URLs is (#7733 )
update documentation example (#7697 )
Revive a dead link (#7679 )
Update OTA HTTP Server Header Information (#7633 )
Pull deprecated axtls link (#7624 )
Update README.md (#7623 )
Update path of gdb (#7603 )
Fixup weird combination of oneline/multi line comments (#7566 )
Fix spelling typo under doc/faq (#7538 )
doc: gcc handles duplicate literal strings (#7531 )
Fix and add details to Serial doc (#7521 )
Fix spelling typos in files under doc/esp8266wifi (#7520 )
Typo (#7502 )
Mention OTA Update class blocks flash mode changes (#7321 )
Fix spelling typos in readme.rst (#7447 )
Grammar fixes (#7441 )
CI
Fix ESP8266SdFat architecture, Windows CI (#7866 )
upgrade arduino in CI (#7716 )
Use smarter cache key, cache Arduino IDE (#7791 )
Remove Travis-CI configuration (#7674 )
Allow test framework to use cores/esp8266/Arduino.h directly (#7377 )
ci: apt update (#7596 )
Properly replace toolchain in PlatformIO CI script (#7580 )
PIO: Delete owner field (#7563 )
Add CI test for eboot build (#7546 )
Update PIO CI to be less chatty, fix CI fail (#7530 )
CI: on host: force 64 bit mode like make -j2 CI
implicitly does (#7513 )
Add valgrind mocked test to CI (#7501 )
Clean up minor warnings from LGTM.com (#7500 )
Small update to ease manual release generation (#7467 )
Fix typo in platform.txt causing device test fails (#7463 )
Transition from TravisCI to GitHub CI (#7444 )
Fix spelling typos in files under packages dir (#7439 )
Remove wget dump during CI (#7438 )
Build options
board manager: wemos d1 clones: new entry with menus for flash mode and flash freq (#7989 )
board manager: + Agrumino lemon v4 (#7883 )
Fix improper GENERIC board IDs (#7839 )
boards.txt: sort by displayed name (#7670 )
add sdk options to "generic esp8285 module" (#7550 )
Build system
Update board-specific defines (#7875 )
Add a check for all URLs in the package file (#7848 )
Fix typo in 32-bit Windows package JSON (#7847 )
PIO: Dynamically configure exceptions support (#7834 )
platform.txt: instruct GCC to perform more aggressive optimization (#7770 )
makecorever.py: Hide GIT error messages. Fixes #7744 (#7745 )
Normalize platform.txt pattern numbers (#7752 )
Fix platform.txt issue for Windows (#7750 )
Update to pyserial 3.5, esptool 3.0 (#7737 )
Added GZipped OTA support in elf2bin and PlatformIO (#7727 )
Use -std=gnu17 instead of -std=c17 for GCC and test (#7588 )
Compile failure fix with FS_NO_GLOBALS flag (#7685 )
Update to GCC 10.2 (#7607 )
Upgrade to GCC 10.1 toolchain (#6294 )
Emulation on host
minor host fix found while compiling arduinoJson (#8009 )
emulation on host: millis()/micros() now start at 0 (#7810 )
mock: +hexdump() from debug.cpp (#7789 )
emulation on host: makefile rework: only one build dir (#7738 , #7740 , #7741 )
emulation on host makefile update, allowing to pass more options (#7552 )
You can’t perform that action at this time.