CARVIEW |
Select Language
HTTP/2 302
date: Thu, 17 Jul 2025 22:35:48 GMT
content-type: text/html; charset=utf-8
content-length: 0
vary: X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, X-Requested-With,Accept-Encoding, Accept, X-Requested-With
location: https://github.com/esp8266/Arduino/releases/tag/3.1.2
cache-control: no-cache
strict-transport-security: max-age=31536000; includeSubdomains; preload
x-frame-options: deny
x-content-type-options: nosniff
x-xss-protection: 0
referrer-policy: no-referrer-when-downgrade
content-security-policy: default-src 'none'; base-uri 'self'; child-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com release-assets.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com copilotprodattachments.blob.core.windows.net/github-production-copilot-attachments/ github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/
server: github.com
set-cookie: _gh_sess=Z%2F%2BihPptZ8beNKTfrvz9ivVjeTzg1ncHsfIzQgFrDL%2B%2FfjZe7A4h0qGsMrNKuaZ9Y32dWG3tEuPzfy68lAWJfjmymIcDl4U25yF3ec7BxhfR2h5jQ4WQeopYa7rs3m%2FjR%2BsvSGwC1%2BiR%2FfMuj5PtKFzgdZqxvHCuuxXlvmBpE0gV7696VR%2BxV%2BitCtweOOgCDhV%2FH7zWHC1wv6atTmkGPLGf9yNvyxO%2BZwouD9mncRmYTAD7yZnZL%2BBQModJKmkLkgiZz9jYHWMYsMqcVXczdw%3D%3D--L1a4ufMMj9MfInXL--DM5YzeLpY7shhbSzkgfUwA%3D%3D; Path=/; HttpOnly; Secure; SameSite=Lax
set-cookie: _octo=GH1.1.146519292.1752791748; Path=/; Domain=github.com; Expires=Fri, 17 Jul 2026 22:35:48 GMT; Secure; SameSite=Lax
set-cookie: logged_in=no; Path=/; Domain=github.com; Expires=Fri, 17 Jul 2026 22:35:48 GMT; HttpOnly; Secure; SameSite=Lax
x-github-request-id: 8136:119DE3:59380B:6C75F0:68797AC4
HTTP/2 200
date: Thu, 17 Jul 2025 22:35:49 GMT
content-type: text/html; charset=utf-8
vary: X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, X-Requested-With,Accept-Encoding, Accept, X-Requested-With
etag: W/"5e114caac47bc0e9aa3da796c8d545d1"
cache-control: max-age=0, private, must-revalidate
strict-transport-security: max-age=31536000; includeSubdomains; preload
x-frame-options: deny
x-content-type-options: nosniff
x-xss-protection: 0
referrer-policy: no-referrer-when-downgrade
content-security-policy: default-src 'none'; base-uri 'self'; child-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com release-assets.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com copilotprodattachments.blob.core.windows.net/github-production-copilot-attachments/ github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/
server: github.com
content-encoding: gzip
accept-ranges: bytes
x-github-request-id: 8136:119DE3:59381A:6C7605:68797AC4
Release Release 3.1.2 Β· esp8266/Arduino Β· GitHub
Loading
Skip to content
Navigation Menu
{{ message }}
-
Notifications
You must be signed in to change notification settings - Fork 13.3k
Compare
·
108 commits
to master
since this release
210897e
This commit was created on GitHub.com and signed with GitHubβs verified signature.
The key has expired.
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)
Assets 4
15 people reacted
You canβt perform that action at this time.