diff --git a/cores/esp32/io_pin_remap.h b/cores/esp32/io_pin_remap.h index 4a23de4a829..cd5c93f8737 100644 --- a/cores/esp32/io_pin_remap.h +++ b/cores/esp32/io_pin_remap.h @@ -18,7 +18,7 @@ int8_t digitalPinFromGPIONumber(int8_t gpioPin); #define pulseInLong(pin, state, timeout) pulseInLong(digitalPinToGPIONumber(pin), state, timeout) #define pulseIn(pin, state, timeout) pulseIn(digitalPinToGPIONumber(pin), state, timeout) #define noTone(_pin) noTone(digitalPinToGPIONumber(_pin)) -#define tone(_pin, frequency, duration) tone(digitalPinToGPIONumber(_pin), frequency, duration) +#define tone(_pin, args...) tone(digitalPinToGPIONumber(_pin), args) // cores/esp32/esp32-hal.h #define analogGetChannel(pin) analogGetChannel(digitalPinToGPIONumber(pin)) diff --git a/variants/arduino_nano_nora/io_pin_remap.cpp b/variants/arduino_nano_nora/io_pin_remap.cpp index e53c500a328..2a18e029df2 100644 --- a/variants/arduino_nano_nora/io_pin_remap.cpp +++ b/variants/arduino_nano_nora/io_pin_remap.cpp @@ -1,4 +1,20 @@ -#ifndef BOARD_USES_HW_GPIO_NUMBERS +#if defined(BOARD_HAS_PIN_REMAP) && !defined(ARDUINO_CORE_BUILD) +// -DARDUINO_CORE_BUILD must be set for core files only, to avoid extra +// remapping steps that would create all sorts of issues in the core. +// Removing -DBOARD_HAS_PIN_REMAP at least does correctly restore the +// use of GPIO numbers in the API. +#error This build system is not supported. Please rebuild without BOARD_HAS_PIN_REMAP. +#endif + +#if !defined(BOARD_HAS_PIN_REMAP) +// This board uses pin mapping but the build system has disabled it +#warning The build system forces the Arduino API to use GPIO numbers on a board that has custom pin mapping. +#elif defined(BOARD_USES_HW_GPIO_NUMBERS) +// The user has chosen to disable pin mappin. +#warning The Arduino API will use GPIO numbers for this build. +#endif + +#if defined(BOARD_HAS_PIN_REMAP) && !defined(BOARD_USES_HW_GPIO_NUMBERS) #include "Arduino.h"