From e1c6065f2627592756e47a91ab5ec8e0bab6f51d Mon Sep 17 00:00:00 2001 From: jjsch-dev Date: Wed, 16 Nov 2022 13:11:38 -0300 Subject: [PATCH 1/2] add int pin and macro check for Raspberry Pi Pico and W --- utility/direct_pin_read.h | 2 +- utility/interrupt_pins.h | 29 +++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/utility/direct_pin_read.h b/utility/direct_pin_read.h index 2eaf2f8..598dd2d 100644 --- a/utility/direct_pin_read.h +++ b/utility/direct_pin_read.h @@ -79,7 +79,7 @@ #define PIN_TO_BITMASK(pin) digitalPinToPinName(pin) #define DIRECT_PIN_READ(base, pin) nrf_gpio_pin_read(pin) -#elif defined(ARDUINO_NANO_RP2040_CONNECT) +#elif defined(ARDUINO_NANO_RP2040_CONNECT) || defined(ARDUINO_ARCH_RP2040) #define IO_REG_TYPE pin_size_t #define PIN_TO_BASEREG(pin) (0) #define PIN_TO_BITMASK(pin) pin diff --git a/utility/interrupt_pins.h b/utility/interrupt_pins.h index 8713911..dcbea0d 100644 --- a/utility/interrupt_pins.h +++ b/utility/interrupt_pins.h @@ -383,6 +383,35 @@ #define CORE_INT19_PIN 19 // #define CORE_INT20_PIN A6 // #define CORE_INT21_PIN A7 + +#elif defined(ARDUINO_RASPBERRY_PI_PICO) || defined(ARDUINO_RASPBERRY_PI_PICO_W) + #define CORE_NUM_INTERRUPT 26 + #define CORE_INT0_PIN 0 + #define CORE_INT1_PIN 1 + #define CORE_INT2_PIN 2 + #define CORE_INT3_PIN 3 + #define CORE_INT4_PIN 4 + #define CORE_INT5_PIN 5 + #define CORE_INT6_PIN 6 + #define CORE_INT7_PIN 7 + #define CORE_INT8_PIN 8 + #define CORE_INT9_PIN 9 + #define CORE_INT10_PIN 10 + #define CORE_INT11_PIN 11 + #define CORE_INT12_PIN 12 + #define CORE_INT13_PIN 13 + #define CORE_INT14_PIN 14 + #define CORE_INT15_PIN 15 + #define CORE_INT16_PIN 16 + #define CORE_INT17_PIN 17 + #define CORE_INT18_PIN 18 + #define CORE_INT19_PIN 19 + #define CORE_INT20_PIN 20 + #define CORE_INT21_PIN 21 + #define CORE_INT22_PIN 22 + #define CORE_INT26_PIN 26 + #define CORE_INT27_PIN 27 + #define CORE_INT28_PIN 28 #endif #endif From c44165b1248d9e8ed2ce3d2e79c5845f6fbb3e14 Mon Sep 17 00:00:00 2001 From: jjsch-dev Date: Tue, 2 Sep 2025 11:42:24 -0300 Subject: [PATCH 2/2] Add RP2350 (Pico 2) support for Arduino-Pico core MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Use ARDUINO_ARCH_RP2040 guard so code covers RP2040 and RP2350 - Expose 26 GPIO interrupt pins (0–25) like Pico/Pico W - Enable direct_pin_read for RP2350 via the same architecture guard --- utility/direct_pin_read.h | 3 ++- utility/interrupt_pins.h | 33 ++------------------------------- 2 files changed, 4 insertions(+), 32 deletions(-) diff --git a/utility/direct_pin_read.h b/utility/direct_pin_read.h index 598dd2d..b8c0fe3 100644 --- a/utility/direct_pin_read.h +++ b/utility/direct_pin_read.h @@ -79,7 +79,8 @@ #define PIN_TO_BITMASK(pin) digitalPinToPinName(pin) #define DIRECT_PIN_READ(base, pin) nrf_gpio_pin_read(pin) -#elif defined(ARDUINO_NANO_RP2040_CONNECT) || defined(ARDUINO_ARCH_RP2040) +#elif defined(ARDUINO_ARCH_RP2040) + // Covers RP2040 and RP2350 (Pico, Pico W, Pico 2, etc.) #define IO_REG_TYPE pin_size_t #define PIN_TO_BASEREG(pin) (0) #define PIN_TO_BITMASK(pin) pin diff --git a/utility/interrupt_pins.h b/utility/interrupt_pins.h index dcbea0d..45b0eb2 100644 --- a/utility/interrupt_pins.h +++ b/utility/interrupt_pins.h @@ -358,8 +358,8 @@ #define CORE_INT20_PIN A6 #define CORE_INT21_PIN A7 -// Arduino Nano RP2040 Connect -#elif defined(ARDUINO_NANO_RP2040_CONNECT) +// Covers RP2040 and RP2350 (Pico, Pico W, Pico 2, etc.) +#elif defined(ARDUINO_ARCH_RP2040) #define CORE_NUM_INTERRUPT 20 #define CORE_INT0_PIN 0 #define CORE_INT1_PIN 1 @@ -383,35 +383,6 @@ #define CORE_INT19_PIN 19 // #define CORE_INT20_PIN A6 // #define CORE_INT21_PIN A7 - -#elif defined(ARDUINO_RASPBERRY_PI_PICO) || defined(ARDUINO_RASPBERRY_PI_PICO_W) - #define CORE_NUM_INTERRUPT 26 - #define CORE_INT0_PIN 0 - #define CORE_INT1_PIN 1 - #define CORE_INT2_PIN 2 - #define CORE_INT3_PIN 3 - #define CORE_INT4_PIN 4 - #define CORE_INT5_PIN 5 - #define CORE_INT6_PIN 6 - #define CORE_INT7_PIN 7 - #define CORE_INT8_PIN 8 - #define CORE_INT9_PIN 9 - #define CORE_INT10_PIN 10 - #define CORE_INT11_PIN 11 - #define CORE_INT12_PIN 12 - #define CORE_INT13_PIN 13 - #define CORE_INT14_PIN 14 - #define CORE_INT15_PIN 15 - #define CORE_INT16_PIN 16 - #define CORE_INT17_PIN 17 - #define CORE_INT18_PIN 18 - #define CORE_INT19_PIN 19 - #define CORE_INT20_PIN 20 - #define CORE_INT21_PIN 21 - #define CORE_INT22_PIN 22 - #define CORE_INT26_PIN 26 - #define CORE_INT27_PIN 27 - #define CORE_INT28_PIN 28 #endif #endif