Releases: earlephilhower/arduino-pico
Release 3.7.2 - FreeRTOS + PicoW hotfix
Release 3.7.1 - FreeRTOS, PWMAudio, Ethernet improvements
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
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
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
Release 3.6.3 - USB Host Mode, AP mode fixes, Mac Picotool/OpenOCD improvements
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
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
inMDNSResponder
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
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
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
Release 3.6.0 - Wired Ethernet, SPI, BLE multi-device, GDB-on-Windows fixes
Overview
Lots of new features this release:
- Full, native support for wired Ethernet adapters on the Pico. All classes like
WebServer
andHTTPClient
andArduinoOTA
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
Release 3.5.0 - Minor toolchain bump for Platform.IO
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
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
Release 3.4.0 - Toolchain update to GCC 12.3, I2S fixes
Major toolchain update, be sure to run ./tools/get.py
to download updates if you're using git master
!
Important Notes
- GCC 12.3 fixes several internal compiler errors present in 10.x that were noted in other projects.
- GDB was also updated to 12.0 to match the GCC version
- Picotool was moved to the latest release
- OpenOCD moved to 0.12 which drops support for legacy Picoprobe (non-CMSIS_DAP) because Raspberry Pi no longer supports that mode. Update your Picoprobes to the latest CMSIS_DAP version from Raspberry Pi to continue using them.
Toolchain
- GCC 12.3, GDB 12, OpenOCD 0.12, Picotool 1.1.2 (#1670)