From c8b1c1573169bcb0c71fd68ea866d9f2d067e523 Mon Sep 17 00:00:00 2001 From: Rodrigo Garcia Date: Mon, 4 Sep 2023 11:03:12 -0300 Subject: [PATCH 1/5] Test GPIO number in attachInterrupt() --- cores/esp32/esp32-hal-gpio.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/cores/esp32/esp32-hal-gpio.c b/cores/esp32/esp32-hal-gpio.c index f0f99db9abf..49810e6e0a3 100644 --- a/cores/esp32/esp32-hal-gpio.c +++ b/cores/esp32/esp32-hal-gpio.c @@ -167,6 +167,9 @@ extern void __attachInterruptFunctionalArg(uint8_t pin, voidFuncPtrArg userFunc, { static bool interrupt_initialized = false; + // makes sure that pin -1 (255) will never work -- this follows Arduino standard + if (pin >= NUM_DIGITAL_PINS) return; + if(!interrupt_initialized) { esp_err_t err = gpio_install_isr_service((int)ARDUINO_ISR_FLAG); interrupt_initialized = (err == ESP_OK) || (err == ESP_ERR_INVALID_STATE); From 8abd2a351d1f84e7bc399365787bbd6ff1ed48df Mon Sep 17 00:00:00 2001 From: Rodrigo Garcia Date: Mon, 4 Sep 2023 11:49:50 -0300 Subject: [PATCH 2/5] Fixes S3 GPIO48 in digitalPinToInterrupt() --- variants/Bee_Data_Logger/pins_arduino.h | 2 +- variants/Bee_Motion/pins_arduino.h | 2 +- variants/Bee_Motion_S3/pins_arduino.h | 2 +- variants/Bee_S3/pins_arduino.h | 2 +- variants/Nebula_S3/pins_arduino.h | 2 +- variants/XIAO_ESP32S3/pins_arduino.h | 4 ++-- variants/adafruit_feather_esp32s3/pins_arduino.h | 2 +- variants/adafruit_feather_esp32s3_nopsram/pins_arduino.h | 2 +- variants/adafruit_feather_esp32s3_reversetft/pins_arduino.h | 2 +- variants/adafruit_feather_esp32s3_tft/pins_arduino.h | 2 +- variants/adafruit_matrixportal_esp32s3/pins_arduino.h | 2 +- variants/adafruit_metro_esp32s3/pins_arduino.h | 2 +- variants/adafruit_qtpy_esp32s3_n4r2/pins_arduino.h | 2 +- variants/adafruit_qtpy_esp32s3_nopsram/pins_arduino.h | 2 +- variants/bpi_leaf_s3/pins_arduino.h | 2 +- variants/crabik_slot_esp32_s3/pins_arduino.h | 2 +- variants/cytron_maker_feather_aiot_s3/pins_arduino.h | 2 +- variants/deneyapkart1Av2/pins_arduino.h | 2 +- variants/deneyapmini/pins_arduino.h | 2 +- variants/deneyapminiv2/pins_arduino.h | 2 +- variants/dfrobot_firebeetle2_esp32s3/pins_arduino.h | 2 +- variants/dfrobot_romeo_esp32s3/pins_arduino.h | 2 +- variants/esp32_s3r8n16/pins_arduino.h | 2 +- variants/esp32s3/pins_arduino.h | 2 +- variants/esp32s3box/pins_arduino.h | 2 +- variants/esp32s3camlcd/pins_arduino.h | 2 +- variants/esp32s3usbotg/pins_arduino.h | 2 +- variants/heltec_wifi_kit_32_v3/pins_arduino.h | 2 +- variants/heltec_wifi_lora_32_V3/pins_arduino.h | 2 +- variants/heltec_wireless_stick_lite_v3/pins_arduino.h | 2 +- variants/lilygo_t_display_s3/pins_arduino.h | 2 +- variants/lionbits3/pins_arduino.h | 2 +- variants/lolin_s3/pins_arduino.h | 2 +- variants/lolin_s3_mini/pins_arduino.h | 2 +- variants/lolin_s3_pro/pins_arduino.h | 2 +- variants/m5stack_atoms3/pins_arduino.h | 2 +- variants/m5stack_cores3/pins_arduino.h | 2 +- variants/m5stack_stamp_s3/pins_arduino.h | 2 +- variants/nora_w10/pins_arduino.h | 2 +- variants/redpill_esp32s3/pins_arduino.h | 2 +- variants/tamc_termod_s3/pins_arduino.h | 2 +- variants/um_feathers3/pins_arduino.h | 2 +- variants/um_nanos3/pins_arduino.h | 2 +- variants/um_pros3/pins_arduino.h | 2 +- variants/um_tinys3/pins_arduino.h | 2 +- variants/unphone8/pins_arduino.h | 2 +- variants/unphone9/pins_arduino.h | 2 +- variants/wifiduino32s3/pins_arduino.h | 2 +- 48 files changed, 49 insertions(+), 49 deletions(-) diff --git a/variants/Bee_Data_Logger/pins_arduino.h b/variants/Bee_Data_Logger/pins_arduino.h index b49fd08d030..46aba611444 100644 --- a/variants/Bee_Data_Logger/pins_arduino.h +++ b/variants/Bee_Data_Logger/pins_arduino.h @@ -14,7 +14,7 @@ #define NUM_ANALOG_INPUTS 7 #define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<48)?(p):-1) +#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) #define digitalPinHasPWM(p) (p < 46) static const uint8_t TX = 43; diff --git a/variants/Bee_Motion/pins_arduino.h b/variants/Bee_Motion/pins_arduino.h index 18cc71f24f5..cb61f9efd1e 100644 --- a/variants/Bee_Motion/pins_arduino.h +++ b/variants/Bee_Motion/pins_arduino.h @@ -14,7 +14,7 @@ #define NUM_ANALOG_INPUTS 12 #define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<48)?(p):-1) +#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) #define digitalPinHasPWM(p) (p < 46) static const uint8_t TX = 43; diff --git a/variants/Bee_Motion_S3/pins_arduino.h b/variants/Bee_Motion_S3/pins_arduino.h index 19025426c65..e3a1dacf351 100644 --- a/variants/Bee_Motion_S3/pins_arduino.h +++ b/variants/Bee_Motion_S3/pins_arduino.h @@ -14,7 +14,7 @@ #define NUM_ANALOG_INPUTS 11 #define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<48)?(p):-1) +#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) #define digitalPinHasPWM(p) (p < 46) static const uint8_t TX = 43; diff --git a/variants/Bee_S3/pins_arduino.h b/variants/Bee_S3/pins_arduino.h index b095fb8fd7f..22126d14008 100644 --- a/variants/Bee_S3/pins_arduino.h +++ b/variants/Bee_S3/pins_arduino.h @@ -14,7 +14,7 @@ #define NUM_ANALOG_INPUTS 8 #define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<48)?(p):-1) +#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) #define digitalPinHasPWM(p) (p < 46) static const uint8_t TX = 43; diff --git a/variants/Nebula_S3/pins_arduino.h b/variants/Nebula_S3/pins_arduino.h index 513aef8409e..2d905050651 100644 --- a/variants/Nebula_S3/pins_arduino.h +++ b/variants/Nebula_S3/pins_arduino.h @@ -11,7 +11,7 @@ #define NUM_ANALOG_INPUTS 6 #define analogInputToDigitalPin(p) (((p)<6)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<20)?(p):-1) +#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) #define digitalPinHasPWM(p) (p < 20) diff --git a/variants/XIAO_ESP32S3/pins_arduino.h b/variants/XIAO_ESP32S3/pins_arduino.h index 975b5717097..5ddeaaf2316 100644 --- a/variants/XIAO_ESP32S3/pins_arduino.h +++ b/variants/XIAO_ESP32S3/pins_arduino.h @@ -7,8 +7,8 @@ #define USB_VID 0x2886 #define USB_PID 0x0056 -#define EXTERNAL_NUM_INTERRUPTS 46 -#define NUM_DIGITAL_PINS 48 +#define EXTERNAL_NUM_INTERRUPTS 49 +#define NUM_DIGITAL_PINS 49 #define NUM_ANALOG_INPUTS 20 static const uint8_t LED_BUILTIN = 21; diff --git a/variants/adafruit_feather_esp32s3/pins_arduino.h b/variants/adafruit_feather_esp32s3/pins_arduino.h index 16ae97b640f..4b652308a51 100644 --- a/variants/adafruit_feather_esp32s3/pins_arduino.h +++ b/variants/adafruit_feather_esp32s3/pins_arduino.h @@ -14,7 +14,7 @@ #define NUM_ANALOG_INPUTS 20 #define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<48)?(p):-1) +#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) #define digitalPinHasPWM(p) (p < 46) #define LED_BUILTIN 13 diff --git a/variants/adafruit_feather_esp32s3_nopsram/pins_arduino.h b/variants/adafruit_feather_esp32s3_nopsram/pins_arduino.h index 58a23a17f7c..573a4a77fe2 100644 --- a/variants/adafruit_feather_esp32s3_nopsram/pins_arduino.h +++ b/variants/adafruit_feather_esp32s3_nopsram/pins_arduino.h @@ -14,7 +14,7 @@ #define NUM_ANALOG_INPUTS 20 #define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<48)?(p):-1) +#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) #define digitalPinHasPWM(p) (p < 46) #define LED_BUILTIN 13 diff --git a/variants/adafruit_feather_esp32s3_reversetft/pins_arduino.h b/variants/adafruit_feather_esp32s3_reversetft/pins_arduino.h index 594940f5710..8390b8ae3e3 100644 --- a/variants/adafruit_feather_esp32s3_reversetft/pins_arduino.h +++ b/variants/adafruit_feather_esp32s3_reversetft/pins_arduino.h @@ -16,7 +16,7 @@ #define NUM_ANALOG_INPUTS 20 #define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<48)?(p):-1) +#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) #define digitalPinHasPWM(p) (p < 46) #define LED_BUILTIN 13 diff --git a/variants/adafruit_feather_esp32s3_tft/pins_arduino.h b/variants/adafruit_feather_esp32s3_tft/pins_arduino.h index d1a9dc5ff81..dc37d85a7dc 100644 --- a/variants/adafruit_feather_esp32s3_tft/pins_arduino.h +++ b/variants/adafruit_feather_esp32s3_tft/pins_arduino.h @@ -16,7 +16,7 @@ #define NUM_ANALOG_INPUTS 20 #define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<48)?(p):-1) +#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) #define digitalPinHasPWM(p) (p < 46) #define LED_BUILTIN 13 diff --git a/variants/adafruit_matrixportal_esp32s3/pins_arduino.h b/variants/adafruit_matrixportal_esp32s3/pins_arduino.h index fc7e69f5c1d..dd74fda3d03 100644 --- a/variants/adafruit_matrixportal_esp32s3/pins_arduino.h +++ b/variants/adafruit_matrixportal_esp32s3/pins_arduino.h @@ -9,7 +9,7 @@ #define USB_PRODUCT "MatrixPortal ESP32-S3" #define USB_SERIAL "" // Empty string for MAC adddress -#define EXTERNAL_NUM_INTERRUPTS 46 +#define EXTERNAL_NUM_INTERRUPTS 49 #define NUM_DIGITAL_PINS 48 #define NUM_ANALOG_INPUTS 6 diff --git a/variants/adafruit_metro_esp32s3/pins_arduino.h b/variants/adafruit_metro_esp32s3/pins_arduino.h index e4e69345cb7..78e3d0f224e 100644 --- a/variants/adafruit_metro_esp32s3/pins_arduino.h +++ b/variants/adafruit_metro_esp32s3/pins_arduino.h @@ -14,7 +14,7 @@ #define NUM_ANALOG_INPUTS 20 #define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<48)?(p):-1) +#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) #define digitalPinHasPWM(p) (p < 46) #define LED_BUILTIN 13 diff --git a/variants/adafruit_qtpy_esp32s3_n4r2/pins_arduino.h b/variants/adafruit_qtpy_esp32s3_n4r2/pins_arduino.h index 789161da4ad..c1a0ea42ba5 100644 --- a/variants/adafruit_qtpy_esp32s3_n4r2/pins_arduino.h +++ b/variants/adafruit_qtpy_esp32s3_n4r2/pins_arduino.h @@ -15,7 +15,7 @@ #define NUM_ANALOG_INPUTS 20 #define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<48)?(p):-1) +#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) #define digitalPinHasPWM(p) (p < 46) #define PIN_NEOPIXEL 39 diff --git a/variants/adafruit_qtpy_esp32s3_nopsram/pins_arduino.h b/variants/adafruit_qtpy_esp32s3_nopsram/pins_arduino.h index 38305f67e36..921db99cfcd 100644 --- a/variants/adafruit_qtpy_esp32s3_nopsram/pins_arduino.h +++ b/variants/adafruit_qtpy_esp32s3_nopsram/pins_arduino.h @@ -15,7 +15,7 @@ #define NUM_ANALOG_INPUTS 20 #define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<48)?(p):-1) +#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) #define digitalPinHasPWM(p) (p < 46) #define PIN_NEOPIXEL 39 diff --git a/variants/bpi_leaf_s3/pins_arduino.h b/variants/bpi_leaf_s3/pins_arduino.h index 56876ce9c9d..04d141a29e1 100644 --- a/variants/bpi_leaf_s3/pins_arduino.h +++ b/variants/bpi_leaf_s3/pins_arduino.h @@ -24,7 +24,7 @@ static const uint8_t LED_BUILTIN = SOC_GPIO_PIN_COUNT+48; #define RGB_BRIGHTNESS 25 #define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<48)?(p):-1) +#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) #define digitalPinHasPWM(p) (p < 46) static const uint8_t TX = 43; diff --git a/variants/crabik_slot_esp32_s3/pins_arduino.h b/variants/crabik_slot_esp32_s3/pins_arduino.h index 31aa9ee79cb..d91c4c0f5f2 100644 --- a/variants/crabik_slot_esp32_s3/pins_arduino.h +++ b/variants/crabik_slot_esp32_s3/pins_arduino.h @@ -14,7 +14,7 @@ #define NUM_ANALOG_INPUTS 20 #define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<48)?(p):-1) +#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) #define digitalPinHasPWM(p) (p < 46) static const uint8_t LED_BUILTIN = 21; diff --git a/variants/cytron_maker_feather_aiot_s3/pins_arduino.h b/variants/cytron_maker_feather_aiot_s3/pins_arduino.h index bd3e9c278c9..0f4fad124f0 100644 --- a/variants/cytron_maker_feather_aiot_s3/pins_arduino.h +++ b/variants/cytron_maker_feather_aiot_s3/pins_arduino.h @@ -15,7 +15,7 @@ #define NUM_ANALOG_INPUTS 12 #define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<48)?(p):-1) +#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) #define digitalPinHasPWM(p) (p < 46) diff --git a/variants/deneyapkart1Av2/pins_arduino.h b/variants/deneyapkart1Av2/pins_arduino.h index 24928d48422..c683e25799e 100644 --- a/variants/deneyapkart1Av2/pins_arduino.h +++ b/variants/deneyapkart1Av2/pins_arduino.h @@ -15,7 +15,7 @@ #define NUM_ANALOG_INPUTS 20 #define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<48)?(p):-1) +#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) #define digitalPinHasPWM(p) (p < 46) static const uint8_t LED_BUILTIN = SOC_GPIO_PIN_COUNT+48; diff --git a/variants/deneyapmini/pins_arduino.h b/variants/deneyapmini/pins_arduino.h index 439bbb552af..c820d4f43ff 100644 --- a/variants/deneyapmini/pins_arduino.h +++ b/variants/deneyapmini/pins_arduino.h @@ -14,7 +14,7 @@ #define NUM_ANALOG_INPUTS 20 #define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<48)?(p):-1) +#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) #define digitalPinHasPWM(p) (p < 46) static const uint8_t LED_BUILTIN = 35; diff --git a/variants/deneyapminiv2/pins_arduino.h b/variants/deneyapminiv2/pins_arduino.h index 0c62545455d..b01c4f252f3 100644 --- a/variants/deneyapminiv2/pins_arduino.h +++ b/variants/deneyapminiv2/pins_arduino.h @@ -15,7 +15,7 @@ #define NUM_ANALOG_INPUTS 20 #define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<48)?(p):-1) +#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) #define digitalPinHasPWM(p) (p < 46) static const uint8_t LED_BUILTIN = SOC_GPIO_PIN_COUNT+33; diff --git a/variants/dfrobot_firebeetle2_esp32s3/pins_arduino.h b/variants/dfrobot_firebeetle2_esp32s3/pins_arduino.h index 91e164478b2..dfe43f736a8 100644 --- a/variants/dfrobot_firebeetle2_esp32s3/pins_arduino.h +++ b/variants/dfrobot_firebeetle2_esp32s3/pins_arduino.h @@ -14,7 +14,7 @@ #define NUM_ANALOG_INPUTS 20 #define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<48)?(p):-1) +#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) #define digitalPinHasPWM(p) (p < 46) diff --git a/variants/dfrobot_romeo_esp32s3/pins_arduino.h b/variants/dfrobot_romeo_esp32s3/pins_arduino.h index 1c16f6e9f65..e52a523e6ad 100644 --- a/variants/dfrobot_romeo_esp32s3/pins_arduino.h +++ b/variants/dfrobot_romeo_esp32s3/pins_arduino.h @@ -10,7 +10,7 @@ #define NUM_ANALOG_INPUTS 20 #define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<48)?(p):-1) +#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) #define digitalPinHasPWM(p) (p < 46) diff --git a/variants/esp32_s3r8n16/pins_arduino.h b/variants/esp32_s3r8n16/pins_arduino.h index 919765a7583..5a63d387bbd 100644 --- a/variants/esp32_s3r8n16/pins_arduino.h +++ b/variants/esp32_s3r8n16/pins_arduino.h @@ -15,7 +15,7 @@ #define NUM_ANALOG_INPUTS 20 #define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<48)?(p):-1) +#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) #define digitalPinHasPWM(p) (p < 46) static const uint8_t TX = 43; diff --git a/variants/esp32s3/pins_arduino.h b/variants/esp32s3/pins_arduino.h index d746573aa94..8ffd946f247 100644 --- a/variants/esp32s3/pins_arduino.h +++ b/variants/esp32s3/pins_arduino.h @@ -21,7 +21,7 @@ static const uint8_t LED_BUILTIN = SOC_GPIO_PIN_COUNT+48; #define RGB_BRIGHTNESS 64 #define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<48)?(p):-1) +#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) #define digitalPinHasPWM(p) (p < 46) static const uint8_t TX = 43; diff --git a/variants/esp32s3box/pins_arduino.h b/variants/esp32s3box/pins_arduino.h index 3ed655d1d3f..9f3d7c7319f 100644 --- a/variants/esp32s3box/pins_arduino.h +++ b/variants/esp32s3box/pins_arduino.h @@ -11,7 +11,7 @@ #define NUM_ANALOG_INPUTS 20 #define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<48)?(p):-1) +#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) #define digitalPinHasPWM(p) (p < 46) static const uint8_t TX = 43; diff --git a/variants/esp32s3camlcd/pins_arduino.h b/variants/esp32s3camlcd/pins_arduino.h index 308644ff52e..50045afe594 100644 --- a/variants/esp32s3camlcd/pins_arduino.h +++ b/variants/esp32s3camlcd/pins_arduino.h @@ -11,7 +11,7 @@ #define NUM_ANALOG_INPUTS 20 #define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<48)?(p):-1) +#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) #define digitalPinHasPWM(p) (p < 46) static const uint8_t TX = 43; diff --git a/variants/esp32s3usbotg/pins_arduino.h b/variants/esp32s3usbotg/pins_arduino.h index 94edeeca74c..511bf95809e 100644 --- a/variants/esp32s3usbotg/pins_arduino.h +++ b/variants/esp32s3usbotg/pins_arduino.h @@ -11,7 +11,7 @@ #define NUM_ANALOG_INPUTS 20 #define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<48)?(p):-1) +#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) #define digitalPinHasPWM(p) (p < 46) static const uint8_t TX = 43; diff --git a/variants/heltec_wifi_kit_32_v3/pins_arduino.h b/variants/heltec_wifi_kit_32_v3/pins_arduino.h index 6e889604dd8..6d513c3246f 100644 --- a/variants/heltec_wifi_kit_32_v3/pins_arduino.h +++ b/variants/heltec_wifi_kit_32_v3/pins_arduino.h @@ -12,7 +12,7 @@ #define NUM_ANALOG_INPUTS 20 #define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<48)?(p):-1) +#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) #define digitalPinHasPWM(p) (p < 46) static const uint8_t LED_BUILTIN = 35; diff --git a/variants/heltec_wifi_lora_32_V3/pins_arduino.h b/variants/heltec_wifi_lora_32_V3/pins_arduino.h index cbc50a0d117..079bc1af2cc 100644 --- a/variants/heltec_wifi_lora_32_V3/pins_arduino.h +++ b/variants/heltec_wifi_lora_32_V3/pins_arduino.h @@ -25,7 +25,7 @@ static const uint8_t LED_BUILTIN = SOC_GPIO_PIN_COUNT+48; #define RGB_BRIGHTNESS 64 #define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<48)?(p):-1) +#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) #define digitalPinHasPWM(p) (p < 46) static const uint8_t TX = 43; diff --git a/variants/heltec_wireless_stick_lite_v3/pins_arduino.h b/variants/heltec_wireless_stick_lite_v3/pins_arduino.h index 174b9e7f2d5..ee7021edc16 100644 --- a/variants/heltec_wireless_stick_lite_v3/pins_arduino.h +++ b/variants/heltec_wireless_stick_lite_v3/pins_arduino.h @@ -12,7 +12,7 @@ #define NUM_ANALOG_INPUTS 15 #define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) +#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) #define digitalPinHasPWM(p) (p < 34) static const uint8_t LED_BUILTIN = 35; diff --git a/variants/lilygo_t_display_s3/pins_arduino.h b/variants/lilygo_t_display_s3/pins_arduino.h index 099bdad5876..e1929eb16cc 100644 --- a/variants/lilygo_t_display_s3/pins_arduino.h +++ b/variants/lilygo_t_display_s3/pins_arduino.h @@ -12,7 +12,7 @@ #define NUM_ANALOG_INPUTS 20 #define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<48)?(p):-1) +#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) #define digitalPinHasPWM(p) (p < 46) static const uint8_t BUTTON_1 = 0; diff --git a/variants/lionbits3/pins_arduino.h b/variants/lionbits3/pins_arduino.h index 1428b1507c5..d4aad6791b7 100644 --- a/variants/lionbits3/pins_arduino.h +++ b/variants/lionbits3/pins_arduino.h @@ -8,7 +8,7 @@ #define NUM_ANALOG_INPUTS 16 #define analogInputToDigitalPin(p) (((p) < 20) ? (analogChannelToDigitalPin(p)) : -1) -#define digitalPinToInterrupt(p) (((p) < 40) ? (p) : -1) +#define digitalPinToInterrupt(p) (((p) < 49) ? (p) : -1) #define digitalPinHasPWM(p) (p < 34) static const uint8_t LED_BUILTIN = 0; //GPIO0, diff --git a/variants/lolin_s3/pins_arduino.h b/variants/lolin_s3/pins_arduino.h index 46a168c6b7e..257a9f4ff0e 100644 --- a/variants/lolin_s3/pins_arduino.h +++ b/variants/lolin_s3/pins_arduino.h @@ -18,7 +18,7 @@ static const uint8_t LED_BUILTIN = 38; #define RGB_BRIGHTNESS 64 #define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<48)?(p):-1) +#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) #define digitalPinHasPWM(p) (p < 46) static const uint8_t TX = 43; diff --git a/variants/lolin_s3_mini/pins_arduino.h b/variants/lolin_s3_mini/pins_arduino.h index 8a5e6ca866c..2b8843e727a 100644 --- a/variants/lolin_s3_mini/pins_arduino.h +++ b/variants/lolin_s3_mini/pins_arduino.h @@ -18,7 +18,7 @@ static const uint8_t LED_BUILTIN = 47; #define RGB_BRIGHTNESS 64 #define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<48)?(p):-1) +#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) #define digitalPinHasPWM(p) (p < 46) static const uint8_t TX = 43; diff --git a/variants/lolin_s3_pro/pins_arduino.h b/variants/lolin_s3_pro/pins_arduino.h index a70e31b74d8..86a7fe5fd0b 100644 --- a/variants/lolin_s3_pro/pins_arduino.h +++ b/variants/lolin_s3_pro/pins_arduino.h @@ -18,7 +18,7 @@ static const uint8_t LED_BUILTIN = 38; #define RGB_BRIGHTNESS 64 #define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<48)?(p):-1) +#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) #define digitalPinHasPWM(p) (p < 46) static const uint8_t TX = 43; diff --git a/variants/m5stack_atoms3/pins_arduino.h b/variants/m5stack_atoms3/pins_arduino.h index 8af4ef2e53d..b3a1defb48e 100644 --- a/variants/m5stack_atoms3/pins_arduino.h +++ b/variants/m5stack_atoms3/pins_arduino.h @@ -22,7 +22,7 @@ static const uint8_t LED_BUILTIN = SOC_GPIO_PIN_COUNT + 48; #define analogInputToDigitalPin(p) \ (((p) < 20) ? (analogChannelToDigitalPin(p)) : -1) -#define digitalPinToInterrupt(p) (((p) < 48) ? (p) : -1) +#define digitalPinToInterrupt(p) (((p) < 49) ? (p) : -1) #define digitalPinHasPWM(p) (p < 46) static const uint8_t TX = 43; diff --git a/variants/m5stack_cores3/pins_arduino.h b/variants/m5stack_cores3/pins_arduino.h index c8c979abe69..a4a82cb2420 100644 --- a/variants/m5stack_cores3/pins_arduino.h +++ b/variants/m5stack_cores3/pins_arduino.h @@ -22,7 +22,7 @@ static const uint8_t LED_BUILTIN = SOC_GPIO_PIN_COUNT + 48; #define analogInputToDigitalPin(p) \ (((p) < 20) ? (analogChannelToDigitalPin(p)) : -1) -#define digitalPinToInterrupt(p) (((p) < 48) ? (p) : -1) +#define digitalPinToInterrupt(p) (((p) < 49) ? (p) : -1) #define digitalPinHasPWM(p) (p < 46) static const uint8_t TX = 43; diff --git a/variants/m5stack_stamp_s3/pins_arduino.h b/variants/m5stack_stamp_s3/pins_arduino.h index 510a459b11d..7bfdc7405b2 100644 --- a/variants/m5stack_stamp_s3/pins_arduino.h +++ b/variants/m5stack_stamp_s3/pins_arduino.h @@ -13,7 +13,7 @@ #define analogInputToDigitalPin(p) \ (((p) < 20) ? (analogChannelToDigitalPin(p)) : -1) -#define digitalPinToInterrupt(p) (((p) < 48) ? (p) : -1) +#define digitalPinToInterrupt(p) (((p) < 49) ? (p) : -1) #define digitalPinHasPWM(p) (p < 46) static const uint8_t TX = 43; diff --git a/variants/nora_w10/pins_arduino.h b/variants/nora_w10/pins_arduino.h index ccf4556dcfc..9decc799ddd 100644 --- a/variants/nora_w10/pins_arduino.h +++ b/variants/nora_w10/pins_arduino.h @@ -12,7 +12,7 @@ #define NUM_ANALOG_INPUTS 20 #define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<48)?(p):-1) +#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) #define digitalPinHasPWM(p) (p < 46) // The pin assignments in this file are based on u-blox EVK-NORA-W1, a Arduino compatible board. diff --git a/variants/redpill_esp32s3/pins_arduino.h b/variants/redpill_esp32s3/pins_arduino.h index 0b58bd2415e..61d3a2ca549 100644 --- a/variants/redpill_esp32s3/pins_arduino.h +++ b/variants/redpill_esp32s3/pins_arduino.h @@ -11,7 +11,7 @@ #define NUM_ANALOG_INPUTS 20 #define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<48)?(p):-1) +#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) #define digitalPinHasPWM(p) (p < 46) static const uint8_t LED_BUILTIN = 3; diff --git a/variants/tamc_termod_s3/pins_arduino.h b/variants/tamc_termod_s3/pins_arduino.h index ca86f85469f..47f23a673d1 100644 --- a/variants/tamc_termod_s3/pins_arduino.h +++ b/variants/tamc_termod_s3/pins_arduino.h @@ -21,7 +21,7 @@ static const uint8_t LED_BUILTIN = SOC_GPIO_PIN_COUNT+48; #define RGB_BRIGHTNESS 64 #define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<48)?(p):-1) +#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) #define digitalPinHasPWM(p) (p < 46) static const uint8_t TX = 43; diff --git a/variants/um_feathers3/pins_arduino.h b/variants/um_feathers3/pins_arduino.h index 9b60548d08f..de14e5c285f 100644 --- a/variants/um_feathers3/pins_arduino.h +++ b/variants/um_feathers3/pins_arduino.h @@ -14,7 +14,7 @@ #define NUM_ANALOG_INPUTS 13 #define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<48)?(p):-1) +#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) #define digitalPinHasPWM(p) (p < 46) static const uint8_t TX = 43; diff --git a/variants/um_nanos3/pins_arduino.h b/variants/um_nanos3/pins_arduino.h index d80a40b8517..fee26b62f07 100644 --- a/variants/um_nanos3/pins_arduino.h +++ b/variants/um_nanos3/pins_arduino.h @@ -14,7 +14,7 @@ #define NUM_ANALOG_INPUTS 9 #define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<48)?(p):-1) +#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) #define digitalPinHasPWM(p) (p < 46) static const uint8_t TX = 43; diff --git a/variants/um_pros3/pins_arduino.h b/variants/um_pros3/pins_arduino.h index d46a772d0cb..a42f44ca050 100644 --- a/variants/um_pros3/pins_arduino.h +++ b/variants/um_pros3/pins_arduino.h @@ -14,7 +14,7 @@ #define NUM_ANALOG_INPUTS 14 #define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<48)?(p):-1) +#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) #define digitalPinHasPWM(p) (p < 46) static const uint8_t TX = 43; diff --git a/variants/um_tinys3/pins_arduino.h b/variants/um_tinys3/pins_arduino.h index ca2b4ba4873..fbce7fc099c 100644 --- a/variants/um_tinys3/pins_arduino.h +++ b/variants/um_tinys3/pins_arduino.h @@ -14,7 +14,7 @@ #define NUM_ANALOG_INPUTS 9 #define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<48)?(p):-1) +#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) #define digitalPinHasPWM(p) (p < 46) static const uint8_t TX = 43; diff --git a/variants/unphone8/pins_arduino.h b/variants/unphone8/pins_arduino.h index f6270e7224b..ffcde18f3d7 100644 --- a/variants/unphone8/pins_arduino.h +++ b/variants/unphone8/pins_arduino.h @@ -11,7 +11,7 @@ #define NUM_ANALOG_INPUTS 20 #define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<48)?(p):-1) +#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) #define digitalPinHasPWM(p) (p < 46) #define LED_BUILTIN 13 diff --git a/variants/unphone9/pins_arduino.h b/variants/unphone9/pins_arduino.h index d16ec924358..f8ca3858a57 100644 --- a/variants/unphone9/pins_arduino.h +++ b/variants/unphone9/pins_arduino.h @@ -11,7 +11,7 @@ #define NUM_ANALOG_INPUTS 20 #define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<48)?(p):-1) +#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) #define digitalPinHasPWM(p) (p < 46) #define LED_BUILTIN 13 diff --git a/variants/wifiduino32s3/pins_arduino.h b/variants/wifiduino32s3/pins_arduino.h index 9115256472b..79e4254bccd 100644 --- a/variants/wifiduino32s3/pins_arduino.h +++ b/variants/wifiduino32s3/pins_arduino.h @@ -21,7 +21,7 @@ static const uint8_t LED_BUILTIN = SOC_GPIO_PIN_COUNT+48; #define LED_BRIGHTNESS 64 #define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<48)?(p):-1) +#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) #define digitalPinHasPWM(p) (p < 46) static const uint8_t TX = 45; From 0a7234cbc91fe5bcf56635b742ab7a2d11d08227 Mon Sep 17 00:00:00 2001 From: Rodrigo Garcia Date: Mon, 4 Sep 2023 11:53:14 -0300 Subject: [PATCH 3/5] Changes test of GPIO number in attachInterrupt() --- cores/esp32/esp32-hal-gpio.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cores/esp32/esp32-hal-gpio.c b/cores/esp32/esp32-hal-gpio.c index 49810e6e0a3..eaaef7fcc5a 100644 --- a/cores/esp32/esp32-hal-gpio.c +++ b/cores/esp32/esp32-hal-gpio.c @@ -168,7 +168,7 @@ extern void __attachInterruptFunctionalArg(uint8_t pin, voidFuncPtrArg userFunc, static bool interrupt_initialized = false; // makes sure that pin -1 (255) will never work -- this follows Arduino standard - if (pin >= NUM_DIGITAL_PINS) return; + if (pin >= SOC_GPIO_PIN_COUNT) return; if(!interrupt_initialized) { esp_err_t err = gpio_install_isr_service((int)ARDUINO_ISR_FLAG); From 9d1c275e8212d969a09bb6a635a8c18e7a93b9cd Mon Sep 17 00:00:00 2001 From: Rodrigo Garcia Date: Mon, 4 Sep 2023 11:57:38 -0300 Subject: [PATCH 4/5] Fixes NUM_DIGITAL_PINS in Adafruit board --- variants/adafruit_matrixportal_esp32s3/pins_arduino.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/variants/adafruit_matrixportal_esp32s3/pins_arduino.h b/variants/adafruit_matrixportal_esp32s3/pins_arduino.h index dd74fda3d03..0f5963bdab3 100644 --- a/variants/adafruit_matrixportal_esp32s3/pins_arduino.h +++ b/variants/adafruit_matrixportal_esp32s3/pins_arduino.h @@ -10,7 +10,7 @@ #define USB_SERIAL "" // Empty string for MAC adddress #define EXTERNAL_NUM_INTERRUPTS 49 -#define NUM_DIGITAL_PINS 48 +#define NUM_DIGITAL_PINS 49 #define NUM_ANALOG_INPUTS 6 #define analogInputToDigitalPin(p) (((p) Date: Mon, 4 Sep 2023 12:04:54 -0300 Subject: [PATCH 5/5] Fixes GPIO48 in Edgebox-ESP-100 board --- variants/Edgebox-ESP-100/pins_arduino.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/variants/Edgebox-ESP-100/pins_arduino.h b/variants/Edgebox-ESP-100/pins_arduino.h index ae212f44dea..c781113e040 100644 --- a/variants/Edgebox-ESP-100/pins_arduino.h +++ b/variants/Edgebox-ESP-100/pins_arduino.h @@ -8,7 +8,7 @@ #define NUM_ANALOG_INPUTS 2 #define analogInputToDigitalPin(p) (((p)<2)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<34)?(p):-1) +#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) #define digitalPinHasPWM(p) (p < 34) //Programming and Debugging Port