Skip to content

Releases: earlephilhower/arduino-pico

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)

Release 3.6.1 - New boards and bugfixes

22 Nov 16:08
Compare
Choose a tag to compare

Overview

No major updates, just lots of little bug fixes and clean ups.

Note: Release 3.6.1 is a minor toolchain update. Be sure to run ./tools/get.py to download updates if you're using git master under Windows or Mac!

New Boards

  • Added Degz Suibo RP2040 board (#1828)
  • Added RP2040-Eins board (#1804)
  • Add RAKwireless RAK11300 (#1802)
  • Add Sea-Picro board (#1784)

Core

  • Add rp2040.getStackPointer and getFreeStack (#1816)
  • Allow full 8K stack for both cores, optionally (#1750)
  • Add Serial.dtr() and Serial.rts() methods (#1779)
  • Clear dirty flag after committing EEPROM to flash (#1776)
  • Allow changing USB HID poll rate (#1771)

Bluetooth/BLE

  • Avoid infinite loop in BLE HID send (#1834)
  • Add debugging for Bluetooth (#1767)

FreeRTOS

  • Avoid memory allocation in Ethernet callbacks causing hang on FreeRTOS for PicoW or wired Ethernet (#1815)

I2S

  • Allow MCLK multiplier to be set on all I2S devices (#1813)

Wired Ethernet (WIZnet w5500, w5100, ENC28J60)

  • Protect W5500/ENC28J60 isLinked from interrupt (#1805)

SPI / Wire

  • Adding capability to enable timeout for I2C (#1793)
  • Avoid calling spi_set_format during transactions (#1762)
  • Avoid calling spi_set_format during SPI transfers (#1762)
  • Don't break transfer16 into 2 8-bit CS periods (#1764)

Toolchain Cleanup

  • Fix picotool path for Windows and Mac (#1836)
  • Handled already mounted disk on Linux for uploads. (#1797)
  • Use __attribute((weak)) for _write() and other stubs called by newlib, so that sketch and library code can provide non-stub implementations (#1777)

Release 3.6.0 - Wired Ethernet, SPI, BLE multi-device, GDB-on-Windows fixes

23 Sep 00:53
Compare
Choose a tag to compare

Overview

Lots of new features this release:

  • Full, native support for wired Ethernet adapters on the Pico. All classes like WebServer and HTTPClient and ArduinoOTA can be used just as they are used on the Pico W.
  • SPI transactions and SPISlave added
  • Bluetooth BLE HID devices can co-exist (i.e. keyboard + mouse)

Note: Release 3.6.x is a minor toolchain update. Be sure to run ./tools/get.py to download updates if you're using git master under Windows!

Wired Ethernet (WIZnet w5500, w5100, ENC28J60)

  • Allow Ethernet devices on SPI1 (#1725)
  • Add WIZnet W5100S-EVB-Pico docs (#1713)
  • Fallthrough LWIP mutex on PicoW wired Ethernet (#1712)
  • Support wired network interfaces (W5500, W5100, ENC28J60) (#1703)

SPI

  • Add SPISlave class (#1717)
  • Protect SPI transaction start/end from race conditions (#1715)
  • Support IRQ disabled SPI transactions (#1714)

Bluetooth/BLE

  • BLE HID composite device support (#1587)

Toolchain Cleanup

  • Fix Windows GDB startup with new toolchain binary (#1726)
  • Avoid spurious GCC 7.x warning in platform.io builds (#1709)
  • Add BOOTSEL documentation (#1722)

Release 3.5.0 - Minor toolchain bump for Platform.IO

13 Sep 20:17
Compare
Choose a tag to compare

Note: Release 3.5.x is a minor toolchain update. Be sure to run ./tools/get.py to download updates if you're using git master!

  • GCC is still at 12.3, but GDB has been bumped up to 13.2 to avoid a bug in 12.x GDB and Win32.
  • One minor linker change was added to hide a new spurious binutils-GDB-13.2-release warning.
  • There should be no functional changes other than this fix since GCC is still the same as in the 3.4.x releases.

Toolchain Cleanup

  • GDB/Binutils release-gdb-13.2, GCC still 12.3 (#1706)

New Boards

  • Pin definitions for Pimoroni Tiny 2040 (#1699)

Release 3.4.1 - Toolchain cleanup, minor bug fixes

05 Sep 21:19
Compare
Choose a tag to compare

Note Release 3.4.x is a major toolchain update. Be sure to run ./tools/get.py to download updates if you're using git master!

Toolchain Cleanup

  • Rebuild OTA using GCC 12.3 (#1690)
  • Fix gcc search path in make-ota.sh (#1688)
  • Rebuild libpico/libbearssl using GCC 12.3 (#1686)
  • Avoid obsolete GCC 7.1 note on building WiFi (#1684)

PicoProbe Debugging

  • Fix PicoProbe CMSIS restart of second core (#1689)

Miscellaneous bug fixes

  • Fix Print::print(0ULL) (#1692)
  • Ensure HID reports aren't dropped (#1685)