From 0d192e8334c47c7ce47f28d779dc85181ce86175 Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Wed, 5 Aug 2026 20:21:35 -0500 Subject: [PATCH] [rp2] Bump arduino-pico framework to 6.0.0 (#18101) Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> --- esphome/components/rp2/__init__.py | 20 ++++++--------- esphome/components/rp2/boards.py | 40 ++++++++++++++++++++++++++++-- esphome/core/defines.h | 2 +- platformio.ini | 7 +++--- 4 files changed, 51 insertions(+), 18 deletions(-) diff --git a/esphome/components/rp2/__init__.py b/esphome/components/rp2/__init__.py index 8bba6bc27d..1bf01e6828 100644 --- a/esphome/components/rp2/__init__.py +++ b/esphome/components/rp2/__init__.py @@ -173,15 +173,10 @@ def get_download_types(storage_json): def _format_framework_arduino_version(ver: cv.Version) -> str: - # The most recent releases have not been uploaded to platformio so grabbing them directly from - # the GitHub release is one path forward for now. + # The framework-arduinopico package is no longer published to the PlatformIO + # registry, so install the framework straight from the GitHub release return f"https://github.com/earlephilhower/arduino-pico/releases/download/{ver}/rp2040-{ver}.zip" - # format the given arduino (https://github.com/earlephilhower/arduino-pico/releases) version to - # a PIO earlephilhower/framework-arduinopico value - # List of package versions: https://api.registry.platformio.org/v3/packages/earlephilhower/tool/framework-arduinopico - # return f"~1.{ver.major}{ver.minor:02d}{ver.patch:02d}.0" - def _parse_platform_version(value): value = cv.string(value) @@ -198,19 +193,20 @@ def _parse_platform_version(value): # The default/recommended arduino framework version # - https://github.com/earlephilhower/arduino-pico/releases -# - https://api.registry.platformio.org/v3/packages/earlephilhower/tool/framework-arduinopico -RECOMMENDED_ARDUINO_FRAMEWORK_VERSION = cv.Version(5, 6, 1) +RECOMMENDED_ARDUINO_FRAMEWORK_VERSION = cv.Version(6, 0, 0) # The raspberrypi platform version to use for arduino frameworks # - https://github.com/maxgerhardt/platform-raspberrypi/tags -RECOMMENDED_ARDUINO_PLATFORM_VERSION = "v1.4.0-gcc14-arduinopico460" +# develop-branch commit carrying the arduino-pico 6.0.0 / pico-quick-toolchain +# 5.0.0 (GCC 16.1) update; replace with a release tag when one is cut +RECOMMENDED_ARDUINO_PLATFORM_VERSION = "9c167c6b8aac4f4cfa6d55a0c4e5b848795150c0" def _arduino_check_versions(value): value = value.copy() lookups = { - "dev": (cv.Version(5, 6, 1), "https://github.com/earlephilhower/arduino-pico"), - "latest": (cv.Version(5, 6, 1), None), + "dev": (cv.Version(6, 0, 0), "https://github.com/earlephilhower/arduino-pico"), + "latest": (cv.Version(6, 0, 0), None), "recommended": (RECOMMENDED_ARDUINO_FRAMEWORK_VERSION, None), } diff --git a/esphome/components/rp2/boards.py b/esphome/components/rp2/boards.py index 94d0ebbb60..149a719121 100644 --- a/esphome/components/rp2/boards.py +++ b/esphome/components/rp2/boards.py @@ -708,6 +708,19 @@ RP2_BOARD_PINS = { "SS": 17, "TX": 0, }, + "ilabs_cpico_2350": { + "LED": 25, + "MISO": 16, + "MOSI": 19, + "RX": 1, + "SCK": 18, + "SCL": 5, + "SCL1": 27, + "SDA": 4, + "SDA1": 26, + "SS": 17, + "TX": 0, + }, "ilabs_rpico32": { "MISO": 24, "MOSI": 23, @@ -1513,6 +1526,19 @@ RP2_BOARD_PINS = { "SS": 17, "TX": 0, }, + "weact_rp2350b": { + "LED": 25, + "MISO": 16, + "MOSI": 19, + "RX": 1, + "SCK": 18, + "SCL": 5, + "SCL1": 27, + "SDA": 4, + "SDA1": 26, + "SS": 17, + "TX": 0, + }, "wiznet_55rp20_evb_pico": { "LED": 19, "MISO": 2, @@ -1877,6 +1903,11 @@ BOARDS = { "mcu": "rp2040", "max_pin": 29, }, + "ilabs_cpico_2350": { + "name": "iLabs CPico 2350", + "mcu": "rp2350", + "max_pin": 47, + }, "ilabs_rpico32": { "name": "iLabs RPICO32", "mcu": "rp2040", @@ -1948,12 +1979,12 @@ BOARDS = { "max_pin": 29, }, "pcbcupid_glyph_2040": { - "name": "PCBCupid Glyph 2040", + "name": "Pcbcupid GLYPH 2040", "mcu": "rp2040", "max_pin": 29, }, "pcbcupid_glyph_mini_2040": { - "name": "PCBCupid Glyph Mini 2040", + "name": "Pcbcupid GLYPH MINI 2040", "mcu": "rp2040", "max_pin": 29, }, @@ -2258,6 +2289,11 @@ BOARDS = { "max_pin": 47, "wifi": True, }, + "weact_rp2350b": { + "name": "WeAct Studio RP2350B Core Board", + "mcu": "rp2350", + "max_pin": 47, + }, "wiznet_5100s_evb_pico": { "name": "WIZnet W5100S-EVB-Pico", "mcu": "rp2040", diff --git a/esphome/core/defines.h b/esphome/core/defines.h index 5ce87f8da5..75a92f8fce 100644 --- a/esphome/core/defines.h +++ b/esphome/core/defines.h @@ -455,7 +455,7 @@ // rp2/__init__.py codegen also defines USE_RP2040 as a back-compat alias // for external custom components that may still test for it. #ifdef USE_RP2 -#define USE_ARDUINO_VERSION_CODE VERSION_CODE(3, 3, 0) +#define USE_ARDUINO_VERSION_CODE VERSION_CODE(6, 0, 0) #define USE_RP2_CRASH_HANDLER #define USE_HTTP_REQUEST_RESPONSE #define USE_I2C diff --git a/platformio.ini b/platformio.ini index df5c22492c..adc1995440 100644 --- a/platformio.ini +++ b/platformio.ini @@ -203,10 +203,11 @@ extra_scripts = extends = common:arduino board_build.filesystem_size = 0.5m -platform = https://github.com/maxgerhardt/platform-raspberrypi.git#v1.4.0-gcc14-arduinopico460 +platform = https://github.com/maxgerhardt/platform-raspberrypi.git#9c167c6b8aac4f4cfa6d55a0c4e5b848795150c0 platform_packages = - ; earlephilhower/framework-arduinopico@~1.20602.0 ; Cannot use the platformio package until old releases stop getting deleted - earlephilhower/framework-arduinopico@https://github.com/earlephilhower/arduino-pico/releases/download/5.6.1/rp2040-5.6.1.zip + ; The framework-arduinopico package is no longer published to the PlatformIO + ; registry, so install the framework straight from the GitHub release + earlephilhower/framework-arduinopico@https://github.com/earlephilhower/arduino-pico/releases/download/6.0.0/rp2040-6.0.0.zip framework = arduino lib_deps =