Skip to content

Commit c5161a0

Browse files
committed
Nano ESP32: add backwards-compatible pin definitions
1 parent 758a6e4 commit c5161a0

File tree

2 files changed

+60
-9
lines changed

2 files changed

+60
-9
lines changed

Diff for: boards.txt

+7-1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ menu.EventsCore=Events Run On
1717
menu.MemoryType=Memory Type
1818
menu.EraseFlash=Erase All Flash Before Sketch Upload
1919
menu.JTAGAdapter=JTAG Adapter
20+
menu.PinNumbers=Pin Numbering
2021

2122
# Custom options
2223
menu.Revision=Board Revision
@@ -24154,12 +24155,17 @@ nano_nora.build.flash_mode=dio
2415424155
nano_nora.build.boot=qio
2415524156
nano_nora.build.boot_freq=80m
2415624157
nano_nora.build.partitions=app3M_fat9M_fact512k_16MB
24157-
nano_nora.build.defines=-DBOARD_HAS_PIN_REMAP -DBOARD_HAS_PSRAM '-DUSB_MANUFACTURER="Arduino"' '-DUSB_PRODUCT="Nano ESP32"'
24158+
nano_nora.build.defines=-DBOARD_HAS_PIN_REMAP {build.disable_pin_remap} -DBOARD_HAS_PSRAM '-DUSB_MANUFACTURER="Arduino"' '-DUSB_PRODUCT="Nano ESP32"'
2415824159
nano_nora.build.loop_core=-DARDUINO_RUNNING_CORE=1
2415924160
nano_nora.build.event_core=-DARDUINO_EVENT_RUNNING_CORE=1
2416024161
nano_nora.build.psram_type=opi
2416124162
nano_nora.build.memory_type={build.boot}_{build.psram_type}
24163+
nano_nora.build.disable_pin_remap=
2416224164

2416324165
nano_nora.tools.esptool_py.program.pattern_args=--chip {build.mcu} --port "{serial.port}" --before default_reset --after hard_reset write_flash -z --flash_mode {build.flash_mode} --flash_freq {build.flash_freq} --flash_size {build.flash_size} {build.bootloader_addr} "{build.path}/{build.project_name}.bootloader.bin" 0x8000 "{build.path}/{build.project_name}.partitions.bin" 0xe000 "{runtime.platform.path}/tools/partitions/boot_app0.bin" 0xf70000 "{build.variant.path}/extra/nora_recovery/nora_recovery.ino.bin" 0x10000 "{build.path}/{build.project_name}.bin"
2416424166

24167+
nano_nora.menu.PinNumbers.default=By Arduino pin (default)
24168+
nano_nora.menu.PinNumbers.byGPIONumber=By GPIO number (legacy)
24169+
nano_nora.menu.PinNumbers.byGPIONumber.build.disable_pin_remap=-DBOARD_USES_HW_GPIO_NUMBERS
24170+
2416524171
##############################################################

Diff for: variants/arduino_nano_nora/pins_arduino.h

+53-8
Original file line numberDiff line numberDiff line change
@@ -7,20 +7,24 @@
77
#define USB_VID 0x2341
88
#define USB_PID 0x0070
99

10-
#define EXTERNAL_NUM_INTERRUPTS 46
11-
#define NUM_DIGITAL_PINS 25
12-
#define NUM_ANALOG_INPUTS 8
13-
14-
#define analogInputToDigitalPin(p) (p)
15-
#define digitalPinToInterrupt(p) ((((uint8_t)digitalPinToGPIONumber(p)) < 48)? digitalPinToGPIONumber(p) : -1)
16-
#define digitalPinHasPWM(p) (((uint8_t)digitalPinToGPIONumber(p)) < 46)
17-
1810
#ifndef __cplusplus
1911
#define constexpr const
2012
#endif
2113

2214
// primary pin names
2315

16+
#if defined(BOARD_HAS_PIN_REMAP) && !defined(BOARD_USES_HW_GPIO_NUMBERS)
17+
18+
// Arduino style definitions (API uses Dx)
19+
20+
#define analogInputToDigitalPin(p) (p)
21+
#define digitalPinToInterrupt(p) ((((uint8_t)digitalPinToGPIONumber(p)) < 48)? digitalPinToGPIONumber(p) : -1)
22+
#define digitalPinHasPWM(p) (((uint8_t)digitalPinToGPIONumber(p)) < 46)
23+
24+
#define EXTERNAL_NUM_INTERRUPTS 46
25+
#define NUM_DIGITAL_PINS 25
26+
#define NUM_ANALOG_INPUTS 8
27+
2428
static constexpr uint8_t D0 = 0; // also RX
2529
static constexpr uint8_t D1 = 1; // also TX
2630
static constexpr uint8_t D2 = 2;
@@ -48,6 +52,47 @@ static constexpr uint8_t A5 = 22; // also SCL
4852
static constexpr uint8_t A6 = 23;
4953
static constexpr uint8_t A7 = 24;
5054

55+
#else
56+
57+
// ESP32-style definitions (API uses GPIOx)
58+
59+
#define EXTERNAL_NUM_INTERRUPTS 46
60+
#define NUM_DIGITAL_PINS 48
61+
#define NUM_ANALOG_INPUTS 20
62+
63+
#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1)
64+
#define digitalPinToInterrupt(p) (((p)<48)?(p):-1)
65+
#define digitalPinHasPWM(p) (p < 46)
66+
67+
static constexpr uint8_t D0 = 44; // also RX
68+
static constexpr uint8_t D1 = 43; // also TX
69+
static constexpr uint8_t D2 = 5;
70+
static constexpr uint8_t D3 = 6; // also CTS
71+
static constexpr uint8_t D4 = 7; // also DSR
72+
static constexpr uint8_t D5 = 8;
73+
static constexpr uint8_t D6 = 9;
74+
static constexpr uint8_t D7 = 10;
75+
static constexpr uint8_t D8 = 17;
76+
static constexpr uint8_t D9 = 18;
77+
static constexpr uint8_t D10 = 21; // also SS
78+
static constexpr uint8_t D11 = 38; // also MOSI
79+
static constexpr uint8_t D12 = 47; // also MISO
80+
static constexpr uint8_t D13 = 48; // also SCK, LED_BUILTIN
81+
static constexpr uint8_t LED_RED = 46;
82+
static constexpr uint8_t LED_GREEN = 0;
83+
static constexpr uint8_t LED_BLUE = 45; // also RTS
84+
85+
static constexpr uint8_t A0 = 1; // also DTR
86+
static constexpr uint8_t A1 = 2;
87+
static constexpr uint8_t A2 = 3;
88+
static constexpr uint8_t A3 = 4;
89+
static constexpr uint8_t A4 = 11; // also SDA
90+
static constexpr uint8_t A5 = 12; // also SCL
91+
static constexpr uint8_t A6 = 13;
92+
static constexpr uint8_t A7 = 14;
93+
94+
#endif
95+
5196
// alternate pin functions
5297

5398
static constexpr uint8_t LED_BUILTIN = D13;

0 commit comments

Comments
 (0)