@igrr igrr released this Aug 3, 2018 · 7 commits to master since this release

Assets 4

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

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)

@igrr igrr released this Mar 8, 2018 · 151 commits to master since this release

Assets 4

Changes since 2.4.0.

Core

  • Move C++ vtables into IRAM, out of heap (#4179)
  • Update I2S base frequency and frequency dividers to real ones (#4031)
  • umm_malloc: fix calloc by clearing block only if malloc succeeds
  • Esp.deepSleep: change argument from uint32_t to uint64_t to match SDK
  • Add Esp.deepSleepMax, which returns maximum possible deep sleep time
  • SPIFFS: Fix lseek typo for seek_end (#4287)
  • Fix access past end of the buffer in RTCmem example (#4288)
  • Deprecate TIM_DIV265, add TIM_DIV256 instead (#4326)
  • If Debug Port is set, displaye version info after Serial.begin (#4467)
  • UpdaterClass::printError now accepts the Print object

ESP8266WiFi

  • Add SSL enabled WiFiServer, Updater, WebServer
  • WiFiClient: add keepalive api (default 2h,75s,9 not enabled) (#3937)
  • WiFiClient: don’t destroy ClientContext on ::stop
  • WifiServer: Add begin(uint16_t port) method, listening port can be changed at runtime (#4123)
  • WiFi: fix support for WPA pre-shared key in station mode, add support for PSK to WiFiMulti (#4076)
  • WiFi: fix Arduino compatibility of WiFi.config (#4145)
  • WiFiMulti: add timeout to WiFi connection loop (#4146)
  • lwip2: fix watchdog reset, fix WiFi reconnection (#4105)
  • lwip2: lower ram and flash footprint (by disabling old asserts)
  • lwip2: use only wifi_station_get_hostname() to set netif hostname (#4299)
  • lwip2: fix disconnection/reconnection issue
  • ClientContext:_write_some: release buffer once data really accepted for sending (#4265)

Other libraries

  • ESP8266HTTPClient: add digest authentication example (#4112)
  • ESP8266WebServer: Add begin(port) method
  • ESP8266WebServer: Move some strings to flash to increase available heap (#4148, #4338, #4371)
  • ESP8266mDNS: Fix mdns buffer overrun by 1 (#4317)
  • ArduinoOTA: don't crash on unrecognized packets (#4086)
  • Ticker: add bool active() (#2722)
  • Wire: check that pins needed by Wire are defined at compile-time (#4261)

Boards

  • boards.txt generator (#3722)
  • Case change and and 'none' reset option for Digistump Oak (#4143)
  • LED_BUILTIN is now a #define (#4276)
  • boards: Wemos D1 R1 needs a separate defined identifier (#4304)

Tools and SDK

  • sdk: update to v2.2.0-3-gf8f27ce
  • esptool: update to 0.4.13

Build and test

  • Add menu to control what gets erased during upload
  • Warnings cleanup (-Wall, -Wextra), check for warnings in CI (#4274, #4369)
  • Add support for @platformio Core 3.5.0
  • Drop PlatformIO lines from LD script; append object suffix to the end of target name (#4355)
  • tests/device: add make target to generate test reports
  • update testing documentation

Documentation

@igrr igrr released this Jan 2, 2018 · 252 commits to master since this release

Assets 4

Changes since 2.4.0-rc2

Core

  • Prevent endless loop in run_scheduled_functions (#4048)
  • Pure virtual Stream::flush() moved to empty virtual Print::flush() to follow arduino API (#4029)
  • Allow disabling global Serial and Serial1 object (#2807)
  • Export pgmspace symbols with C linkage (#3955)
  • cbuf: fix boundary condition on resize (#4016)
  • time: add micros64, support for gettimeofday and settimeofday.
  • Remove min, max, isnan, isinf macros, use tempmlates from std:: instead.
  • Updater: added constant time string comparison to avoid possible time-based attacks. (#3836)
  • Board definitions updated

ESP8266WiFi

  • ESP8266WiFiMulti: Add count function (#3073)
  • Added String hostname support to WiFiClient and WiFiClientSecure (#3349)
  • WiFiClientSecure: don't use the broken max_fragment_length extension (#4033)
  • WiFiClientSecure: configurable connect timeout, better default value (#4027)
  • WiFiClientSecure: don't trash unread decrypted data when writing (#4024)
  • Fix WiFiClient::availableForWrite() with no connection (#3985)
  • WiFiUDP: fix crash when calling destinationIP with no packet available (#4036)
  • Fix flush() to wait for empty send buffer (#1002) (#3967)
  • Add compatibility check for config() method with Arduino arg order (#3860)

Third party libraries

  • Use lwip v2 by default
  • SDK: update to v2.1.0-14-g33f234f
  • SDK: rename hostname and default_hostname symbols (#1281)
  • Add extern C blocks to SDK header files (#1352) (#4044)
  • SoftwareSerial: update to 3.3.0 (#3727)

Other libraries

  • ESP8266WebServer: fix URL parameter decoding in web server (#3313)
  • ESP8266WebServer: allocate HTTPUpload struct on demand (#2557)
  • ESP8266WebServer: send empty chunk when done sending chunked response
  • ESP8266WebServer: add CONTENT_LENGTH_UNKNOWN keyword
  • ESP8266HTTPClient: increase HTTP SEND/POST timeout to 5s (#3971)
  • ESP8266HTTPClient: handle empty URI correctly
  • ESP8266HTTPClient: allow changing connection timeout using setTimeout (#4038)
  • EEPROM: Added length and operator[] methods, added some constness, missed dirty clear (#3855)
  • EEPROM: Clear dirty flag in begin and reallocate only if necessary, add getConstDataPtr method (#2217) (#3849)
  • Set architecture=esp8266 for bundled SD and Ethernet libraries (#4035)

Examples

  • Wait for NTP to be set in example (#4000)
  • Put WiFi into station mode in examples (#3731)

Documentation for 2.4.0

Documentation for this release is hosted on readthedocs.org:
http://arduino-esp8266.readthedocs.io/en/2.4.0/

Pre-release

@igrr igrr released this Oct 15, 2017 · 339 commits to master since this release

Assets 4

Core

  • Redefine pgm_read_byte, pgm_read_word as macros to fix detection by libraries (#3140)
  • Move ASSERT() macro file text to PROGMEM (#3477)
  • Manifest for PlatformIO
  • Move debug constant strings to PROGMEM (#3478)
  • Initial support for attaching std::function to interrupts
  • Link airkiss library
  • Mask GPIO interrupts while attaching/detaching ISR handler (#3598)
  • Expand varargs correctly in printf_P (#2819)
  • Zero out memory in strncpy_P (#2633)
  • Fix erase size in ESP.eraseConfig
  • Add a workaround-delay in Serial.flush() (#3714)

ESP8266WebServer

  • Move MIME type table into PROGMEM to save RAM (#3475)
  • Parse parameters in the URL of a POST with empty content (#3398)
  • Digest Authentication support (#3053)

ESP8266WiFi

  • WiFiClient: apply write timeout to single chunk (#3273)
  • WiFiClientSecure: don’t send close alert when opening new session
  • Replace r_rand with os_random for LWIP_RAND() (#3499)
  • WiFiClientSecure: add loadCACert function (#3610)
  • WiFiClientSecure: add option to allow self-signed certificates
  • WiFiClientSecure: add support for keys and certificates in PROGMEM
  • Don't remove persistent WiFi settings when doing scan (#2946)

Upstream dependencies

  • axTLS: update to 2.1.4
    • Memory optimization: constants moved to PROGMEM, bigint cache cleared for loaded certificates
    • Fix certificate chain verification issues
  • sdk: update to v2.1.0-10-g509eae8
  • esptool: update to 0.4.12
    • Support for 8MB, 16MB flash sizes (image generation and uploading)
    • Fix for uploading on OS X with Apple FTDI driver
    • Fixes for error reporting
  • spiffs: update to 0.3.7+ (f5e26c4)
  • mkspiffs: update to 0.2.0
  • SoftwareSerial: update to 3.2.3

Boards

  • Add DigiStump Oak pins & board
  • Add Crystal Frequency menu item for generic board
  • Enable 8M and 16M flash sizes for generic board

Documentation for 2.4.0-rc2

Documentation for this pre-release is hosted on readthedocs.org:
http://arduino-esp8266.readthedocs.io/en/2.4.0-rc2/

Obtaining 2.4.0-rc2 pre-release

To install this pre-release using boards manager, follow the instructions, with the package URL replaced with the following one:

https://github.com/esp8266/Arduino/releases/download/2.4.0-rc2/package_esp8266com_index.json
Pre-release

@igrr igrr released this May 22, 2017 · 414 commits to master since this release

Assets 4

This is a pre-release in preparation for release 2.4.0. It comes with many fixes accumulated over the past year, and includes many new features.

This is the list of changes compared to 2.3.0.

Core

  • Const-correctness for MD5Builder (#3222)
  • detect division by zero in map() to prevent exceptions (#2397)
  • digitalWrite and digitalRead cancel analogWrite enabled on a pin (#2328)
  • Fix incorrect usage of memset() in PWM code which leads to incomplete initialization of struct
  • Fix libb64 decoder (#2883)
  • Force core_version to be added to compiled binary
  • Prevent divide by zero error causing tone() to crash (#2780)
  • progmem: replace C version of pgm_read_{word,byte} with assembly
  • SPIFFS: fix unaligned read in HAL (#3261)
  • Add Arduino File standard seek call
  • Add support to Print::printf for printing from flash (#2266)
  • Allow global object instances be switched off with defines (#2344)
  • Base64: add option to disable any newlines in output (#3208)
  • Enable floating point formatting in sprintf/sscanf (#1179)
  • Updated String library to use C++11 iterators. (#2267)
  • Use libc from newlib (#1752)
  • move libstdc++ to flash (#2804)
  • Link ESP-NOW library

ESP8266mDNS:

  • Fix link list bug (#2347)
  • Fix crash in mDNS destructor (#2389)
  • Optimize MDNS to prevent overflow and endless loop (#2333)
  • Improve compliance with DNS-SD RFC6763 (#3145)
  • Support AP and STA interfaces at the same time
  • Support multiple interfaces in query code
  • Use the provided IP in the mDNS begin method (#2349)

OTA

  • Updater: fail if there is not enough space to fit the new firmware (#2405)
  • ArduinoOTA: forward errors from Update.begin to espota.py
  • Add getCommand() api for OTA update type (#2259)
  • Updater: check boot mode before starting update
  • Add support for hashed OTA password (#2292)
  • Exposed sketch MD5 through HTTP headers (#2236)

ESP8266WebServer

  • Fix missing separator between get and post arguments (#2222)
  • Fix plain post content containing special chars being parsed as arguments (#2241)
  • Fix urlDecode points (#2212)
  • Match headers using equalsIgnoreCase (#2474)
  • Allow for overridable value for HTTP_UPLOAD_BUFLEN
  • Add chunked encoding support (#2199)
  • Add application/json content type

ESP8266HTTPClient

  • Add PUT Request to HTTP Client (#2310)

ESP8266WiFi

  • WiFi: add SoftAPModeProbeRequestReceived event handler (#2917)
  • Set DHCP subnet correctly for softAP (#2648)
  • Use WIFI_STA in WiFiClient-examples
  • Optimize WifiClient::write performance (#2177)
  • WiFiClient: add support for connect and write timeout (#1420, #3247, #2120)
  • WiFiClientSecure: add example of setCACert/verifyCertChain (#1851)
  • WiFiClientSecure: Add support for CA root cert verification
  • WiFiClientSecure: match CN and SANs ignoring case (#2978)
  • Allow usage of byte arrays to set RootCAs (#2968)
  • Add onComplete event handler support for the asynchronous network scanning. (#2287)

New features

  • Add an LLMNR responder implementation (#2880)
  • Implement Async NBNS (NetBIOS) name resolution for Windows (#2275)
  • Implement Serial RX Buffer (#2239)
  • Initial SPI Slave implementation and examples (#2234)
  • Add support for HSPI overlap mode (#1062)

Documentation

  • Documentation is now hosted on readthedocs.org
  • Initial release of FAQ / Troubleshooting section (#2207)
  • Documenting of ESP.getFlashChipRealSize() (#2210)
  • Use stable documentation of PlatformIO (#2337)
  • ESP8266WiFi library documentation (#2388)
  • Add PROGMEM docs
  • Add instructions how to re-enable DHCP (#2600)
  • Add a section on filesystem limitations (#2858)

Upstream dependencies

  • axTLS: update to 2.1.2 (includes TLS 1.2 support)
  • Update SDK to 2.0.0

Boards

  • Host toolchains on Github
  • Addition of gen4-IoD Range boards (#3202)
  • Arduino boards with ESP8266 (#3121)
  • Add 1M (No SPIFFS) board option (#3203)
  • Update keywords.txt for coloring syntax (#2892)

Documentation for 2.4.0-rc1

Documentation for this pre-release is hosted on readthedocs.org:
http://arduino-esp8266.readthedocs.io/en/2.4.0-rc1/

Obtaining 2.4.0-rc1 pre-release

To install this pre-release using boards manager, follow the instructions, with the package URL replaced with the following one:

https://github.com/esp8266/Arduino/releases/download/2.4.0-rc1/package_esp8266com_index.json

@igrr igrr released this Jun 23, 2016 · 574 commits to master since this release

Assets 9

Core

  • Fix NMI interrupt handler alignment
  • Update SDK to 1.5.3
  • umm_malloc: print block start address before heap corruption callback is triggered
  • If GDBStub library is used, break into gdb on assert and panic
  • Add option to keep FS classes in namespace (#2030)
  • Add SPIFFS::end (#1657)
  • Add ArduinoOTA::getHostname() interface
  • Add __throw_out_of_range
  • Add support for RTC user memory in ESP-specific APIs. (#1836)
  • Expose RTC_USER_MEM in esp8266_peri.h
  • Remove DISABLED macro (#2072)
  • Execute global constructors in correct order (#2074)
  • Real board name available in Sketch/MDNS/OTA (#2054)
  • Add DOUT/QOUT flash modes
  • Add ESP8285 entry in boards menu
  • Move timer detachInterrupt functions into IRAM (#2083)
  • Make Updater be able to run inside async callbacks (#2096)
  • Add new boards Phoenix 1.0 & Phoenix 2.0 (#2088)
  • Store git version of the core in the compiled binary (#2099)
  • Rebuild libstdc++ with mlongcalls and link against it (#1983)
  • Add mechanism for posting functions to the main loop (#2082)
  • MD5Builder::addStream: fixed falsy calculated hash for len > filelength (#2126)
  • Fix SPIFFS.openDir("") (#2143)
  • Bring back old semantics to random and randomSeed, add secureRandom (#1710) (#2142)
  • Add missing pgm_read_ptr{_near/_far} macros (#2160)
  • Add macro for maximum open SPIFFS files, settings it to 1 saves about 1k heap. (#2167)
  • Fix UART pins setting (#2098)
  • Fix ESP.getSketchSize, add ESP.getSketchMD5 (#2158)
  • Add Serial.baudRate() to get current baud rate (#2079)

Libraries

  • SNI support in WiFiClientSecure (#1285)
  • HTTPClient: return error when HTTPClient::begin is called with HTTPS URL without certificate fingerprint (#1941)
  • HTTPClient: fix default port not being set
  • HTTPClient: fix handling of chunked transfer encoding (#1975)
  • ESP8266SSDP: switch SSDP send arguments around
  • ESP8266WiFi: fix UdpContext::peek to return int (#1946)
  • ESP8266WiFi: fix WiFiSleepType_t values to match SDK ones
  • LwIP: use gcc-built LwIP by default (#1926)
  • LwIP: fix crash in igmp_start_timer (#1826)
  • HTTPClient: include non-standard ports in Host: header
  • ESP8266WiFi: Prevent WiFi config corruption (#1997 #1856 #1699 #1675)
  • GDBStub: fix section attribute for core gdbstub functions
  • Wire: I2C bus reset with info to user
  • ESP8266HTTPClient: allow HTTP header value without LWS
  • ESP8266mDNS: Fix mDNS doesn't accept queryService responses from avahi-daemon (#2015)
  • Add MFRC522 to supported libraries (#2044)
  • Update axTLS to ab516f7 (1.5.3+)
  • Mention ESP8266Ping library
  • ESP8266HTTPClient: fix duplicate Content-Length headers (#1902)
  • ESP8266HTTPUpdateServer: make HTTP Update Server more secure (#2104)
  • ESP8266WiFi: add virtual destructor to WiFiServer class (#2116)
  • ESP8266WiFi: fix error when calling WiFiServer::close more than once
  • ESP8266WiFi: WiFi event handling refactoring (#2119)
  • ESP8266mDNS: restart listening when WiFi STA is connected/disconnected (#1828)
  • ESP8266WiFi: allow DHCP client to be re-enabled using WiFi.config(0U, 0U, 0U) (#1896)
  • ESP8266WiFi: enable SO_REUSE in LwIP and WiFiServer (#1431)
  • ESP8266WebServer: make ESP8266WebServer::urlDecode public (#1419)
  • LwIP: sntp_localtime: return -1 in tm_isdst field (#2010)
  • ESP8266WiFi: fix for crash in WiFiClientSecure when WiFi is disconnected (#2139)
  • SD: Prevent WDT resets in SD library (#1815)
  • ESP8266WiFi: Fix issue when WiFi.begin(ssid, pass) is called right after WiFi.mode(WIFI_OFF)

Tools

  • Python 3 compatibility for get.py
  • Device side test library and test runner
  • Fix ARM toolchain files permissions (#2004)
  • Update esptool to 0.4.9
Pre-release

@igrr igrr released this Jun 24, 2016 · 582 commits to master since this release

Assets 4

Core

  • Add option to keep FS classes in namespace (#2030)
  • Add SPIFFS::end (#1657)
  • Add ArduinoOTA::getHostname() interface
  • Add __throw_out_of_range
  • Add support for RTC user memory in ESP-specific APIs. (#1836)
  • Expose RTC_USER_MEM in esp8266_peri.h
  • Remove DISABLED macro (#2072)
  • Execute global constructors in correct order (#2074)
  • Real board name available in Sketch/MDNS/OTA (#2054)
  • Add DOUT/QOUT flash modes
  • Add ESP8285 entry in boards menu
  • Move timer detachInterrupt functions into IRAM (#2083)
  • Make Updater be able to run inside async callbacks (#2096)
  • Add new boards Phoenix 1.0 & Phoenix 2.0 (#2088)
  • Store git version of the core in the compiled binary (#2099)
  • Rebuild libstdc++ with mlongcalls and link against it (#1983)
  • Add mechanism for posting functions to the main loop (#2082)
  • MD5Builder::addStream: fixed falsy calculated hash for len > filelength (#2126)
  • Fix SPIFFS.openDir("") (#2143)
  • Bring back old semantics to random and randomSeed, add secureRandom (#1710) (#2142)

Libraries

  • Wire: I2C bus reset with info to user
  • ESP8266HTTPClient: allow HTTP header value without LWS
  • ESP8266mDNS: Fix mDNS doesn't accept queryService responses from avahi-daemon (#2015)
  • Add MFRC522 to supported libraries (#2044)
  • Update axTLS to ab516f7 (1.5.3+)
  • Mention ESP8266Ping library
  • ESP8266HTTPClient: fix duplicate Content-Length headers (#1902)
  • ESP8266HTTPUpdateServer: make HTTP Update Server more secure (#2104)
  • ESP8266WiFi: add virtual destructor to WiFiServer class (#2116)
  • ESP8266WiFi: fix error when calling WiFiServer::close more than once
  • ESP8266WiFi: WiFi event handling refactoring (#2119)
  • ESP8266mDNS: restart listening when WiFi STA is connected/disconnected (#1828)
  • ESP8266WiFi: allow DHCP client to be re-enabled using WiFi.config(0U, 0U, 0U) (#1896)
  • ESP8266WiFi: enable SO_REUSE in LwIP and WiFiServer (#1431)
  • ESP8266WebServer: make ESP8266WebServer::urlDecode public (#1419)
  • LwIP: sntp_localtime: return -1 in tm_isdst field (#2010)
  • ESP8266WiFi: fix for crash in WiFiClientSecure when WiFi is disconnected (#2139)
  • SD: Prevent WDT resets in SD library (#1815)
  • ESP8266WiFi: Fix issue when WiFi.begin(ssid, pass) is called right after WiFi.mode(WIFI_OFF)
Pre-release

@igrr igrr released this May 11, 2016 · 641 commits to master since this release

Assets 4

Core

  • Fix NMI interrupt handler alignment
  • Update SDK to 1.5.3
  • umm_malloc: print block start address before heap corruption callback is triggered
  • If GDBStub library is used, break into gdb on assert and panic

Libraries

  • SNI support in WiFiClientSecure (#1285)
  • Update axTLS to 139914f
  • HTTPClient: return error when HTTPClient::begin is called with HTTPS URL without certificate fingerprint (#1941)
  • HTTPClient: fix default port not being set
  • HTTPClient: fix handling of chunked transfer encoding (#1975)
  • ESP8266SSDP: switch SSDP send arguments around
  • ESP8266WiFi: fix UdpContext::peek to return int (#1946)
  • ESP8266WiFi: fix WiFiSleepType_t values to match SDK ones
  • LwIP: use gcc-built LwIP by default (#1926)
  • LwIP: fix crash in igmp_start_timer (#1826)
  • HTTPClient: include non-standard ports in Host: header
  • ESP8266WiFi: Prevent WiFi config corruption (#1997 #1856 #1699 #1675)
  • GDBStub: fix section attribute for core gdbstub functions

Tools

  • Python 3 compatibility for get.py
  • Device side test library and test runner
  • Fix ARM toolchain files permissions (#2004)

@igrr igrr released this Apr 18, 2016 · 680 commits to master since this release

Assets 4

Core

  • Leverage realloc() in String::changeBuffer()
  • Clean up core files
  • Add host side tests
  • Fix possible null pointer in umm_malloc
  • Remove "Upload Using" option from Tools menu
  • Move attachInterrupt and detachInterrupt into IRAM (#1734)
  • Implement strstr_P
  • Allow indefinite duration for tone()
  • Fix crashes when using tone()
  • Fix RF_MODE and ADC_MODE
  • Move micros, delayMicroseconds, millis to IRAM (#1326)
  • Fix pulseIn (#1072, #1149)
  • Accept both named constant and ADC channel number in analogRead (#1766)
  • Enable heap poisoning only when debug options are enabled (#1800)
  • Bootloader: don't touch RTC memory if it doesn't contain a valid command (#619)
  • Update SDK to 1.5.2 (#1653)
  • Clean up variants, fix digitalPinHasPWM definition (#1831)
  • Don't set RF mode on boot unless it was overridden
  • Change build.board property for boards which renumber pins like NodeMCU (#1878)
  • Fix Exception 2 when using printf or vprintf

Libraries

  • Update axTLS to 5b4be7d
  • WiFiClientSecure: implement connection timeout, fix connected method behavior
  • WiFiClient: fix write behavior when connection is closed by remote side
  • ESP8266HTTPServer: add font MIME types, fix #1601
  • ESP8266mDNS: add client support
  • Update SPIFFS to 82aeac6
  • Servo: move some functions into IRAM (#1742)
  • Update SoftwareSerial to version 3.1.0
  • ESP8266SSDP: change templates to include deviceType
  • ESP8266WebServer: handle more file types
  • SPI: add CPOL setting
  • ESP8266WebServer: Fix buffer overflow in ESP8266WebServer::authenticate (#1790)
  • ESP8266WiFi: fix undefined behavior in WiFiServer::setNoDelay (#1695)
  • Servo: use peripheral clock frequency when calculating FRC1 tick count (#1789)
  • ESP8266WiFi: avoid multiple instances of INADDR_NONE
  • Add LwIP binary built with gcc
  • ESP8266WiFi: Allow PSK instead of passphrase in WiFiSTA::begin
  • SPI: Fix SPI.transfer16() using wrong endianness
  • HTTPClient: decouple transport layer handling + save some RAM
  • ESP8266httpUpdate: decouple HTTPS overloads + save some RAM
  • Update and move lwIP headers, add options to use different lwIP build
  • ESP8266WebServer: wait for data to arrive
  • ESP8266WebServer: save RAM by moving response strings to flash (#1732)
  • SPI: Speed up SPI.writePattern()

Tools

  • Add ARM tools (#269)
Pre-release

@igrr igrr released this Apr 13, 2016 · 695 commits to master since this release

Assets 3

2.2.0-rc1