Skip to content

Releases: earlephilhower/arduino-pico

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)

Release 3.4.0 - Toolchain update to GCC 12.3, I2S fixes

30 Aug 15:37
Compare
Choose a tag to compare

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)

I2S

  • Add TDM support to I2S (#1673)
  • Fix I2S stop/start race condition #1656 (#1659)

New Boards

  • Added RP2040-ProMini board to the project. (#1674)
  • Add Pimoroni Tiny2040 (#1672)

Misc

  • Add stdint.h to generic variant common.h (#1677)
  • Allow re-setting identical pins without panic() (#1655)
  • Make MDNS compile with IPv6 enabled (#1651)
  • SPI debugging: tiny fix & log actual baudrate (#1641)

Release 3.3.2 - WiFi hang fix, Serial updates, New boards

05 Aug 00:15
Compare
Choose a tag to compare

Important bug fix for WiFi under high load and a workaround for USB serial applications that don't set DTR properly.

WiFi

  • Fix race condition between WiFi receive and consume (#1614)

Serial

  • Add SerialUSB::ignoreFlowControl() method (#1624)

New boards

  • Add new board Silicognition RP2040-Shim (#1623)
  • Add Adafruit Metro RP2040 (#1630)

Quality of life fixes

  • Update platform.txt to require auto-discovery and serial-monitor (#1631)
  • Fix PlatformIO intellisense (#1616)

Release 3.3.1 - General bug fixes, I2S updates

28 Jul 17:40
Compare
Choose a tag to compare

Minor bug fixes in lots of parts of the core and libraries, additional boards.

New boards

  • Add Challenger WiFi6/BLE5 board to the mix. (#1595)
  • Add Pimoroni Plasma RP2040 support (#1556)
  • Add ArtronShop RP2 Nano board (#1567)

Wire/I2C

  • Handle swapped Wire IRQs properly (#1608)

OTA

  • Fix FS upload crash (#1598)
  • Remove obsolete refs to ATOMIC_FS_UPDATE (#1597)

I2S/Audio

  • Add MCLK support for I2S, optimize clocks for jitter-free playback (#1555)
  • Fix: 'I2S::operator=(const I2S&)' is implicitly (#1588)
  • I2S: Don't consider _isHolding when it's an output (#1548)

SD/SDFS/SdFat

  • Ensure 64bit math for SD card FSInfo (#1553)

Debugging

  • BREAKING: Change default debug_script to cmsis-dap (#1565)

Release 3.3.0 - Pico SDK 1.5.1, I2S, and WebServer updates

18 Jun 02:47
Compare
Choose a tag to compare

Update to the latest Pico SDK, version 1.5.1, with a smaller TinyUSB installation and some Bluetooth bugfixes. Several minor I2S and audio related fixes when I2S is started and stopped multiple times.

Upgrades

  • Update to Pico-SDK 1.5.1 (#1539)

I2S / Audio

  • Addition ABM checks in PWMAudio and ADCInput (#1530)
  • I2S check for failure of ARB and PIO allocation (#1528)
  • Call I2S::end() in I2S destructor (#1527)
  • Fix for invalid __channelCount in ~AudioBufferManager() (#1519)
  • Enable proper reuse of PIO programs (#1526)

Other fixes and updates

  • Linker tweaks for RAM-resident PicoDVI library functions (#1541)
  • WebServer: Solve HTTP request delay by dropping idle connections (#1537)
  • Add rebootToBootloader to reboot to bootloader from code (#1514)

Release 3.2.2 - More important FreeRTOS and I2S fixes

08 Jun 01:13
Compare
Choose a tag to compare

Some important FreeRTOS bug fixes and quality of life improvements, plus a major I2S correction eliminating clicking audio.

FreeRTOS

  • CoreMutex add portYieldFromISR for FreeRTOS (#1484)
  • Fix CoreMutex FreeRTOS ISR logic (#1510)
  • Fix serial reset hang under FreeRTOS (#1495)

I2S

  • AudioBufferManager(I2s, PWMAudio, ADCInput) clicking fix (#1500)
  • AudioBufferManager: Make dma_claim_unused_channel() not panic (#1487)
  • I2S::available/availableForWrite() returns bytes (#1499) (#1496)
  • Add I2S::getOverUnderflow() (#1497)

Other fixes and update

  • Update to Adafruit TinyUSB 2.2.1 (#1511)
  • Added BT setup overload to pass name. (#1483)
  • Implement the BD_ADDR(char * address_string) constructor. (#1440)

Release 3.2.1 - FreeRTOS and I2S bug fixes, misc updates

24 May 01:04
Compare
Choose a tag to compare

Several important FreeRTOS bug fixes and update to latest upstream, minor I2S fix, and Adafruit Feather breaking change

Breaking changes

  • BREAKING: Swap Wire1 and Wire in Adafruit Feather (#1461)

FreeRTOS bug fixes and updates

  • Merge latest FreeRTOS/SMP upstream branch (#1449)
  • Clean up FreeRTOS, remove core freeze hacks (#1448)
  • Use real FreeRTOS tasks to idle core during flash (#1444)
  • Fix FreeRTOS CoreMutex shim to handle ISRs (#1442)

Minor bug fixes and updates

  • Fix I2S::write(const uint8_t *buffer, size_t size) (#1461)
  • BT Serial connection docs for Mac (#1459)
  • Add setInverted() options to SerialPIO (#1451)
  • Add dummy Serial implementation when NO_USB defined (#1438)
  • Generate warnings if Pico STDIO init called (#1467)

Release 3.2.0 - Boards, Platform.IO updates, minor bug fixes

05 May 16:07
Compare
Choose a tag to compare

Lots of minor bug fixes and updates to core and Platform.io

Bug fixes

  • Rename BTstack lib to BTstackLib (#1360)
  • Clear compile errors if BT needed but not on (#1371)
  • Fix USB Mouse/Joystick HID report ID (#1418)
  • Protect the HW random generation from FreeRTOS (#1395)
  • Fix USB crashes in FreeRTOS (#1419)
  • Don't delete first cert, taken from ESP8266 repo (#1392)
  • FreeRTOS compilation fix when no LED present (#1413)
  • Add PICO_FLASH_SIZE_BYTES define (#1414) (#1416)
  • Update to Adafruit_TinyUSB 2.1.0 (#1387)

Platform.IO updates

  • Support and Document pico-debug in PlatformIO (#1427)
  • Sync macros used in PlatformIO and platform.txt (#1386)
  • Enable BlackMagicProbe for PlatformIO (#1378)
  • Remove circular dependency on WiFi/LWIP_Ethernet (#1415)

New Boards

  • Add Feathers: CAN and Prop-Maker (#1421)
  • Add board Seeed Indicator RP2040 (#1375)