Releases: earlephilhower/arduino-pico
Release 3.9.5 - Wrap up before the new SDK and chip support
Overview
Minor update with some additional features and bug fixes, before the jump to Pico-SDK 2.0.0 and addition of support for the new Pico2/RP2350.
BT/BLE Joystick Fixes
- Fix BT/BLE Joystick reports (#2293)
New Features
- Add RP2040.memcpyDMA for DMA-managed memory copies (#2324)
Libraries and Documentation
- Minor BearSSL changes for 8266/upstream (#2323)
- Add checks for Adafruit TinyUSB to USB libs (#2319)
- Fix minor LWIP wrapper errors (#2310)
- LwIpIntfDev.end() check _started to prevent crash (#2304)
- Factor out cut-n-pasted GAMEPAD16 HID structures (#2302)
- Fix HTTPClient debug output (#2300)
- Rename Picoprobe upload to DebugProbe new name (#2298)
Release 3.9.4 - New boards, libraries
Overview
Lots of new boards added, as well as a Ticker library for periodic tasks (instead of needing to use the low-level SDK calls). General bug fixes as well.
New Boards/Board Specific Fixes
- Add Pintronix PinMax board (#2286)
- Add 4 Amken boards (#2283)
- Add board BridgeTek IDM2040-43A (#2246)
- Add board EVN Alpha (#2263)
- Fix D pin mapping on Adafruit IB/Feather RP2040 (#2259)
FreeRTOS
- FreeRTOS/Arduino header include fix (#2288)
- Add FreeRTOS functionality tests (#2257)
- Update to latest FreeRTOS main, not SMP branch (#2250)
Ticker Library
USB/Bluetooth/HID Device
- Add true 10- and 16-bit joystick modes (#2276)
- Avoid deadlock BT/LE HID send when disconnected (#2252)
- Receive GATT characteristic updates in BTStackLib (#2241)
WiFi/WebServer
- Fix timeout in WebServer::_uploadReadByte and handleClient() (#2290)
- Fix leak in HTTPSClient (#2256)
Core Bug Fixes
Release 3.9.3
Overview
Multiple new boards were added, alongside several Bluetooth updates (BLE support for the HID Master so you can use BLE mice for input to the PicoW; BT Classic and BLE Joystick input support, and documentation) and some WiFi updates for Windows name resolution and more powerful Webserver
abstractions. TinyUSB moved to the latest release as well.
New Boards
- Add Adafruit Adalogger Feather (#2229)
- Add METE HOCA Akana R1 (#2230)
- Added Raspberry Breadstick (#2205)
- Add GroundStudio Marble Pico board (#2203)
WiFi
- Add AsyncUDP and simple NetBIOS name lookup server (#2234)
- Webserver: Add support for filters and removable routes (#2225)
SD card access
- Fix crash on SD.end() without initial SD.begin() (#2222)
Bluetooth Audio and HID
- Avoid malloc/free while in HCI callbacks (#2219)
- For consistency, BTHID Joypad->Joystick (#2218)
- Add basic A2DP BluetoothAudio documentation (#2217)
- Add BluetoothHIDMaster documentation (#2216)
- Add joypad HID master support (#2214)
- Add BLE support to BluetoothHIDMaster (#2208)
- Use block writes for BT audio consumers (#2204)
Audio
- Fix PWMAudio::write(buffer, len) (#2202)
Miscellaneous
Release 3.9.2 - OTA hotfix
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.
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.
Release 3.9.1 - LittleFS update, Bluetooth Master and fixes, ESP32 web fixes
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.
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.
Release 3.9.0 - Bluetooth Audio (A2DP), DMA/async SPI and Wire, Bug fixes
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
Asynchronous I/O (DMA-driven)
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
Release 3.8.1 - FreeRTOS and I2S fixes, new WiFi chip support
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
Release 3.8.0 - Onboard FAT+USB, networking fixes, new boards
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
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)