Skip to content

Releases: earlephilhower/arduino-pico

Release 3.9.2 - OTA hotfix

05 Jun 19:09
Compare
Choose a tag to compare

Overview

OTA hotfix. In 3.9.1 the app would write a LFS-2.6 format filesystem on flash, but the OTA bootloader was only compatible with the original format and so could never actually read any OTA updates. This hotfix rebuilds the OTA bootloader with LFS-2.6 (and original LFS) format support.

Lots of updates, but nothing that should break existing code.

OTA

  • Rebuild OTA bootloader for newer LittleFS version (#2199)
  • Clean up OTA example references to ESP8266 (#2200)

LittleFS Updates

Big upgrade to LittleFS, to version 2.9.3. This version is backwards compatible with the 2.5.1 we were using but will update the on-flash format after the first mount. The filename limitation of 32 characters has also been removed.

  • Move to LittleFS 2.9.3. (#2193)
  • Make LittleFS filenames support full 255 chars (#2192)

Webserver and other ESP32-borrowed fixes

Lots of patches migrated from the ESP32, with new support for cookies in the HTTP client.

  • Allow uploading huge files to WebServer (#2180)
  • Small RAM savings (128b) in WebServer (#2178)
  • Add Cookies to HTTPClient (#2186)
  • Webserver Ignore extra headers in multipart forms (#2184)
  • HTTPClient - Fix case sensitivity for header keys (#2185)
  • Fix POST form parser edge cases (#2182)
  • Fix AdvancedWebServer.ino uptime conversion (#2183)

Bluetooth classic master mode (connect to keyboard/mouse)

  • Bluetooth Master HID and musical keyboard example (#2195)
  • Split out BluetoothHCI for shared usage (#2194)

BluetoothAudio crash fix and new features

  • Add track info support for BT audio sink (#2190)
  • Fix crash on audio end from IRQ, refactor A2DP (#2189)
  • Allow setting SerialBT advertised name (#2181)

Miscellaneous

LWIP can now be allocated 2x the normal memory for cases where performance demands it. In normal operation this is very unlikely.

  • Fix folder name for Archi board (#2191)
  • Add double-mem LWIP option (#2187)
  • Add "Needs Bluetooth" compile warning (#2197)

Release 3.9.1 - LittleFS update, Bluetooth Master and fixes, ESP32 web fixes

04 Jun 21:55
Compare
Choose a tag to compare

Overview

Lots of updates, but nothing that should break existing code.

LittleFS Updates

Big upgrade to LittleFS, to version 2.9.3. This version is backwards compatible with the 2.5.1 we were using but will update the on-flash format after the first mount. The filename limitation of 32 characters has also been removed.

  • Move to LittleFS 2.9.3. (#2193)
  • Make LittleFS filenames support full 255 chars (#2192)

Webserver and other ESP32-borrowed fixes

Lots of patches migrated from the ESP32, with new support for cookies in the HTTP client.

  • Allow uploading huge files to WebServer (#2180)
  • Small RAM savings (128b) in WebServer (#2178)
  • Add Cookies to HTTPClient (#2186)
  • Webserver Ignore extra headers in multipart forms (#2184)
  • HTTPClient - Fix case sensitivity for header keys (#2185)
  • Fix POST form parser edge cases (#2182)
  • Fix AdvancedWebServer.ino uptime conversion (#2183)

Bluetooth classic master mode (connect to keyboard/mouse)

  • Bluetooth Master HID and musical keyboard example (#2195)
  • Split out BluetoothHCI for shared usage (#2194)

BluetoothAudio crash fix and new features

  • Add track info support for BT audio sink (#2190)
  • Fix crash on audio end from IRQ, refactor A2DP (#2189)
  • Allow setting SerialBT advertised name (#2181)

Miscellaneous

LWIP can now be allocated 2x the normal memory for cases where performance demands it. In normal operation this is very unlikely.

  • Fix folder name for Archi board (#2191)
  • Add double-mem LWIP option (#2187)

Release 3.9.0 - Bluetooth Audio (A2DP), DMA/async SPI and Wire, Bug fixes

29 May 21:56
Compare
Choose a tag to compare

Overview

New functionality for DMA-driven, asynchronous Wire and SPI operations. Update SPI displays or I2C peripherals without busy-waiting on them.

New functionality for Bluetooth audio (A2DP). A2DP Source (output) and A2DP Sink (input) supported with examples.

LWIP crash-on-ping-response fixed, and checksum operations sped up.

Bluetooth

  • Add A2DP sink (speaker) support (#2177)
  • Add Bluetooth audio out (A2DP) on the PicoW (#2174)

Asynchronous I/O (DMA-driven)

  • Add asynchronous I2C read and write operations (#2167)
  • Add asynchronous SPI transactions (#2168)

Networking (LWIP)

  • Use custom LWIP checksum for ~13% faster checksums (#2172)
  • Fix LWIP crash on unexpected ping packets (#2159)
  • Protect againt calling LWIP_Ethernet::begin twice (#2158)

SDFS speedup

  • Update SDFat to use array transfers (#2164)

New boards and minor changes

  • Add Newsan Archi board (#2169)
  • Add SPI::setMOSI/setMISO, better match pin names (#2166)
  • Fix StaticMulticore-FreeRTOS.ino (#2161)

Release 3.8.1 - FreeRTOS and I2S fixes, new WiFi chip support

13 May 19:17
Compare
Choose a tag to compare

Overview

Minor bug fix update with new WiFi chip support (ATWINC1500), I2S input correction, and an important FreeRTOS update to avoid crashes while using WiFi/Ethernet.

FreeRTOS (Networking) Bug Fixes

  • FreeRTOS: Disable IRQs when task switching disabled (#2155)

New WiFi Chip Support / Ethernet

  • Add lwIP_WINC1500 - new WiFi driver for ATWINC1500 (#2140)
  • Ethernet legacy API compatibility layer (#2147)

I2S, PDM Fixes and Additions

  • Avoid swapping L/R channels on I2S input (#2124)
  • Shift I2S input data by 1 bit (#2121)
  • Add functions to set PDM pins, remove unused pwrPin (#2133)

BTStackLib Updates

  • BTstack: remove superfluous call during setup. (#2137)
  • BTstack: added function to set scan respone data. (#2134)

Miscellaneous

  • Fix PID specification for arduino-cli (#2157)
  • Update to latest Joystick upstream (#2138)
  • Add missing JSON files for new boards (#2125)

Release 3.8.0 - Onboard FAT+USB, networking fixes, new boards

22 Apr 15:08
Compare
Choose a tag to compare

Overview

Normal update with a new "USB-stick" mode support with FAT using the onboard flash with a FTL to level wear (or raw 4K sectors). Your Pico can now be the world's slowest USB drive! Makes it easy to transfer data to/from the device over USB.

Several networking fixes for interrupt-mode operation, important to avoid hard to reproduce crashes.

Onboard flash FAT filesystem

  • Add FatFS and FatFSUSB - Wear-Leveled FTL based FAT filesystem for onboard flash (#2028)

Networking updates

  • Protect W5500/ENC28J60 isLinked() call from IRQ (#2115)
  • Add WiFi::beginNoBlock() (#2063)
  • LwipIntfDev - linkStatus added (#2081)
  • lwIP_enc28j60 - add missing end() method (#2055)
  • Enable interrupt-mode for lwIP_ESPHost (#2036)
  • Add RawDev::interruptMode (#2042)

New boards

  • Add Waveshare RP2050-PiZero
  • Add Waveshare RP2040 Matrix (#2113)
  • Add Olimex RP2040-Pico30 (#2112)
  • Add Sparkfun RP2040 MicroMod (#2111)

Misc updates

  • Set creation time on LittleFS directory creation (#2108)
  • Update to Adafruit TinyUSB 3.1.3 (#2043)
  • Update to SDFat 2.2.2 release (#2079)
  • Add native text to TinyUSB Host menu option (#2098)
  • Add 128MHz frequency (#2069)
  • Unswap CTS/RTS enable on SeriaUART (#2052)
  • Use passed-in SPI on SD.end(true) (#2040)

Release 3.7.2 - FreeRTOS + PicoW hotfix

16 Feb 21:16
Compare
Choose a tag to compare

Overview

Important fix for FreeRTOS that avoids a crash on startup that was only present on the Pico-W.

FreeRTOS + PicoW crash fix

  • Can't call get_rand_64 under FreeRTOS (#2004)

ESP32 WiFi.begin() fix

  • Fix ESPHost WiFi connect without a specified BSSID (#2007)

Misc

  • Update Windows Picotool blob pointers (#2009)
  • Clean up WIFI local variable MAC size (#2006)

Release 3.7.1 - FreeRTOS, PWMAudio, Ethernet improvements

12 Feb 19:20
Compare
Choose a tag to compare

Overview

General bug fix and quality of life improvements.

FreeRTOS important fix

  • Undo FreeRTOS idleOtherCore changes (#1992)

ESPHost (ESP32) WiFi

  • Fix WiFiMulti and ESPhost STA connection w/BSSID (#2001)
  • Fix warning in lwip_ESPHost, add to styler (#1998)

Wired Ethernet latency reduction and performance improvement

  • Add W5100, W5500, and ECN28J60 interrupt-driven mode (#1986)
  • Make W5100 example run on Wiznet w/no changes (#1994)

PWMAudio buzz reduction

  • PWMAudio low bitrate whine fix (DMA pacing timer) (#1996)

Release 3.7.0 - ESP32 WiFi, wired Ethernet fixes, Apple M1 native binaries

02 Feb 17:19
Compare
Choose a tag to compare

Overview

An Apple M1 native toolchain is now included, no more need for Rosetta. Wired Ethernet has an important stability fix. Alpha support for ESP32-xx based WiFi included.

Apple M1/ARM

  • Make OpenOCD and Picotool M1 native, too (#1977)
  • Use ARM Python3 on M1 (#1976)
  • Fix Apple M1 installation, add to CI (#1975)
  • Add native Apple ARM silicon support (#1959)

LWIP/Wired Ethernet

  • Undo #1864, fix LWIP offline error (#1979)
  • lwIP_nodriver - end() compilation error fix (#1966)

ESP32-based WiFi

  • Add ESP32-based WiFi support via lwIP_ESPHost library (#1950)
  • WiFi - prepare for alternative drivers (#1935)

Boards

  • Adds iLabs RP2040 Connectivity (LTE/WIFI/BLE) board. (#1936)
  • Adding Dude's Cab board (#1933)
  • Change Maker UNO RP2040 to Maker Uno RP2040 and board name in README.md (#1924)
  • Fixed incorrect pinout for SPI interface. (#1951)

Misc

  • Fix initial SPI startup (#1970)
  • Skip SPI re-init if clock frequency doesn't change (#1934)
  • Add TZ.h database, borrowed from ESP8266 core (#1947)

Release 3.6.3 - USB Host Mode, AP mode fixes, Mac Picotool/OpenOCD improvements

04 Jan 02:10
Compare
Choose a tag to compare

Overview

Adds support for Adafruit TinyUSB Host Mode thanks to @hathach. Bundles and uses USB dylibs on Mac for OpenOCD and Picotool, letting them run on Apple M1/2/3 silicon and not needing any Homebrew prerequisites on Mac-on-Intel.

USB

  • Support native USB as host (#1910)

Mac Support

  • Update Mac Picotool/OpenOCD to use bundled dylibs (#1922)

WiFi and Ethernet

  • Set AP IP address on ::beginAP
  • Minor LWIPEthernet cleanup (#1906)
  • Use SW random generator for all LWIP (#1892)

Miscellaneous

  • Adds definition for WIRE_INTERFACES_COUNT #1182 (#1921)
  • Updated listfiles example and added CardInfo example (#1914)
  • Add variants_dir support to pio build, allowing local variants in project repos (#1911)
  • Correct calculation of totalBlocks() in SD.h and SDFS.h (#1899)
  • Clean up FreeRTOS header, include add'l APIs (#1891)

Release 3.6.2 - SPI and FreeRTOS bug fixes

06 Dec 17:58
Compare
Choose a tag to compare

Overview

Important bug fixes for SPI 16-bit transfers and FreeRTOS + WiFi users.

FreeRTOS bug fixes

  • Avoid freezeing the core from LWIP under FreeRTOS (#1884)
  • Add documentation about MDNS + FreeRTOS = crash (#1880)
  • Replace std::bind in MDNSResponder for UDP context (#1875)
  • Enable interrupts last when resuming other core (#1872)
  • Disable interrupts first when idling core (#1883)

SPI bug fixes

  • Fix SPI 16-bit transfers (#1882)
  • Fix SPI debug print warning (#1881)
  • Only create SPI/Wire instances if variant defined (#1842)

WiFi/Ethernet modernization and clean up

  • WiFiServer modernization (#1871)
  • Remove IPv6 compile warning (#1867)
  • LwipIntfDev - disconnect()/end() should not clear static IP settings (#1866)
  • Remove unneeded intermediate async for Ethernet (#1864)
  • WiFi and Ethernet - config static IP auto gw,mask,dns as in Arduino libs (#1862)
  • LwipIntfDev - hostByName default value for the timeout parameter (#1858)
  • wl_defintions.h wl_enc_type update (#1859)
  • LwipIntfDev - added macAddress getter and DNS IP getter and setter (#1856)
  • Added clearAPList method to WiFiMulti (#1848)

New board

  • Add new board variant: Cytron Maker UNO RP2040 (#1838)