From 651a14c8d3c540f923f3e6be60c9aaf098befc17 Mon Sep 17 00:00:00 2001 From: Rodrigo Garcia Date: Mon, 18 Mar 2024 09:32:58 -0300 Subject: [PATCH] backport: variants from 3.0.0 + fixes (#9381) * feat: backport variants from 3.0.0 * heltec update from #9367 --- boards.txt | 2 +- cores/esp32/Arduino.h | 12 +++++ variants/AirM2M_CORE_ESP32C3/pins_arduino.h | 12 ++--- variants/Aventen_S3_Sync/pins_arduino.h | 9 ---- variants/Bee_Data_Logger/pins_arduino.h | 17 +++---- variants/Bee_Motion/pins_arduino.h | 8 ---- variants/Bee_Motion_Mini/pins_arduino.h | 22 +++++---- variants/Bee_Motion_S3/pins_arduino.h | 17 +++---- variants/Bee_S3/pins_arduino.h | 18 +++---- variants/ET-Board/pins_arduino.h | 12 +---- variants/Edgebox-ESP-100/pins_arduino.h | 8 ---- variants/Microduino-esp32/pins_arduino.h | 10 +--- variants/Nebula_S3/pins_arduino.h | 14 ++---- variants/S_ODI_Ultra_v1/pins_arduino.h | 10 +--- .../VALTRACK_V4_MFW_ESP32_C3/pins_arduino.h | 8 ---- .../VALTRACK_V4_VTS_ESP32_C3/pins_arduino.h | 8 ---- variants/XIAO_ESP32C3/pins_arduino.h | 8 ---- variants/XIAO_ESP32S3/pins_arduino.h | 11 +---- .../bootloader-tinyuf2.bin | Bin 22112 -> 22112 bytes .../adafruit_camera_esp32s3/pins_arduino.h | 35 +++++++------- variants/adafruit_camera_esp32s3/tinyuf2.bin | Bin 202400 -> 193520 bytes variants/adafruit_camera_esp32s3/variant.cpp | 11 ++++- .../adafruit_feather_esp32_v2/pins_arduino.h | 21 ++++---- .../adafruit_feather_esp32s2/pins_arduino.h | 20 ++++---- .../pins_arduino.h | 20 ++++---- .../pins_arduino.h | 20 ++++---- .../adafruit_feather_esp32s3/pins_arduino.h | 18 +++---- .../pins_arduino.h | 18 +++---- .../pins_arduino.h | 20 ++++---- .../pins_arduino.h | 20 ++++---- .../adafruit_funhouse_esp32s2/pins_arduino.h | 10 +--- .../adafruit_itsybitsy_esp32/pins_arduino.h | 16 +++---- .../adafruit_magtag29_esp32s2/pins_arduino.h | 20 ++++---- .../pins_arduino.h | 17 ++++--- .../adafruit_metro_esp32s2/pins_arduino.h | 16 +++---- .../adafruit_metro_esp32s3/pins_arduino.h | 16 +++---- variants/adafruit_qtpy_esp32/pins_arduino.h | 17 ++++--- variants/adafruit_qtpy_esp32c3/pins_arduino.h | 19 ++++---- variants/adafruit_qtpy_esp32s2/pins_arduino.h | 21 ++++---- .../adafruit_qtpy_esp32s3_n4r2/pins_arduino.h | 11 +---- .../pins_arduino.h | 11 +---- .../adafruit_qualia_s3_rgb666/pins_arduino.h | 8 ---- variants/alksesp32/pins_arduino.h | 10 +--- variants/arduino_nano_nora/double_tap.c | 1 + .../extra/nora_recovery/nora_recovery.ino | 6 ++- .../extra/nora_recovery/nora_recovery.ino.bin | Bin 286544 -> 302800 bytes variants/arduino_nano_nora/io_pin_remap.cpp | 34 ------------- variants/arduino_nano_nora/pins_arduino.h | 23 +++------ variants/arduino_nano_nora/variant.cpp | 9 +--- variants/atd147_s3/pins_arduino.h | 9 ---- variants/atmegazero_esp32s2/pins_arduino.h | 17 +++---- variants/bpi-bit/pins_arduino.h | 16 +++---- variants/bpi_leaf_s3/pins_arduino.h | 15 ++---- variants/ch_denky/pins_arduino.h | 8 ---- variants/cnrs_aw2eth/pins_arduino.h | 8 ---- variants/connaxio_espoir/pins_arduino.h | 8 ---- variants/crabik_slot_esp32_s3/pins_arduino.h | 10 +--- .../pins_arduino.h | 17 ++----- variants/d-duino-32/pins_arduino.h | 8 ---- variants/d1_mini32/pins_arduino.h | 2 +- variants/d1_uno32/pins_arduino.h | 11 +---- variants/d32/d32_core.h | 8 ---- variants/d32/pins_arduino.h | 2 +- variants/d32_pro/pins_arduino.h | 3 +- variants/deneyapkart/pins_arduino.h | 12 +---- variants/deneyapkart1A/pins_arduino.h | 14 ++---- variants/deneyapkart1Av2/pins_arduino.h | 14 ++---- variants/deneyapkartg/pins_arduino.h | 14 ++---- variants/deneyapmini/pins_arduino.h | 12 +---- variants/deneyapminiv2/pins_arduino.h | 14 ++---- .../pins_arduino.h | 20 ++++---- .../dfrobot_beetle_esp32c3/pins_arduino.h | 11 +---- .../dfrobot_firebeetle2_esp32e/pins_arduino.h | 12 +---- .../pins_arduino.h | 11 +---- variants/dfrobot_romeo_esp32s3/pins_arduino.h | 11 ----- variants/doitESP32devkitV1/pins_arduino.h | 10 +--- variants/doitESPduino32/pins_arduino.h | 45 ++++++++++++++---- variants/dpu_esp32/pins_arduino.h | 8 ---- variants/esp32-devkit-lipo/pins_arduino.h | 8 ---- variants/esp32-evb/pins_arduino.h | 9 ---- variants/esp32-gateway/pins_arduino.h | 18 +++---- variants/esp32-poe-iso/pins_arduino.h | 23 +++++---- variants/esp32-poe/pins_arduino.h | 23 +++++---- .../pins_arduino.h | 11 +---- .../pins_arduino.h | 11 +---- .../esp32-trueverit-iot-driver/pins_arduino.h | 11 +---- variants/esp32/pins_arduino.h | 8 ---- variants/esp320/pins_arduino.h | 10 +--- variants/esp32_s3r8n16/pins_arduino.h | 9 ---- variants/esp32c3/pins_arduino.h | 15 ++---- variants/esp32da/pins_arduino.h | 8 ---- variants/esp32micromod/pins_arduino.h | 10 +--- variants/esp32s2/pins_arduino.h | 19 ++++---- variants/esp32s2thing_plus/pins_arduino.h | 9 +--- variants/esp32s2usb/pins_arduino.h | 9 ---- variants/esp32s3/pins_arduino.h | 14 ++---- variants/esp32s3_powerfeather/pins_arduino.h | 8 ---- variants/esp32s3box/pins_arduino.h | 8 ---- variants/esp32s3camlcd/pins_arduino.h | 8 ---- variants/esp32s3usbotg/pins_arduino.h | 8 ---- variants/esp32thing/pins_arduino.h | 10 +--- variants/esp32thing_plus/pins_arduino.h | 10 +--- variants/esp32thing_plus_c/pins_arduino.h | 13 ++--- variants/esp32vn-iot-uno/pins_arduino.h | 8 ---- variants/esp_c3_m1_i_kit/pins_arduino.h | 9 +--- variants/espea32/pins_arduino.h | 10 +--- variants/espectro32/pins_arduino.h | 10 +--- variants/espino32/pins_arduino.h | 10 +--- variants/feather_esp32/pins_arduino.h | 10 +--- variants/firebeetle32/pins_arduino.h | 12 +---- variants/fm-devkit/pins_arduino.h | 10 +--- .../franzininho_wifi_esp32s2/pins_arduino.h | 16 +++---- .../pins_arduino.h | 16 +++---- variants/frog32/pins_arduino.h | 8 ---- variants/gpy/pins_arduino.h | 18 ++++--- variants/healthypi4/pins_arduino.h | 10 +--- variants/heltec_wifi_kit_32/pins_arduino.h | 10 +--- variants/heltec_wifi_kit_32_V3/pins_arduino.h | 10 +--- variants/heltec_wifi_lora_32/pins_arduino.h | 10 +--- .../heltec_wifi_lora_32_V2/pins_arduino.h | 10 +--- .../heltec_wifi_lora_32_V3/pins_arduino.h | 18 +------ variants/heltec_wireless_stick/pins_arduino.h | 10 +--- .../heltec_wireless_stick_lite/pins_arduino.h | 10 +--- .../pins_arduino.h | 17 ++++--- variants/honeylemon/pins_arduino.h | 10 +--- variants/hornbill32dev/pins_arduino.h | 10 +--- variants/hornbill32minima/pins_arduino.h | 8 ---- variants/imbrios-logsens-v1p1/pins_arduino.h | 12 +---- variants/intorobot-fig/pins_arduino.h | 10 +--- variants/ioxesp32/pins_arduino.h | 10 +--- variants/lilygo_t_display/pins_arduino.h | 10 +--- variants/lilygo_t_display_s3/pins_arduino.h | 9 ---- variants/lionbit/pins_arduino.h | 11 ++--- variants/lionbits3/pins_arduino.h | 11 ++--- variants/lolin32-lite/pins_arduino.h | 9 +--- variants/lolin32/pins_arduino.h | 12 +---- variants/lolin_c3_mini/pins_arduino.h | 9 +--- variants/lolin_s2_mini/pins_arduino.h | 9 +--- variants/lolin_s2_pico/pins_arduino.h | 9 +--- variants/lolin_s3/pins_arduino.h | 13 +---- variants/lolin_s3_mini/pins_arduino.h | 14 ++---- variants/lolin_s3_pro/pins_arduino.h | 14 ++---- variants/lopy/pins_arduino.h | 18 ++++--- variants/lopy4/pins_arduino.h | 18 ++++--- variants/m5stack_atom/pins_arduino.h | 12 +---- variants/m5stack_atoms3/pins_arduino.h | 9 ---- variants/m5stack_core2/pins_arduino.h | 8 ---- variants/m5stack_core_esp32/pins_arduino.h | 8 ---- variants/m5stack_coreink/pins_arduino.h | 8 ---- variants/m5stack_cores3/pins_arduino.h | 9 ---- variants/m5stack_fire/pins_arduino.h | 11 ----- variants/m5stack_stamp_pico/pins_arduino.h | 21 +++----- variants/m5stack_stamp_s3/pins_arduino.h | 20 +++----- variants/m5stack_station/pins_arduino.h | 8 ---- variants/m5stack_timer_cam/pins_arduino.h | 8 ---- variants/m5stick_c/pins_arduino.h | 8 ---- variants/magicbit/pins_arduino.h | 11 ++--- variants/metro_esp-32/pins_arduino.h | 10 +--- variants/mgbot-iotik32a/pins_arduino.h | 10 +--- variants/mgbot-iotik32b/pins_arduino.h | 10 +--- variants/mhetesp32devkit/pins_arduino.h | 12 +---- variants/mhetesp32minikit/pins_arduino.h | 12 +---- variants/micro_s2/pins_arduino.h | 16 +++---- variants/motorgo_mini_1/pins_arduino.h | 11 ++--- variants/mpython/pins_arduino.h | 8 ---- variants/namino_arancio/pins_arduino.h | 10 +--- variants/namino_rosso/pins_arduino.h | 10 +--- variants/nano32/pins_arduino.h | 10 +--- variants/nina_w10/pins_arduino.h | 8 ---- variants/node32s/pins_arduino.h | 10 +--- variants/nodemcu-32s/pins_arduino.h | 10 +--- variants/nora_w10/pins_arduino.h | 9 ---- variants/odroid_esp32/pins_arduino.h | 10 +--- variants/onehorse32dev/pins_arduino.h | 10 +--- variants/openkb/pins_arduino.h | 10 +--- variants/oroca_edubot/pins_arduino.h | 10 +--- variants/pico32/pins_arduino.h | 8 ---- variants/piranha_esp-32/pins_arduino.h | 10 +--- variants/pocket_32/pins_arduino.h | 12 +---- variants/quantum/pins_arduino.h | 8 ---- variants/redpill_esp32s3/pins_arduino.h | 13 ++--- variants/roboheart_hercules/pins_arduino.h | 9 ---- variants/sensebox_mcu_esp32s2/pins_arduino.h | 10 +--- variants/sensebox_mcu_esp32s2/variant.cpp | 2 +- variants/sonoff_dualr3/pins_arduino.h | 8 ---- .../pins_arduino.h | 15 ++---- .../pins_arduino.h | 10 +--- variants/tamc_termod_s3/pins_arduino.h | 18 +------ variants/tbeam/pins_arduino.h | 10 +--- variants/ttgo-lora32-v1/pins_arduino.h | 10 +--- variants/ttgo-lora32-v2/pins_arduino.h | 12 +---- variants/ttgo-lora32-v21new/pins_arduino.h | 14 ++---- variants/ttgo-t-oi-plus/pins_arduino.h | 10 +--- variants/ttgo-t1/pins_arduino.h | 10 +--- variants/ttgo-t7-v13-mini32/pins_arduino.h | 9 +--- variants/ttgo-t7-v14-mini32/pins_arduino.h | 9 +--- variants/turta_iot_node/pins_arduino.h | 10 +--- variants/twatch/pins_arduino.h | 8 ---- .../uPesy_esp32_wroom_devkit/pins_arduino.h | 10 +--- .../uPesy_esp32_wrover_devkit/pins_arduino.h | 10 +--- variants/um_feathers2/pins_arduino.h | 8 ---- variants/um_feathers2neo/pins_arduino.h | 17 +++---- variants/um_feathers3/pins_arduino.h | 18 +++---- variants/um_nanos3/pins_arduino.h | 17 +++---- variants/um_pros3/pins_arduino.h | 17 +++---- variants/um_rmp/pins_arduino.h | 17 +++---- variants/um_tinypico/pins_arduino.h | 8 ---- variants/um_tinys2/pins_arduino.h | 17 +++---- variants/um_tinys3/pins_arduino.h | 17 +++---- variants/unphone8/pins_arduino.h | 8 ---- variants/unphone9/pins_arduino.h | 8 ---- variants/vintlabsdevkitv1/pins_arduino.h | 10 +--- variants/watchy/pins_arduino.h | 8 ---- variants/wesp32/pins_arduino.h | 8 ---- variants/widora-air/pins_arduino.h | 11 +---- variants/wifiduino32/pins_arduino.h | 10 +--- variants/wifiduino32s3/pins_arduino.h | 18 +------ variants/wifiduinov2/pins_arduino.h | 15 +----- variants/wipy3/pins_arduino.h | 19 ++++---- variants/wt32-eth01/pins_arduino.h | 8 ---- variants/xinabox/pins_arduino.h | 10 +--- 221 files changed, 658 insertions(+), 1975 deletions(-) diff --git a/boards.txt b/boards.txt index ab5d96d5634..fce66cfc02a 100644 --- a/boards.txt +++ b/boards.txt @@ -23471,7 +23471,7 @@ unphone8.build.partitions=default_8MB unphone8.build.defines=-DBOARD_HAS_PSRAM -DUNPHONE_SPIN=8 unphone8.build.loop_core=-DARDUINO_RUNNING_CORE=1 unphone8.build.event_core=-DARDUINO_EVENT_RUNNING_CORE=1 -unphone8.build.flash_type=qspi +unphone8.build.flash_type=qio unphone8.build.psram_type=qspi unphone8.build.memory_type={build.flash_type}_{build.psram_type} diff --git a/cores/esp32/Arduino.h b/cores/esp32/Arduino.h index d0a71911b63..1a4e7b98993 100644 --- a/cores/esp32/Arduino.h +++ b/cores/esp32/Arduino.h @@ -129,6 +129,18 @@ #define NOT_AN_INTERRUPT -1 #define NOT_ON_TIMER 0 +// some defines generic for all SoC moved from variants/board_name/pins_arduino.h +#define NUM_DIGITAL_PINS SOC_GPIO_PIN_COUNT // All GPIOs +#if SOC_ADC_PERIPH_NUM == 1 +#define NUM_ANALOG_INPUTS (SOC_ADC_CHANNEL_NUM(0)) +#elif SOC_ADC_PERIPH_NUM == 2 +#define NUM_ANALOG_INPUTS (SOC_ADC_CHANNEL_NUM(0)+SOC_ADC_CHANNEL_NUM(1)) +#endif +#define EXTERNAL_NUM_INTERRUPTS NUM_DIGITAL_PINS // All GPIOs +#define analogInputToDigitalPin(p) (((p) -#define EXTERNAL_NUM_INTERRUPTS 22 -#define NUM_DIGITAL_PINS 22 -#define NUM_ANALOG_INPUTS 6 - -#define analogInputToDigitalPin(p) (((p) -#include "soc/soc_caps.h" #define USB_VID 0x303a #define USB_PID 0x1001 @@ -10,14 +9,6 @@ #define USB_PRODUCT "Aventen S3 Sync" #define USB_SERIAL "" -#define NUM_DIGITAL_PINS SOC_GPIO_PIN_COUNT // GPIO 0..48 -#define NUM_ANALOG_INPUTS 20 // GPIO 1..20 -#define EXTERNAL_NUM_INTERRUPTS NUM_DIGITAL_PINS // All GPIOs - -#define analogInputToDigitalPin(p) (((p) +#include "soc/soc_caps.h" #define USB_VID 0x303A #define USB_PID 0x815C @@ -9,14 +10,6 @@ #define USB_PRODUCT "Bee Data Logger" #define USB_SERIAL "" -#define EXTERNAL_NUM_INTERRUPTS 46 -#define NUM_DIGITAL_PINS 13 -#define NUM_ANALOG_INPUTS 7 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) -#define digitalPinHasPWM(p) (p < 46) - static const uint8_t TX = 43; static const uint8_t RX = 44; @@ -74,5 +67,13 @@ static const uint8_t LDO2 = 34; static const uint8_t RGB_DATA = 40; static const uint8_t RGB_PWR = 34; +#define PIN_NEOPIXEL RGB_DATA +// BUILTIN_LED can be used in new Arduino API digitalWrite() like in Blink.ino +static const uint8_t LED_BUILTIN = SOC_GPIO_PIN_COUNT+PIN_NEOPIXEL; +#define BUILTIN_LED LED_BUILTIN // backward compatibility +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN +// RGB_BUILTIN and RGB_BRIGHTNESS can be used in new Arduino API neopixelWrite() +#define RGB_BUILTIN LED_BUILTIN +#define RGB_BRIGHTNESS 64 #endif /* Pins_Arduino_h */ diff --git a/variants/Bee_Motion/pins_arduino.h b/variants/Bee_Motion/pins_arduino.h index cb61f9efd1e..d11f332cef9 100644 --- a/variants/Bee_Motion/pins_arduino.h +++ b/variants/Bee_Motion/pins_arduino.h @@ -9,14 +9,6 @@ #define USB_PRODUCT "Bee Motion S3" #define USB_SERIAL "" -#define EXTERNAL_NUM_INTERRUPTS 46 -#define NUM_DIGITAL_PINS 21 -#define NUM_ANALOG_INPUTS 12 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) -#define digitalPinHasPWM(p) (p < 46) - static const uint8_t TX = 43; static const uint8_t RX = 44; diff --git a/variants/Bee_Motion_Mini/pins_arduino.h b/variants/Bee_Motion_Mini/pins_arduino.h index e3f43decb4a..3e308be5de6 100644 --- a/variants/Bee_Motion_Mini/pins_arduino.h +++ b/variants/Bee_Motion_Mini/pins_arduino.h @@ -3,22 +3,26 @@ #include - -#define EXTERNAL_NUM_INTERRUPTS 4 -#define NUM_DIGITAL_PINS 4 -#define NUM_ANALOG_INPUTS 2 - -#define analogInputToDigitalPin(p) (((p)<6)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<22)?(p):-1) -#define digitalPinHasPWM(p) (p < 22) - static const uint8_t TX = 21; static const uint8_t RX = 20; static const uint8_t BOOT_BTN = 9; static const uint8_t PIR = 5; +static const uint8_t SDA = 8; +static const uint8_t SCL = 9; + +static const uint8_t SS = 7; +static const uint8_t MOSI = 6; +static const uint8_t MISO = 5; +static const uint8_t SCK = 4; +static const uint8_t A0 = 0; +static const uint8_t A1 = 1; +static const uint8_t A2 = 2; +static const uint8_t A3 = 3; +static const uint8_t A4 = 4; +static const uint8_t A5 = 5; #endif /* Pins_Arduino_h */ diff --git a/variants/Bee_Motion_S3/pins_arduino.h b/variants/Bee_Motion_S3/pins_arduino.h index e3a1dacf351..6eebf47d884 100644 --- a/variants/Bee_Motion_S3/pins_arduino.h +++ b/variants/Bee_Motion_S3/pins_arduino.h @@ -2,6 +2,7 @@ #define Pins_Arduino_h #include +#include "soc/soc_caps.h" #define USB_VID 0x303A #define USB_PID 0x8113 @@ -9,14 +10,6 @@ #define USB_PRODUCT "Bee Motion S3" #define USB_SERIAL "" -#define EXTERNAL_NUM_INTERRUPTS 46 -#define NUM_DIGITAL_PINS 27 -#define NUM_ANALOG_INPUTS 11 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) -#define digitalPinHasPWM(p) (p < 46) - static const uint8_t TX = 43; static const uint8_t RX = 44; @@ -81,5 +74,13 @@ static const uint8_t LDO2 = 34; static const uint8_t RGB_DATA = 40; static const uint8_t RGB_PWR = 34; +#define PIN_NEOPIXEL RGB_DATA +// BUILTIN_LED can be used in new Arduino API digitalWrite() like in Blink.ino +static const uint8_t LED_BUILTIN = SOC_GPIO_PIN_COUNT+PIN_NEOPIXEL; +#define BUILTIN_LED LED_BUILTIN // backward compatibility +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN +// RGB_BUILTIN and RGB_BRIGHTNESS can be used in new Arduino API neopixelWrite() +#define RGB_BUILTIN LED_BUILTIN +#define RGB_BRIGHTNESS 64 #endif /* Pins_Arduino_h */ diff --git a/variants/Bee_S3/pins_arduino.h b/variants/Bee_S3/pins_arduino.h index 22126d14008..2ea399fd532 100644 --- a/variants/Bee_S3/pins_arduino.h +++ b/variants/Bee_S3/pins_arduino.h @@ -2,6 +2,7 @@ #define Pins_Arduino_h #include +#include "soc/soc_caps.h" #define USB_VID 0x303A #define USB_PID 0x8110 @@ -9,14 +10,6 @@ #define USB_PRODUCT "BeeS3" #define USB_SERIAL "" -#define EXTERNAL_NUM_INTERRUPTS 45 -#define NUM_DIGITAL_PINS 15 -#define NUM_ANALOG_INPUTS 8 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) -#define digitalPinHasPWM(p) (p < 46) - static const uint8_t TX = 43; static const uint8_t RX = 44; @@ -73,4 +66,13 @@ static const uint8_t VBAT_VOLTAGE = 1; static const uint8_t RGB_DATA = 48; static const uint8_t RGB_PWR = 34; +#define PIN_NEOPIXEL RGB_DATA +// BUILTIN_LED can be used in new Arduino API digitalWrite() like in Blink.ino +static const uint8_t LED_BUILTIN = SOC_GPIO_PIN_COUNT+PIN_NEOPIXEL; +#define BUILTIN_LED LED_BUILTIN // backward compatibility +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN +// RGB_BUILTIN and RGB_BRIGHTNESS can be used in new Arduino API neopixelWrite() +#define RGB_BUILTIN LED_BUILTIN +#define RGB_BRIGHTNESS 64 + #endif /* Pins_Arduino_h */ diff --git a/variants/ET-Board/pins_arduino.h b/variants/ET-Board/pins_arduino.h index 9dada4cb50d..7275f956f4f 100644 --- a/variants/ET-Board/pins_arduino.h +++ b/variants/ET-Board/pins_arduino.h @@ -3,19 +3,9 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 7 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t LED_BUILTIN = 5; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN - - +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t TX = 34; static const uint8_t RX = 35; diff --git a/variants/Edgebox-ESP-100/pins_arduino.h b/variants/Edgebox-ESP-100/pins_arduino.h index c781113e040..0c14982ec9b 100644 --- a/variants/Edgebox-ESP-100/pins_arduino.h +++ b/variants/Edgebox-ESP-100/pins_arduino.h @@ -3,14 +3,6 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 34 -#define NUM_DIGITAL_PINS 34 -#define NUM_ANALOG_INPUTS 2 - -#define analogInputToDigitalPin(p) (((p)<2)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - //Programming and Debugging Port static const uint8_t TXD = 43; static const uint8_t RXD = 44; diff --git a/variants/Microduino-esp32/pins_arduino.h b/variants/Microduino-esp32/pins_arduino.h index 034bd6173b3..7dc0d236de9 100644 --- a/variants/Microduino-esp32/pins_arduino.h +++ b/variants/Microduino-esp32/pins_arduino.h @@ -3,17 +3,9 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 22 -#define NUM_ANALOG_INPUTS 12 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t LED_BUILTIN = -1; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN #define MTDO 15 #define MTDI 12 diff --git a/variants/Nebula_S3/pins_arduino.h b/variants/Nebula_S3/pins_arduino.h index 2d905050651..39fbe5707d2 100644 --- a/variants/Nebula_S3/pins_arduino.h +++ b/variants/Nebula_S3/pins_arduino.h @@ -2,22 +2,14 @@ #define Pins_Arduino_h #include +#include "soc/soc_caps.h" #define USB_VID 0x303a #define USB_PID 0x1001 -#define EXTERNAL_NUM_INTERRUPTS 20 -#define NUM_DIGITAL_PINS 20 -#define NUM_ANALOG_INPUTS 6 - -#define analogInputToDigitalPin(p) (((p)<6)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) -#define digitalPinHasPWM(p) (p < 20) - - -static const uint8_t LED_BUILTIN = 45; +static const uint8_t LED_BUILTIN = SOC_GPIO_PIN_COUNT + 45; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN #define RGB_BUILTIN LED_BUILTIN #define RGB_BRIGHTNESS 64 diff --git a/variants/S_ODI_Ultra_v1/pins_arduino.h b/variants/S_ODI_Ultra_v1/pins_arduino.h index 51278ce94be..87a6d56e0b3 100644 --- a/variants/S_ODI_Ultra_v1/pins_arduino.h +++ b/variants/S_ODI_Ultra_v1/pins_arduino.h @@ -3,18 +3,10 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t LED_BUILTIN = 2; static const uint8_t LED_BUILTINB = 4; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN #define BUILTIN_LED2 LED_BUILTINB static const uint8_t TX = 1; diff --git a/variants/VALTRACK_V4_MFW_ESP32_C3/pins_arduino.h b/variants/VALTRACK_V4_MFW_ESP32_C3/pins_arduino.h index 4e3c771578b..b473c8afff1 100644 --- a/variants/VALTRACK_V4_MFW_ESP32_C3/pins_arduino.h +++ b/variants/VALTRACK_V4_MFW_ESP32_C3/pins_arduino.h @@ -3,14 +3,6 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 22 -#define NUM_DIGITAL_PINS 22 -#define NUM_ANALOG_INPUTS 6 - -#define analogInputToDigitalPin(p) (((p) -#define EXTERNAL_NUM_INTERRUPTS 22 -#define NUM_DIGITAL_PINS 22 -#define NUM_ANALOG_INPUTS 6 - -#define analogInputToDigitalPin(p) (((p) -#define EXTERNAL_NUM_INTERRUPTS 22 -#define NUM_DIGITAL_PINS 22 -#define NUM_ANALOG_INPUTS 6 - -#define analogInputToDigitalPin(p) (((p) -#include "soc/soc_caps.h" #define USB_VID 0x2886 #define USB_PID 0x0056 -#define EXTERNAL_NUM_INTERRUPTS 49 -#define NUM_DIGITAL_PINS 49 -#define NUM_ANALOG_INPUTS 20 - static const uint8_t LED_BUILTIN = 21; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN - -#define analogInputToDigitalPin(p) (((p){4Pi`mIA` diff --git a/variants/adafruit_camera_esp32s3/pins_arduino.h b/variants/adafruit_camera_esp32s3/pins_arduino.h index 6117cd9f4ae..62132dcadc3 100644 --- a/variants/adafruit_camera_esp32s3/pins_arduino.h +++ b/variants/adafruit_camera_esp32s3/pins_arduino.h @@ -2,7 +2,7 @@ #define Pins_Arduino_h #include - +#include "soc/soc_caps.h" #define USB_VID 0x239A #define USB_PID 0x8117 @@ -11,18 +11,20 @@ #define USB_SERIAL "" // Empty string for MAC adddress -#define EXTERNAL_NUM_INTERRUPTS 46 -#define NUM_DIGITAL_PINS 48 -#define NUM_ANALOG_INPUTS 20 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<48)?(p):-1) -#define digitalPinHasPWM(p) (p < 46) - static const uint8_t PIN_NEOPIXEL = 1; static const uint8_t NEOPIXEL_PIN = 1; -//static const uint8_t TFT_BACKLIGHT = 41; +//By making LED_BUILTIN have the same value of RGB_BUILTIN +//NeoPixel LED can also be used as LED_BUILTIN with digitalMode() + digitalWrite() +static const uint8_t LED_BUILTIN = PIN_NEOPIXEL+SOC_GPIO_PIN_COUNT; +#define BUILTIN_LED LED_BUILTIN // backward compatibility +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN +// RGB_BUILTIN and RGB_BRIGHTNESS can be used in new Arduino API neopixelWrite() and digitalWrite() for blinking +#define RGB_BUILTIN (PIN_NEOPIXEL+SOC_GPIO_PIN_COUNT) +#define RGB_BRIGHTNESS 64 + + +static const uint8_t TFT_BACKLIGHT = 45; static const uint8_t TFT_DC = 40; static const uint8_t TFT_CS = 39; static const uint8_t TFT_RESET = 38; @@ -30,10 +32,10 @@ static const uint8_t TFT_RST = 38; static const uint8_t SD_CS = 48; static const uint8_t SD_CHIP_SELECT = 48; -static const uint8_t SPEAKER = 41; +static const uint8_t SPEAKER = 46; -static const uint8_t SDA = 33; -static const uint8_t SCL = 34; +static const uint8_t SCL = 33; +static const uint8_t SDA = 34; static const uint8_t SS = 48; static const uint8_t MOSI = 35; @@ -53,19 +55,16 @@ static const uint8_t DAC2 = 18; #define AWEXP_SPKR_SD 0 #define AWEXP_BUTTON_SEL 1 -#define AWEXP_BACKLIGHT 2 -#define AWEXP_CAM_PWDN 7 #define AWEXP_SD_DET 8 #define AWEXP_SD_PWR 9 -#define AWEXP_CAM_RST 10 #define AWEXP_BUTTON_OK 11 #define AWEXP_BUTTON_RIGHT 12 #define AWEXP_BUTTON_UP 13 #define AWEXP_BUTTON_LEFT 14 #define AWEXP_BUTTON_DOWN 15 -#define PWDN_GPIO_NUM -1 // connected through expander -#define RESET_GPIO_NUM -1 // connected through expander +#define RESET_GPIO_NUM 47 +#define PWDN_GPIO_NUM 21 #define XCLK_GPIO_NUM 8 #define SIOD_GPIO_NUM SDA #define SIOC_GPIO_NUM SCL diff --git a/variants/adafruit_camera_esp32s3/tinyuf2.bin b/variants/adafruit_camera_esp32s3/tinyuf2.bin index 21e91284e05caf503c9a0f2decefad67f18edcc4..0247a171331c8b9ac80f659b67751ff0377b25f2 100644 GIT binary patch delta 69677 zcmc$`3s_WD`!~GTo+B{oa2gR%XAg`F1PTMipeQpVA)X3R(aH+Z!9!XesI0VM$P|qV z+&*pX(VhXJ(4;^u%|n5jX<@04mHBAlfkX~+5Ih0S_ggbV`aIwN{a@erUhnn(x%kb! z*1guc*S*$WhkNb4?`^M8v|aNWa$U-fnEyn)@dm>%9)SCgs2Mgf_?4m|gFN-|QS)Nw z#wS=FD>6m_ zx3s_~GDFt=b}2)~pUz3M=2#eW0Z6k{PqdMkKU(0~x1HpK2bNJT{qjy*ZyTQ`D|?(N;Ir>^{Nz ziX?43V>a%-B>8hdVA^YAXD_xao6STIk9ll(bku`^!C&?tzI%X*)$yTYgl&I}_1IlE zsc^{d{1^6l_1AkO?rfxu{6UKOBoyuTjjK`DeR41G` z_2TzV+Ax%1)amg?g6y=Al2I@{kDW;3V_uoY_q-9u?wi8vSL&_Po{cvmnW2>CrIdA3 zk(-L$RN|&mHVR4RF&zZW`#OL2erCri0ydh?@>Y{Z0kcZU*P38aEAb(@;0ny6G@C4RceSn})k- zgquF%rjc$M<)*{kbOh>mDiH0aF>b1N(^xl+b5pti(Jp?>P2=6v;HC*~I?_!?xoM)C zj&{>AZfZ?JU<<~{{}8PIQx&`Gwf>K_+@*l^f3EAD3P_ySefR9#IST8vns{Tt{di+2 z5Dg>)0lo3Yv=zimadttx@hGsel5xiS_@PyddEY}kj3}lr?WmjI1{ysdGJ%=Ed|(Bz z1*irZ=EsjPDj_@+h*u>BM*~IUF9Siwo?+#~YhVv!w zu6}5*=A++xludh$x4ai6b#2o8ruRDdg7B)aP4%No+h2c1CX-JtOcYll zL(%C}zP2zmG%@l-l05E25~DwnQ~;WYwR2_6iKK&%o=A!Va$>QT8dv(Unag%RQItVO z=VB*9dEoEg+fJWA&@p0eDM5+Looi9xT&P*bi6wA{dnVQKn
  • vjyDDaVyRqCS7^f@ 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

    _c|$H zxJ{X<57&e}(KcD2DvV5tI0dK?P0wp^G zWY>mN^^y}!-+&5wfgg})hr_TNy88E%0gBrMxPL$jZFMw-ck5sylvILGxHeFOOQ;d9 z-vp0z7wQDvEq12c45Z0VhSy{`IG-3S^svQEkbW$#&4xTkD? z71>7-Qvq=*h&*l=dAttCtI%cB(qwqGjt(c^Kvc4)E^Bk0;BlJ`P{ko5=xaCC2r;)= zJvX6FFf_4V^I+%hj_sE?l1zEOTNj!(w5LvbhZ>A#!s>e(z+z!0a+i@Ml)I{KcpCm@ zozQWc)sEd!m*rmzt(`W=fNS#DENV9x$m|-y^$t7UcL9>Ei}(dyVg0L)Z=SA=gu|$? z-`-g*#NJ`wSB|56W9oz-?y!@&X`uRDcGa9q)oBJef+&o7ocvM^9Q5Pr&c6xQqDocY z`!kYno#*7pJ3s1+^*H~xQfbl8cQDh}W++S>i!TCPU$w+TGvuKzw~Td_n7?~pA%hctgbaJu0Yn2 zIKfXrT#(jI)}fi;49R_&CH|CpO|A7QO08Dxv?XbL_9w7cliWkriBHs4tP?80b@sw} z@a3M8lB5`)tr@#McmDo4h@xJXDn=t@bxLZIV#4};Vf*I~$4|c(@3%h3d;gv1?JTF% z3jQ1y#oehAp5x%rE5BOdO^%z-2i(Qu(`xgUyo zal)YH?)RDrMF%a;Ov^}}?ye<}-QUYz4R<$Ot5HX!I*?tGC)`CGC!QbF0*=gqbLjyb zUN?^7fXqBK;5a#OzPpbTA#)w{p-65#pFAFrxcwp5K^P2~^=E4;U}fLGkYn?_?-p4s z&Ptxw`P~%?WRPK3?u1MwjWwuFB=1@%Xin`}gkc1joxg|5J9IIi9{4x7e zl;IjbuyKNM8MA(ni?uTRjJzLFmBaT{k>!tp)7`{EbrJ9D;sT~bWj?0LjKN|K%IyDN zWhT{Rjr_lqiJ;1i9ahGu$e*_Vl7gQBw#w_j6B3b_K^2&aws6Xy2DV5;F@-Wde;NuU zROmFKp+dL+uh5Y-SwmI-hXuT-(A$;wEHH0arZKq-g{IsWD$kz>LX+)6UGwLm(6v

    K(zHt(7+^1JYNlYAL+J!pGRU_b=KEZ356r?6<~(&ASSW9dUb?b zVp*jyNx@CyCe{dR6`bBUx>{?P5v17vy&SK?o^M_x`^H@sld+Csi#Y$R|}G z7FwR#Rd>mWO8C}XueM&U#`aT{J{H&|)ZSKXxx0UxOw6vb?yI7W9<*L03kjjUqYc-D z{jam)t}5&9DlE#o93WwzGZ&-ot_G2o#L=OP3PxtOcO;HXqs?DnZH>2VrXvwiRHjDeO}UGdc*LLEsnwuB1TogM`ZwmI1J(6!rnYu5cg^$B|DU zj4VQc{{8A9V|A2!xMdMc(zyYZ^m=tE7yJ1gTxd$@l0m^FTdJX%#x{CGYMMgLj|~$d zMnEf7dZ*}9nE1<*r90SXi=I_h&noB*J(0WfC0wKBXTbJHa`qkU%uN+J?&R5O-t_}h zoT*Uh0R>A&Rv>QwA$w=Pyc*lYphC_YW(`0{mLgQMxavF}#to9iSQsc!ksO?)g@0od zXZWQG3VXQQynP;q{;K%$N(4JCu{U&16xZ-$6|Vd@N_L_sE*T`bDfqSmR;C!ns;O3kw^F?=;Wd^tQ=@zW}5#USM#u1O1K zM9YfyIFk|_4|y*LLgV6|RKjMCq#z$_MU_?@F;rS5l~p}3$X<)uYDF3Nd5z>2W?QOk z{Dxy8f#g|A^EJ@$Ltj-%g+Oy}7P07QI}t8d=8rgVlq{vl`GD*OgY Iv+S(6$^Xx z*$qx<^|pi!cPy1^oyg^H-s7VixCzbNqe!Fqq)PC0<@}5@DTi#}Fl9)nl7t6Uoa&IK zfJbQH?DC!}bZ#;+h)d`QFOY+;|JPM8h7Y9-NR`%HKa^P|Wm0|Z`5xd%;<&3ZA)fv3 z5e-G%3aAaB?Hj1AQ6;@m75k&jdRDTSbI29MSgi6o>I9Xz5+c5;fCxTGyH>N(Y4cib zfqZbZt?0Ps&kAW%mAY8{eYM|!(_r(>$tnvhxr9&DWpVji_V^^X+=N-jb)*GHBXG$y z9XF6RMEvCCLl~+=0wmY~N{sl2-DYd5gxMpxz{vARg9ME>i^k1fa~G@DsRGF*gjl12 z?x~^2tE4A~^95(%KT5(!Be{giq%G7eSVv+aB>vXRPZ*x9S`E}S(ayOCRvAsDLmy&I9d?;;gZ zO2RpJI0!oec`wW*zmyA8JhP)!*<~Jg(KIp|BZi&aZPn zB7a?#l9Uh!$tNY{!gUXBscIrpK&{Iw7ve{8vz308fxE#aO{E}=;`H7YR16bkVDzq) z^SK?jutzYJ3+G31kx|en!;~=-j^lYIZ@U8>$yP+)vliI>3%}qDv{U-ubl+$`7wNJ4 zDZA&le}O1ZPQ$OI*k1$os&e5CPtHGd1;&`>?6?S9$2=^8uZ&1r<3yHWY`(|SJ`sb7 zHyy4(7MBYxK;iN@!l3;nGs=Zqo}4x`%E6*%n1w&GcyyS>RNbm!77v#T3r2GRF1leB zzU9Jeqq$(C1|zH=N?P+)?nzr!*zPwm2UVy>nlr2l!7I zsWf%71oWT>(+ruZO_`SSzc^Cdl$@iJg6fCfuI0~oSAB`Kf+1j%;X+PxW*REtRS zM-@1qpX(l{ouBPHcR@C(#K;3vR{Ddp;KyhF9=u!=Cq>DF-wGltxdT&Qh=4bY1oaqB zVSHSQQbdyA^cQ6FiDp}Qq*E}GMAV8lM%r37b2lVnGFk=N_z%c`sXmW@KH^ZQB!z=v zx4UCv0qaXlDzuo28myh7R>CFbPmmyMf}{=R5`K5t9-OthJlHumFw0L0o|ZpiaN3Uf_^DtBqYeJuOixp4U-*5pv*<46O!v*rolf3CJ|;u+25=m(vrOn2!!0!$ zsWN|8XwCl}x=|tBg|)r`)dF{_%yzpna>ctgQ(~r}7A{ul%lw)^&7ZLV%u@Ywl)Oag zFIMDiiZLG=`l&*?QZb;))kL{3uqS8(@_3y~KW<}oR~GO)ZZ(KxgdmPZ zdzWut6D-SJ_PWeuDByEefVL~hlZcg*<<+1NTPk2hc zjLxp}EEuulR<1~*%LMR5GKQN`CisknSHgqJgvZBn4~I-cG#E$}aKCIOAsDb8tVlEe zI8;y}SwLktiQ@z99hq1zd^8qDs(ut@KiK8!khwy7kJ`o2AbQ#D0^^1tF35v6eDLx! zVWJE%iE?O6T`6q_(B2-(u8`h(kkFM20fyVrdY9 z#KYw#FY`gS$e5tfSF_zia?P-7Y+5%e3WxP3&B=0ggqxX81fon36=c#MD-W|DJ2sK4 zz##_iITtvUBoQxU2ghc9v}w($Fb%=Q5Y5pC=y6FTNU6VG;-FW?{stA6C`*N($HA!L zgL1)jJm=%dARp_#a%o?=BRlVu3NyxYe$W0ZH{0b=Vl{yqM^@?$U=P!Z+hN^|+1Y zL2|fdCjP5@@GJ}i*QxHGUg$0nhQ`BFm8MeRkqKNRcd|ryVFKq1FSiQm6SyqT@hHG? z@dNrRbqvhNgh^^H?5S5!g*47Joa3!7<*6ojII<%JIFb48O4*8$2fD~Y z%HwjGbQu^>S@Z4rM9YL&RXV_$EpBFQ#q`1!n2j;y2P_}+;rKIbT|YfhmNv6Y56i32-YDrxDtTnWia%TC0lS@*5dT}e@SZ@kLwgL zNg0=#rb{Sd4s0ilh>Z$6Z;-d;hV9+EC6yT9KqILs6ACrlmWlag3CnGnS-FJVEe2F; zURe&2@<5YZ)}hPaB|@B*^W%0G3mdfDV!yY_;CgZ&Mc!E^y@^UYY<9LpXxDNR#VH9z%7UsSV#Q5&rh)g2umC5*U@d z`*4nYQ*H4PBGwkawteeKc9wF}a*$ zVS=*u#ArsA#rD`H%_VD*2=4X8t+T4i{)&~{fy`cbo+}alJCS?XJD#%ryHs*Qj;uqm z#U;Y6iQKD`A4Vw1+tgdSXVj*iQtRnb6OsB$q2o0K>w`79?vBzsolGndKGJcswNs0e z{Mq#-fH1j3G9Ub&D=97X~0IY~DE*72);6jrOh?{Up9z>u5 zhT!GM%X4JpH_+&9K_wQ;@StL)Sq*+FEz$}y z5+gOUOS9cW;Ra%0E~khDKL@4s`zW-K(h5*0nl=c&GgagT( z*HY;r(D)ALD66q3q4p588{mN$6y#C1AKwV>kXP7kgpN{fkr|ZwZi!?oxmUfW6$|mf zoKI*J!Xm?)4}$4^@f$Bs8h$Q;Te4t>c_<+=ynhaSKVB>d!Q8{62dPqVwm4k2s;GZUO zQ;h#cFnOxv!P~bcjB{9pEH2q`3;bv-Lh|9b`6cLC!yW_7^z%vr{o}|yjF_bg3pa$H zp27G4n+cHL|-9E~84VZ>q;nT`L^X$G@psv+a#I1+_nKsg-YW52+v&pRy~;FKLpSG%daxShf57{ zqgeva{-Mj5%l@&1K%t{ zWHdd+q0RGQ_f~6W(SzuJi-4Whpwt@N_@%*#JlsG;Y~I5hzBAn5Ms8qe&j;u}C4l^a z0r8h&a9C?co2)Y4?$uu`#u@i-b}7H~nwI5w3PqDNwjwM)P6z4%wq!xdEZ)FU!tfags`k13z{jkQE+c7Twg9{&gUPXy3!MUE$h~ z7enkbs#;h}a1<@xJ8cdeA1oFoJOVTJ{9>pU)yNC}s~rC{tT7h{ad0P&YxV|8?R+Ow zP&&*kK*LXp?WZU|L3E9P9KLo?-g5lYaQxolAUU|Ww?K>WJ_1k!&Hf_rcI_3xl3a)~ z;uYCF#p0e~A|OVjJlvm2kc|M81ItJjM!~o{qgdKmET$KecQ7I`wV0P}V_5Umu zHx-kAV-U1W!GAu5_)@Ns_?skiN?7LvS7B4IKqda8c#jYKKzJR7$*dC@A8?5)icQ?- zO0ovY;bN|goX0Pm;TMa`i?85SkY_O_(m%G=#*b388lkv^U6zH-a$3P1c$_RpAXsF6 zvG@cefh@(a#k`h0fkJpM9?Th*uydCDKn#g<;La)*=N1ph$vg~$CFUY(>_NJAWS9b3 z1?icBu=vTvaB6mgJi*Jw52yE!K(ZDyN94^X0pnrBfVuv-tJ0L>q!dP*!iL8wn=TC~ zN)m>(xSRaAARudGQ**;&z>R?>G1;7i{o zKoC%n1ciXo67*Brf)Z?5Whd5FZPnUpt;&DqCRF=<|MT#KnKNh3oS8fOoP}iwG4m|{ zecAs!M!=FGLgoP?`gu)ov;Z=DSdf;G|DpV3m&*f0&q(&9#(Z)1qzd5j`!#XA#{Ypz zJ|a=LVuv2pn82JQA83*-*}(WU4a4rG6B=S1^NSe?fiAv~Tol|Qv{(L26m6IvtMGfS?5kVk0HryFw0ly1>W#IC&Srv zh0K^&NilFfYh{PNfcp2_lcg(NUv)hGpxdZ^;1zj866sMlppRtfGtCE#g;ZH+Qob#Ji z~6IMzk$A8jZ3GaNR&~D?@vclXI`y_O%!0|w8KyKE%m=D!3ZY= zvyvSw^PyK%Ux8C*nSRltx+tf#(;ni0mV>^&On4=ZpMjzg*5jfXXbQeK6N!Sqs1Cm9 zO>TTbfrQc}^F%e=m1b_Ow5U6QVNrNT&=c~3qH<6toukKgvtSujR%6*LBzBl!Necpv zw*WnUdlqt=xTiXHPxYe6BS`4H;2e^uIPzW93T@@07@^yON=nFIDiK=`jG|9f%1>2d z737H6T%G(r96$nnGotAY)neb&0VyY=)nBw{TbbV9U%+^frr-8fbqiOJ#pSWKMC@Yn zb3iVZ^ApVsp2NS-Ld(bhTYrG)SSh6XIHZ4l>B<)P^Ln?h(rM%Qy7Nv6r#;qBa8PT{ z;jOcgzvGl@q4U8U2WE10YDg**T#XB7qa-hfYM~A2Or(>=3l@ev#L0B6*0!EwIF)$( z9OUo%)wz+@CSNj38l&b{W5paa`PI_@lTt$<2h8??SKGcB=ggnj&B9gOck&f=XBD2PtH`Q)hiLVu#I-!D(V zXg#4v-bliz**y7nJ-!@)0z(#(lC(*B!+QP5!Einq6MG*Mr4V?lqT~wwwh5Jsq8C)H zlE13o_PQSX$kFR5F?xkd<)ZlurlaU2j(nP45vFHjmlHUmba!o}zSJg5!R?4;?voPs z*=EaHX#UC*Fn6*g&d?je^_GL0$XsBlbvk(OBB@IGfyQA@lT9r@M+OxBa~5E1{7$2U)cO%i*QT2plZC@4nJO)!0_MC^_OfkLvEMt*fRAbaaE;(tyJI^kH zX7zY@dOs)jN|iW447cb8xW&q|0fWB?#0;ks1Q48PgtJ}<3BwhZ%*Iun&PvEp#z3ba|+V@0b0I$zXY?s4`Rl8$#~06k=r4lQ~E}Rv14F?0rDj zD&m8+AXCk=B5U}cSo2I6BTOi=t`#()bVZuNF<_hK#IrPbTI91JCLmLj^9;zBJxf}? zO1O8S>>D{G@e;G2(b-jCTo2UfN1Kj4i!sz%-TT;Skx~`o#O$hCq=eRq!8@Xmr;X{# zvm&@xO1y$`6dDt{zY3C+HY+~>8*MO_OwWgzlqz_Wfa|A-d8t9lx&_C)d`8%b_gD+0Sw{F$9I6+Zkl|wG#E}aq zXz6J52Ku!EFI<3p?0>4vtB+e49Gu|6{8)+iEPzvMSOxxK0g9FxNDFBjEB!V@<)Efa zEemL(RCd`|s^fkP)TQR@#V3jBQ z0<<;8l0e{cfFt;=3SNW)DfILlerqwBJi16{JgLj`an|{`z>*0?tvtau{CE!MFGg$8 zwR2VI6||Can5HvM9l?6;cwA+0y8RHp;)RAXRP8?#tmoy|3aTdR^ z4Efv7AgShWG5Re2bQws|Odz0I-b%aS#UaWpeQ45PA1qyd1R9#9=VrVMF$sz3m$Bh- zY&eSzd$ZvIHtfNMABYaKTT3?*(@7lJBxiGErX|h691UmFBJD^lSmK;noV~TKx8MG}~sH zHh>C{)8!RdvmEY)4pd;{as$cmKi*Q_pd=%k8Bg;*eK~%z0x>9}0`FUi z=EqK{u!wJ|5Lm~$6vE zXoWbjx#fHRSZ&;3m@$N+2a(c9mz=>at57oXuBh6#3hkuOmpc3~4$V*cOb0&7G(kud zZY7}w+Dx6Kei$GDOyU&OxJb%?zhEXdUANkJU3zCnIm^=q!{xb1oub2Eu0}yfsl&$ANEEbLcPONR+wQ`=t%KSh zu`RVuQ}~hA*h}JRv|kqO+hp4fi~rGTaO0-Kqt_tuoYlH!DF{b57}||RR(cV$kRTTu zs*P68XyU3Y+BJT69Ui{|<_P*#UGsF1ePdC%IvOZF)S16##cD?-_`DY zAmsjJ3^0IKkOOkKq_EZr1vNk>4dSyo98rsd*i#%Y4w{;~f7@SLmd_%C-pIC{gAUif zfu=eBsuc=^qpcI{SZJpfTfYgfSv^`Te-nI6Z!0ryDp^WAqQ4TZX<6@zd9r(axbpxkQ^gZQB%W&~nFBcC;<$E753XzADWBP4)uk(kY{Wfw>p-FuVr%R2efNHgo`LP`0D;G_O4j+!M zBm+1x2^k7Xjay2=i1S)IbNWrsZNaoC<9+#mOJnbpgX(Fhq4Ai^wtU7x+XH+U$w@9q zguj)4UK;zfy#ILV{lW6f-W)?#sj|nBBfQk4DaJBQ<#=m6hzXt}*^HQ+fdH-tc8vPwEqKo z{DO01f@vptZux>^ARq0R#6?!=&(%5Qd!H8@e==NN%8{QfuZdb{vuJXp+KKssgn>ICM!1bJ#_lbTSm8Ls4IQ94!89%63Q8SnM_I}} zPOusF*IYU~6+k+3grvw0o{2LAML~r{OQXbnQQ`|z4Ih;oKPt~N&mpS_QrZM|68XHu z+OVhGxVGFplQ1Ny(9`v@JE^^4Yq|0La%OQk9-DwBdaN%O@*@@FmMO;O(Lx<~pKRp9* zCaV1Nb;wonJBgT)5+@9kdd;>ip8&!{By(=3+M^s#Ux(-v4vEVrmoN2v;z&JN>iVRZ za^(DLmt&|rwKVqrnFxua{8%YjlS;Xuf%Pk)dc(7c*Ug7RD|zL(O&~WtZI~7km?#Ob zm9p+YIdHedG!dBGt-Of~US5zN&GMlN7ZXNqkhEN0r~2L*+zFg4Zex-8{~u0PmBu!( zoNRo-$z_854^HX{gm6-P21mbx#-h7taMC;IUF-1Ejh;sTQr!LyDo=?cShWbOadQ3c zK;w;UVwb&ugC*n_@K?-muocRDPJ--0t$+jZLZ{U<6GcE^eQ}L)W23uf)bn=gmeXTe z??blu%;A^tBNd!w3MxT?t&?DPoqDFqCkaiXgeOly{$kvC!Z_^=erG)jP1$*Rsl+iL z_A&_GbHflUaDS8qMLLfEOd3f`X~~&nc>qstSGJZ5-7-E(+~{ic0B-+a=f$B#XVU1v z142%WJTBIdb;_7|ip&?03g=}C7pAcc3cB&_GFqyzKLaM<>A(Q~25qBz^v{U4KNBE` zz6CVuX=m(}j7AH7Db1o?6pdv#JQ*!Wxk2*E?v)AMm)O?4ZYN1oxEqpA8Sj>v=P8nE zxLszvUB;BN;h)QlKbJArNO*~DDS`>{7Z!fA%y_emIZ49oI3s(-%Vwq{uayCv}(ZFwa zgQ6m$XvSrvsMxV(LMzzxbFANSY~Z)}QIdL!5tiY(?;=`OQDUT^;Ys0`;vO%byCHxy(jDKUn#pC%Yge>^J1neW09HjNN(khjM&zmQypFG`G)${2eBr6-o% zwXKneABb1_f_is}F#veu>1h6d!b_s?W~>O(0PO{Dj1GBRs z$SRtWy<5`c5Y!S>DyX$#8c89ad%k9s#NpWaHZMzYqHmOD-(MqXK<&<=9HDw&iS{Zi zUtSNOfV%`4=scjkn;h=-ikY7YAX%HIaNQWCBW9I7^sz;9$z_V+k%EBI6#1O}LZ#^kZ--;Pb7J;r}d ztXCOUl^Ac9=FzS?+HEsp@=3a3S&6Z~6xab~*gpSX0wuiy1SVjyI6CiZ5^YN9EIy<92i|+7_{e7D4YE_l@=^w3+RexhZG)L_GYT4QQ)2uN6d}-O zGAl_owl|z8#pAXh_qVqa2$M;Ef$2}#bf!Ji%ZFJ&!lb34*TZxI6-XkG$ayf)%=qkW zlETD~;InO>Kw>vN{TqM)+g!e-`137jrgvMhF{yMmoc9QV;d-&LrI>iVfU)mTT6K2| zl2W#RoXU>H2V51Mr>n+oMXyrm>(ltXZO8*@i>eN7L!*$J&*^1!;6g1eIi2Bl+3uMY zmqUwBaad?m`_jPxLxpN=~Fmm7xE79 zWXq*FP?%{Av0M(jfyM#awMhHnsUoD=PeCIA4VzQ=(k^t>?az`uvGDL2TZ&e1OJ@RP z8{~|s2%p>yW^K_ad~-KihVGW&@DGp)^_5_H4~jtfB~|P8pg$=|YzfSvs*lx6OPF(o zP|1dQ-&IU#1n(K&m82VU49wKRs*nB!Yp>*s;xrWqY#x%p0t@WWIsc3^$BXe-`_TN+ zPc=ZLIIHnVldZ9^SY24GQzbDrh1l~W5GValF`oYs9Hx&J<82=y$>{c%kkg9QX@Go) zF==qgM`+8~^~LIU0C0}ELa+#9^^FKPBWg6!8azD(E{o!d@tPDAVE0O~dLiImWln4G zrzt3Dq5!T|#PCV6lFw0snMB9TNyQMB)C)l9E^~r8%&UWNg9eLJ5w;sHQa>%ysUw)T zHMl+%h1&g6q`m`ywalv;49+ATqKYE?7lS13e-yA)Txm-|9ltD6s{pHvK^ivv$f*l_#PFlkq@1JE!1z9TUV4xs#K>_~n$7lj7 zI*Gsg7{#H?li2SQ6h{AWQhoiTF5i}!M!1xz3PCw*>2giuw96FfGY|4{$|vZXX`4<$ z>We+7_Xp~S`Pz9W$4ecUS5FczR#M`UC7Q=E{E~0{=p>x%nOP_Cz5}Su<1XnZ`)rj| z;~HVTl_OBq&uao@{(QXoAR6bqlu#zgH$3(8K#%EOA^z_{G#cV~8z!Y-VM-ByS_4kKUR4TS@S z_$F>G1+#&v_b)4Qa5JuZ3CJWAV#Q(P<4}?(TU}`G>x{UtD(f&ZBK-AH^h3%P4S4Oa z)fv3&U8%5bVT!QWFu7mu!zH%rWDPhTSr*8tccc9N^H8->tWE@oD?ngt2S8KK!?m_* z1;8AYwr~Qecc(Pj4^>g(8LpE?D9KK!!GD?080HH#upTO}wS63WOVPf~uw0{Ft_hsb`imkxIp(0AyW8oVzHww>ZU$Ss`H?I0W_ydm_;Q*CCv z2uMC&6FWMu4qjJzie-5tihFV&jW}p0K;w9+AyoVd$E9XDUn02?$5VJi>JEUaLYzht z>``LV;u*BG4gnqNGL zFq8%>kHK8}qyV2fhPI?!A@vt7spWd72pyX2Ne$`=NY-8;?*>LbbN-azj;t`bq)w zl*B{j@bY^=OsOvwz@u6U<+u6a%kI2coCg#f)rI?nn~1Xp1@m8)$1Tse(9Um~K{*7Z zt}Fo8uh2)_fsZgnu!5hM{4klf*0x>*Y`K>564yUeX~bYLh;$!WD{xlnGn(lzvvn)B zU11Pp7N|7^OsfiyJB~aT9RPx)(>an(Cl6L|{1QlyODm|Q;%rHOQ#@1^umt5{l&sc5 zu+Bn|f|`C%pgvN-)T;3Q<4BsarJyh02|7%8$x&t9B4uBRQ|w0tB}(B#Z|<)Bf`ik* zY!JBKN>zVY5Ulc!13?8+5lR#HF!yJm{{>6mjZs?e*d z5IO)@xJ0hfE|F3xL zi?}sB^6=!Z7U1&Fk!#$df>;kVn|EYDh-dM|i}^uOVp&vy^*iWtBL|XWxUuqrrBQ@B zls2XyHrYG?n3)A5`3MogmF?)jB{1EVhrKcK4W3MjHCqAT#VYcd3ID{7^-^1MlV?E~ zH?QU4?HKOX?NuPTAb&{87|A_5fA7taqU0_GLZYq`%8R#Dm>Er`{7i=exd%JKZ5Uxe zggK4KS%eDY$v~2A98y$_K*leCVwQ*~l-&VT6Q@tUJH$0gB#C8W(hlcEIHXgaWuEDv)KXEHVnH$P|s^+<9}xOheT%9yl}&ua@P0NoEEY=1Wp4h*`zut2gE|xg-Wp zxMk$O(3bgxP_im}Zt0{SehF)fRWOK3$oG87O26Q#Ct%6^OpW7CfW*%Be7x%f3QkET z*_f?_h<07RVO>5eoE>hi2%{jW=*VHlb-Er26R9yZ;(r&0aM ztobrc%Bc)>W!@z8h=AIw`RZl)0EZ|OONd!aRF>c7me=xvRc;{3%_;ZU54TSAqI`J8 zTz_A-FdxtQ4;r^vv-Q5;SNF+`%J-}LbA~6Mu_c8vkz@@6ktR*kpWsuH=s(P{KoT4O zTzTl3>Fxt)4;jIQhbjdpGbkSy{s+D4JtluMqP_A%c|u$9GVzQPqiBzODO#CkO}l)F z9dpq{H2O}rTDj&nBe}1=beUq*FzrObQ-L; z{CpFiJdGxyyFA=_8tp`lH}R5Ew2bPGOub(K4dWh$q zL5rz+eE1ByNDboG%F%3aPI06hZJS-pwJ=D`GCd`EEDxeDl zn(!|bXdLo0;ZbLi-)Ns9xwnZZ*-L>;3=e*?5#wyai_aqelu@R`=lvG4ccYMyCgB84 zO$~^aGmXdE;PN}3GRY`)^^itJF{g(zs|jK7BzkTrQ%{26 zya`}R8!u(L4M6bybI8s0)DUbjN{SBaG*hTje&XxYw$nq{vl7XKA3p;YUxRjJz8J!* zD$(mMOL?W%nst=u#Pc-Ttx{^8xoZg5R-$!YorCb~&I^#6?*4fMe2$8qaBF#a>bP`; z=?-i-wh6NZUO8q)LrI@w-?8Zk!m#vjQD(?T&oqOW z$!08e`m2=Kx2QN^y9E5Pm)iTy<}q`I*nS~JqDbPu3d;2Jr&3met$^EH@gyEG@HKTP zT*6XcS?{JE2cII*pQ3#UbtUpjhJPE-%3XZgjX*+4M+I-P72Q@%Aio-4C^k*!B{uwN zrY1^zB6PN*IWiH!jg*i+w9JS7O(4JE0>_J_I7_)^&x>4*W;m8JBp)@159*QRb?y+z zz(h<-1st-Tz`X~hemH27Qf5iszIjeEtDy)m$0X(uY3A1-9ffIMh-9}&_sS+6IoqZ& zeeWX(?BQQF4a@om@l!nt9Q*TN!xaFw+g_>V!~gn?oW9debtS2wbRxSk2;Lvz(BC}> z-XD?M^!h;;S%3jpA&I2a8&~Utx*{acm6=<{ukm4i92w4Voet#p^rhr2S|Re_eyzyi!PQ z_6UlC52qD7A3VX&lTvvJRFU)jjf42t8ngwi8^mv)M68% zk^l55q#khG^!u5#J;;5FLWI&_&_X%Z&4r^S7raOQ#a(vM8@hQb+#WeI)F3@|5L;b9 zzMcVtMHeBH5}nkO_R34(^aaA}ui6{h>H_i+*$o~#lp3&K^nh<^C9r$wG=TSAK<>zO z5aSDI8hSQ>uUWpNMcmGf z%^6_lm`j|-NX?(aAQKfSab0i>9guM{zwF2Jzk-$M&;Z`_6?#MTuK_r#Dibz_%*YNr z42J(TMc`6n0C#@{QY??L;A`{_THlYie2u)xg7Y`Y`x9hx{oKH*pHp+;3VWX z5GwEr2@`<(bivmB`}Ya@lATsLgWgDgd^YKvSpl5!9{enc^X{BAYTJQYo++J^X-60c zwebppe_=KtWaO*$CnJq$L&=A#+;*{>_6SU^fq_t zS{_(kiPiSurv~VdXZx|J9*wsxCPbxtMNvOqP>;sh*FTM}gUu)XNk8*xKYqU+?HscK z_<u*8JPDijV3$iEmg`FjS8^@PbNj-bU_YtKPo+iuu;QrlQWF<}l;Z(n-3K~> z+`8W~c;h*uV8Jqp+sbnm5nZqf?zbKP`x4wuTlL|ROGqqw(g)oyE+Jfb@c4wo%V0dm zz@uy*?z@D7TzmU~5bW^$R&vZ0VSenzzW;+3yS>9zT<(MBxAI$R8DFv2dhy5qgCeO6 zeC2=8zXdC}D+iy;GWzgamr=xmBYo^3ixaFoZcR$@o4{cX_OTx&TX3?PohOnxeTSS> zpo#n_ZtTK7yx|H87Dbb+ z(s!UXS%HUrLAB9~!^HGq?G-cyP3Xe|S5TP9pWuA3E>L+82ONIC)H>0H!$|wEtN{f& zt$PaHa57mq8CV zcvM4UDL#JtJLHx!y%*fpQyh*&HGDAmn(C&DquBEC>4e@s(3Y1dQK7rDoiZIY>gl(7 zPh=I@Fw@Mu0c+6YlVHq3N2Dk^uJ@G-5`_!Bsuxr>K-M-`;VMzMF*V)5mBjE$Fww_^ zeWIkE$Gk=;%*eWjfBO!(*gN#ptHi129rM8L^hNB_2zKPcdxaj*-dQow(^>io4iiQ) zF`+Mhg~%Z5)yjI+vR=?~M#8b(NK^dW-_v$P*D&#cMJk@T)UEF5)?VyBlva{QuA9%J zEER{@)dO1Dha^Jx@#iU_K)byMzU9gDu$OS;h^1n&c*jau3Oy($q6c4ZM1H>S^yC$C zK%OS?=wsCyajg~X)J*?=+*tDWx|H}6!ro0N#`g2>rQqd#aqPKnyrl^(uxB{TP>a`&(35uSinAP!!{ z@IT##In%=`n&+@m?4+w@mh|AU%}BJSuqWcU9FSn!TF|2|=z(B>KrCKflGg;z9GN-f zE6}Q*m!0e}Ul6QpfxpM2%>VQVJt4xXuVf37!XB}$4m0uzL$yKfuHSKXMT4Bf6@YPPp&<2Cqa~AnxDgLl4#_WJH%taUp)#v4Vd`bG$xL0*y~CDp ze;1Db9*r3_|Hgs#zY$uyaK`s20hQdq_r6Dq$7kPwj2}cT&7r^|`%%`E`<|%W?99#G zc1n`610*Rk-|fZ;KY+Qc12>i)*&m^#w*GDVJSzA2wl&>$D*!cl$JP~&+v2(*ap_9J z-Rd3i19#iYyRqR1BtrMQaK{fQ99`|gZmsD3mC>Z=?C6N|R78%WMNU6DS1Un@cS9<1H3%obBy0GMv0_}hQ=Cf5y@DFowGBcLGFLq$>-c5erP$kR9QqIQsJ+tr1Y z?P#n^O;=EfW5go1;N(0cllw3oghh+ zX3O^7z;p+ij_QEP4(M0wZ{UwQkQjZ~g;gCO_zDG9cEGFV-A?>d2ka3;Z$v*be^g2~ z_eS)?k?^)oEbc^?(4;PWvlCRI#&%)Tgj8cY)YpZzrB` z0}l7PF1-8(niamI6BH)2d0m#a{{XnlPS(-@C3Vb6&Yau{eH?;e?&fPgDZvoPrgh?P zZ=mTRacuqr|0_TLMSkbM^P4k%(1k;~(X_>LI-B^UUv28DlSh|;8v zFvGC>H+XB{=GA*MEgb;S+@e@Pt2aCIPLpF-megP9g}3#fK)j#_jX?`KtCD)qILdyw zV|4OlKv1@1j_br(y|Co3?Zk#&cp=kuVnrW(sIpGHyAM>kG@ba1KDhSNci{7VaDFK1 zzz_Q1Z5TY0%lZMnu@k@647W3!o-8PB++BcjBqImuB~NWMVv{LO;A zZ=R|)?Ju?Juj|0C4Z*byRBY=INMqS`;EW-t;MsQk-4Kcz^-+giHX*%}SSQ%qfybJV z=cpYW>=Xh(aNM!I11~Tkaadx9UE$IasxHS-W$tAwg!YiLXui;+e}8+Eef&4a#En$n z-wHwVNn&FEhwWHpf;r^ZcC0tSS31~++e|26?Q-%-3Ab*_v!DvgO`U%12v_kIX{yjq z#7YWg%T)7J`3cyE8TRQ7hE_q}wuHp&d>z|}XAZ`3|gp#B?+Ueh;hL>*$LnPn&qUcT}6z?L5?h`yLNLMehyU7vUWV>78>LH zMcYVe;Lz;rHg$YEe(M$*>s#M;)O@=yxU3`nE_A;9VjIj{R+X%xoKm9Bg@(U{yijNx zuDu11#G~4<(@$vJYoE3=8KlzLwpvqLI@+z*o5JZ`exOPGqI7aFo}#VUY8hJ9Au{SV{OucL7s3 zO7vX_5!??2fYOCdX%#EQpv+~yfd6M=W_lZ5dK=+T=T_)0pxngtw)wjVn4UI&9|XVY z&S6ODocU%OeWPvZQr^nnoPeezc_R6h`petf@VGlj;@{k6esPf``&&{P{}1GwHoX20 zNv|-a-^cH%x4bT4tnm)P>Z}UYvO|7t_!-GCrVZ1-B8k;st$?uAjPT~KU>bnehBy8S%e!9 znG(|OmQ7!yi|k}8cD;|}((G29ipP9L5`|o1A_P7jbF4M%(nG9wGGw)?vs%3uGa0RT z-+iRBPHYt}X5MPW(;vY7`I6SE&mN#TJT&_U{QVy&24!5Y8v6*fqfz5nW52L_EkYTd znh90>C&-f$MYTX7qAWgKEP&i=QKV*YSnK~ip7s~WgnZV56aGS*ojKpX;8OfEm~3pp z{eK~^cmB98fm^=q95_N~#{E^yOrE z_4gdb{CFMiLGz^WU|Vai8GZtZz?bILr%9f6iI2(c54kvmqkqqJ9RC!#Eq?e^6i8{l z{fnGli&CZNUWrp+37DKnZ1@Y@sd1+F!&xUvn9C}>4jI{It5*eEPDJu0!SYv`9s*{r zT*q}!LGJO=b%>d-M1l<<93VW+d`&>ih3f(R^!e*xHag&bx-r-=Rfu#x-Y38zoMGYMqSam(*Aq=g#+o!I(GLw&Gqt3|S%NhAs5I3FX>v!V_N*4<30cmm}W5&i>K68K+$~HKcqnV6?1SP=m?M*u%C4Mw+=N7elk)L_KNo});#%81*Zqp4`25!(;L0E;kU*)Z~v+O=d! zD5wNfIJ*|w#J-9wjiwV^9 zWCZ$W^YJBIAD6|(H6I_WMw&+>@H@@N_j4x*+gdU_n6{R55a4V%Uc*g8xkfyP;zq_4 zwxotQ24Ale3WB8j&HY)Kkok#G`@ncK8$7L6c?eQdcVwyD4u*{~^3IF`7?W3bgJ7*L5qM&Q{4&DAM?(bC=@jXS_%N7Lm-7{)#h3koMz#8@B9P8eF2NtwbPd^%l#;4x{=5BeRlF zhRI4ONQ>oy0(oZNwREZo!3CKu+52xZ;=@*48Y!;fGAr(7exOksXsp^}&3&KivAX&H z^ccg6X6=e*%(vri^_g-NC<{G=f(W>QPTkR{%qx3R5(Sam7Vkhy@ z-;bUUt39s5LILvzoQ`16B1GwoL}63J2%VXyq>jw^YeE}%*T~v`6xt&ctSaRW&^Ar* zasqRJ$c6H2d``N@>}%@T*BJXId<=>}W1DdGDDJCXwxsfDl=nnlq?{XR5U0t}LK$!+ z_q>KBj@&|2-Gsk&KqXK;F&#lxezSwYj{hM)7XqGcUNZ6b^2+z#{eSq` B(w_hT delta 77857 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%0AysWz>d>usQD2 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
    lZ`U
    -
    -#define EXTERNAL_NUM_INTERRUPTS 16
    -#define NUM_DIGITAL_PINS        40
    -#define NUM_ANALOG_INPUTS       16
    -
    -#define analogInputToDigitalPin(p)  (((p)<20)?(analogChannelToDigitalPin(p)):-1)
    -#define digitalPinToInterrupt(p)    (((p)<40)?(p):-1)
    -#define digitalPinHasPWM(p)         (p < 34)
    -
    -static const uint8_t LED_BUILTIN = 13;
    -#define BUILTIN_LED  LED_BUILTIN // backward compatibility
    -#define LED_BUILTIN LED_BUILTIN
    +#include "soc/soc_caps.h"
     
     static const uint8_t TX = 8;
     static const uint8_t RX = 7;
    @@ -50,8 +39,16 @@ static const uint8_t A13 = 35;
     // internal switch
     #define BUTTON 38
     
    +// User LED 
    +static const uint8_t LED_BUILTIN = 13;
    +#define BUILTIN_LED  LED_BUILTIN // backward compatibility
    +#define LED_BUILTIN LED_BUILTIN  // allow testing #ifdef LED_BUILTIN
    +
     // Neopixel
     #define PIN_NEOPIXEL 0
    +// RGB_BUILTIN and RGB_BRIGHTNESS can be used in new Arduino API neopixelWrite() and digitalWrite() for blinking
    +#define RGB_BUILTIN (PIN_NEOPIXEL+SOC_GPIO_PIN_COUNT)
    +#define RGB_BRIGHTNESS 64
     
     // Neopixel & I2C power
     #define NEOPIXEL_I2C_POWER 2
    diff --git a/variants/adafruit_feather_esp32s2/pins_arduino.h b/variants/adafruit_feather_esp32s2/pins_arduino.h
    index 261377de89c..013ae6c6dea 100644
    --- a/variants/adafruit_feather_esp32s2/pins_arduino.h
    +++ b/variants/adafruit_feather_esp32s2/pins_arduino.h
    @@ -2,7 +2,7 @@
     #define Pins_Arduino_h
     
     #include 
    -
    +#include "soc/soc_caps.h"
     
     #define USB_VID            0x239A
     #define USB_PID            0x80EB
    @@ -10,18 +10,16 @@
     #define USB_PRODUCT        "Feather ESP32-S2"
     #define USB_SERIAL         "" // Empty string for MAC adddress
     
    +// User LED 
    +#define LED_BUILTIN 13
    +#define BUILTIN_LED  LED_BUILTIN // backward compatibility
     
    -#define EXTERNAL_NUM_INTERRUPTS 46
    -#define NUM_DIGITAL_PINS        48
    -#define NUM_ANALOG_INPUTS       20
    -
    -#define analogInputToDigitalPin(p)  (((p)<20)?(analogChannelToDigitalPin(p)):-1)
    -#define digitalPinToInterrupt(p)    (((p)<48)?(p):-1)
    -#define digitalPinHasPWM(p)         (p < 46)
    -
    -#define LED_BUILTIN     13
    +// Neopixel
    +#define PIN_NEOPIXEL 33
    +// RGB_BUILTIN and RGB_BRIGHTNESS can be used in new Arduino API neopixelWrite() and digitalWrite() for blinking
    +#define RGB_BUILTIN (PIN_NEOPIXEL+SOC_GPIO_PIN_COUNT)
    +#define RGB_BRIGHTNESS 64
     
    -#define PIN_NEOPIXEL        33
     #define NEOPIXEL_NUM        1     // number of neopixels
     #define NEOPIXEL_POWER      21    // power pin
     #define NEOPIXEL_POWER_ON   HIGH  // power pin state when on
    diff --git a/variants/adafruit_feather_esp32s2_reversetft/pins_arduino.h b/variants/adafruit_feather_esp32s2_reversetft/pins_arduino.h
    index 6758b16a898..d39b50628e2 100644
    --- a/variants/adafruit_feather_esp32s2_reversetft/pins_arduino.h
    +++ b/variants/adafruit_feather_esp32s2_reversetft/pins_arduino.h
    @@ -2,7 +2,7 @@
     #define Pins_Arduino_h
     
     #include 
    -
    +#include "soc/soc_caps.h"
     
     #define USB_VID            0x239A
     #define USB_PID            0x80ED
    @@ -10,18 +10,16 @@
     #define USB_PRODUCT        "Feather ESP32-S2 Reverse TFT"
     #define USB_SERIAL         "" // Empty string for MAC adddress
     
    +// User LED 
    +#define LED_BUILTIN 13
    +#define BUILTIN_LED  LED_BUILTIN // backward compatibility
     
    -#define EXTERNAL_NUM_INTERRUPTS 46
    -#define NUM_DIGITAL_PINS        48
    -#define NUM_ANALOG_INPUTS       20
    -
    -#define analogInputToDigitalPin(p)  (((p)<20)?(analogChannelToDigitalPin(p)):-1)
    -#define digitalPinToInterrupt(p)    (((p)<48)?(p):-1)
    -#define digitalPinHasPWM(p)         (p < 46)
    -
    -#define LED_BUILTIN     13
    +// Neopixel
    +#define PIN_NEOPIXEL 33
    +// RGB_BUILTIN and RGB_BRIGHTNESS can be used in new Arduino API neopixelWrite() and digitalWrite() for blinking
    +#define RGB_BUILTIN (PIN_NEOPIXEL+SOC_GPIO_PIN_COUNT)
    +#define RGB_BRIGHTNESS 64
     
    -#define PIN_NEOPIXEL        33
     #define NEOPIXEL_NUM        1     // number of neopixels
     #define NEOPIXEL_POWER      21    // power pin
     #define NEOPIXEL_POWER_ON   HIGH  // power pin state when on
    diff --git a/variants/adafruit_feather_esp32s2_tft/pins_arduino.h b/variants/adafruit_feather_esp32s2_tft/pins_arduino.h
    index 8eaef02334d..ca713ac315d 100644
    --- a/variants/adafruit_feather_esp32s2_tft/pins_arduino.h
    +++ b/variants/adafruit_feather_esp32s2_tft/pins_arduino.h
    @@ -2,7 +2,7 @@
     #define Pins_Arduino_h
     
     #include 
    -
    +#include "soc/soc_caps.h"
     
     #define USB_VID            0x239A
     #define USB_PID            0x810F
    @@ -10,18 +10,16 @@
     #define USB_PRODUCT        "Feather ESP32-S2 TFT"
     #define USB_SERIAL         "" // Empty string for MAC adddress
     
    +// User LED 
    +#define LED_BUILTIN 13
    +#define BUILTIN_LED  LED_BUILTIN // backward compatibility
     
    -#define EXTERNAL_NUM_INTERRUPTS 46
    -#define NUM_DIGITAL_PINS        48
    -#define NUM_ANALOG_INPUTS       20
    -
    -#define analogInputToDigitalPin(p)  (((p)<20)?(analogChannelToDigitalPin(p)):-1)
    -#define digitalPinToInterrupt(p)    (((p)<48)?(p):-1)
    -#define digitalPinHasPWM(p)         (p < 46)
    -
    -#define LED_BUILTIN     13
    +// Neopixel
    +#define PIN_NEOPIXEL 33
    +// RGB_BUILTIN and RGB_BRIGHTNESS can be used in new Arduino API neopixelWrite() and digitalWrite() for blinking
    +#define RGB_BUILTIN (PIN_NEOPIXEL+SOC_GPIO_PIN_COUNT)
    +#define RGB_BRIGHTNESS 64
     
    -#define PIN_NEOPIXEL        33
     #define NEOPIXEL_NUM        1     // number of neopixels
     #define NEOPIXEL_POWER      34    // power pin
     #define NEOPIXEL_POWER_ON   HIGH  // power pin state when on
    diff --git a/variants/adafruit_feather_esp32s3/pins_arduino.h b/variants/adafruit_feather_esp32s3/pins_arduino.h
    index 4b652308a51..a8c491a64ad 100644
    --- a/variants/adafruit_feather_esp32s3/pins_arduino.h
    +++ b/variants/adafruit_feather_esp32s3/pins_arduino.h
    @@ -2,6 +2,7 @@
     #define Pins_Arduino_h
     
     #include 
    +#include "soc/soc_caps.h"
     
     #define USB_VID            0x239A
     #define USB_PID            0x811B
    @@ -9,17 +10,16 @@
     #define USB_PRODUCT        "Feather ESP32-S3"
     #define USB_SERIAL         "" // Empty string for MAC adddress
     
    -#define EXTERNAL_NUM_INTERRUPTS 46
    -#define NUM_DIGITAL_PINS        48
    -#define NUM_ANALOG_INPUTS       20
    +// User LED 
    +#define LED_BUILTIN 13
    +#define BUILTIN_LED  LED_BUILTIN // backward compatibility
     
    -#define analogInputToDigitalPin(p)  (((p)<20)?(analogChannelToDigitalPin(p)):-1)
    -#define digitalPinToInterrupt(p)    (((p)<49)?(p):-1)
    -#define digitalPinHasPWM(p)         (p < 46)
    +// Neopixel
    +#define PIN_NEOPIXEL 33
    +// RGB_BUILTIN and RGB_BRIGHTNESS can be used in new Arduino API neopixelWrite() and digitalWrite() for blinking
    +#define RGB_BUILTIN (PIN_NEOPIXEL+SOC_GPIO_PIN_COUNT)
    +#define RGB_BRIGHTNESS 64
     
    -#define LED_BUILTIN         13
    -
    -#define PIN_NEOPIXEL        33
     #define NEOPIXEL_NUM        1     // number of neopixels
     #define NEOPIXEL_POWER      21    // power pin
     #define NEOPIXEL_POWER_ON   HIGH  // power pin state when on
    diff --git a/variants/adafruit_feather_esp32s3_nopsram/pins_arduino.h b/variants/adafruit_feather_esp32s3_nopsram/pins_arduino.h
    index 573a4a77fe2..65aec064fad 100644
    --- a/variants/adafruit_feather_esp32s3_nopsram/pins_arduino.h
    +++ b/variants/adafruit_feather_esp32s3_nopsram/pins_arduino.h
    @@ -2,6 +2,7 @@
     #define Pins_Arduino_h
     
     #include 
    +#include "soc/soc_caps.h"
     
     #define USB_VID            0x239A
     #define USB_PID            0x8113
    @@ -9,17 +10,16 @@
     #define USB_PRODUCT        "Feather ESP32-S3 No PSRAM"
     #define USB_SERIAL         "" // Empty string for MAC adddress
     
    -#define EXTERNAL_NUM_INTERRUPTS 46
    -#define NUM_DIGITAL_PINS        48
    -#define NUM_ANALOG_INPUTS       20
    +// User LED 
    +#define LED_BUILTIN 13
    +#define BUILTIN_LED  LED_BUILTIN // backward compatibility
     
    -#define analogInputToDigitalPin(p)  (((p)<20)?(analogChannelToDigitalPin(p)):-1)
    -#define digitalPinToInterrupt(p)    (((p)<49)?(p):-1)
    -#define digitalPinHasPWM(p)         (p < 46)
    +// Neopixel
    +#define PIN_NEOPIXEL 33
    +// RGB_BUILTIN and RGB_BRIGHTNESS can be used in new Arduino API neopixelWrite() and digitalWrite() for blinking
    +#define RGB_BUILTIN (PIN_NEOPIXEL+SOC_GPIO_PIN_COUNT)
    +#define RGB_BRIGHTNESS 64
     
    -#define LED_BUILTIN         13
    -
    -#define PIN_NEOPIXEL        33
     #define NEOPIXEL_NUM        1     // number of neopixels
     #define NEOPIXEL_POWER      21    // power pin
     #define NEOPIXEL_POWER_ON   HIGH  // power pin state when on
    diff --git a/variants/adafruit_feather_esp32s3_reversetft/pins_arduino.h b/variants/adafruit_feather_esp32s3_reversetft/pins_arduino.h
    index 8390b8ae3e3..8fa045489fe 100644
    --- a/variants/adafruit_feather_esp32s3_reversetft/pins_arduino.h
    +++ b/variants/adafruit_feather_esp32s3_reversetft/pins_arduino.h
    @@ -2,7 +2,7 @@
     #define Pins_Arduino_h
     
     #include 
    -
    +#include "soc/soc_caps.h"
     
     #define USB_VID            0x239A
     #define USB_PID            0x8123
    @@ -10,18 +10,16 @@
     #define USB_PRODUCT        "Feather ESP32-S3 Reverse TFT"
     #define USB_SERIAL         "" // Empty string for MAC adddress
     
    +// User LED 
    +#define LED_BUILTIN 13
    +#define BUILTIN_LED  LED_BUILTIN // backward compatibility
     
    -#define EXTERNAL_NUM_INTERRUPTS 46
    -#define NUM_DIGITAL_PINS        48
    -#define NUM_ANALOG_INPUTS       20
    -
    -#define analogInputToDigitalPin(p)  (((p)<20)?(analogChannelToDigitalPin(p)):-1)
    -#define digitalPinToInterrupt(p)    (((p)<49)?(p):-1)
    -#define digitalPinHasPWM(p)         (p < 46)
    -
    -#define LED_BUILTIN     13
    +// Neopixel
    +#define PIN_NEOPIXEL 33
    +// RGB_BUILTIN and RGB_BRIGHTNESS can be used in new Arduino API neopixelWrite() and digitalWrite() for blinking
    +#define RGB_BUILTIN (PIN_NEOPIXEL+SOC_GPIO_PIN_COUNT)
    +#define RGB_BRIGHTNESS 64
     
    -#define PIN_NEOPIXEL        33
     #define NEOPIXEL_NUM        1     // number of neopixels
     #define NEOPIXEL_POWER      21    // power pin
     #define NEOPIXEL_POWER_ON   HIGH  // power pin state when on
    diff --git a/variants/adafruit_feather_esp32s3_tft/pins_arduino.h b/variants/adafruit_feather_esp32s3_tft/pins_arduino.h
    index dc37d85a7dc..56860f3c2d7 100644
    --- a/variants/adafruit_feather_esp32s3_tft/pins_arduino.h
    +++ b/variants/adafruit_feather_esp32s3_tft/pins_arduino.h
    @@ -2,7 +2,7 @@
     #define Pins_Arduino_h
     
     #include 
    -
    +#include "soc/soc_caps.h"
     
     #define USB_VID            0x239A
     #define USB_PID            0x811D
    @@ -10,18 +10,16 @@
     #define USB_PRODUCT        "Feather ESP32-S3 TFT"
     #define USB_SERIAL         "" // Empty string for MAC adddress
     
    +// User LED 
    +#define LED_BUILTIN 13
    +#define BUILTIN_LED  LED_BUILTIN // backward compatibility
     
    -#define EXTERNAL_NUM_INTERRUPTS 46
    -#define NUM_DIGITAL_PINS        48
    -#define NUM_ANALOG_INPUTS       20
    -
    -#define analogInputToDigitalPin(p)  (((p)<20)?(analogChannelToDigitalPin(p)):-1)
    -#define digitalPinToInterrupt(p)    (((p)<49)?(p):-1)
    -#define digitalPinHasPWM(p)         (p < 46)
    -
    -#define LED_BUILTIN     13
    +// Neopixel
    +#define PIN_NEOPIXEL 33
    +// RGB_BUILTIN and RGB_BRIGHTNESS can be used in new Arduino API neopixelWrite() and digitalWrite() for blinking
    +#define RGB_BUILTIN (PIN_NEOPIXEL+SOC_GPIO_PIN_COUNT)
    +#define RGB_BRIGHTNESS 64
     
    -#define PIN_NEOPIXEL        33
     #define NEOPIXEL_NUM        1     // number of neopixels
     #define NEOPIXEL_POWER      34    // power pin
     #define NEOPIXEL_POWER_ON   HIGH  // power pin state when on
    diff --git a/variants/adafruit_funhouse_esp32s2/pins_arduino.h b/variants/adafruit_funhouse_esp32s2/pins_arduino.h
    index 6b4fa1ec5b3..3594af16021 100644
    --- a/variants/adafruit_funhouse_esp32s2/pins_arduino.h
    +++ b/variants/adafruit_funhouse_esp32s2/pins_arduino.h
    @@ -10,16 +10,8 @@
     #define USB_PRODUCT        "Funhouse ESP32-S2"
     #define USB_SERIAL         "" // Empty string for MAC adddress
     
    -
    -#define EXTERNAL_NUM_INTERRUPTS 46
    -#define NUM_DIGITAL_PINS        48
    -#define NUM_ANALOG_INPUTS       20
    -
    -#define analogInputToDigitalPin(p)  (((p)<20)?(analogChannelToDigitalPin(p)):-1)
    -#define digitalPinToInterrupt(p)    (((p)<48)?(p):-1)
    -#define digitalPinHasPWM(p)         (p < 46)
    -
     #define LED_BUILTIN   37
    +#define BUILTIN_LED  LED_BUILTIN // backward compatibility
     
     #define PIN_BUTTON1   3
     #define PIN_BUTTON2   4
    diff --git a/variants/adafruit_itsybitsy_esp32/pins_arduino.h b/variants/adafruit_itsybitsy_esp32/pins_arduino.h
    index d81c077c91d..c526628f7b1 100644
    --- a/variants/adafruit_itsybitsy_esp32/pins_arduino.h
    +++ b/variants/adafruit_itsybitsy_esp32/pins_arduino.h
    @@ -2,21 +2,19 @@
     #define Pins_Arduino_h
     
     #include 
    +#include "soc/soc_caps.h"
     
    -#define EXTERNAL_NUM_INTERRUPTS 16
    -#define NUM_DIGITAL_PINS        40
    -#define NUM_ANALOG_INPUTS       16
    -
    -#define analogInputToDigitalPin(p)  (((p)<20)?(analogChannelToDigitalPin(p)):-1)
    -#define digitalPinToInterrupt(p)    (((p)<40)?(p):-1)
    -#define digitalPinHasPWM(p)         (p < 34)
    -
    +// User LED 
     static const uint8_t LED_BUILTIN = 13;
     #define BUILTIN_LED  LED_BUILTIN // backward compatibility
    -#define LED_BUILTIN LED_BUILTIN
    +#define LED_BUILTIN LED_BUILTIN  // allow testing #ifdef LED_BUILTIN
     
     // Neopixel
     static const uint8_t PIN_NEOPIXEL = 0;
    +// RGB_BUILTIN and RGB_BRIGHTNESS can be used in new Arduino API neopixelWrite() and digitalWrite() for blinking
    +#define RGB_BUILTIN (PIN_NEOPIXEL+SOC_GPIO_PIN_COUNT)
    +#define RGB_BRIGHTNESS 64
    +
     static const uint8_t NEOPIXEL_POWER = 2;
     
     static const uint8_t TX = 20;
    diff --git a/variants/adafruit_magtag29_esp32s2/pins_arduino.h b/variants/adafruit_magtag29_esp32s2/pins_arduino.h
    index 610312d05fd..aaeb744ce0a 100644
    --- a/variants/adafruit_magtag29_esp32s2/pins_arduino.h
    +++ b/variants/adafruit_magtag29_esp32s2/pins_arduino.h
    @@ -2,7 +2,7 @@
     #define Pins_Arduino_h
     
     #include 
    -
    +#include "soc/soc_caps.h"
     
     #define USB_VID            0x239A
     #define USB_PID            0x80E5
    @@ -10,18 +10,16 @@
     #define USB_PRODUCT        "EPD MagTag 2.9\" ESP32-S2"
     #define USB_SERIAL         "" // Empty string for MAC adddress
     
    +// User LED 
    +#define LED_BUILTIN 13
    +#define BUILTIN_LED  LED_BUILTIN // backward compatibility
     
    -#define EXTERNAL_NUM_INTERRUPTS 46
    -#define NUM_DIGITAL_PINS        48
    -#define NUM_ANALOG_INPUTS       20
    -
    -#define analogInputToDigitalPin(p)  (((p)<20)?(analogChannelToDigitalPin(p)):-1)
    -#define digitalPinToInterrupt(p)    (((p)<48)?(p):-1)
    -#define digitalPinHasPWM(p)         (p < 46)
    -
    -#define LED_BUILTIN         13
    -
    +// Neopixel
     #define PIN_NEOPIXEL        1    // D1
    +// RGB_BUILTIN and RGB_BRIGHTNESS can be used in new Arduino API neopixelWrite() and digitalWrite() for blinking
    +#define RGB_BUILTIN (PIN_NEOPIXEL+SOC_GPIO_PIN_COUNT)
    +#define RGB_BRIGHTNESS 64
    +
     #define NEOPIXEL_NUM        4    // number of neopixels
     #define NEOPIXEL_POWER      21   // power pin
     #define NEOPIXEL_POWER_ON   LOW  // power pin state when on
    diff --git a/variants/adafruit_matrixportal_esp32s3/pins_arduino.h b/variants/adafruit_matrixportal_esp32s3/pins_arduino.h
    index 0f5963bdab3..99529c02510 100644
    --- a/variants/adafruit_matrixportal_esp32s3/pins_arduino.h
    +++ b/variants/adafruit_matrixportal_esp32s3/pins_arduino.h
    @@ -2,6 +2,7 @@
     #define Pins_Arduino_h
     
     #include 
    +#include "soc/soc_caps.h"
     
     #define USB_VID            0x239A
     #define USB_PID            0x8125
    @@ -9,18 +10,16 @@
     #define USB_PRODUCT        "MatrixPortal ESP32-S3"
     #define USB_SERIAL         "" // Empty string for MAC adddress
     
    -#define EXTERNAL_NUM_INTERRUPTS 49
    -#define NUM_DIGITAL_PINS        49
    -#define NUM_ANALOG_INPUTS       6
    -
    -#define analogInputToDigitalPin(p)  (((p)
    -
    +#include "soc/soc_caps.h"
     
     #define USB_VID            0x239A
     #define USB_PID            0x80DF
    @@ -10,17 +10,15 @@
     #define USB_PRODUCT        "Metro ESP32-S2"
     #define USB_SERIAL         ""   // Empty string for MAC adddress
     
    -#define EXTERNAL_NUM_INTERRUPTS 46
    -#define NUM_DIGITAL_PINS        48
    -#define NUM_ANALOG_INPUTS       20
    -
    -#define analogInputToDigitalPin(p)  (((p)<20)?(analogChannelToDigitalPin(p)):-1)
    -#define digitalPinToInterrupt(p)    (((p)<48)?(p):-1)
    -#define digitalPinHasPWM(p)         (p < 46)
    -
     #define LED_BUILTIN     42
    +#define BUILTIN_LED  LED_BUILTIN // backward compatibility
     
    +// Neopixel
     #define PIN_NEOPIXEL    45
    +// RGB_BUILTIN and RGB_BRIGHTNESS can be used in new Arduino API neopixelWrite() and digitalWrite() for blinking
    +#define RGB_BUILTIN (PIN_NEOPIXEL+SOC_GPIO_PIN_COUNT)
    +#define RGB_BRIGHTNESS 64
    +
     #define NEOPIXEL_NUM    1
     
     #define PIN_BUTTON1     0  // BOOT0 switch
    diff --git a/variants/adafruit_metro_esp32s3/pins_arduino.h b/variants/adafruit_metro_esp32s3/pins_arduino.h
    index 6e9ac56258f..e9769f113f6 100644
    --- a/variants/adafruit_metro_esp32s3/pins_arduino.h
    +++ b/variants/adafruit_metro_esp32s3/pins_arduino.h
    @@ -2,6 +2,7 @@
     #define Pins_Arduino_h
     
     #include 
    +#include "soc/soc_caps.h"
     
     #define USB_VID            0x239A
     #define USB_PID            0x8145
    @@ -9,18 +10,15 @@
     #define USB_PRODUCT        "Metro ESP32-S3"
     #define USB_SERIAL         ""   // Empty string for MAC adddress
     
    -#define EXTERNAL_NUM_INTERRUPTS 46
    -#define NUM_DIGITAL_PINS        48
    -#define NUM_ANALOG_INPUTS       20
    -
    -#define analogInputToDigitalPin(p)  (((p)<20)?(analogChannelToDigitalPin(p)):-1)
    -#define digitalPinToInterrupt(p)    (((p)<49)?(p):-1)
    -#define digitalPinHasPWM(p)         (p < 46)
    -
     #define LED_BUILTIN     13
    +#define BUILTIN_LED  LED_BUILTIN // backward compatibility
     
    +// Neopixel
     #define PIN_NEOPIXEL    46
    -#define NEOPIXEL_PIN    46
    +// RGB_BUILTIN and RGB_BRIGHTNESS can be used in new Arduino API neopixelWrite() and digitalWrite() for blinking
    +#define RGB_BUILTIN (PIN_NEOPIXEL+SOC_GPIO_PIN_COUNT)
    +#define RGB_BRIGHTNESS 64
    +
     #define NEOPIXEL_NUM    1
     
     #define PIN_BUTTON1     0  // BOOT0 switch
    diff --git a/variants/adafruit_qtpy_esp32/pins_arduino.h b/variants/adafruit_qtpy_esp32/pins_arduino.h
    index b22d0d5b780..40cad9f7005 100644
    --- a/variants/adafruit_qtpy_esp32/pins_arduino.h
    +++ b/variants/adafruit_qtpy_esp32/pins_arduino.h
    @@ -2,16 +2,19 @@
     #define Pins_Arduino_h
     
     #include 
    +#include "soc/soc_caps.h"
     
    -#define EXTERNAL_NUM_INTERRUPTS 16
    -#define NUM_DIGITAL_PINS        40
    -#define NUM_ANALOG_INPUTS       16
    +// Neopixel
    +#define PIN_NEOPIXEL   5
    +// BUILTIN_LED can be used in new Arduino API digitalWrite() like in Blink.ino
    +static const uint8_t LED_BUILTIN = SOC_GPIO_PIN_COUNT+PIN_NEOPIXEL;
    +#define BUILTIN_LED  LED_BUILTIN // backward compatibility
    +#define LED_BUILTIN LED_BUILTIN  // allow testing #ifdef LED_BUILTIN
     
    -#define analogInputToDigitalPin(p)  (((p)<20)?(analogChannelToDigitalPin(p)):-1)
    -#define digitalPinToInterrupt(p)    (((p)<40)?(p):-1)
    -#define digitalPinHasPWM(p)         (p < 34)
    +// RGB_BUILTIN and RGB_BRIGHTNESS can be used in new Arduino API neopixelWrite()
    +#define RGB_BUILTIN LED_BUILTIN
    +#define RGB_BRIGHTNESS 64
     
    -#define PIN_NEOPIXEL   5
     #define NEOPIXEL_POWER 8
     
     static const uint8_t TX = 32;
    diff --git a/variants/adafruit_qtpy_esp32c3/pins_arduino.h b/variants/adafruit_qtpy_esp32c3/pins_arduino.h
    index 6c93bfd5820..6b50bbddbd0 100644
    --- a/variants/adafruit_qtpy_esp32c3/pins_arduino.h
    +++ b/variants/adafruit_qtpy_esp32c3/pins_arduino.h
    @@ -2,17 +2,20 @@
     #define Pins_Arduino_h
     
     #include 
    -
    -#define EXTERNAL_NUM_INTERRUPTS 22
    -#define NUM_DIGITAL_PINS        22
    -#define NUM_ANALOG_INPUTS       6
    -
    -#define analogInputToDigitalPin(p)  (((p)
    -
    +#include "soc/soc_caps.h"
     
     #define USB_VID            0x239A
     #define USB_PID            0x8111
    @@ -10,18 +10,15 @@
     #define USB_PRODUCT        "QT Py ESP32-S2"
     #define USB_SERIAL         "" // Empty string for MAC adddress
     
    -
    -#define EXTERNAL_NUM_INTERRUPTS 46
    -#define NUM_DIGITAL_PINS        48
    -#define NUM_ANALOG_INPUTS       20
    -
    -#define analogInputToDigitalPin(p)  (((p)<20)?(analogChannelToDigitalPin(p)):-1)
    -#define digitalPinToInterrupt(p)    (((p)<48)?(p):-1)
    -#define digitalPinHasPWM(p)         (p < 46)
    -
    -//#define LED_BUILTIN     13
    -
    +// Neopixel
     #define PIN_NEOPIXEL        39
    +static const uint8_t LED_BUILTIN = SOC_GPIO_PIN_COUNT+PIN_NEOPIXEL;
    +#define BUILTIN_LED  LED_BUILTIN // backward compatibility
    +#define LED_BUILTIN LED_BUILTIN  // allow testing #ifdef LED_BUILTIN
    +// RGB_BUILTIN and RGB_BRIGHTNESS can be used in new Arduino API neopixelWrite()
    +#define RGB_BUILTIN  LED_BUILTIN
    +#define RGB_BRIGHTNESS 64
    +
     #define NEOPIXEL_NUM        1     // number of neopixels
     #define NEOPIXEL_POWER      38    // power pin
     #define NEOPIXEL_POWER_ON   HIGH  // power pin state when on
    diff --git a/variants/adafruit_qtpy_esp32s3_n4r2/pins_arduino.h b/variants/adafruit_qtpy_esp32s3_n4r2/pins_arduino.h
    index c1a0ea42ba5..f4082c5cb2c 100644
    --- a/variants/adafruit_qtpy_esp32s3_n4r2/pins_arduino.h
    +++ b/variants/adafruit_qtpy_esp32s3_n4r2/pins_arduino.h
    @@ -10,14 +10,6 @@
     #define USB_PRODUCT        "QT Py ESP32-S3 (4MB Flash 2MB PSRAM)"
     #define USB_SERIAL         "" // Empty string for MAC adddress
     
    -#define EXTERNAL_NUM_INTERRUPTS 46
    -#define NUM_DIGITAL_PINS        48
    -#define NUM_ANALOG_INPUTS       20
    -
    -#define analogInputToDigitalPin(p)  (((p)<20)?(analogChannelToDigitalPin(p)):-1)
    -#define digitalPinToInterrupt(p)    (((p)<49)?(p):-1)
    -#define digitalPinHasPWM(p)         (p < 46)
    -
     #define PIN_NEOPIXEL        39
     #define NEOPIXEL_NUM        1     // number of neopixels
     #define NEOPIXEL_POWER      38    // power pin
    @@ -25,7 +17,8 @@
     
     static const uint8_t LED_BUILTIN = SOC_GPIO_PIN_COUNT+PIN_NEOPIXEL;
     #define BUILTIN_LED  LED_BUILTIN // backward compatibility
    -#define LED_BUILTIN  LED_BUILTIN
    +#define LED_BUILTIN LED_BUILTIN  // allow testing #ifdef LED_BUILTIN
    +// RGB_BUILTIN and RGB_BRIGHTNESS can be used in new Arduino API neopixelWrite()
     #define RGB_BUILTIN  LED_BUILTIN
     #define RGB_BRIGHTNESS 64
     
    diff --git a/variants/adafruit_qtpy_esp32s3_nopsram/pins_arduino.h b/variants/adafruit_qtpy_esp32s3_nopsram/pins_arduino.h
    index 921db99cfcd..e8f4ab08130 100644
    --- a/variants/adafruit_qtpy_esp32s3_nopsram/pins_arduino.h
    +++ b/variants/adafruit_qtpy_esp32s3_nopsram/pins_arduino.h
    @@ -10,14 +10,6 @@
     #define USB_PRODUCT        "QT Py ESP32-S3 No PSRAM"
     #define USB_SERIAL         "" // Empty string for MAC adddress
     
    -#define EXTERNAL_NUM_INTERRUPTS 46
    -#define NUM_DIGITAL_PINS        48
    -#define NUM_ANALOG_INPUTS       20
    -
    -#define analogInputToDigitalPin(p)  (((p)<20)?(analogChannelToDigitalPin(p)):-1)
    -#define digitalPinToInterrupt(p)    (((p)<49)?(p):-1)
    -#define digitalPinHasPWM(p)         (p < 46)
    -
     #define PIN_NEOPIXEL        39
     #define NEOPIXEL_NUM        1     // number of neopixels
     #define NEOPIXEL_POWER      38    // power pin
    @@ -25,7 +17,8 @@
     
     static const uint8_t LED_BUILTIN = SOC_GPIO_PIN_COUNT+PIN_NEOPIXEL;
     #define BUILTIN_LED  LED_BUILTIN // backward compatibility
    -#define LED_BUILTIN  LED_BUILTIN
    +#define LED_BUILTIN LED_BUILTIN  // allow testing #ifdef LED_BUILTIN
    +// RGB_BUILTIN and RGB_BRIGHTNESS can be used in new Arduino API neopixelWrite()
     #define RGB_BUILTIN  LED_BUILTIN
     #define RGB_BRIGHTNESS 64
     
    diff --git a/variants/adafruit_qualia_s3_rgb666/pins_arduino.h b/variants/adafruit_qualia_s3_rgb666/pins_arduino.h
    index 120a50b91a6..62f04d1a620 100644
    --- a/variants/adafruit_qualia_s3_rgb666/pins_arduino.h
    +++ b/variants/adafruit_qualia_s3_rgb666/pins_arduino.h
    @@ -10,14 +10,6 @@
     #define USB_PRODUCT        "Qualia ESP32-S3 RGB666"
     #define USB_SERIAL         "" // Empty string for MAC adddress
     
    -#define EXTERNAL_NUM_INTERRUPTS 46
    -#define NUM_DIGITAL_PINS        48
    -#define NUM_ANALOG_INPUTS       2
    -
    -#define analogInputToDigitalPin(p)  (((p)
     
    -#define EXTERNAL_NUM_INTERRUPTS 16
    -#define NUM_DIGITAL_PINS        40
    -#define NUM_ANALOG_INPUTS       16
    -
    -#define analogInputToDigitalPin(p)  (((p)<20)?(analogChannelToDigitalPin(p)):-1)
    -#define digitalPinToInterrupt(p)    (((p)<40)?(p):-1)
    -#define digitalPinHasPWM(p)         (p < 34)
    -
     #define ALKSESP32 // tell library to not map pins again
     
     static const uint8_t LED_BUILTIN = 23;
     #define BUILTIN_LED  LED_BUILTIN // backward compatibility
    -#define LED_BUILTIN LED_BUILTIN
    +#define LED_BUILTIN LED_BUILTIN  // allow testing #ifdef LED_BUILTIN
     
     static const uint8_t TX = 1;
     static const uint8_t RX = 3;
    diff --git a/variants/arduino_nano_nora/double_tap.c b/variants/arduino_nano_nora/double_tap.c
    index 44fe0923857..b98d5dded64 100644
    --- a/variants/arduino_nano_nora/double_tap.c
    +++ b/variants/arduino_nano_nora/double_tap.c
    @@ -2,6 +2,7 @@
     
     #include 
     #include 
    +#include 
     
     #include "double_tap.h"
     
    diff --git a/variants/arduino_nano_nora/extra/nora_recovery/nora_recovery.ino b/variants/arduino_nano_nora/extra/nora_recovery/nora_recovery.ino
    index 865fdd59020..e8ec998d9ab 100644
    --- a/variants/arduino_nano_nora/extra/nora_recovery/nora_recovery.ino
    +++ b/variants/arduino_nano_nora/extra/nora_recovery/nora_recovery.ino
    @@ -1,10 +1,12 @@
    +#include "USB.h"
    +
     #define USB_TIMEOUT_MS 15000
     #define POLL_DELAY_MS 60
     #define FADESTEP 8
     
     void pulse_led() {
    -	static u32_t pulse_width = 0;
    -	static u8_t dir = 0;
    +	static uint32_t pulse_width = 0;
    +	static uint8_t dir = 0;
     
     	if (dir) {
     		pulse_width -= FADESTEP;
    diff --git a/variants/arduino_nano_nora/extra/nora_recovery/nora_recovery.ino.bin b/variants/arduino_nano_nora/extra/nora_recovery/nora_recovery.ino.bin
    index 2a0183eb58f14572115c979e8874d912a3ed6a84..ee5e7d5452e2dffef3c678b2a6aa91fbfa919da4 100644
    GIT binary patch
    literal 302800
    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
    z
    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

    9cRbo+))`qN$7rn6crN84X*seFR5r!C( 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�Bw-o2oevgluJjsfs|>18Plbp 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 E7ltqJ>Hq)$ diff --git a/variants/arduino_nano_nora/io_pin_remap.cpp b/variants/arduino_nano_nora/io_pin_remap.cpp index e9c01d79ab4..1ff3a7a45c4 100644 --- a/variants/arduino_nano_nora/io_pin_remap.cpp +++ b/variants/arduino_nano_nora/io_pin_remap.cpp @@ -45,40 +45,6 @@ static const int8_t TO_GPIO_NUMBER[] = { 14, // [24] A7 }; -void _nano_nora_reset_gpio_matrix(void) -{ - // In this core file pin mapping is _not_ applied, so the API is - // always GPIO-based, but the constants can be either. - for (int pin = 0; pin < sizeof(TO_GPIO_NUMBER); ++pin) { - int gpio = TO_GPIO_NUMBER[pin]; -#if defined(BOARD_HAS_PIN_REMAP) && !defined(BOARD_USES_HW_GPIO_NUMBERS) - // Pin remapping in effect, constants = indexes - switch (pin) { -#else - // Pin remapping disabled, constants = GPIO numbers - switch (gpio) { -#endif - case LED_RED: - case LED_GREEN: - case LED_BLUE: - // set RGB pins to dig outputs, HIGH=off - pinMode(gpio, OUTPUT); - digitalWrite(gpio, HIGH); - break; - - case TX: - case RX: - // leave UART pins alone - break; - - default: - // initialize other pins to dig inputs - pinMode(gpio, INPUT); - break; - } - } -} - #if defined(BOARD_HAS_PIN_REMAP) && !defined(BOARD_USES_HW_GPIO_NUMBERS) int8_t digitalPinToGPIONumber(int8_t digitalPin) diff --git a/variants/arduino_nano_nora/pins_arduino.h b/variants/arduino_nano_nora/pins_arduino.h index bc24692f555..e1d0f6aa9af 100644 --- a/variants/arduino_nano_nora/pins_arduino.h +++ b/variants/arduino_nano_nora/pins_arduino.h @@ -2,7 +2,6 @@ #define Pins_Arduino_h #include -#include "soc/soc_caps.h" #define USB_VID 0x2341 #define USB_PID 0x0070 @@ -17,14 +16,6 @@ // Arduino style definitions (API uses Dx) -#define NUM_DIGITAL_PINS 25 // 25 I/O lines exported -#define NUM_ANALOG_INPUTS 20 // 20 CPU ADC inputs, not all exported -#define EXTERNAL_NUM_INTERRUPTS NUM_DIGITAL_PINS // All GPIOs - -#define analogInputToDigitalPin(p) (((p) #include -// defined in io_pin_remap.cpp -extern void _nano_nora_reset_gpio_matrix(void); - extern "C" { void initVariant() { - // FIXME: fix issues with GPIO matrix not being soft reset properly - _nano_nora_reset_gpio_matrix(); + // nothing to do } } @@ -54,9 +50,6 @@ static void rgb_pulse_delay(void) digitalWrite(LED_RED, HIGH); digitalWrite(LED_GREEN, HIGH); digitalWrite(LED_BLUE, HIGH); - pinMode(LED_RED, OUTPUT); - pinMode(LED_GREEN, OUTPUT); - pinMode(LED_BLUE, OUTPUT); } static void NANO_ESP32_enter_bootloader(void) diff --git a/variants/atd147_s3/pins_arduino.h b/variants/atd147_s3/pins_arduino.h index 5cbb1ebe3b3..0726a1c4a1c 100644 --- a/variants/atd147_s3/pins_arduino.h +++ b/variants/atd147_s3/pins_arduino.h @@ -2,19 +2,10 @@ #define Pins_Arduino_h #include -#include "soc/soc_caps.h" #define USB_VID 0x303a #define USB_PID 0x1001 -#define EXTERNAL_NUM_INTERRUPTS 46 -#define NUM_DIGITAL_PINS 48 -#define NUM_ANALOG_INPUTS 20 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<48)?(p):-1) -#define digitalPinHasPWM(p) (p < 46) - static const uint8_t TX = 43; static const uint8_t RX = 44; diff --git a/variants/atmegazero_esp32s2/pins_arduino.h b/variants/atmegazero_esp32s2/pins_arduino.h index 44df45e0b18..45fd447331d 100644 --- a/variants/atmegazero_esp32s2/pins_arduino.h +++ b/variants/atmegazero_esp32s2/pins_arduino.h @@ -2,6 +2,7 @@ #define Pins_Arduino_h #include +#include "soc/soc_caps.h" #define USB_VID 0x239A #define USB_PID 0x800A @@ -9,15 +10,15 @@ #define USB_PRODUCT "ATMZ-ESP32S2" #define USB_SERIAL "" -#define EXTERNAL_NUM_INTERRUPTS 46 -#define NUM_DIGITAL_PINS 48 -#define NUM_ANALOG_INPUTS 20 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<48)?(p):-1) -#define digitalPinHasPWM(p) (p < 46) - static const uint8_t NEOPIXEL = 40; +// BUILTIN_LED can be used in new Arduino API digitalWrite() like in Blink.ino +static const uint8_t LED_BUILTIN = (NEOPIXEL + SOC_GPIO_PIN_COUNT); +#define BUILTIN_LED LED_BUILTIN // backward compatibility +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN +// RGB_BUILTIN and RGB_BRIGHTNESS can be used in new Arduino API neopixelWrite() +#define RGB_BUILTIN LED_BUILTIN +#define RGB_BRIGHTNESS 64 + static const uint8_t PD5 = 0; static const uint8_t TX = 43; diff --git a/variants/bpi-bit/pins_arduino.h b/variants/bpi-bit/pins_arduino.h index f1ef3003662..80ff9c2746b 100644 --- a/variants/bpi-bit/pins_arduino.h +++ b/variants/bpi-bit/pins_arduino.h @@ -2,22 +2,22 @@ #define Pins_Arduino_h #include - -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p) < 20) ? (analogChannelToDigitalPin(p)) : -1) -#define digitalPinToInterrupt(p) (((p) < 40) ? (p) : -1) -#define digitalPinHasPWM(p) (p < 34) +#include "soc/soc_caps.h" static const uint8_t BUZZER = 25; static const uint8_t BUTTON_A = 35; static const uint8_t BUTTON_B = 27; +// NeoPixel Matrix 5 x 5 static const uint8_t RGB_LED = 4; +// BUILTIN_LED can be used in new Arduino API digitalWrite() like in Blink.ino +#define LED_BUILTIN (RGB_LED + SOC_GPIO_PIN_COUNT) // Just a single LED in the Matrix +#define BUILTIN_LED LED_BUILTIN // backward compatibility +// RGB_BUILTIN and RGB_BRIGHTNESS can be used in new Arduino API neopixelWrite() +#define RGB_BUILTIN LED_BUILTIN +#define RGB_BRIGHTNESS 64 static const uint8_t LIGHT_SENSOR1 = 36; static const uint8_t LIGHT_SENSOR2 = 39; diff --git a/variants/bpi_leaf_s3/pins_arduino.h b/variants/bpi_leaf_s3/pins_arduino.h index 04d141a29e1..45117347e2d 100644 --- a/variants/bpi_leaf_s3/pins_arduino.h +++ b/variants/bpi_leaf_s3/pins_arduino.h @@ -10,23 +10,18 @@ #define USB_PRODUCT "BPI-Leaf-S3" #define USB_SERIAL "" -#define EXTERNAL_NUM_INTERRUPTS 46 -#define NUM_DIGITAL_PINS 48 -#define NUM_ANALOG_INPUTS 20 - // Some boards have too low voltage on this pin (board design bug) // Use different pin with 3V and connect with 48 // and change this setup for the chosen pin (for example 38) -static const uint8_t LED_BUILTIN = SOC_GPIO_PIN_COUNT+48; +#define PIN_NEOPIXEL 48 +// BUILTIN_LED can be used in new Arduino API digitalWrite() like in Blink.ino +static const uint8_t LED_BUILTIN = SOC_GPIO_PIN_COUNT+PIN_NEOPIXEL; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN +// RGB_BUILTIN and RGB_BRIGHTNESS can be used in new Arduino API neopixelWrite() #define RGB_BUILTIN LED_BUILTIN #define RGB_BRIGHTNESS 25 -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) -#define digitalPinHasPWM(p) (p < 46) - static const uint8_t TX = 43; static const uint8_t RX = 44; diff --git a/variants/ch_denky/pins_arduino.h b/variants/ch_denky/pins_arduino.h index 23a786e0e53..ac202d527db 100644 --- a/variants/ch_denky/pins_arduino.h +++ b/variants/ch_denky/pins_arduino.h @@ -3,14 +3,6 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t TX = 1; static const uint8_t RX = 3; diff --git a/variants/cnrs_aw2eth/pins_arduino.h b/variants/cnrs_aw2eth/pins_arduino.h index 56db3aebe58..b21c5889a38 100644 --- a/variants/cnrs_aw2eth/pins_arduino.h +++ b/variants/cnrs_aw2eth/pins_arduino.h @@ -3,14 +3,6 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t TX = 1; static const uint8_t RX = 3; diff --git a/variants/connaxio_espoir/pins_arduino.h b/variants/connaxio_espoir/pins_arduino.h index ac5d025afd8..6e9a4fa3ceb 100644 --- a/variants/connaxio_espoir/pins_arduino.h +++ b/variants/connaxio_espoir/pins_arduino.h @@ -8,14 +8,6 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - /* USB UART */ static const uint8_t TX = 1; static const uint8_t RX = 3; diff --git a/variants/crabik_slot_esp32_s3/pins_arduino.h b/variants/crabik_slot_esp32_s3/pins_arduino.h index d91c4c0f5f2..b5021d5cd03 100644 --- a/variants/crabik_slot_esp32_s3/pins_arduino.h +++ b/variants/crabik_slot_esp32_s3/pins_arduino.h @@ -9,17 +9,9 @@ #define USB_PRODUCT "Slot ESP32-S3" #define USB_SERIAL "" -#define EXTERNAL_NUM_INTERRUPTS 46 -#define NUM_DIGITAL_PINS 48 -#define NUM_ANALOG_INPUTS 20 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) -#define digitalPinHasPWM(p) (p < 46) - static const uint8_t LED_BUILTIN = 21; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t S1 = 1; static const uint8_t S2 = 12; diff --git a/variants/cytron_maker_feather_aiot_s3/pins_arduino.h b/variants/cytron_maker_feather_aiot_s3/pins_arduino.h index 0f4fad124f0..cf75fa6b0ac 100644 --- a/variants/cytron_maker_feather_aiot_s3/pins_arduino.h +++ b/variants/cytron_maker_feather_aiot_s3/pins_arduino.h @@ -10,23 +10,14 @@ #define USB_PRODUCT "Maker Feather AIoT S3" #define USB_SERIAL "" -#define EXTERNAL_NUM_INTERRUPTS 46 -#define NUM_DIGITAL_PINS 20 -#define NUM_ANALOG_INPUTS 12 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) -#define digitalPinHasPWM(p) (p < 46) - - - static const uint8_t LED_BUILTIN = 2; // Status LED. +#define BUILTIN_LED LED_BUILTIN // backward compatibility +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t RGB_BUILTIN = SOC_GPIO_PIN_COUNT + 46; // RGB LED. +#define RGB_BUILTIN RGB_BUILTIN // necessary to make digitalWrite/digitalMode find it +#define RGB_BRIGHTNESS 64 -#define BUILTIN_LED LED_BUILTIN // Backward compatibility -#define LED_BUILTIN LED_BUILTIN #define LED LED_BUILTIN -#define RGB_BUILTIN RGB_BUILTIN #define RGB RGB_BUILTIN #define NEOPIXEL RGB_BUILTIN #define RGB_BRIGHTNESS 65 diff --git a/variants/d-duino-32/pins_arduino.h b/variants/d-duino-32/pins_arduino.h index 579cdfac77b..935261996b1 100644 --- a/variants/d-duino-32/pins_arduino.h +++ b/variants/d-duino-32/pins_arduino.h @@ -3,14 +3,6 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t TX = 1; static const uint8_t RX = 3; diff --git a/variants/d1_mini32/pins_arduino.h b/variants/d1_mini32/pins_arduino.h index 69982798610..1b507cde1fd 100644 --- a/variants/d1_mini32/pins_arduino.h +++ b/variants/d1_mini32/pins_arduino.h @@ -6,7 +6,7 @@ static const uint8_t LED_BUILTIN = 2; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t _VBAT = 35; // battery voltage #define PIN_WIRE_SDA SDA // backward compatibility diff --git a/variants/d1_uno32/pins_arduino.h b/variants/d1_uno32/pins_arduino.h index 8bf0a6d7fa3..6f46d419c83 100644 --- a/variants/d1_uno32/pins_arduino.h +++ b/variants/d1_uno32/pins_arduino.h @@ -5,15 +5,6 @@ #include - -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t TX = 1; static const uint8_t RX = 3; @@ -34,7 +25,7 @@ static const uint8_t A5 = 39; static const uint8_t LED_BUILTIN = 2; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN #define PIN_WIRE_SDA SDA // backward compatibility #define PIN_WIRE_SCL SCL // backward compatibility diff --git a/variants/d32/d32_core.h b/variants/d32/d32_core.h index 0416719f2cb..e658c980896 100644 --- a/variants/d32/d32_core.h +++ b/variants/d32/d32_core.h @@ -1,14 +1,6 @@ #ifndef _D32_CORE_H_ #define _D32_CORE_H_ -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t TX = 1; static const uint8_t RX = 3; diff --git a/variants/d32/pins_arduino.h b/variants/d32/pins_arduino.h index 810eeae6de2..e517def5e8f 100644 --- a/variants/d32/pins_arduino.h +++ b/variants/d32/pins_arduino.h @@ -6,7 +6,7 @@ static const uint8_t LED_BUILTIN = 5; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t _VBAT = 35; // battery voltage #endif /* Pins_Arduino_h */ diff --git a/variants/d32_pro/pins_arduino.h b/variants/d32_pro/pins_arduino.h index ce36f21bc08..da7c14bc389 100644 --- a/variants/d32_pro/pins_arduino.h +++ b/variants/d32_pro/pins_arduino.h @@ -6,7 +6,8 @@ static const uint8_t LED_BUILTIN = 5; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN + static const uint8_t _VBAT = 35; // battery voltage #define TF_CS 4 // TF (Micro SD Card) CS pin diff --git a/variants/deneyapkart/pins_arduino.h b/variants/deneyapkart/pins_arduino.h index 9b28273cc7d..587f92433fa 100644 --- a/variants/deneyapkart/pins_arduino.h +++ b/variants/deneyapkart/pins_arduino.h @@ -3,17 +3,9 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t LED_BUILTIN = 4; -#define BUILTIN_LED LED_BUILTIN -#define LED_BUILTIN LED_BUILTIN +#define BUILTIN_LED LED_BUILTIN // backward compatibility +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN #define LEDB LED_BUILTIN #define LEDR 3 #define LEDG 1 diff --git a/variants/deneyapkart1A/pins_arduino.h b/variants/deneyapkart1A/pins_arduino.h index a079608fe16..edac64ac794 100644 --- a/variants/deneyapkart1A/pins_arduino.h +++ b/variants/deneyapkart1A/pins_arduino.h @@ -4,17 +4,9 @@ #include #include "soc/soc_caps.h" -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - -static const uint8_t LED_BUILTIN = SOC_GPIO_PIN_COUNT+13; -#define BUILTIN_LED LED_BUILTIN -#define LED_BUILTIN LED_BUILTIN +static const uint8_t LED_BUILTIN = SOC_GPIO_PIN_COUNT+13; //D12 +#define BUILTIN_LED LED_BUILTIN // backward compatibility +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN #define RGB_BUILTIN LED_BUILTIN #define RGBLED LED_BUILTIN #define RGB_BRIGHTNESS 64 diff --git a/variants/deneyapkart1Av2/pins_arduino.h b/variants/deneyapkart1Av2/pins_arduino.h index c683e25799e..34d84b057cf 100644 --- a/variants/deneyapkart1Av2/pins_arduino.h +++ b/variants/deneyapkart1Av2/pins_arduino.h @@ -10,17 +10,9 @@ #define USB_PRODUCT "DENEYAP KART 1A v2" #define USB_SERIAL "" // Empty string for MAC adddress -#define EXTERNAL_NUM_INTERRUPTS 46 -#define NUM_DIGITAL_PINS 48 -#define NUM_ANALOG_INPUTS 20 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(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; -#define BUILTIN_LED LED_BUILTIN -#define LED_BUILTIN LED_BUILTIN +static const uint8_t LED_BUILTIN = SOC_GPIO_PIN_COUNT+48; //D9 +#define BUILTIN_LED LED_BUILTIN // backward compatibility +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN #define RGB_BUILTIN LED_BUILTIN #define RGBLED LED_BUILTIN #define RGB_BRIGHTNESS 64 diff --git a/variants/deneyapkartg/pins_arduino.h b/variants/deneyapkartg/pins_arduino.h index f73f172876d..817f63affc1 100644 --- a/variants/deneyapkartg/pins_arduino.h +++ b/variants/deneyapkartg/pins_arduino.h @@ -10,17 +10,9 @@ #define USB_PRODUCT "DENEYAP KART G" #define USB_SERIAL "" // Empty string for MAC adddress -#define EXTERNAL_NUM_INTERRUPTS 22 -#define NUM_DIGITAL_PINS 22 -#define NUM_ANALOG_INPUTS 6 - -#define analogInputToDigitalPin(p) (((p) - +#include "soc/soc_caps.h" #define USB_VID 0x303a #define USB_PID 0x80FF @@ -10,18 +10,16 @@ #define USB_PRODUCT "MiniMain ESP32-S2" #define USB_SERIAL "" // Empty string for MAC adddress +// User LED +#define LED_BUILTIN 13 +#define BUILTIN_LED LED_BUILTIN // backward compatibility -#define EXTERNAL_NUM_INTERRUPTS 46 -#define NUM_DIGITAL_PINS 48 -#define NUM_ANALOG_INPUTS 20 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<48)?(p):-1) -#define digitalPinHasPWM(p) (p < 46) - -#define LED_BUILTIN 13 - +// Neopixel #define PIN_NEOPIXEL 33 +// RGB_BUILTIN and RGB_BRIGHTNESS can be used in new Arduino API neopixelWrite() and digitalWrite() for blinking +#define RGB_BUILTIN (PIN_NEOPIXEL+SOC_GPIO_PIN_COUNT) +#define RGB_BRIGHTNESS 64 + #define NEOPIXEL_NUM 1 // number of neopixels #define NEOPIXEL_POWER 21 // power pin #define NEOPIXEL_POWER_ON HIGH // power pin state when on diff --git a/variants/dfrobot_beetle_esp32c3/pins_arduino.h b/variants/dfrobot_beetle_esp32c3/pins_arduino.h index 735f894281f..abf093cfccb 100644 --- a/variants/dfrobot_beetle_esp32c3/pins_arduino.h +++ b/variants/dfrobot_beetle_esp32c3/pins_arduino.h @@ -9,16 +9,9 @@ #define USB_PRODUCT "Beetle ESP32-C3" #define USB_SERIAL "" // Empty string for MAC adddress - -#define EXTERNAL_NUM_INTERRUPTS 22 -#define NUM_DIGITAL_PINS 22 -#define NUM_ANALOG_INPUTS 6 - -#define analogInputToDigitalPin(p) (((p) -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - typedef unsigned char uint8_t; static const uint8_t LED_BUILTIN = 2; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN - - +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t TX = 1; static const uint8_t RX = 3; diff --git a/variants/dfrobot_firebeetle2_esp32s3/pins_arduino.h b/variants/dfrobot_firebeetle2_esp32s3/pins_arduino.h index dfe43f736a8..012596b01af 100644 --- a/variants/dfrobot_firebeetle2_esp32s3/pins_arduino.h +++ b/variants/dfrobot_firebeetle2_esp32s3/pins_arduino.h @@ -9,15 +9,6 @@ #define USB_PRODUCT "FireBeetle 2 ESP32-S3" #define USB_SERIAL "" // Empty string for MAC adddress -#define EXTERNAL_NUM_INTERRUPTS 46 -#define NUM_DIGITAL_PINS 48 -#define NUM_ANALOG_INPUTS 20 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) -#define digitalPinHasPWM(p) (p < 46) - - static const uint8_t TX = 43; static const uint8_t RX = 44; @@ -50,6 +41,8 @@ static const uint8_t D13 = 21; static const uint8_t D14 = 47; static const uint8_t LED_BUILTIN = D13; +#define BUILTIN_LED LED_BUILTIN // backward compatibility +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t T1 = 1; diff --git a/variants/dfrobot_romeo_esp32s3/pins_arduino.h b/variants/dfrobot_romeo_esp32s3/pins_arduino.h index e52a523e6ad..40774c71ddf 100644 --- a/variants/dfrobot_romeo_esp32s3/pins_arduino.h +++ b/variants/dfrobot_romeo_esp32s3/pins_arduino.h @@ -3,17 +3,6 @@ #include - - -#define EXTERNAL_NUM_INTERRUPTS 46 -#define NUM_DIGITAL_PINS 48 -#define NUM_ANALOG_INPUTS 20 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) -#define digitalPinHasPWM(p) (p < 46) - - static const uint8_t TX = 43; static const uint8_t RX = 44; diff --git a/variants/doitESP32devkitV1/pins_arduino.h b/variants/doitESP32devkitV1/pins_arduino.h index 69e4138428f..467c58c0034 100644 --- a/variants/doitESP32devkitV1/pins_arduino.h +++ b/variants/doitESP32devkitV1/pins_arduino.h @@ -3,17 +3,9 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t LED_BUILTIN = 2; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t TX = 1; static const uint8_t RX = 3; diff --git a/variants/doitESPduino32/pins_arduino.h b/variants/doitESPduino32/pins_arduino.h index 991090a5fac..f0b54aa45bd 100644 --- a/variants/doitESPduino32/pins_arduino.h +++ b/variants/doitESPduino32/pins_arduino.h @@ -3,16 +3,9 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t LED_BUILTIN = 2; #define BUILTIN_LED LED_BUILTIN // backward compatibility +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t SDA = 21; @@ -60,6 +53,42 @@ static const uint8_t CLK = 6; static const uint8_t SD0 = 7; static const uint8_t SD1 = 8; +//Arduino Uno backward compatibility +static const uint8_t A0 = 2; +static const uint8_t A1 = 4; +static const uint8_t A2 = 35; +static const uint8_t A3 = 34; +static const uint8_t A4 = 36; +static const uint8_t A5 = 39; + +static const uint8_t D0 = 3; +static const uint8_t D1 = 1; +static const uint8_t D2 = 26; +static const uint8_t D3 = 25; +static const uint8_t D4 = 17; +static const uint8_t D5 = 16; +static const uint8_t D6 = 27; +static const uint8_t D7 = 14; +static const uint8_t D8 = 12; +static const uint8_t D9 = 13; +static const uint8_t D10 = 5; +static const uint8_t D11 = 23; +static const uint8_t D12 = 19; +static const uint8_t D13 = 18; + +static const uint8_t TX = 1; +static const uint8_t RX = 3; + +#define PIN_WIRE_SDA SDA // backward compatibility +#define PIN_WIRE_SCL SCL // backward compatibility + +#define PIN_SPI_SS SS // backward compatibility +#define PIN_SPI_MOSI MOSI // backward compatibility +#define PIN_SPI_MISO MISO // backward compatibility +#define PIN_SPI_SCK SCK // backward compatibility + +#define PIN_A0 A0 // backward compatibility + // ESP-WROOM-32 does not have GPIO 14, 20(NC), 24, 28, 29, 30, 31, 36, 37, 38, 40+ // All pins should be PWM capable. The board is a clone of WeMos D1 R32. diff --git a/variants/dpu_esp32/pins_arduino.h b/variants/dpu_esp32/pins_arduino.h index ff6cb1e9ba4..1b2e1b6634f 100644 --- a/variants/dpu_esp32/pins_arduino.h +++ b/variants/dpu_esp32/pins_arduino.h @@ -3,14 +3,6 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t TX = 1; static const uint8_t RX = 3; diff --git a/variants/esp32-devkit-lipo/pins_arduino.h b/variants/esp32-devkit-lipo/pins_arduino.h index d784eb0297a..fb715c0e79e 100644 --- a/variants/esp32-devkit-lipo/pins_arduino.h +++ b/variants/esp32-devkit-lipo/pins_arduino.h @@ -3,14 +3,6 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t TX = 1; static const uint8_t RX = 3; diff --git a/variants/esp32-evb/pins_arduino.h b/variants/esp32-evb/pins_arduino.h index 327a5ba92e4..43691f02c7b 100644 --- a/variants/esp32-evb/pins_arduino.h +++ b/variants/esp32-evb/pins_arduino.h @@ -3,15 +3,6 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - - static const uint8_t KEY_BUILTIN = 34; static const uint8_t TX = 1; diff --git a/variants/esp32-gateway/pins_arduino.h b/variants/esp32-gateway/pins_arduino.h index 5dd5d7e0fd9..033e660f37d 100644 --- a/variants/esp32-gateway/pins_arduino.h +++ b/variants/esp32-gateway/pins_arduino.h @@ -3,22 +3,18 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - #if defined (ARDUINO_ESP32_GATEWAY_E) || defined (ARDUINO_ESP32_GATEWAY_F) -#define ETH_CLK_MODE ETH_CLOCK_GPIO17_OUT -#define ETH_PHY_POWER 5 +#define ETH_PHY_TYPE ETH_PHY_LAN8720 +#define ETH_PHY_ADDR 0 +#define ETH_PHY_MDC 23 +#define ETH_PHY_MDIO 18 +#define ETH_PHY_POWER 5 +#define ETH_CLK_MODE ETH_CLOCK_GPIO17_OUT #endif static const uint8_t LED_BUILTIN = 33; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t KEY_BUILTIN = 34; diff --git a/variants/esp32-poe-iso/pins_arduino.h b/variants/esp32-poe-iso/pins_arduino.h index 06a0dc15afd..fd16ab1c1ec 100644 --- a/variants/esp32-poe-iso/pins_arduino.h +++ b/variants/esp32-poe-iso/pins_arduino.h @@ -3,16 +3,17 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 +#define ETH_PHY_TYPE ETH_PHY_LAN8720 +#define ETH_PHY_ADDR 0 +#define ETH_PHY_MDC 23 +#define ETH_PHY_MDIO 18 +#define ETH_PHY_POWER 12 +#if defined BOARD_HAS_PSRAM // when PSRAM is enabled pins 16 and 17 are used for the PSRAM and alternative pins are used for respectively I2C SCL and Ethernet Clock GPIO +#define ETH_CLK_MODE ETH_CLOCK_GPIO0_OUT +#else +#define ETH_CLK_MODE ETH_CLOCK_GPIO17_OUT +#endif -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - -#define ETH_CLK_MODE ETH_CLOCK_GPIO17_OUT -#define ETH_PHY_POWER 12 static const uint8_t KEY_BUILTIN = 34; @@ -26,7 +27,11 @@ static const uint8_t RX = 3; #define RX2 35 // ext2 pin 3 static const uint8_t SDA = 13; +#if defined BOARD_HAS_PSRAM // when PSRAM is enabled pins 16 and 17 are used for the PSRAM and alternative pins are used for respectively I2C SCL and Ethernet Clock GPIO +static const uint8_t SCL = 33; +#else static const uint8_t SCL = 16; +#endif static const uint8_t SS = 5; static const uint8_t MOSI = 2; diff --git a/variants/esp32-poe/pins_arduino.h b/variants/esp32-poe/pins_arduino.h index 06a0dc15afd..fd16ab1c1ec 100644 --- a/variants/esp32-poe/pins_arduino.h +++ b/variants/esp32-poe/pins_arduino.h @@ -3,16 +3,17 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 +#define ETH_PHY_TYPE ETH_PHY_LAN8720 +#define ETH_PHY_ADDR 0 +#define ETH_PHY_MDC 23 +#define ETH_PHY_MDIO 18 +#define ETH_PHY_POWER 12 +#if defined BOARD_HAS_PSRAM // when PSRAM is enabled pins 16 and 17 are used for the PSRAM and alternative pins are used for respectively I2C SCL and Ethernet Clock GPIO +#define ETH_CLK_MODE ETH_CLOCK_GPIO0_OUT +#else +#define ETH_CLK_MODE ETH_CLOCK_GPIO17_OUT +#endif -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - -#define ETH_CLK_MODE ETH_CLOCK_GPIO17_OUT -#define ETH_PHY_POWER 12 static const uint8_t KEY_BUILTIN = 34; @@ -26,7 +27,11 @@ static const uint8_t RX = 3; #define RX2 35 // ext2 pin 3 static const uint8_t SDA = 13; +#if defined BOARD_HAS_PSRAM // when PSRAM is enabled pins 16 and 17 are used for the PSRAM and alternative pins are used for respectively I2C SCL and Ethernet Clock GPIO +static const uint8_t SCL = 33; +#else static const uint8_t SCL = 16; +#endif static const uint8_t SS = 5; static const uint8_t MOSI = 2; diff --git a/variants/esp32-trueverit-iot-driver-mkii/pins_arduino.h b/variants/esp32-trueverit-iot-driver-mkii/pins_arduino.h index aea4585f266..222046998dc 100644 --- a/variants/esp32-trueverit-iot-driver-mkii/pins_arduino.h +++ b/variants/esp32-trueverit-iot-driver-mkii/pins_arduino.h @@ -4,15 +4,8 @@ #include static const uint8_t LED_BUILTIN = 18; -#define BUILTIN_LED LED_BUILTIN // backward compatibility - -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p) < 20) ? (analogChannelToDigitalPin(p)) : -1) -#define digitalPinToInterrupt(p) (((p) < 40) ? (p) : -1) -#define digitalPinHasPWM(p) (p < 34) +#define BUILTIN_LED LED_BUILTIN // backward compatibility +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN #define TX1 12 #define RX1 13 diff --git a/variants/esp32-trueverit-iot-driver-mkiii/pins_arduino.h b/variants/esp32-trueverit-iot-driver-mkiii/pins_arduino.h index b86654113b8..0a468d58856 100644 --- a/variants/esp32-trueverit-iot-driver-mkiii/pins_arduino.h +++ b/variants/esp32-trueverit-iot-driver-mkiii/pins_arduino.h @@ -4,15 +4,8 @@ #include static const uint8_t LED_BUILTIN = 18; -#define BUILTIN_LED LED_BUILTIN // backward compatibility - -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p) < 20) ? (analogChannelToDigitalPin(p)) : -1) -#define digitalPinToInterrupt(p) (((p) < 40) ? (p) : -1) -#define digitalPinHasPWM(p) (p < 34) +#define BUILTIN_LED LED_BUILTIN // backward compatibility +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN #define TX1 12 #define RX1 13 diff --git a/variants/esp32-trueverit-iot-driver/pins_arduino.h b/variants/esp32-trueverit-iot-driver/pins_arduino.h index f6fa15fc4f2..da4ef3ce633 100644 --- a/variants/esp32-trueverit-iot-driver/pins_arduino.h +++ b/variants/esp32-trueverit-iot-driver/pins_arduino.h @@ -4,15 +4,8 @@ #include static const uint8_t LED_BUILTIN = 18; -#define BUILTIN_LED LED_BUILTIN // backward compatibility - -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p) < 20) ? (analogChannelToDigitalPin(p)) : -1) -#define digitalPinToInterrupt(p) (((p) < 40) ? (p) : -1) -#define digitalPinHasPWM(p) (p < 34) +#define BUILTIN_LED LED_BUILTIN // backward compatibility +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN #define TX1 12 #define RX1 13 diff --git a/variants/esp32/pins_arduino.h b/variants/esp32/pins_arduino.h index 4ad96ccef51..27ecc063483 100644 --- a/variants/esp32/pins_arduino.h +++ b/variants/esp32/pins_arduino.h @@ -3,14 +3,6 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t TX = 1; static const uint8_t RX = 3; diff --git a/variants/esp320/pins_arduino.h b/variants/esp320/pins_arduino.h index f62b6502c42..a7091aa09b2 100644 --- a/variants/esp320/pins_arduino.h +++ b/variants/esp320/pins_arduino.h @@ -3,17 +3,9 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 11 -#define NUM_DIGITAL_PINS 12 -#define NUM_ANALOG_INPUTS 5 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t LED_BUILTIN = 5; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t TX = 1; static const uint8_t RX = 3; diff --git a/variants/esp32_s3r8n16/pins_arduino.h b/variants/esp32_s3r8n16/pins_arduino.h index 5a63d387bbd..ba3f1908875 100644 --- a/variants/esp32_s3r8n16/pins_arduino.h +++ b/variants/esp32_s3r8n16/pins_arduino.h @@ -2,7 +2,6 @@ #define Pins_Arduino_h #include -#include "soc/soc_caps.h" #define USB_VID 0x303a #define USB_PID 0x1001 @@ -10,14 +9,6 @@ #define USB_PRODUCT "4D Systems gen4-ESP32 16MB Modules (ESP32-S3R8n16)" //#define USB_CLASS 2 -#define EXTERNAL_NUM_INTERRUPTS 46 -#define NUM_DIGITAL_PINS 48 -#define NUM_ANALOG_INPUTS 20 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) -#define digitalPinHasPWM(p) (p < 46) - static const uint8_t TX = 43; static const uint8_t RX = 44; diff --git a/variants/esp32c3/pins_arduino.h b/variants/esp32c3/pins_arduino.h index ab28240d4b4..71318e27cf9 100644 --- a/variants/esp32c3/pins_arduino.h +++ b/variants/esp32c3/pins_arduino.h @@ -4,20 +4,15 @@ #include #include "soc/soc_caps.h" -#define EXTERNAL_NUM_INTERRUPTS 22 -#define NUM_DIGITAL_PINS 22 -#define NUM_ANALOG_INPUTS 6 - -static const uint8_t LED_BUILTIN = SOC_GPIO_PIN_COUNT+8; +#define PIN_NEOPIXEL 8 +// BUILTIN_LED can be used in new Arduino API digitalWrite() like in Blink.ino +static const uint8_t LED_BUILTIN = SOC_GPIO_PIN_COUNT+PIN_NEOPIXEL; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN +// RGB_BUILTIN and RGB_BRIGHTNESS can be used in new Arduino API neopixelWrite() #define RGB_BUILTIN LED_BUILTIN #define RGB_BRIGHTNESS 64 -#define analogInputToDigitalPin(p) (((p) -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t TX = 1; static const uint8_t RX = 3; diff --git a/variants/esp32micromod/pins_arduino.h b/variants/esp32micromod/pins_arduino.h index abf2735e4a2..b31f20dbea5 100755 --- a/variants/esp32micromod/pins_arduino.h +++ b/variants/esp32micromod/pins_arduino.h @@ -3,14 +3,6 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t TX = 1; static const uint8_t RX = 3; @@ -71,5 +63,7 @@ static const uint8_t DAC1 = 25; static const uint8_t DAC2 = 26; static const uint8_t LED_BUILTIN = 2; +#define BUILTIN_LED LED_BUILTIN // backward compatibility +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN #endif /* Pins_Arduino_h */ diff --git a/variants/esp32s2/pins_arduino.h b/variants/esp32s2/pins_arduino.h index 4ab0f712042..ea68934a69b 100644 --- a/variants/esp32s2/pins_arduino.h +++ b/variants/esp32s2/pins_arduino.h @@ -4,21 +4,18 @@ #include #include "soc/soc_caps.h" -#define EXTERNAL_NUM_INTERRUPTS 46 -#define NUM_DIGITAL_PINS 48 -#define NUM_ANALOG_INPUTS 20 - -static const uint8_t LED_BUILTIN = SOC_GPIO_PIN_COUNT+18; // GPIO pin for Saola-1 & DevKitM-1 = 18 -//static const uint8_t LED_BUILTIN = SOC_GPIO_PIN_COUNT+45; // GPIO pin for Kaluga = 45 +// GPIO pin for Saola-1 & DevKitM-1 = 18 +#define PIN_NEOPIXEL 18 +// GPIO pin for Kaluga = 45 +//#define PIN_NEOPIXEL 45 +// BUILTIN_LED can be used in new Arduino API digitalWrite() like in Blink.ino +static const uint8_t LED_BUILTIN = SOC_GPIO_PIN_COUNT+PIN_NEOPIXEL; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN +// RGB_BUILTIN and RGB_BRIGHTNESS can be used in new Arduino API neopixelWrite() #define RGB_BUILTIN LED_BUILTIN #define RGB_BRIGHTNESS 64 -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<48)?(p):-1) -#define digitalPinHasPWM(p) (p < 46) - static const uint8_t TX = 43; static const uint8_t RX = 44; diff --git a/variants/esp32s2thing_plus/pins_arduino.h b/variants/esp32s2thing_plus/pins_arduino.h index 219f357981e..d5c4510aa5d 100644 --- a/variants/esp32s2thing_plus/pins_arduino.h +++ b/variants/esp32s2thing_plus/pins_arduino.h @@ -9,16 +9,9 @@ #define USB_PRODUCT "ESP32-S2 Thing Plus" #define USB_SERIAL "" -#define EXTERNAL_NUM_INTERRUPTS 46 -#define NUM_DIGITAL_PINS 48 -#define NUM_ANALOG_INPUTS 20 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<48)?(p):-1) -#define digitalPinHasPWM(p) (p < 46) - static const uint8_t LED_BUILTIN = 13; #define BUILTIN_LED LED_BUILTIN // backward compatibility +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t TX = 43; static const uint8_t RX = 44; diff --git a/variants/esp32s2usb/pins_arduino.h b/variants/esp32s2usb/pins_arduino.h index c6d464b79b4..636c62482a0 100644 --- a/variants/esp32s2usb/pins_arduino.h +++ b/variants/esp32s2usb/pins_arduino.h @@ -19,15 +19,6 @@ #define USB_FW_MSC_VOLUME_NAME "S2-Firmware" //max 11 chars #define USB_FW_MSC_SERIAL_NUMBER 0x00000000 - -#define EXTERNAL_NUM_INTERRUPTS 46 -#define NUM_DIGITAL_PINS 48 -#define NUM_ANALOG_INPUTS 20 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<48)?(p):-1) -#define digitalPinHasPWM(p) (p < 46) - static const uint8_t TX = 43; static const uint8_t RX = 44; diff --git a/variants/esp32s3/pins_arduino.h b/variants/esp32s3/pins_arduino.h index 8ffd946f247..339b47df0b4 100644 --- a/variants/esp32s3/pins_arduino.h +++ b/variants/esp32s3/pins_arduino.h @@ -7,22 +7,18 @@ #define USB_VID 0x303a #define USB_PID 0x1001 -#define EXTERNAL_NUM_INTERRUPTS 46 -#define NUM_DIGITAL_PINS 48 -#define NUM_ANALOG_INPUTS 20 - // Some boards have too low voltage on this pin (board design bug) // Use different pin with 3V and connect with 48 // and change this setup for the chosen pin (for example 38) -static const uint8_t LED_BUILTIN = SOC_GPIO_PIN_COUNT+48; +#define PIN_NEOPIXEL 48 +// BUILTIN_LED can be used in new Arduino API digitalWrite() like in Blink.ino +static const uint8_t LED_BUILTIN = SOC_GPIO_PIN_COUNT+PIN_NEOPIXEL; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN +// RGB_BUILTIN and RGB_BRIGHTNESS can be used in new Arduino API neopixelWrite() #define RGB_BUILTIN LED_BUILTIN #define RGB_BRIGHTNESS 64 -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) -#define digitalPinHasPWM(p) (p < 46) static const uint8_t TX = 43; static const uint8_t RX = 44; diff --git a/variants/esp32s3_powerfeather/pins_arduino.h b/variants/esp32s3_powerfeather/pins_arduino.h index fb57b8e6d70..2066cf3e002 100644 --- a/variants/esp32s3_powerfeather/pins_arduino.h +++ b/variants/esp32s3_powerfeather/pins_arduino.h @@ -9,14 +9,6 @@ #define USB_PRODUCT "ESP32-S3 PowerFeather" #define USB_SERIAL "" -#define NUM_DIGITAL_PINS 48 -#define EXTERNAL_NUM_INTERRUPTS NUM_DIGITAL_PINS -#define NUM_ANALOG_INPUTS 20 - -#define analogInputToDigitalPin(p) (((p) -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t LED_BUILTIN = 5; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t KEY_BUILTIN = 0; diff --git a/variants/esp32thing_plus/pins_arduino.h b/variants/esp32thing_plus/pins_arduino.h index f1342b2c3c0..9b4b1e25147 100644 --- a/variants/esp32thing_plus/pins_arduino.h +++ b/variants/esp32thing_plus/pins_arduino.h @@ -3,17 +3,9 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t LED_BUILTIN = 13; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t TX = 17; static const uint8_t RX = 16; diff --git a/variants/esp32thing_plus_c/pins_arduino.h b/variants/esp32thing_plus_c/pins_arduino.h index e91fb212a99..fbfe934a698 100644 --- a/variants/esp32thing_plus_c/pins_arduino.h +++ b/variants/esp32thing_plus_c/pins_arduino.h @@ -4,20 +4,13 @@ #include #include "soc/soc_caps.h" -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t LED_BUILTIN = 13; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN +// RGB_BUILTIN and RGB_BRIGHTNESS can be used in new Arduino API neopixelWrite() static const uint8_t RGB_BUILTIN = SOC_GPIO_PIN_COUNT+2; -#define RGB_BUILTIN RGB_BUILTIN +#define RGB_BUILTIN RGB_BUILTIN // necessary to make digitalWrite/digitalMode find it #define RGB_BRIGHTNESS 64 static const uint8_t TX = 17; diff --git a/variants/esp32vn-iot-uno/pins_arduino.h b/variants/esp32vn-iot-uno/pins_arduino.h index c6e9127e254..fd196bdf34f 100644 --- a/variants/esp32vn-iot-uno/pins_arduino.h +++ b/variants/esp32vn-iot-uno/pins_arduino.h @@ -3,14 +3,6 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t TX = 1; static const uint8_t RX = 3; diff --git a/variants/esp_c3_m1_i_kit/pins_arduino.h b/variants/esp_c3_m1_i_kit/pins_arduino.h index 0a1a0fe9fe8..8f5f433fea3 100644 --- a/variants/esp_c3_m1_i_kit/pins_arduino.h +++ b/variants/esp_c3_m1_i_kit/pins_arduino.h @@ -8,14 +8,6 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 22 -#define NUM_DIGITAL_PINS 22 -#define NUM_ANALOG_INPUTS 6 - -#define analogInputToDigitalPin(p) (((p) -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t LED_BUILTIN = 5; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t KEY_BUILTIN = 0; diff --git a/variants/espectro32/pins_arduino.h b/variants/espectro32/pins_arduino.h index 0be1919c1d6..449b79247ac 100644 --- a/variants/espectro32/pins_arduino.h +++ b/variants/espectro32/pins_arduino.h @@ -7,17 +7,9 @@ #define ESPECTRO32_VERSION 1 #endif -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t LED_BUILTIN = 15; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t TX = 1; static const uint8_t RX = 3; diff --git a/variants/espino32/pins_arduino.h b/variants/espino32/pins_arduino.h index 586f9725dc4..571912b7ee9 100644 --- a/variants/espino32/pins_arduino.h +++ b/variants/espino32/pins_arduino.h @@ -3,17 +3,9 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 38 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t LED_BUILTIN = 16; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t BUILTIN_KEY = 0; diff --git a/variants/feather_esp32/pins_arduino.h b/variants/feather_esp32/pins_arduino.h index 8b2b200ddcb..bc7c2dc6656 100644 --- a/variants/feather_esp32/pins_arduino.h +++ b/variants/feather_esp32/pins_arduino.h @@ -3,17 +3,9 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t LED_BUILTIN = 13; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t TX = 17; static const uint8_t RX = 16; diff --git a/variants/firebeetle32/pins_arduino.h b/variants/firebeetle32/pins_arduino.h index 15d54fe9a37..7fd4a527975 100644 --- a/variants/firebeetle32/pins_arduino.h +++ b/variants/firebeetle32/pins_arduino.h @@ -3,21 +3,11 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - typedef unsigned char uint8_t; static const uint8_t LED_BUILTIN = 2; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN - - +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t TX = 1; static const uint8_t RX = 3; diff --git a/variants/fm-devkit/pins_arduino.h b/variants/fm-devkit/pins_arduino.h index 5c1054fafb5..b0cc94038f6 100644 --- a/variants/fm-devkit/pins_arduino.h +++ b/variants/fm-devkit/pins_arduino.h @@ -3,19 +3,13 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t TX = 1; static const uint8_t RX = 3; // IO static const uint8_t LED_BUILTIN = 5; +#define BUILTIN_LED LED_BUILTIN // backward compatibility +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t SW1 = 4; static const uint8_t SW2 = 18; static const uint8_t SW3 = 19; diff --git a/variants/franzininho_wifi_esp32s2/pins_arduino.h b/variants/franzininho_wifi_esp32s2/pins_arduino.h index dd287f417d0..4a07156d0c3 100644 --- a/variants/franzininho_wifi_esp32s2/pins_arduino.h +++ b/variants/franzininho_wifi_esp32s2/pins_arduino.h @@ -2,6 +2,7 @@ #define Pins_Arduino_h #include +#include "soc/soc_caps.h" #define USB_VID 0x303A #define USB_PID 0x80A9 @@ -10,15 +11,14 @@ #define USB_SERIAL "0" #define USB_WEBUSB_ENABLED false -#define EXTERNAL_NUM_INTERRUPTS 46 -#define NUM_DIGITAL_PINS 48 -#define NUM_ANALOG_INPUTS 20 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<48)?(p):-1) -#define digitalPinHasPWM(p) (p < 46) - static const uint8_t PIN_NEOPIXEL = 18; +// BUILTIN_LED can be used in new Arduino API digitalWrite() like in Blink.ino +static const uint8_t LED_BUILTIN = (PIN_NEOPIXEL + SOC_GPIO_PIN_COUNT); +#define BUILTIN_LED LED_BUILTIN // backward compatibility +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN +// RGB_BUILTIN and RGB_BRIGHTNESS can be used in new Arduino API neopixelWrite() +#define RGB_BUILTIN LED_BUILTIN +#define RGB_BRIGHTNESS 64 static const uint8_t TX = 43; static const uint8_t RX = 44; diff --git a/variants/franzininho_wifi_msc_esp32s2/pins_arduino.h b/variants/franzininho_wifi_msc_esp32s2/pins_arduino.h index 58db2039d26..0589ad421d2 100644 --- a/variants/franzininho_wifi_msc_esp32s2/pins_arduino.h +++ b/variants/franzininho_wifi_msc_esp32s2/pins_arduino.h @@ -2,6 +2,7 @@ #define Pins_Arduino_h #include +#include "soc/soc_caps.h" #define USB_VID 0x303A #define USB_PID 0x80A9 @@ -17,15 +18,14 @@ #define USB_FW_MSC_VOLUME_NAME "S2-Firmware" //max 11 chars #define USB_FW_MSC_SERIAL_NUMBER 0x00000000 -#define EXTERNAL_NUM_INTERRUPTS 46 -#define NUM_DIGITAL_PINS 48 -#define NUM_ANALOG_INPUTS 20 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<48)?(p):-1) -#define digitalPinHasPWM(p) (p < 46) - static const uint8_t PIN_NEOPIXEL = 18; +// BUILTIN_LED can be used in new Arduino API digitalWrite() like in Blink.ino +static const uint8_t LED_BUILTIN = (PIN_NEOPIXEL + SOC_GPIO_PIN_COUNT); +#define BUILTIN_LED LED_BUILTIN // backward compatibility +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN +// RGB_BUILTIN and RGB_BRIGHTNESS can be used in new Arduino API neopixelWrite() +#define RGB_BUILTIN LED_BUILTIN +#define RGB_BRIGHTNESS 64 static const uint8_t TX = 43; static const uint8_t RX = 44; diff --git a/variants/frog32/pins_arduino.h b/variants/frog32/pins_arduino.h index 4ad96ccef51..27ecc063483 100644 --- a/variants/frog32/pins_arduino.h +++ b/variants/frog32/pins_arduino.h @@ -3,14 +3,6 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t TX = 1; static const uint8_t RX = 3; diff --git a/variants/gpy/pins_arduino.h b/variants/gpy/pins_arduino.h index aa41db48bf1..255363ce5c7 100644 --- a/variants/gpy/pins_arduino.h +++ b/variants/gpy/pins_arduino.h @@ -2,14 +2,7 @@ #define Pins_Arduino_h #include - -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 18 - -#define analogInputToDigitalPin(p) (((p)<40)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) +#include "soc/soc_caps.h" // Sequans Monarch LTE Cat M1/NB1 modem // NOTE: The Pycom pinout as well as spec sheet block diagram / pin details @@ -22,9 +15,14 @@ #define LTE_WAKE 27 // GPIO27 - Sequans modem wake-up interrupt #define LTE_BAUD 921600 -static const uint8_t LED_BUILTIN = 0; // ->2812 RGB !!! +// Neopixel +#define PIN_NEOPIXEL 0 // ->2812 RGB !!! +static const uint8_t LED_BUILTIN = PIN_NEOPIXEL + SOC_GPIO_PIN_COUNT; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN +// RGB_BUILTIN and RGB_BRIGHTNESS can be used in new Arduino API neopixelWrite() +#define RGB_BUILTIN LED_BUILTIN +#define RGB_BRIGHTNESS 64 #define ANT_SELECT 21 // GPIO21 - WiFi external / internal antenna switch diff --git a/variants/healthypi4/pins_arduino.h b/variants/healthypi4/pins_arduino.h index b3eb897374a..69471053402 100644 --- a/variants/healthypi4/pins_arduino.h +++ b/variants/healthypi4/pins_arduino.h @@ -3,17 +3,9 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t LED_BUILTIN = 15; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t KEY_BUILTIN = 17; diff --git a/variants/heltec_wifi_kit_32/pins_arduino.h b/variants/heltec_wifi_kit_32/pins_arduino.h index 9efa252d564..a164f9e153a 100644 --- a/variants/heltec_wifi_kit_32/pins_arduino.h +++ b/variants/heltec_wifi_kit_32/pins_arduino.h @@ -7,17 +7,9 @@ #define DISPLAY_HEIGHT 64 #define DISPLAY_WIDTH 128 -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t LED_BUILTIN = 25; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t KEY_BUILTIN = 0; diff --git a/variants/heltec_wifi_kit_32_V3/pins_arduino.h b/variants/heltec_wifi_kit_32_V3/pins_arduino.h index 6d513c3246f..c64fe199860 100644 --- a/variants/heltec_wifi_kit_32_V3/pins_arduino.h +++ b/variants/heltec_wifi_kit_32_V3/pins_arduino.h @@ -7,17 +7,9 @@ #define DISPLAY_HEIGHT 64 #define DISPLAY_WIDTH 128 -#define EXTERNAL_NUM_INTERRUPTS 46 -#define NUM_DIGITAL_PINS 48 -#define NUM_ANALOG_INPUTS 20 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) -#define digitalPinHasPWM(p) (p < 46) - static const uint8_t LED_BUILTIN = 35; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t KEY_BUILTIN = 0; diff --git a/variants/heltec_wifi_lora_32/pins_arduino.h b/variants/heltec_wifi_lora_32/pins_arduino.h index ee5a2affd46..b702b97f437 100644 --- a/variants/heltec_wifi_lora_32/pins_arduino.h +++ b/variants/heltec_wifi_lora_32/pins_arduino.h @@ -7,17 +7,9 @@ #define DISPLAY_HEIGHT 64 #define DISPLAY_WIDTH 128 -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t LED_BUILTIN = 25; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t KEY_BUILTIN = 0; diff --git a/variants/heltec_wifi_lora_32_V2/pins_arduino.h b/variants/heltec_wifi_lora_32_V2/pins_arduino.h index 420c23c3ffa..d316145b8c6 100644 --- a/variants/heltec_wifi_lora_32_V2/pins_arduino.h +++ b/variants/heltec_wifi_lora_32_V2/pins_arduino.h @@ -7,17 +7,9 @@ #define DISPLAY_HEIGHT 64 #define DISPLAY_WIDTH 128 -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t LED_BUILTIN = 25; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t KEY_BUILTIN = 0; diff --git a/variants/heltec_wifi_lora_32_V3/pins_arduino.h b/variants/heltec_wifi_lora_32_V3/pins_arduino.h index 079bc1af2cc..bd0d35a8912 100644 --- a/variants/heltec_wifi_lora_32_V3/pins_arduino.h +++ b/variants/heltec_wifi_lora_32_V3/pins_arduino.h @@ -2,7 +2,6 @@ #define Pins_Arduino_h #include -#include "soc/soc_caps.h" #define WIFI_LoRa_32_V3 true #define DISPLAY_HEIGHT 64 @@ -11,22 +10,9 @@ #define USB_VID 0x303a #define USB_PID 0x1001 -#define EXTERNAL_NUM_INTERRUPTS 46 -#define NUM_DIGITAL_PINS 48 -#define NUM_ANALOG_INPUTS 20 - -// Some boards have too low voltage on this pin (board design bug) -// Use different pin with 3V and connect with 48 -// and change this setup for the chosen pin (for example 38) -static const uint8_t LED_BUILTIN = SOC_GPIO_PIN_COUNT+48; +static const uint8_t LED_BUILTIN = 35; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN -#define RGB_BUILTIN LED_BUILTIN -#define RGB_BRIGHTNESS 64 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) -#define digitalPinHasPWM(p) (p < 46) +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t TX = 43; static const uint8_t RX = 44; diff --git a/variants/heltec_wireless_stick/pins_arduino.h b/variants/heltec_wireless_stick/pins_arduino.h index a1c4eec28c8..0910fcc7672 100644 --- a/variants/heltec_wireless_stick/pins_arduino.h +++ b/variants/heltec_wireless_stick/pins_arduino.h @@ -7,17 +7,9 @@ #define DISPLAY_HEIGHT 32 #define DISPLAY_WIDTH 64 -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t LED_BUILTIN = 25; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t KEY_BUILTIN = 0; diff --git a/variants/heltec_wireless_stick_lite/pins_arduino.h b/variants/heltec_wireless_stick_lite/pins_arduino.h index 981c66b2b74..ec4bac483de 100644 --- a/variants/heltec_wireless_stick_lite/pins_arduino.h +++ b/variants/heltec_wireless_stick_lite/pins_arduino.h @@ -7,17 +7,9 @@ #define DISPLAY_HEIGHT 0 #define DISPLAY_WIDTH 0 -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t LED_BUILTIN = 25; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t KEY_BUILTIN = 0; diff --git a/variants/heltec_wireless_stick_lite_v3/pins_arduino.h b/variants/heltec_wireless_stick_lite_v3/pins_arduino.h index ee7021edc16..0a0a466302c 100644 --- a/variants/heltec_wireless_stick_lite_v3/pins_arduino.h +++ b/variants/heltec_wireless_stick_lite_v3/pins_arduino.h @@ -7,17 +7,9 @@ #define DISPLAY_HEIGHT 0 #define DISPLAY_WIDTH 0 -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 20 -#define NUM_ANALOG_INPUTS 15 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t LED_BUILTIN = 35; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t TX = 43; static const uint8_t RX = 44; @@ -56,5 +48,12 @@ static const uint8_t T6 = 7; static const uint8_t Vext = 36; static const uint8_t LED = 35; +static const uint8_t RST_OLED = 21; +static const uint8_t SCL_OLED = 18; +static const uint8_t SDA_OLED = 17; + +static const uint8_t RST_LoRa = 12; +static const uint8_t BUSY_LoRa = 13; +static const uint8_t DIO0 = 14; #endif /* Pins_Arduino_h */ diff --git a/variants/honeylemon/pins_arduino.h b/variants/honeylemon/pins_arduino.h index 0156f5d3254..044dad7f269 100644 --- a/variants/honeylemon/pins_arduino.h +++ b/variants/honeylemon/pins_arduino.h @@ -3,17 +3,9 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 38 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t LED_BUILTIN = 2; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t BUILTIN_KEY = 0; diff --git a/variants/hornbill32dev/pins_arduino.h b/variants/hornbill32dev/pins_arduino.h index 48adf9d75a8..a868a7edffa 100644 --- a/variants/hornbill32dev/pins_arduino.h +++ b/variants/hornbill32dev/pins_arduino.h @@ -3,17 +3,9 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t LED_BUILTIN = 13; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t KEY_BUILTIN = 0; diff --git a/variants/hornbill32minima/pins_arduino.h b/variants/hornbill32minima/pins_arduino.h index c8d65c77a01..a8fb52c60f7 100644 --- a/variants/hornbill32minima/pins_arduino.h +++ b/variants/hornbill32minima/pins_arduino.h @@ -3,14 +3,6 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t TX = 1; //taken out on pgm header static const uint8_t RX = 3; //taken out on pgm header diff --git a/variants/imbrios-logsens-v1p1/pins_arduino.h b/variants/imbrios-logsens-v1p1/pins_arduino.h index 3c3f083e034..338b9151f7d 100644 --- a/variants/imbrios-logsens-v1p1/pins_arduino.h +++ b/variants/imbrios-logsens-v1p1/pins_arduino.h @@ -3,14 +3,6 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 9 -#define NUM_ANALOG_INPUTS 7 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - // Renaming few signals #define SPI_CLK SCK // IO14 #define SPI_MISO MISO // IO12 @@ -22,8 +14,8 @@ /* LED_BUILTIN is kept for compatibility reason; mapped to LED2 on the LogSens V1.1 Board */ static const uint8_t LED_BUILTIN = 33; -#define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define BUILTIN_LED LED_BUILTIN // backward compatibility +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN /* UART0: Serial Port for Programming and Debugging on the LogSens V1.1 Board */ static const uint8_t TX = 1; diff --git a/variants/intorobot-fig/pins_arduino.h b/variants/intorobot-fig/pins_arduino.h index 50cb9c83ce4..a0e8db822e8 100644 --- a/variants/intorobot-fig/pins_arduino.h +++ b/variants/intorobot-fig/pins_arduino.h @@ -3,17 +3,9 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 7 -#define NUM_ANALOG_INPUTS 10 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t LED_BUILTIN = 4; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t RGB_R_BUILTIN = 27; static const uint8_t RGB_G_BUILTIN = 21; diff --git a/variants/ioxesp32/pins_arduino.h b/variants/ioxesp32/pins_arduino.h index 37985c2b476..2a27157366f 100644 --- a/variants/ioxesp32/pins_arduino.h +++ b/variants/ioxesp32/pins_arduino.h @@ -3,17 +3,9 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t LED_BUILTIN = 5; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t KEY_BUILTIN = 0; diff --git a/variants/lilygo_t_display/pins_arduino.h b/variants/lilygo_t_display/pins_arduino.h index 87edf8ccd32..beae4b311c6 100644 --- a/variants/lilygo_t_display/pins_arduino.h +++ b/variants/lilygo_t_display/pins_arduino.h @@ -9,14 +9,6 @@ #define USB_PRODUCT "T-Display" #define USB_SERIAL "" -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(esp32_adc2gpio[(p)]):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t TX = 1; static const uint8_t RX = 3; @@ -64,4 +56,4 @@ static const uint8_t VBAT = 34; static const uint8_t RIGHT_BUTTON = 35; static const uint8_t LEFT_BUTTON = 0; -#endif /* Pins_Arduino_h */ +#endif /* Pins_Arduino_h */ \ No newline at end of file diff --git a/variants/lilygo_t_display_s3/pins_arduino.h b/variants/lilygo_t_display_s3/pins_arduino.h index e1929eb16cc..42b01587c39 100644 --- a/variants/lilygo_t_display_s3/pins_arduino.h +++ b/variants/lilygo_t_display_s3/pins_arduino.h @@ -2,19 +2,10 @@ #define Pins_Arduino_h #include -#include "soc/soc_caps.h" #define USB_VID 0x303a #define USB_PID 0x1001 -#define EXTERNAL_NUM_INTERRUPTS 46 -#define NUM_DIGITAL_PINS 48 -#define NUM_ANALOG_INPUTS 20 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) -#define digitalPinHasPWM(p) (p < 46) - static const uint8_t BUTTON_1 = 0; static const uint8_t BUTTON_2 = 14; static const uint8_t BAT_VOLT = 4; diff --git a/variants/lionbit/pins_arduino.h b/variants/lionbit/pins_arduino.h index b7f5825079a..25d7bc1765c 100644 --- a/variants/lionbit/pins_arduino.h +++ b/variants/lionbit/pins_arduino.h @@ -3,15 +3,10 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p) < 20) ? (analogChannelToDigitalPin(p)) : -1) -#define digitalPinToInterrupt(p) (((p) < 40) ? (p) : -1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t LED_BUILTIN = 0; // GPIO0, ADC2_CH1, TOUCH1, RTC_GPIO11, CLK_OUT1,EMAC_TX_CLK +#define BUILTIN_LED LED_BUILTIN // backward compatibility +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN + static const uint8_t SWITCH_A = 2; // GPIO2, ADC2_CH2, TOUCH2, RTC_GPIO12, HSPIWP, HS2_DATA0,SD_DATA0 static const uint8_t SWITCH_B = 4; // GPIO4, ADC2_CH0, TOUCH0, RTC_GPIO10, HSPIHD, HS2_DATA1,SD_DATA1, EMAC_TX_ER diff --git a/variants/lionbits3/pins_arduino.h b/variants/lionbits3/pins_arduino.h index d4aad6791b7..f7817d8340d 100644 --- a/variants/lionbits3/pins_arduino.h +++ b/variants/lionbits3/pins_arduino.h @@ -3,15 +3,10 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p) < 20) ? (analogChannelToDigitalPin(p)) : -1) -#define digitalPinToInterrupt(p) (((p) < 49) ? (p) : -1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t LED_BUILTIN = 0; //GPIO0, +#define BUILTIN_LED LED_BUILTIN // backward compatibility +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN + static const uint8_t SWITCH_A = 46; //GPIO46, static const uint8_t SWITCH_B = 47; //GPIO47, //Wifi and Bluetooth LEDs diff --git a/variants/lolin32-lite/pins_arduino.h b/variants/lolin32-lite/pins_arduino.h index 883695dfcf1..6aa497a8575 100755 --- a/variants/lolin32-lite/pins_arduino.h +++ b/variants/lolin32-lite/pins_arduino.h @@ -3,19 +3,12 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t TX = 1; static const uint8_t RX = 3; static const uint8_t LED_BUILTIN = 22; #define BUILTIN_LED LED_BUILTIN // backward compatibility +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t SDA = 19; static const uint8_t SCL = 23; diff --git a/variants/lolin32/pins_arduino.h b/variants/lolin32/pins_arduino.h index f38be67cc58..cba6162b645 100644 --- a/variants/lolin32/pins_arduino.h +++ b/variants/lolin32/pins_arduino.h @@ -3,19 +3,9 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t LED_BUILTIN = 5; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN - - +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t TX = 1; static const uint8_t RX = 3; diff --git a/variants/lolin_c3_mini/pins_arduino.h b/variants/lolin_c3_mini/pins_arduino.h index 59889448572..842683330cd 100644 --- a/variants/lolin_c3_mini/pins_arduino.h +++ b/variants/lolin_c3_mini/pins_arduino.h @@ -3,16 +3,9 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 22 -#define NUM_DIGITAL_PINS 22 -#define NUM_ANALOG_INPUTS 6 - -#define analogInputToDigitalPin(p) (((p) +#include "soc/soc_caps.h" #define USB_VID 0x303a #define USB_PID 0x8167 -#define EXTERNAL_NUM_INTERRUPTS 46 -#define NUM_DIGITAL_PINS 48 -#define NUM_ANALOG_INPUTS 18 - - -static const uint8_t LED_BUILTIN = 47; +static const uint8_t LED_BUILTIN = 47+SOC_GPIO_PIN_COUNT; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN #define RGB_BUILTIN LED_BUILTIN #define RGB_BRIGHTNESS 64 -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) -#define digitalPinHasPWM(p) (p < 46) - static const uint8_t TX = 43; static const uint8_t RX = 44; diff --git a/variants/lolin_s3_pro/pins_arduino.h b/variants/lolin_s3_pro/pins_arduino.h index 86a7fe5fd0b..6a3259ed6e8 100644 --- a/variants/lolin_s3_pro/pins_arduino.h +++ b/variants/lolin_s3_pro/pins_arduino.h @@ -2,25 +2,17 @@ #define Pins_Arduino_h #include +#include "soc/soc_caps.h" #define USB_VID 0x303a #define USB_PID 0x8161 -#define EXTERNAL_NUM_INTERRUPTS 46 -#define NUM_DIGITAL_PINS 48 -#define NUM_ANALOG_INPUTS 18 - - -static const uint8_t LED_BUILTIN = 38; +static const uint8_t LED_BUILTIN = 38+SOC_GPIO_PIN_COUNT; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN #define RGB_BUILTIN LED_BUILTIN #define RGB_BRIGHTNESS 64 -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) -#define digitalPinHasPWM(p) (p < 46) - static const uint8_t TX = 43; static const uint8_t RX = 44; diff --git a/variants/lopy/pins_arduino.h b/variants/lopy/pins_arduino.h index 235f209825a..2c44d12d06b 100644 --- a/variants/lopy/pins_arduino.h +++ b/variants/lopy/pins_arduino.h @@ -2,14 +2,7 @@ #define Pins_Arduino_h #include - -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 18 - -#define analogInputToDigitalPin(p) (((p)<40)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) +#include "soc/soc_caps.h" // SPI LoRa Radio #define LORA_SCK 5 // GPIO5 - SX1276 SCK @@ -22,9 +15,14 @@ #define LORA_IO1 LORA_IRQ // tied by diode to IO0 #define LORA_IO2 LORA_IRQ // tied by diode to IO0 -static const uint8_t LED_BUILTIN = 0; // ->2812 RGB !!! +// Neopixel +#define PIN_NEOPIXEL 0 // ->2812 RGB !!! +static const uint8_t LED_BUILTIN = PIN_NEOPIXEL+SOC_GPIO_PIN_COUNT; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN +// RGB_BUILTIN and RGB_BRIGHTNESS can be used in new Arduino API neopixelWrite() +#define RGB_BUILTIN LED_BUILTIN +#define RGB_BRIGHTNESS 64 #define ANT_SELECT 16 // GPIO16 - External Antenna Switch diff --git a/variants/lopy4/pins_arduino.h b/variants/lopy4/pins_arduino.h index 723d3fa8c3c..ba89a4b401f 100644 --- a/variants/lopy4/pins_arduino.h +++ b/variants/lopy4/pins_arduino.h @@ -2,14 +2,7 @@ #define Pins_Arduino_h #include - -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 18 - -#define analogInputToDigitalPin(p) (((p)<40)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) +#include "soc/soc_caps.h" // SPI LoRa Radio #define LORA_SCK 5 // GPIO5 - SX1276 SCK @@ -22,9 +15,14 @@ #define LORA_IO2 LORA_IRQ // tied by diode to IO0 #define LORA_RST NOT_A_PIN -static const uint8_t LED_BUILTIN = 0; // ->2812 RGB !!! +// Neopixel +#define PIN_NEOPIXEL 0 // ->2812 RGB !!! +static const uint8_t LED_BUILTIN = PIN_NEOPIXEL+SOC_GPIO_PIN_COUNT; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN +// RGB_BUILTIN and RGB_BRIGHTNESS can be used in new Arduino API neopixelWrite() +#define RGB_BUILTIN LED_BUILTIN +#define RGB_BRIGHTNESS 64 #define ANT_SELECT 21 // GPIO21 - External Antenna Switch diff --git a/variants/m5stack_atom/pins_arduino.h b/variants/m5stack_atom/pins_arduino.h index 645436bd7da..06a3ec76f64 100644 --- a/variants/m5stack_atom/pins_arduino.h +++ b/variants/m5stack_atom/pins_arduino.h @@ -3,23 +3,13 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t TX = 1; static const uint8_t RX = 3; -static const uint8_t TXD2 = 32; -static const uint8_t RXD2 = 26; - static const uint8_t SDA = 26; static const uint8_t SCL = 32; + static const uint8_t G12 = 12; static const uint8_t G19 = 19; static const uint8_t G21 = 21; diff --git a/variants/m5stack_atoms3/pins_arduino.h b/variants/m5stack_atoms3/pins_arduino.h index b3a1defb48e..2fab4d136b1 100644 --- a/variants/m5stack_atoms3/pins_arduino.h +++ b/variants/m5stack_atoms3/pins_arduino.h @@ -7,10 +7,6 @@ #define USB_VID 0x303a #define USB_PID 0x1001 -#define EXTERNAL_NUM_INTERRUPTS 46 -#define NUM_DIGITAL_PINS 48 -#define NUM_ANALOG_INPUTS 20 - // Some boards have too low voltage on this pin (board design bug) // Use different pin with 3V and connect with 48 // and change this setup for the chosen pin (for example 38) @@ -20,11 +16,6 @@ static const uint8_t LED_BUILTIN = SOC_GPIO_PIN_COUNT + 48; #define RGB_BUILTIN LED_BUILTIN #define RGB_BRIGHTNESS 64 -#define analogInputToDigitalPin(p) \ - (((p) < 20) ? (analogChannelToDigitalPin(p)) : -1) -#define digitalPinToInterrupt(p) (((p) < 49) ? (p) : -1) -#define digitalPinHasPWM(p) (p < 46) - static const uint8_t TX = 43; static const uint8_t RX = 44; diff --git a/variants/m5stack_core2/pins_arduino.h b/variants/m5stack_core2/pins_arduino.h index 895c7c0de2a..c5ea5d78eee 100644 --- a/variants/m5stack_core2/pins_arduino.h +++ b/variants/m5stack_core2/pins_arduino.h @@ -3,14 +3,6 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - #define TX2 14 #define RX2 13 diff --git a/variants/m5stack_core_esp32/pins_arduino.h b/variants/m5stack_core_esp32/pins_arduino.h index 8b86a0d6fdc..1984ab6bc6e 100644 --- a/variants/m5stack_core_esp32/pins_arduino.h +++ b/variants/m5stack_core_esp32/pins_arduino.h @@ -3,14 +3,6 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 20 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t TX = 1; static const uint8_t RX = 3; diff --git a/variants/m5stack_coreink/pins_arduino.h b/variants/m5stack_coreink/pins_arduino.h index 4ce9b122880..84c0903c166 100644 --- a/variants/m5stack_coreink/pins_arduino.h +++ b/variants/m5stack_coreink/pins_arduino.h @@ -3,14 +3,6 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - #define TX2 14 #define RX2 13 diff --git a/variants/m5stack_cores3/pins_arduino.h b/variants/m5stack_cores3/pins_arduino.h index a4a82cb2420..c9bbb02c72f 100644 --- a/variants/m5stack_cores3/pins_arduino.h +++ b/variants/m5stack_cores3/pins_arduino.h @@ -7,10 +7,6 @@ #define USB_VID 0x303a #define USB_PID 0x1001 -#define EXTERNAL_NUM_INTERRUPTS 46 -#define NUM_DIGITAL_PINS 48 -#define NUM_ANALOG_INPUTS 20 - // Some boards have too low voltage on this pin (board design bug) // Use different pin with 3V and connect with 48 // and change this setup for the chosen pin (for example 38) @@ -20,11 +16,6 @@ static const uint8_t LED_BUILTIN = SOC_GPIO_PIN_COUNT + 48; #define RGB_BUILTIN LED_BUILTIN #define RGB_BRIGHTNESS 64 -#define analogInputToDigitalPin(p) \ - (((p) < 20) ? (analogChannelToDigitalPin(p)) : -1) -#define digitalPinToInterrupt(p) (((p) < 49) ? (p) : -1) -#define digitalPinHasPWM(p) (p < 46) - static const uint8_t TX = 43; static const uint8_t RX = 44; diff --git a/variants/m5stack_fire/pins_arduino.h b/variants/m5stack_fire/pins_arduino.h index 8b86a0d6fdc..0cb66c9eb50 100644 --- a/variants/m5stack_fire/pins_arduino.h +++ b/variants/m5stack_fire/pins_arduino.h @@ -3,20 +3,9 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 20 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t TX = 1; static const uint8_t RX = 3; -static const uint8_t TXD2 = 17; -static const uint8_t RXD2 = 16; - static const uint8_t SDA = 21; static const uint8_t SCL = 22; diff --git a/variants/m5stack_stamp_pico/pins_arduino.h b/variants/m5stack_stamp_pico/pins_arduino.h index d784362da76..d052243f92a 100644 --- a/variants/m5stack_stamp_pico/pins_arduino.h +++ b/variants/m5stack_stamp_pico/pins_arduino.h @@ -3,21 +3,17 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(esp32_adc2gpio[(p)]):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - - static const uint8_t TX = 1; static const uint8_t RX = 3; static const uint8_t SDA = 21; static const uint8_t SCL = 22; +static const uint8_t SS = 19; +static const uint8_t MOSI = 26; +static const uint8_t MISO = 36; +static const uint8_t SCK = 18; + static const uint8_t G26 = 26; static const uint8_t G36 = 36; static const uint8_t G18 = 18; @@ -32,9 +28,4 @@ static const uint8_t G0 = 0; static const uint8_t G32 = 32; static const uint8_t G33 = 33; -static const uint8_t SS = 19; -static const uint8_t MOSI = 26; -static const uint8_t MISO = 36; -static const uint8_t SCK = 18; - -#endif /* Pins_Arduino_h */ \ No newline at end of file +#endif /* Pins_Arduino_h */ diff --git a/variants/m5stack_stamp_s3/pins_arduino.h b/variants/m5stack_stamp_s3/pins_arduino.h index 7bfdc7405b2..d2af16ecaf9 100644 --- a/variants/m5stack_stamp_s3/pins_arduino.h +++ b/variants/m5stack_stamp_s3/pins_arduino.h @@ -7,29 +7,21 @@ #define USB_VID 0x303a #define USB_PID 0x1001 -#define EXTERNAL_NUM_INTERRUPTS 23 -#define NUM_DIGITAL_PINS 46 -#define NUM_ANALOG_INPUTS 15 - -#define analogInputToDigitalPin(p) \ - (((p) < 20) ? (analogChannelToDigitalPin(p)) : -1) -#define digitalPinToInterrupt(p) (((p) < 49) ? (p) : -1) -#define digitalPinHasPWM(p) (p < 46) - static const uint8_t TX = 43; static const uint8_t RX = 44; static const uint8_t TXD2 = 1; static const uint8_t RXD2 = 2; -static const uint8_t SS = 7; -static const uint8_t MOSI = 6; -static const uint8_t MISO = 5; -static const uint8_t SCK = 4; - static const uint8_t SDA = 13; static const uint8_t SCL = 15; +// Modified elsewhere +static const uint8_t SS = -1; +static const uint8_t MOSI = -1; +static const uint8_t MISO = -1; +static const uint8_t SCK = -1; + static const uint8_t G0 = 0; static const uint8_t G1 = 1; static const uint8_t G2 = 2; diff --git a/variants/m5stack_station/pins_arduino.h b/variants/m5stack_station/pins_arduino.h index 9ba182b90b5..3a5812e3262 100644 --- a/variants/m5stack_station/pins_arduino.h +++ b/variants/m5stack_station/pins_arduino.h @@ -3,14 +3,6 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 20 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p<34) - static const uint8_t TX = 1; static const uint8_t RX = 3; diff --git a/variants/m5stack_timer_cam/pins_arduino.h b/variants/m5stack_timer_cam/pins_arduino.h index 1f7f4b46aae..5a2cc5dcdb4 100644 --- a/variants/m5stack_timer_cam/pins_arduino.h +++ b/variants/m5stack_timer_cam/pins_arduino.h @@ -3,14 +3,6 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t LED_BUILTIN = 2; #define BUILTIN_LED LED_BUILTIN // backward compatibility diff --git a/variants/m5stick_c/pins_arduino.h b/variants/m5stick_c/pins_arduino.h index e4d73f6a2e3..35092416486 100644 --- a/variants/m5stick_c/pins_arduino.h +++ b/variants/m5stick_c/pins_arduino.h @@ -3,14 +3,6 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t TX = 1; static const uint8_t RX = 3; diff --git a/variants/magicbit/pins_arduino.h b/variants/magicbit/pins_arduino.h index 6bf769942a7..0e91fa211a0 100644 --- a/variants/magicbit/pins_arduino.h +++ b/variants/magicbit/pins_arduino.h @@ -3,14 +3,6 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t TX = 1; static const uint8_t RX = 3; @@ -66,6 +58,9 @@ static const uint8_t MOTOR1A = 27; static const uint8_t MOTOR1B = 18; static const uint8_t MOTOR2A = 16; static const uint8_t MOTOR2B = 17; + static const uint8_t LED_BUILTIN=16; +#define BUILTIN_LED LED_BUILTIN // backward compatibility +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN #endif /* Pins_Arduino_h */ diff --git a/variants/metro_esp-32/pins_arduino.h b/variants/metro_esp-32/pins_arduino.h index 6675823c50e..cc13c5f6ffc 100644 --- a/variants/metro_esp-32/pins_arduino.h +++ b/variants/metro_esp-32/pins_arduino.h @@ -3,17 +3,9 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t LED_BUILTIN = 2; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t KEY_BUILTIN = 0; diff --git a/variants/mgbot-iotik32a/pins_arduino.h b/variants/mgbot-iotik32a/pins_arduino.h index 283e01b2b9b..84de808ee08 100644 --- a/variants/mgbot-iotik32a/pins_arduino.h +++ b/variants/mgbot-iotik32a/pins_arduino.h @@ -3,17 +3,9 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t LED_BUILTIN = 4; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t TX = 1; static const uint8_t RX = 3; diff --git a/variants/mgbot-iotik32b/pins_arduino.h b/variants/mgbot-iotik32b/pins_arduino.h index 04dfe30c52f..81ee34f16e5 100644 --- a/variants/mgbot-iotik32b/pins_arduino.h +++ b/variants/mgbot-iotik32b/pins_arduino.h @@ -3,17 +3,9 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t LED_BUILTIN = 18; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN // IR receiver static const uint8_t IR = 27; diff --git a/variants/mhetesp32devkit/pins_arduino.h b/variants/mhetesp32devkit/pins_arduino.h index badd89bf58c..467c58c0034 100644 --- a/variants/mhetesp32devkit/pins_arduino.h +++ b/variants/mhetesp32devkit/pins_arduino.h @@ -3,17 +3,9 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t LED_BUILTIN = 2; -#define BUILTIN_LED LED_BUILTIN -#define LED_BUILTIN LED_BUILTIN +#define BUILTIN_LED LED_BUILTIN // backward compatibility +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t TX = 1; static const uint8_t RX = 3; diff --git a/variants/mhetesp32minikit/pins_arduino.h b/variants/mhetesp32minikit/pins_arduino.h index badd89bf58c..467c58c0034 100644 --- a/variants/mhetesp32minikit/pins_arduino.h +++ b/variants/mhetesp32minikit/pins_arduino.h @@ -3,17 +3,9 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t LED_BUILTIN = 2; -#define BUILTIN_LED LED_BUILTIN -#define LED_BUILTIN LED_BUILTIN +#define BUILTIN_LED LED_BUILTIN // backward compatibility +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t TX = 1; static const uint8_t RX = 3; diff --git a/variants/micro_s2/pins_arduino.h b/variants/micro_s2/pins_arduino.h index 389e51d9772..18fd2685b80 100644 --- a/variants/micro_s2/pins_arduino.h +++ b/variants/micro_s2/pins_arduino.h @@ -9,14 +9,6 @@ #define USB_PRODUCT "microS2" #define USB_SERIAL "" -#define EXTERNAL_NUM_INTERRUPTS 46 -#define NUM_DIGITAL_PINS 48 -#define NUM_ANALOG_INPUTS 20 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<48)?(p):-1) -#define digitalPinHasPWM(p) (p < 46) - static const uint8_t TX = 43; static const uint8_t RX = 44; @@ -70,8 +62,14 @@ static const uint8_t DAC1 = 17; static const uint8_t DAC2 = 18; static const uint8_t LED_BUILTIN = 21; -#define BUILTIN_LED LED_BUILTIN // backward compatibility +#define BUILTIN_LED LED_BUILTIN // backward compatibility +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN + static const uint8_t PIXEL_BUILTIN = 33; +// RGB_BUILTIN and RGB_BRIGHTNESS can be used in new Arduino API neopixelWrite() +#define RGB_BUILTIN (PIXEL_BUILTIN + SOC_GPIO_PIN_COUNT) +#define RGB_BRIGHTNESS 64 + static const uint8_t BUTTON_BUILTIN = 0; #endif /* Pins_Arduino_h */ diff --git a/variants/motorgo_mini_1/pins_arduino.h b/variants/motorgo_mini_1/pins_arduino.h index 72323cc8a36..6052a4c6796 100644 --- a/variants/motorgo_mini_1/pins_arduino.h +++ b/variants/motorgo_mini_1/pins_arduino.h @@ -8,19 +8,14 @@ #define USB_VID 0x303A #define USB_PID 0x1001 -#define NUM_DIGITAL_PINS 6 -#define NUM_ANALOG_INPUTS 1 - -#define analogInputToDigitalPin(p) \ - (((p) < 20) ? (analogChannelToDigitalPin(p)) : -1) -#define digitalPinToInterrupt(p) (((p) < 48) ? (p) : -1) -#define digitalPinHasPWM(p) (p < 46) - // A flag to indicate a GPIO pin is not set #define MOTORGO_GPIO_NOT_SET 0xFF // Built-in LED available to user static const uint8_t LED_BUILTIN = 38; +#define BUILTIN_LED LED_BUILTIN // backward compatibility +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN + // Status LED static const uint8_t LED_STATUS = 47; diff --git a/variants/mpython/pins_arduino.h b/variants/mpython/pins_arduino.h index 301700d6355..5f17b4ad1e3 100644 --- a/variants/mpython/pins_arduino.h +++ b/variants/mpython/pins_arduino.h @@ -3,14 +3,6 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t TX = 1; static const uint8_t RX = 3; diff --git a/variants/namino_arancio/pins_arduino.h b/variants/namino_arancio/pins_arduino.h index 6f1972a4b5b..2236ca712a3 100644 --- a/variants/namino_arancio/pins_arduino.h +++ b/variants/namino_arancio/pins_arduino.h @@ -1,25 +1,17 @@ // -// Copyright (c) 2023 Namino Team, version: 1.0.19 @ 2023-07-24 +// Copyright (c) 2023 Namino Team, version: 1.0.20 @ 2023-10-06 // // #ifndef Pins_Arduino_h #define Pins_Arduino_h #include -#include "soc/soc_caps.h" #define USB_VID 0x303a #define USB_PID 0x1001 #define NAMINO_ARANCIO_BOARD -#define NUM_DIGITAL_PINS SOC_GPIO_PIN_COUNT // GPIO 0..48 -#define NUM_ANALOG_INPUTS 20 // GPIO 1..20 -#define EXTERNAL_NUM_INTERRUPTS NUM_DIGITAL_PINS // All GPIOs -#define analogInputToDigitalPin(p) (((p) -#include "soc/soc_caps.h" #define USB_VID 0x303a #define USB_PID 0x1001 #define NAMINO_ROSSO_BOARD -#define NUM_DIGITAL_PINS SOC_GPIO_PIN_COUNT // GPIO 0..48 -#define NUM_ANALOG_INPUTS 20 // GPIO 1..20 -#define EXTERNAL_NUM_INTERRUPTS NUM_DIGITAL_PINS // All GPIOs -#define analogInputToDigitalPin(p) (((p) -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 38 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t LED_BUILTIN = 16; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t BUILTIN_KEY = 0; diff --git a/variants/nina_w10/pins_arduino.h b/variants/nina_w10/pins_arduino.h index 00bd44c05b9..660424de2b6 100644 --- a/variants/nina_w10/pins_arduino.h +++ b/variants/nina_w10/pins_arduino.h @@ -3,14 +3,6 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t LED_GREEN = 33; static const uint8_t LED_RED = 23; static const uint8_t LED_BLUE = 21; diff --git a/variants/node32s/pins_arduino.h b/variants/node32s/pins_arduino.h index b37eaed659c..f4d30d32c09 100644 --- a/variants/node32s/pins_arduino.h +++ b/variants/node32s/pins_arduino.h @@ -3,17 +3,9 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t LED_BUILTIN = 2; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t KEY_BUILTIN = 0; diff --git a/variants/nodemcu-32s/pins_arduino.h b/variants/nodemcu-32s/pins_arduino.h index b37eaed659c..f4d30d32c09 100644 --- a/variants/nodemcu-32s/pins_arduino.h +++ b/variants/nodemcu-32s/pins_arduino.h @@ -3,17 +3,9 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t LED_BUILTIN = 2; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t KEY_BUILTIN = 0; diff --git a/variants/nora_w10/pins_arduino.h b/variants/nora_w10/pins_arduino.h index 9decc799ddd..ee473f5856f 100644 --- a/variants/nora_w10/pins_arduino.h +++ b/variants/nora_w10/pins_arduino.h @@ -2,19 +2,10 @@ #define Pins_Arduino_h #include -#include "soc/soc_caps.h" #define USB_VID 0x303a #define USB_PID 0x1001 -#define EXTERNAL_NUM_INTERRUPTS 46 -#define NUM_DIGITAL_PINS 48 -#define NUM_ANALOG_INPUTS 20 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(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. // For your own module design you can freely chose the pins available on the module module pins diff --git a/variants/odroid_esp32/pins_arduino.h b/variants/odroid_esp32/pins_arduino.h index 01a863ab236..dc10a37cd8a 100644 --- a/variants/odroid_esp32/pins_arduino.h +++ b/variants/odroid_esp32/pins_arduino.h @@ -3,17 +3,9 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t LED_BUILTIN = 2; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t TX = 1; static const uint8_t RX = 3; diff --git a/variants/onehorse32dev/pins_arduino.h b/variants/onehorse32dev/pins_arduino.h index e57615e3272..03cbbc1676c 100644 --- a/variants/onehorse32dev/pins_arduino.h +++ b/variants/onehorse32dev/pins_arduino.h @@ -3,17 +3,9 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t LED_BUILTIN = 5; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t KEY_BUILTIN = 0; diff --git a/variants/openkb/pins_arduino.h b/variants/openkb/pins_arduino.h index 4928bd49539..c429cc3f32a 100644 --- a/variants/openkb/pins_arduino.h +++ b/variants/openkb/pins_arduino.h @@ -3,17 +3,9 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 38 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t LED_BUILTIN = 16; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t TX = 1; static const uint8_t RX = 3; diff --git a/variants/oroca_edubot/pins_arduino.h b/variants/oroca_edubot/pins_arduino.h index 1cfa1fb86fb..e9322abb9c9 100644 --- a/variants/oroca_edubot/pins_arduino.h +++ b/variants/oroca_edubot/pins_arduino.h @@ -3,17 +3,9 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t LED_BUILTIN = 13; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t TX = 17; static const uint8_t RX = 16; diff --git a/variants/pico32/pins_arduino.h b/variants/pico32/pins_arduino.h index 4ad96ccef51..27ecc063483 100644 --- a/variants/pico32/pins_arduino.h +++ b/variants/pico32/pins_arduino.h @@ -3,14 +3,6 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t TX = 1; static const uint8_t RX = 3; diff --git a/variants/piranha_esp-32/pins_arduino.h b/variants/piranha_esp-32/pins_arduino.h index 4de761d9aa5..aa170ca1605 100644 --- a/variants/piranha_esp-32/pins_arduino.h +++ b/variants/piranha_esp-32/pins_arduino.h @@ -3,17 +3,9 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t LED_BUILTIN = 2; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t KEY_BUILTIN = 0; diff --git a/variants/pocket_32/pins_arduino.h b/variants/pocket_32/pins_arduino.h index af926f45982..325331dbb26 100644 --- a/variants/pocket_32/pins_arduino.h +++ b/variants/pocket_32/pins_arduino.h @@ -3,19 +3,9 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t LED_BUILTIN = 16; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN - - +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t TX = 1; static const uint8_t RX = 3; diff --git a/variants/quantum/pins_arduino.h b/variants/quantum/pins_arduino.h index 4ad96ccef51..27ecc063483 100644 --- a/variants/quantum/pins_arduino.h +++ b/variants/quantum/pins_arduino.h @@ -3,14 +3,6 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t TX = 1; static const uint8_t RX = 3; diff --git a/variants/redpill_esp32s3/pins_arduino.h b/variants/redpill_esp32s3/pins_arduino.h index 61d3a2ca549..4c3672d263f 100644 --- a/variants/redpill_esp32s3/pins_arduino.h +++ b/variants/redpill_esp32s3/pins_arduino.h @@ -2,21 +2,14 @@ #define Pins_Arduino_h #include +#include "soc/soc_caps.h" #define USB_VID 0x303A #define USB_PID 0x1001 -#define EXTERNAL_NUM_INTERRUPTS 46 -#define NUM_DIGITAL_PINS 48 -#define NUM_ANALOG_INPUTS 20 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) -#define digitalPinHasPWM(p) (p < 46) - -static const uint8_t LED_BUILTIN = 3; +static const uint8_t LED_BUILTIN = SOC_GPIO_PIN_COUNT + 3; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN #define RGB_BUILTIN LED_BUILTIN #define RGB_BRIGHTNESS 64 diff --git a/variants/roboheart_hercules/pins_arduino.h b/variants/roboheart_hercules/pins_arduino.h index 17a5951773e..fc98590040f 100644 --- a/variants/roboheart_hercules/pins_arduino.h +++ b/variants/roboheart_hercules/pins_arduino.h @@ -3,15 +3,6 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 20 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - - // Motor driver pins #define MOTOR_A_IN1 25 // PHASE/IN1 #define MOTOR_A_IN2 26 // ENABLE/IN2 diff --git a/variants/sensebox_mcu_esp32s2/pins_arduino.h b/variants/sensebox_mcu_esp32s2/pins_arduino.h index 321ce0e0078..9a6e4eb4a47 100644 --- a/variants/sensebox_mcu_esp32s2/pins_arduino.h +++ b/variants/sensebox_mcu_esp32s2/pins_arduino.h @@ -16,14 +16,6 @@ #define USB_FW_MSC_VOLUME_NAME "senseBox" // max 11 chars #define USB_FW_MSC_SERIAL_NUMBER 0x00000000 -#define EXTERNAL_NUM_INTERRUPTS 46 -#define NUM_DIGITAL_PINS 48 -#define NUM_ANALOG_INPUTS 20 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<48)?(p):-1) -#define digitalPinHasPWM(p) (p < 46) - #define PIN_NEOPIXEL 1 // NeoPixel LED #define NEOPIXEL_PIN 1 // NeoPixel LED #define NEOPIXEL_NUM 1 // number of neopixels @@ -140,4 +132,4 @@ static const uint8_t DAC1 = 17; static const uint8_t DAC2 = 18; -#endif /* Pins_Arduino_h */ \ No newline at end of file +#endif /* Pins_Arduino_h */ diff --git a/variants/sensebox_mcu_esp32s2/variant.cpp b/variants/sensebox_mcu_esp32s2/variant.cpp index 1e045054ce5..311f69b8d35 100644 --- a/variants/sensebox_mcu_esp32s2/variant.cpp +++ b/variants/sensebox_mcu_esp32s2/variant.cpp @@ -52,4 +52,4 @@ void initVariant(void) digitalWrite(PD_ENABLE, HIGH); } -} \ No newline at end of file +} diff --git a/variants/sonoff_dualr3/pins_arduino.h b/variants/sonoff_dualr3/pins_arduino.h index 1b3fae2d8bb..e7d6c6c1555 100644 --- a/variants/sonoff_dualr3/pins_arduino.h +++ b/variants/sonoff_dualr3/pins_arduino.h @@ -3,14 +3,6 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t TX = 1; static const uint8_t RX = 3; diff --git a/variants/sparkfun_esp32_iot_redboard/pins_arduino.h b/variants/sparkfun_esp32_iot_redboard/pins_arduino.h index b644d7baf95..abef21cdbbd 100644 --- a/variants/sparkfun_esp32_iot_redboard/pins_arduino.h +++ b/variants/sparkfun_esp32_iot_redboard/pins_arduino.h @@ -4,20 +4,13 @@ #include #include "soc/soc_caps.h" -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t LED_BUILTIN = 18; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN -static const uint8_t RGB_BUILTIN = SOC_GPIO_PIN_COUNT+2; -#define RGB_BUILTIN RGB_BUILTIN +#define NEO_PIXEL 2 //WS2812 LED +static const uint8_t RGB_BUILTIN = (SOC_GPIO_PIN_COUNT+NEO_PIXEL); +#define RGB_BUILTIN RGB_BUILTIN // necessary to make digitalWrite/digitalMode find it #define RGB_BRIGHTNESS 64 static const uint8_t TX = 1; diff --git a/variants/sparkfun_lora_gateway_1-channel/pins_arduino.h b/variants/sparkfun_lora_gateway_1-channel/pins_arduino.h index 5d0b845764d..529ee3d003c 100755 --- a/variants/sparkfun_lora_gateway_1-channel/pins_arduino.h +++ b/variants/sparkfun_lora_gateway_1-channel/pins_arduino.h @@ -3,15 +3,9 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const int LED_BUILTIN = 17; +#define BUILTIN_LED LED_BUILTIN // backward compatibility +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t TX = 1; static const uint8_t RX = 3; diff --git a/variants/tamc_termod_s3/pins_arduino.h b/variants/tamc_termod_s3/pins_arduino.h index 47f23a673d1..637da583243 100644 --- a/variants/tamc_termod_s3/pins_arduino.h +++ b/variants/tamc_termod_s3/pins_arduino.h @@ -2,27 +2,11 @@ #define Pins_Arduino_h #include -#include "soc/soc_caps.h" #define USB_VID 0x303a #define USB_PID 0x1001 -#define EXTERNAL_NUM_INTERRUPTS 46 -#define NUM_DIGITAL_PINS 48 -#define NUM_ANALOG_INPUTS 20 - -// Some boards have too low voltage on this pin (board design bug) -// Use different pin with 3V and connect with 48 -// and change this setup for the chosen pin (for example 38) -static const uint8_t LED_BUILTIN = SOC_GPIO_PIN_COUNT+48; -#define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN -#define RGB_BUILTIN LED_BUILTIN -#define RGB_BRIGHTNESS 64 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) -#define digitalPinHasPWM(p) (p < 46) +// This board has no NeoLED or any User LED static const uint8_t TX = 43; static const uint8_t RX = 44; diff --git a/variants/tbeam/pins_arduino.h b/variants/tbeam/pins_arduino.h index fdec62d96d3..b27a913e1ff 100644 --- a/variants/tbeam/pins_arduino.h +++ b/variants/tbeam/pins_arduino.h @@ -3,14 +3,6 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 20 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - // SPI LoRa Radio #define LORA_SCK 5 // GPIO5 - SX1276 SCK #define LORA_MISO 19 // GPIO19 - SX1276 MISO @@ -26,7 +18,7 @@ static const uint8_t KEY_BUILTIN = 39; static const uint8_t LED_BUILTIN = 14; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t TX = 1; static const uint8_t RX = 3; diff --git a/variants/ttgo-lora32-v1/pins_arduino.h b/variants/ttgo-lora32-v1/pins_arduino.h index 0faf524e233..b637cc51799 100644 --- a/variants/ttgo-lora32-v1/pins_arduino.h +++ b/variants/ttgo-lora32-v1/pins_arduino.h @@ -3,14 +3,6 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - // I2C OLED Display works with SSD1306 driver #define OLED_SDA 4 #define OLED_SCL 15 @@ -26,7 +18,7 @@ static const uint8_t LED_BUILTIN = 2; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t KEY_BUILTIN = 0; diff --git a/variants/ttgo-lora32-v2/pins_arduino.h b/variants/ttgo-lora32-v2/pins_arduino.h index 5cf49fdd4b7..3d5a0b36f3c 100644 --- a/variants/ttgo-lora32-v2/pins_arduino.h +++ b/variants/ttgo-lora32-v2/pins_arduino.h @@ -3,14 +3,6 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - // I2C OLED Display works with SSD1306 driver #define OLED_SDA 21 #define OLED_SCL 22 @@ -31,8 +23,8 @@ #define SD_CS 13 static const uint8_t LED_BUILTIN = 22; -#define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define BUILTIN_LED LED_BUILTIN // backward compatibility +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t KEY_BUILTIN = 0; diff --git a/variants/ttgo-lora32-v21new/pins_arduino.h b/variants/ttgo-lora32-v21new/pins_arduino.h index cb4f917b8fc..a333d80917d 100644 --- a/variants/ttgo-lora32-v21new/pins_arduino.h +++ b/variants/ttgo-lora32-v21new/pins_arduino.h @@ -9,14 +9,6 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - // I2C OLED Display works with SSD1306 driver #define OLED_SDA 21 #define OLED_SCL 22 @@ -38,9 +30,9 @@ #define SD_MOSI 15 #define SD_CS 13 -static const uint8_t LED_BUILTIN = 25 ; -#define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +static const uint8_t LED_BUILTIN = 25; +#define BUILTIN_LED LED_BUILTIN // backward compatibility +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t KEY_BUILTIN = 0; diff --git a/variants/ttgo-t-oi-plus/pins_arduino.h b/variants/ttgo-t-oi-plus/pins_arduino.h index 16cac90bdaf..782b5fb4342 100644 --- a/variants/ttgo-t-oi-plus/pins_arduino.h +++ b/variants/ttgo-t-oi-plus/pins_arduino.h @@ -3,15 +3,9 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 12 -#define NUM_DIGITAL_PINS 12 -#define NUM_ANALOG_INPUTS 3 - -#define analogInputToDigitalPin(p) (((p) -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t TX = 1; static const uint8_t RX = 3; static const uint8_t LED_BUILTIN = 22; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t SDA = 21; // Despite the many diagrams from TTGO showing SCL on pin 22, due to the on-board LED diff --git a/variants/ttgo-t7-v13-mini32/pins_arduino.h b/variants/ttgo-t7-v13-mini32/pins_arduino.h index 75057d726d5..eecb5dc5817 100755 --- a/variants/ttgo-t7-v13-mini32/pins_arduino.h +++ b/variants/ttgo-t7-v13-mini32/pins_arduino.h @@ -3,19 +3,12 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t TX = 1; static const uint8_t RX = 3; static const uint8_t LED_BUILTIN = 22; #define BUILTIN_LED LED_BUILTIN // backward compatibility +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t SDA = 21; static const uint8_t SCL = 22; diff --git a/variants/ttgo-t7-v14-mini32/pins_arduino.h b/variants/ttgo-t7-v14-mini32/pins_arduino.h index b0ca79e64e4..496141a7364 100755 --- a/variants/ttgo-t7-v14-mini32/pins_arduino.h +++ b/variants/ttgo-t7-v14-mini32/pins_arduino.h @@ -3,19 +3,12 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t TX = 1; static const uint8_t RX = 3; static const uint8_t LED_BUILTIN = 19; #define BUILTIN_LED LED_BUILTIN // backward compatibility +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t SDA = 21; static const uint8_t SCL = 22; diff --git a/variants/turta_iot_node/pins_arduino.h b/variants/turta_iot_node/pins_arduino.h index f156ee2fb70..64ebeb17172 100644 --- a/variants/turta_iot_node/pins_arduino.h +++ b/variants/turta_iot_node/pins_arduino.h @@ -3,18 +3,10 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 20 -#define NUM_DIGITAL_PINS 21 -#define NUM_ANALOG_INPUTS 9 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - // LED static const uint8_t LED_BUILTIN = 13; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN // UART static const uint8_t TX = 10; diff --git a/variants/twatch/pins_arduino.h b/variants/twatch/pins_arduino.h index b46288c7e76..e10a0d6a8e1 100644 --- a/variants/twatch/pins_arduino.h +++ b/variants/twatch/pins_arduino.h @@ -3,14 +3,6 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 20 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - // touch screen #define TP_SDA 23 #define TP_SCL 32 diff --git a/variants/uPesy_esp32_wroom_devkit/pins_arduino.h b/variants/uPesy_esp32_wroom_devkit/pins_arduino.h index 69e4138428f..467c58c0034 100644 --- a/variants/uPesy_esp32_wroom_devkit/pins_arduino.h +++ b/variants/uPesy_esp32_wroom_devkit/pins_arduino.h @@ -3,17 +3,9 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t LED_BUILTIN = 2; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t TX = 1; static const uint8_t RX = 3; diff --git a/variants/uPesy_esp32_wrover_devkit/pins_arduino.h b/variants/uPesy_esp32_wrover_devkit/pins_arduino.h index 69e4138428f..467c58c0034 100644 --- a/variants/uPesy_esp32_wrover_devkit/pins_arduino.h +++ b/variants/uPesy_esp32_wrover_devkit/pins_arduino.h @@ -3,17 +3,9 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t LED_BUILTIN = 2; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t TX = 1; static const uint8_t RX = 3; diff --git a/variants/um_feathers2/pins_arduino.h b/variants/um_feathers2/pins_arduino.h index 26ff851d66f..edcde26ac71 100644 --- a/variants/um_feathers2/pins_arduino.h +++ b/variants/um_feathers2/pins_arduino.h @@ -9,14 +9,6 @@ #define USB_PRODUCT "FeatherS2" #define USB_SERIAL "" -#define EXTERNAL_NUM_INTERRUPTS 46 -#define NUM_DIGITAL_PINS 48 -#define NUM_ANALOG_INPUTS 20 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<48)?(p):-1) -#define digitalPinHasPWM(p) (p < 46) - static const uint8_t TX = 43; static const uint8_t RX = 44; diff --git a/variants/um_feathers2neo/pins_arduino.h b/variants/um_feathers2neo/pins_arduino.h index 44609d463ab..d66d565d280 100644 --- a/variants/um_feathers2neo/pins_arduino.h +++ b/variants/um_feathers2neo/pins_arduino.h @@ -2,6 +2,7 @@ #define Pins_Arduino_h #include +#include "soc/soc_caps.h" #define USB_VID 0x239A #define USB_PID 0x80B4 @@ -9,14 +10,6 @@ #define USB_PRODUCT "FeatherS2 Neo" #define USB_SERIAL "" -#define EXTERNAL_NUM_INTERRUPTS 46 -#define NUM_DIGITAL_PINS 22 -#define NUM_ANALOG_INPUTS 11 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<48)?(p):-1) -#define digitalPinHasPWM(p) (p < 46) - static const uint8_t TX = 43; static const uint8_t RX = 44; @@ -62,6 +55,14 @@ static const uint8_t NEOPIXEL_MATRIX_DATA = 21; static const uint8_t NEOPIXEL_MATRIX_PWR = 4; static const uint8_t NEOPIXEL_DATA = 40; +// RGB_BUILTIN and RGB_BRIGHTNESS can be used in new Arduino API neopixelWrite() +#define RGB_BUILTIN (NEOPIXEL_DATA + SOC_GPIO_PIN_COUNT) +#define RGB_BRIGHTNESS 64 +// BUILTIN_LED can be used in new Arduino API digitalWrite() like in Blink.ino +static const uint8_t LED_BUILTIN = RGB_BUILTIN; +#define BUILTIN_LED LED_BUILTIN // backward compatibility +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN + static const uint8_t NEOPIXEL_PWR = 39; static const uint8_t VBAT_SENSE = 2; diff --git a/variants/um_feathers3/pins_arduino.h b/variants/um_feathers3/pins_arduino.h index de14e5c285f..804a60d28e4 100644 --- a/variants/um_feathers3/pins_arduino.h +++ b/variants/um_feathers3/pins_arduino.h @@ -2,6 +2,7 @@ #define Pins_Arduino_h #include +#include "soc/soc_caps.h" #define USB_VID 0x303A #define USB_PID 0x80D6 @@ -9,14 +10,6 @@ #define USB_PRODUCT "FeatherS3" #define USB_SERIAL "" -#define EXTERNAL_NUM_INTERRUPTS 46 -#define NUM_DIGITAL_PINS 21 -#define NUM_ANALOG_INPUTS 13 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) -#define digitalPinHasPWM(p) (p < 46) - static const uint8_t TX = 43; static const uint8_t RX = 44; @@ -59,10 +52,17 @@ static const uint8_t T14 = 14; static const uint8_t VBAT_SENSE = 2; static const uint8_t VBUS_SENSE = 34; +// User LED +#define LED_BUILTIN 13 +#define BUILTIN_LED LED_BUILTIN // backward compatibility + static const uint8_t RGB_DATA = 40; +// RGB_BUILTIN and RGB_BRIGHTNESS can be used in new Arduino API neopixelWrite() +#define RGB_BUILTIN (RGB_DATA + SOC_GPIO_PIN_COUNT) +#define RGB_BRIGHTNESS 64 + static const uint8_t RGB_PWR = 39; static const uint8_t LDO2 = 39; -static const uint8_t LED_BUILTIN = 13; static const uint8_t LED = 13; #endif /* Pins_Arduino_h */ diff --git a/variants/um_nanos3/pins_arduino.h b/variants/um_nanos3/pins_arduino.h index fee26b62f07..84d5b5a6219 100644 --- a/variants/um_nanos3/pins_arduino.h +++ b/variants/um_nanos3/pins_arduino.h @@ -2,6 +2,7 @@ #define Pins_Arduino_h #include +#include "soc/soc_caps.h" #define USB_VID 0x303A #define USB_PID 0x8179 @@ -9,14 +10,6 @@ #define USB_PRODUCT "Nanos3" #define USB_SERIAL "" -#define EXTERNAL_NUM_INTERRUPTS 46 -#define NUM_DIGITAL_PINS 17 -#define NUM_ANALOG_INPUTS 9 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) -#define digitalPinHasPWM(p) (p < 46) - static const uint8_t TX = 43; static const uint8_t RX = 44; @@ -51,6 +44,14 @@ static const uint8_t T8 = 8; static const uint8_t T9 = 9; static const uint8_t RGB_DATA = 41; +// RGB_BUILTIN and RGB_BRIGHTNESS can be used in new Arduino API neopixelWrite() +#define RGB_BUILTIN (RGB_DATA + SOC_GPIO_PIN_COUNT) +#define RGB_BRIGHTNESS 64 +// BUILTIN_LED can be used in new Arduino API digitalWrite() like in Blink.ino +static const uint8_t LED_BUILTIN = RGB_BUILTIN; +#define BUILTIN_LED LED_BUILTIN // backward compatibility +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN + static const uint8_t RGB_PWR = 42; #endif /* Pins_Arduino_h */ diff --git a/variants/um_pros3/pins_arduino.h b/variants/um_pros3/pins_arduino.h index a42f44ca050..9a8e8120151 100644 --- a/variants/um_pros3/pins_arduino.h +++ b/variants/um_pros3/pins_arduino.h @@ -2,6 +2,7 @@ #define Pins_Arduino_h #include +#include "soc/soc_caps.h" #define USB_VID 0x303A #define USB_PID 0x80D3 @@ -9,14 +10,6 @@ #define USB_PRODUCT "ProS3" #define USB_SERIAL "" -#define EXTERNAL_NUM_INTERRUPTS 46 -#define NUM_DIGITAL_PINS 27 -#define NUM_ANALOG_INPUTS 14 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) -#define digitalPinHasPWM(p) (p < 46) - static const uint8_t TX = 43; static const uint8_t RX = 44; @@ -62,6 +55,14 @@ static const uint8_t VBAT_SENSE = 10; static const uint8_t VBUS_SENSE = 33; static const uint8_t RGB_DATA = 18; +// RGB_BUILTIN and RGB_BRIGHTNESS can be used in new Arduino API neopixelWrite() +#define RGB_BUILTIN (RGB_DATA + SOC_GPIO_PIN_COUNT) +#define RGB_BRIGHTNESS 64 +// BUILTIN_LED can be used in new Arduino API digitalWrite() like in Blink.ino +static const uint8_t LED_BUILTIN = RGB_BUILTIN; +#define BUILTIN_LED LED_BUILTIN // backward compatibility +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN + static const uint8_t RGB_PWR = 17; static const uint8_t LDO2 = 17; diff --git a/variants/um_rmp/pins_arduino.h b/variants/um_rmp/pins_arduino.h index bf79ad86176..5d3b7acc283 100644 --- a/variants/um_rmp/pins_arduino.h +++ b/variants/um_rmp/pins_arduino.h @@ -2,6 +2,7 @@ #define Pins_Arduino_h #include +#include "soc/soc_caps.h" #define USB_VID 0x303A #define USB_PID 0x8001 @@ -9,14 +10,6 @@ #define USB_PRODUCT "RM Pro" #define USB_SERIAL "" -#define EXTERNAL_NUM_INTERRUPTS 46 -#define NUM_DIGITAL_PINS 48 -#define NUM_ANALOG_INPUTS 20 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<48)?(p):-1) -#define digitalPinHasPWM(p) (p < 46) - static const uint8_t TX = 43; static const uint8_t RX = 44; @@ -73,6 +66,14 @@ static const uint8_t VBAT_SENSE = 3; static const uint8_t VBUS_SENSE = 21; static const uint8_t RGB_DATA = 1; +// RGB_BUILTIN and RGB_BRIGHTNESS can be used in new Arduino API neopixelWrite() +#define RGB_BUILTIN (RGB_DATA + SOC_GPIO_PIN_COUNT) +#define RGB_BRIGHTNESS 64 +// BUILTIN_LED can be used in new Arduino API digitalWrite() like in Blink.ino +static const uint8_t LED_BUILTIN = RGB_BUILTIN; +#define BUILTIN_LED LED_BUILTIN // backward compatibility +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN + static const uint8_t RGB_PWR = 2; #endif /* Pins_Arduino_h */ diff --git a/variants/um_tinypico/pins_arduino.h b/variants/um_tinypico/pins_arduino.h index 134a5ce88d4..b10b9274178 100644 --- a/variants/um_tinypico/pins_arduino.h +++ b/variants/um_tinypico/pins_arduino.h @@ -3,14 +3,6 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t TX = 1; static const uint8_t RX = 3; diff --git a/variants/um_tinys2/pins_arduino.h b/variants/um_tinys2/pins_arduino.h index a493a3fd78b..b3431781d99 100644 --- a/variants/um_tinys2/pins_arduino.h +++ b/variants/um_tinys2/pins_arduino.h @@ -2,6 +2,7 @@ #define Pins_Arduino_h #include +#include "soc/soc_caps.h" #define USB_VID 0x303A #define USB_PID 0x8001 @@ -9,14 +10,6 @@ #define USB_PRODUCT "TinyS2" #define USB_SERIAL "" -#define EXTERNAL_NUM_INTERRUPTS 46 -#define NUM_DIGITAL_PINS 48 -#define NUM_ANALOG_INPUTS 20 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<48)?(p):-1) -#define digitalPinHasPWM(p) (p < 46) - static const uint8_t TX = 43; static const uint8_t RX = 44; @@ -73,6 +66,14 @@ static const uint8_t VBAT_SENSE = 3; static const uint8_t VBUS_SENSE = 21; static const uint8_t RGB_DATA = 1; +// RGB_BUILTIN and RGB_BRIGHTNESS can be used in new Arduino API neopixelWrite() +#define RGB_BUILTIN (RGB_DATA + SOC_GPIO_PIN_COUNT) +#define RGB_BRIGHTNESS 64 +// BUILTIN_LED can be used in new Arduino API digitalWrite() like in Blink.ino +static const uint8_t LED_BUILTIN = RGB_BUILTIN; +#define BUILTIN_LED LED_BUILTIN // backward compatibility +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN + static const uint8_t RGB_PWR = 2; #endif /* Pins_Arduino_h */ diff --git a/variants/um_tinys3/pins_arduino.h b/variants/um_tinys3/pins_arduino.h index fbce7fc099c..251b1f8dd7d 100644 --- a/variants/um_tinys3/pins_arduino.h +++ b/variants/um_tinys3/pins_arduino.h @@ -2,6 +2,7 @@ #define Pins_Arduino_h #include +#include "soc/soc_caps.h" #define USB_VID 0x303A #define USB_PID 0x80D0 @@ -9,14 +10,6 @@ #define USB_PRODUCT "TinyS3" #define USB_SERIAL "" -#define EXTERNAL_NUM_INTERRUPTS 46 -#define NUM_DIGITAL_PINS 17 -#define NUM_ANALOG_INPUTS 9 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) -#define digitalPinHasPWM(p) (p < 46) - static const uint8_t TX = 43; static const uint8_t RX = 44; @@ -54,6 +47,14 @@ static const uint8_t VBAT_SENSE = 10; static const uint8_t VBUS_SENSE = 33; static const uint8_t RGB_DATA = 18; +// RGB_BUILTIN and RGB_BRIGHTNESS can be used in new Arduino API neopixelWrite() +#define RGB_BUILTIN (RGB_DATA + SOC_GPIO_PIN_COUNT) +#define RGB_BRIGHTNESS 64 +// BUILTIN_LED can be used in new Arduino API digitalWrite() like in Blink.ino +static const uint8_t LED_BUILTIN = RGB_BUILTIN; +#define BUILTIN_LED LED_BUILTIN // backward compatibility +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN + static const uint8_t RGB_PWR = 17; #endif /* Pins_Arduino_h */ diff --git a/variants/unphone8/pins_arduino.h b/variants/unphone8/pins_arduino.h index ffcde18f3d7..66e30bdd564 100644 --- a/variants/unphone8/pins_arduino.h +++ b/variants/unphone8/pins_arduino.h @@ -6,14 +6,6 @@ #define USB_VID 0x16D0 #define USB_PID 0x1178 -#define EXTERNAL_NUM_INTERRUPTS 46 -#define NUM_DIGITAL_PINS 48 -#define NUM_ANALOG_INPUTS 20 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) -#define digitalPinHasPWM(p) (p < 46) - #define LED_BUILTIN 13 #define BUILTIN_LED LED_BUILTIN // backward compatibility diff --git a/variants/unphone9/pins_arduino.h b/variants/unphone9/pins_arduino.h index f8ca3858a57..e20cd337b7f 100644 --- a/variants/unphone9/pins_arduino.h +++ b/variants/unphone9/pins_arduino.h @@ -6,14 +6,6 @@ #define USB_VID 0x16D0 #define USB_PID 0x1178 -#define EXTERNAL_NUM_INTERRUPTS 46 -#define NUM_DIGITAL_PINS 48 -#define NUM_ANALOG_INPUTS 20 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) -#define digitalPinHasPWM(p) (p < 46) - #define LED_BUILTIN 13 #define BUILTIN_LED LED_BUILTIN // backward compatibility diff --git a/variants/vintlabsdevkitv1/pins_arduino.h b/variants/vintlabsdevkitv1/pins_arduino.h index 6f0df757180..d0559b9f01b 100644 --- a/variants/vintlabsdevkitv1/pins_arduino.h +++ b/variants/vintlabsdevkitv1/pins_arduino.h @@ -3,17 +3,9 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t LED_BUILTIN = 2; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t TX = 1; static const uint8_t RX = 3; diff --git a/variants/watchy/pins_arduino.h b/variants/watchy/pins_arduino.h index 2c93c173429..b5bc02f374c 100644 --- a/variants/watchy/pins_arduino.h +++ b/variants/watchy/pins_arduino.h @@ -3,14 +3,6 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t TX = 1; static const uint8_t RX = 3; diff --git a/variants/wesp32/pins_arduino.h b/variants/wesp32/pins_arduino.h index 7dbfa439e06..670c75fff93 100644 --- a/variants/wesp32/pins_arduino.h +++ b/variants/wesp32/pins_arduino.h @@ -3,14 +3,6 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - #define TX1 12 #define RX1 13 #define TX2 33 diff --git a/variants/widora-air/pins_arduino.h b/variants/widora-air/pins_arduino.h index 4cb0fa4da0d..0c0472b3ac8 100644 --- a/variants/widora-air/pins_arduino.h +++ b/variants/widora-air/pins_arduino.h @@ -3,18 +3,9 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 7 -#define NUM_ANALOG_INPUTS 10 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t LED_BUILTIN = 25; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN - +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t KEY_BUILTIN = 0; diff --git a/variants/wifiduino32/pins_arduino.h b/variants/wifiduino32/pins_arduino.h index 841721d6d8d..cc3841aba73 100644 --- a/variants/wifiduino32/pins_arduino.h +++ b/variants/wifiduino32/pins_arduino.h @@ -3,17 +3,9 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t LED_BUILTIN = 2; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t KEY_BUILTIN = 0; diff --git a/variants/wifiduino32s3/pins_arduino.h b/variants/wifiduino32s3/pins_arduino.h index 79e4254bccd..db372a34358 100644 --- a/variants/wifiduino32s3/pins_arduino.h +++ b/variants/wifiduino32s3/pins_arduino.h @@ -2,27 +2,11 @@ #define Pins_Arduino_h #include -#include "soc/soc_caps.h" #define USB_VID 0x303a #define USB_PID 0x1001 -#define EXTERNAL_NUM_INTERRUPTS 46 -#define NUM_DIGITAL_PINS 48 -#define NUM_ANALOG_INPUTS 20 - -// Some boards have too low voltage on this pin (board design bug) -// Use different pin with 3V and connect with 48 -// and change this setup for the chosen pin (for example 38) -static const uint8_t LED_BUILTIN = SOC_GPIO_PIN_COUNT+48; -#define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN -#define BOARD_HAS_NEOPIXEL -#define LED_BRIGHTNESS 64 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<49)?(p):-1) -#define digitalPinHasPWM(p) (p < 46) +// No USER LED or NeoLED static const uint8_t TX = 45; static const uint8_t RX = 44; diff --git a/variants/wifiduinov2/pins_arduino.h b/variants/wifiduinov2/pins_arduino.h index 4eb83a7c3ae..f80247e24b9 100644 --- a/variants/wifiduinov2/pins_arduino.h +++ b/variants/wifiduinov2/pins_arduino.h @@ -2,21 +2,10 @@ #define Pins_Arduino_h #include -#include "soc/soc_caps.h" -#define EXTERNAL_NUM_INTERRUPTS 22 -#define NUM_DIGITAL_PINS 22 -#define NUM_ANALOG_INPUTS 6 - -static const uint8_t LED_BUILTIN = SOC_GPIO_PIN_COUNT+13; +static const uint8_t LED_BUILTIN = 13; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN -#define BOARD_HAS_NEOPIXEL -#define LED_BRIGHTNESS 64 - -#define analogInputToDigitalPin(p) (((p) +#include "soc/soc_caps.h" -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 18 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - -static const uint8_t LED_BUILTIN = 0; // ->2812 RGB !!! +// Neopixel +#define PIN_NEOPIXEL 0 // ->2812 RGB !!! +// BUILTIN_LED can be used in new Arduino API digitalWrite() like in Blink.ino +static const uint8_t LED_BUILTIN = (PIN_NEOPIXEL + SOC_GPIO_PIN_COUNT); #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN +// RGB_BUILTIN and RGB_BRIGHTNESS can be used in new Arduino API neopixelWrite() +#define RGB_BUILTIN LED_BUILTIN +#define RGB_BRIGHTNESS 64 #define ANT_SELECT 21 // GPIO21 - External Antenna Switch diff --git a/variants/wt32-eth01/pins_arduino.h b/variants/wt32-eth01/pins_arduino.h index 6cb2a6a5d7a..49cc740efb3 100644 --- a/variants/wt32-eth01/pins_arduino.h +++ b/variants/wt32-eth01/pins_arduino.h @@ -9,14 +9,6 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p) < 20) ? (analogChannelToDigitalPin(p)) : -1) -#define digitalPinToInterrupt(p) (((p) < 40) ? (p) : -1) -#define digitalPinHasPWM(p) (p < 34) - // interface to Ethernet PHY (LAN8720A) #define ETH_PHY_ADDR 1 #define ETH_PHY_POWER 16 diff --git a/variants/xinabox/pins_arduino.h b/variants/xinabox/pins_arduino.h index 52b3e4f12d8..b5978d1ea94 100644 --- a/variants/xinabox/pins_arduino.h +++ b/variants/xinabox/pins_arduino.h @@ -3,17 +3,9 @@ #include -#define EXTERNAL_NUM_INTERRUPTS 16 -#define NUM_DIGITAL_PINS 40 -#define NUM_ANALOG_INPUTS 16 - -#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) -#define digitalPinToInterrupt(p) (((p)<40)?(p):-1) -#define digitalPinHasPWM(p) (p < 34) - static const uint8_t LED_BUILTIN = 27; #define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN static const uint8_t TX = 1; static const uint8_t RX = 3;