From c7b13b47d65f024c4109f3677ecd3f2b9a0e1ab6 Mon Sep 17 00:00:00 2001
From: drondistortion <cancelbutton@gmail.com>
Date: Thu, 5 Dec 2019 11:36:53 +0300
Subject: [PATCH 1/6] piranha

---
 boards.txt | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 65 insertions(+)

diff --git a/boards.txt b/boards.txt
index 9c821ef4e35..5ada2c7482b 100644
--- a/boards.txt
+++ b/boards.txt
@@ -4248,3 +4248,68 @@ vintlabs-devkit-v1.menu.DebugLevel.debug.build.code_debug=4
 
 ##############################################################
 
+node32s.name=Piranha ESP-32
+
+node32s.upload.tool=esptool_py
+node32s.upload.maximum_size=1310720
+node32s.upload.maximum_data_size=327680
+node32s.upload.wait_for_upload_port=true
+
+node32s.serial.disableDTR=true
+node32s.serial.disableRTS=true
+
+node32s.build.mcu=esp32
+node32s.build.core=esp32
+node32s.build.variant=node32s
+node32s.build.board=Piranha ESP-32
+
+node32s.build.f_cpu=240000000L
+node32s.build.flash_mode=dio
+node32s.build.flash_size=4MB
+node32s.build.boot=dio
+node32s.build.partitions=default
+node32s.build.defines=
+
+node32s.menu.PartitionScheme.default=Default
+node32s.menu.PartitionScheme.default.build.partitions=default
+node32s.menu.PartitionScheme.no_ota=No OTA (Large APP)
+node32s.menu.PartitionScheme.no_ota.build.partitions=no_ota
+node32s.menu.PartitionScheme.no_ota.upload.maximum_size=2097152
+node32s.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (Large APPS with OTA)
+node32s.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs
+node32s.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080
+
+node32s.menu.FlashFreq.80=80MHz
+node32s.menu.FlashFreq.80.build.flash_freq=80m
+node32s.menu.FlashFreq.40=40MHz
+node32s.menu.FlashFreq.40.build.flash_freq=40m
+
+node32s.menu.UploadSpeed.921600=921600
+node32s.menu.UploadSpeed.921600.upload.speed=921600
+node32s.menu.UploadSpeed.115200=115200
+node32s.menu.UploadSpeed.115200.upload.speed=115200
+node32s.menu.UploadSpeed.256000.windows=256000
+node32s.menu.UploadSpeed.256000.upload.speed=256000
+node32s.menu.UploadSpeed.230400.windows.upload.speed=256000
+node32s.menu.UploadSpeed.230400=230400
+node32s.menu.UploadSpeed.230400.upload.speed=230400
+node32s.menu.UploadSpeed.460800.linux=460800
+node32s.menu.UploadSpeed.460800.macosx=460800
+node32s.menu.UploadSpeed.460800.upload.speed=460800
+node32s.menu.UploadSpeed.512000.windows=512000
+node32s.menu.UploadSpeed.512000.upload.speed=512000
+
+node32s.menu.DebugLevel.none=None
+node32s.menu.DebugLevel.none.build.code_debug=0
+node32s.menu.DebugLevel.error=Error
+node32s.menu.DebugLevel.error.build.code_debug=1
+node32s.menu.DebugLevel.warn=Warn
+node32s.menu.DebugLevel.warn.build.code_debug=2
+node32s.menu.DebugLevel.info=Info
+node32s.menu.DebugLevel.info.build.code_debug=3
+node32s.menu.DebugLevel.debug=Debug
+node32s.menu.DebugLevel.debug.build.code_debug=4
+node32s.menu.DebugLevel.verbose=Verbose
+node32s.menu.DebugLevel.verbose.build.code_debug=5
+
+##############################################################

From 9d203201f53e1ab4d64cc7ff71547ca5d72b43f1 Mon Sep 17 00:00:00 2001
From: drondistortion <cancelbutton@gmail.com>
Date: Thu, 5 Dec 2019 11:56:50 +0300
Subject: [PATCH 2/6] piranha

---
 variants/piranha_ESP-32/pins_arduino.h | 61 ++++++++++++++++++++++++++
 1 file changed, 61 insertions(+)
 create mode 100644 variants/piranha_ESP-32/pins_arduino.h

diff --git a/variants/piranha_ESP-32/pins_arduino.h b/variants/piranha_ESP-32/pins_arduino.h
new file mode 100644
index 00000000000..3bb26f1e94c
--- /dev/null
+++ b/variants/piranha_ESP-32/pins_arduino.h
@@ -0,0 +1,61 @@
+#ifndef Pins_Arduino_h
+#define Pins_Arduino_h
+
+#include <stdint.h>
+
+#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 LED_BUILTIN = 2;
+#define BUILTIN_LED  LED_BUILTIN // backward compatibility
+
+static const uint8_t KEY_BUILTIN = 0;
+
+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    = 5;
+static const uint8_t MOSI  = 23;
+static const uint8_t MISO  = 19;
+static const uint8_t SCK   = 18;
+
+static const uint8_t A0 = 36;
+static const uint8_t A3 = 39;
+static const uint8_t A4 = 32;
+static const uint8_t A5 = 33;
+static const uint8_t A6 = 34;
+static const uint8_t A7 = 35;
+static const uint8_t A10 = 4;
+static const uint8_t A11 = 0;
+static const uint8_t A12 = 2;
+static const uint8_t A13 = 15;
+static const uint8_t A14 = 13;
+static const uint8_t A15 = 12;
+static const uint8_t A16 = 14;
+static const uint8_t A17 = 27;
+static const uint8_t A18 = 25;
+static const uint8_t A19 = 26;
+
+static const uint8_t T0 = 4;
+static const uint8_t T1 = 0;
+static const uint8_t T2 = 2;
+static const uint8_t T3 = 15;
+static const uint8_t T4 = 13;
+static const uint8_t T5 = 12;
+static const uint8_t T6 = 14;
+static const uint8_t T7 = 27;
+static const uint8_t T8 = 33;
+static const uint8_t T9 = 32;
+
+static const uint8_t DAC1 = 25;
+static const uint8_t DAC2 = 26;
+
+#endif /* Pins_Arduino_h */

From da142d13162056b2ed5cb6987f80e61cd9c14b35 Mon Sep 17 00:00:00 2001
From: drondistortion <cancelbutton@gmail.com>
Date: Thu, 5 Dec 2019 13:20:12 +0300
Subject: [PATCH 3/6] added Piranha ESP-32

---
 boards.txt                             | 126 ++++++++++++-------------
 variants/piranha_esp-32/pins_arduino.h |  61 ++++++++++++
 2 files changed, 124 insertions(+), 63 deletions(-)
 create mode 100644 variants/piranha_esp-32/pins_arduino.h

diff --git a/boards.txt b/boards.txt
index 5ada2c7482b..231a6b4bc47 100644
--- a/boards.txt
+++ b/boards.txt
@@ -4248,68 +4248,68 @@ vintlabs-devkit-v1.menu.DebugLevel.debug.build.code_debug=4
 
 ##############################################################
 
-node32s.name=Piranha ESP-32
-
-node32s.upload.tool=esptool_py
-node32s.upload.maximum_size=1310720
-node32s.upload.maximum_data_size=327680
-node32s.upload.wait_for_upload_port=true
-
-node32s.serial.disableDTR=true
-node32s.serial.disableRTS=true
-
-node32s.build.mcu=esp32
-node32s.build.core=esp32
-node32s.build.variant=node32s
-node32s.build.board=Piranha ESP-32
-
-node32s.build.f_cpu=240000000L
-node32s.build.flash_mode=dio
-node32s.build.flash_size=4MB
-node32s.build.boot=dio
-node32s.build.partitions=default
-node32s.build.defines=
-
-node32s.menu.PartitionScheme.default=Default
-node32s.menu.PartitionScheme.default.build.partitions=default
-node32s.menu.PartitionScheme.no_ota=No OTA (Large APP)
-node32s.menu.PartitionScheme.no_ota.build.partitions=no_ota
-node32s.menu.PartitionScheme.no_ota.upload.maximum_size=2097152
-node32s.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (Large APPS with OTA)
-node32s.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs
-node32s.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080
-
-node32s.menu.FlashFreq.80=80MHz
-node32s.menu.FlashFreq.80.build.flash_freq=80m
-node32s.menu.FlashFreq.40=40MHz
-node32s.menu.FlashFreq.40.build.flash_freq=40m
-
-node32s.menu.UploadSpeed.921600=921600
-node32s.menu.UploadSpeed.921600.upload.speed=921600
-node32s.menu.UploadSpeed.115200=115200
-node32s.menu.UploadSpeed.115200.upload.speed=115200
-node32s.menu.UploadSpeed.256000.windows=256000
-node32s.menu.UploadSpeed.256000.upload.speed=256000
-node32s.menu.UploadSpeed.230400.windows.upload.speed=256000
-node32s.menu.UploadSpeed.230400=230400
-node32s.menu.UploadSpeed.230400.upload.speed=230400
-node32s.menu.UploadSpeed.460800.linux=460800
-node32s.menu.UploadSpeed.460800.macosx=460800
-node32s.menu.UploadSpeed.460800.upload.speed=460800
-node32s.menu.UploadSpeed.512000.windows=512000
-node32s.menu.UploadSpeed.512000.upload.speed=512000
-
-node32s.menu.DebugLevel.none=None
-node32s.menu.DebugLevel.none.build.code_debug=0
-node32s.menu.DebugLevel.error=Error
-node32s.menu.DebugLevel.error.build.code_debug=1
-node32s.menu.DebugLevel.warn=Warn
-node32s.menu.DebugLevel.warn.build.code_debug=2
-node32s.menu.DebugLevel.info=Info
-node32s.menu.DebugLevel.info.build.code_debug=3
-node32s.menu.DebugLevel.debug=Debug
-node32s.menu.DebugLevel.debug.build.code_debug=4
-node32s.menu.DebugLevel.verbose=Verbose
-node32s.menu.DebugLevel.verbose.build.code_debug=5
+piranha_esp-32.name=Piranha ESP-32
+piranha_esp-32
+piranha_esp-32.upload.tool=esptool_py
+piranha_esp-32.upload.maximum_size=1310720
+piranha_esp-32.upload.maximum_data_size=327680
+piranha_esp-32.upload.wait_for_upload_port=true
+piranha_esp-32
+piranha_esp-32.serial.disableDTR=true
+piranha_esp-32.serial.disableRTS=true
+piranha_esp-32
+piranha_esp-32.build.mcu=esp32
+piranha_esp-32.build.core=esp32
+piranha_esp-32.build.variant=node32s
+piranha_esp-32.build.board=Piranha ESP-32
+piranha_esp-32
+piranha_esp-32.build.f_cpu=240000000L
+piranha_esp-32.build.flash_mode=dio
+piranha_esp-32.build.flash_size=4MB
+piranha_esp-32.build.boot=dio
+piranha_esp-32.build.partitions=default
+piranha_esp-32.build.defines=
+piranha_esp-32
+piranha_esp-32.menu.PartitionScheme.default=Default
+piranha_esp-32.menu.PartitionScheme.default.build.partitions=default
+piranha_esp-32.menu.PartitionScheme.no_ota=No OTA (Large APP)
+piranha_esp-32.menu.PartitionScheme.no_ota.build.partitions=no_ota
+piranha_esp-32.menu.PartitionScheme.no_ota.upload.maximum_size=2097152
+piranha_esp-32.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (Large APPS with OTA)
+piranha_esp-32.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs
+piranha_esp-32.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080
+piranha_esp-32
+piranha_esp-32.menu.FlashFreq.80=80MHz
+piranha_esp-32.menu.FlashFreq.80.build.flash_freq=80m
+piranha_esp-32.menu.FlashFreq.40=40MHz
+piranha_esp-32.menu.FlashFreq.40.build.flash_freq=40m
+piranha_esp-32
+piranha_esp-32.menu.UploadSpeed.921600=921600
+piranha_esp-32.menu.UploadSpeed.921600.upload.speed=921600
+piranha_esp-32.menu.UploadSpeed.115200=115200
+piranha_esp-32.menu.UploadSpeed.115200.upload.speed=115200
+piranha_esp-32.menu.UploadSpeed.256000.windows=256000
+piranha_esp-32.menu.UploadSpeed.256000.upload.speed=256000
+piranha_esp-32.menu.UploadSpeed.230400.windows.upload.speed=256000
+piranha_esp-32.menu.UploadSpeed.230400=230400
+piranha_esp-32.menu.UploadSpeed.230400.upload.speed=230400
+piranha_esp-32.menu.UploadSpeed.460800.linux=460800
+piranha_esp-32.menu.UploadSpeed.460800.macosx=460800
+piranha_esp-32.menu.UploadSpeed.460800.upload.speed=460800
+piranha_esp-32.menu.UploadSpeed.512000.windows=512000
+piranha_esp-32.menu.UploadSpeed.512000.upload.speed=512000
+piranha_esp-32
+piranha_esp-32.menu.DebugLevel.none=None
+piranha_esp-32.menu.DebugLevel.none.build.code_debug=0
+piranha_esp-32.menu.DebugLevel.error=Error
+piranha_esp-32.menu.DebugLevel.error.build.code_debug=1
+piranha_esp-32.menu.DebugLevel.warn=Warn
+piranha_esp-32.menu.DebugLevel.warn.build.code_debug=2
+piranha_esp-32.menu.DebugLevel.info=Info
+piranha_esp-32.menu.DebugLevel.info.build.code_debug=3
+piranha_esp-32.menu.DebugLevel.debug=Debug
+piranha_esp-32.menu.DebugLevel.debug.build.code_debug=4
+piranha_esp-32.menu.DebugLevel.verbose=Verbose
+piranha_esp-32.menu.DebugLevel.verbose.build.code_debug=5
 
 ##############################################################
diff --git a/variants/piranha_esp-32/pins_arduino.h b/variants/piranha_esp-32/pins_arduino.h
new file mode 100644
index 00000000000..3bb26f1e94c
--- /dev/null
+++ b/variants/piranha_esp-32/pins_arduino.h
@@ -0,0 +1,61 @@
+#ifndef Pins_Arduino_h
+#define Pins_Arduino_h
+
+#include <stdint.h>
+
+#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 LED_BUILTIN = 2;
+#define BUILTIN_LED  LED_BUILTIN // backward compatibility
+
+static const uint8_t KEY_BUILTIN = 0;
+
+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    = 5;
+static const uint8_t MOSI  = 23;
+static const uint8_t MISO  = 19;
+static const uint8_t SCK   = 18;
+
+static const uint8_t A0 = 36;
+static const uint8_t A3 = 39;
+static const uint8_t A4 = 32;
+static const uint8_t A5 = 33;
+static const uint8_t A6 = 34;
+static const uint8_t A7 = 35;
+static const uint8_t A10 = 4;
+static const uint8_t A11 = 0;
+static const uint8_t A12 = 2;
+static const uint8_t A13 = 15;
+static const uint8_t A14 = 13;
+static const uint8_t A15 = 12;
+static const uint8_t A16 = 14;
+static const uint8_t A17 = 27;
+static const uint8_t A18 = 25;
+static const uint8_t A19 = 26;
+
+static const uint8_t T0 = 4;
+static const uint8_t T1 = 0;
+static const uint8_t T2 = 2;
+static const uint8_t T3 = 15;
+static const uint8_t T4 = 13;
+static const uint8_t T5 = 12;
+static const uint8_t T6 = 14;
+static const uint8_t T7 = 27;
+static const uint8_t T8 = 33;
+static const uint8_t T9 = 32;
+
+static const uint8_t DAC1 = 25;
+static const uint8_t DAC2 = 26;
+
+#endif /* Pins_Arduino_h */

From 3ac8f15edf9495bb0cc417d161d16f392e0b46b2 Mon Sep 17 00:00:00 2001
From: drondistortion <cancelbutton@gmail.com>
Date: Thu, 5 Dec 2019 13:54:52 +0300
Subject: [PATCH 4/6] line corrections

---
 boards.txt | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/boards.txt b/boards.txt
index 231a6b4bc47..1da4afe14b9 100644
--- a/boards.txt
+++ b/boards.txt
@@ -4249,27 +4249,27 @@ vintlabs-devkit-v1.menu.DebugLevel.debug.build.code_debug=4
 ##############################################################
 
 piranha_esp-32.name=Piranha ESP-32
-piranha_esp-32
+
 piranha_esp-32.upload.tool=esptool_py
 piranha_esp-32.upload.maximum_size=1310720
 piranha_esp-32.upload.maximum_data_size=327680
 piranha_esp-32.upload.wait_for_upload_port=true
-piranha_esp-32
+
 piranha_esp-32.serial.disableDTR=true
 piranha_esp-32.serial.disableRTS=true
-piranha_esp-32
+
 piranha_esp-32.build.mcu=esp32
 piranha_esp-32.build.core=esp32
-piranha_esp-32.build.variant=node32s
+piranha_esp-32.build.variant=piranha_esp-32
 piranha_esp-32.build.board=Piranha ESP-32
-piranha_esp-32
+
 piranha_esp-32.build.f_cpu=240000000L
 piranha_esp-32.build.flash_mode=dio
 piranha_esp-32.build.flash_size=4MB
 piranha_esp-32.build.boot=dio
 piranha_esp-32.build.partitions=default
 piranha_esp-32.build.defines=
-piranha_esp-32
+
 piranha_esp-32.menu.PartitionScheme.default=Default
 piranha_esp-32.menu.PartitionScheme.default.build.partitions=default
 piranha_esp-32.menu.PartitionScheme.no_ota=No OTA (Large APP)
@@ -4278,12 +4278,12 @@ piranha_esp-32.menu.PartitionScheme.no_ota.upload.maximum_size=2097152
 piranha_esp-32.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (Large APPS with OTA)
 piranha_esp-32.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs
 piranha_esp-32.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080
-piranha_esp-32
+
 piranha_esp-32.menu.FlashFreq.80=80MHz
 piranha_esp-32.menu.FlashFreq.80.build.flash_freq=80m
 piranha_esp-32.menu.FlashFreq.40=40MHz
 piranha_esp-32.menu.FlashFreq.40.build.flash_freq=40m
-piranha_esp-32
+
 piranha_esp-32.menu.UploadSpeed.921600=921600
 piranha_esp-32.menu.UploadSpeed.921600.upload.speed=921600
 piranha_esp-32.menu.UploadSpeed.115200=115200
@@ -4298,7 +4298,7 @@ piranha_esp-32.menu.UploadSpeed.460800.macosx=460800
 piranha_esp-32.menu.UploadSpeed.460800.upload.speed=460800
 piranha_esp-32.menu.UploadSpeed.512000.windows=512000
 piranha_esp-32.menu.UploadSpeed.512000.upload.speed=512000
-piranha_esp-32
+
 piranha_esp-32.menu.DebugLevel.none=None
 piranha_esp-32.menu.DebugLevel.none.build.code_debug=0
 piranha_esp-32.menu.DebugLevel.error=Error

From 1b645fb17943744930251895adc5c2d6fbd1a5b5 Mon Sep 17 00:00:00 2001
From: drondistortion <cancelbutton@gmail.com>
Date: Thu, 5 Dec 2019 16:00:21 +0300
Subject: [PATCH 5/6] testing

---
 boards.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/boards.txt b/boards.txt
index 1da4afe14b9..82dd29e2679 100644
--- a/boards.txt
+++ b/boards.txt
@@ -4261,7 +4261,7 @@ piranha_esp-32.serial.disableRTS=true
 piranha_esp-32.build.mcu=esp32
 piranha_esp-32.build.core=esp32
 piranha_esp-32.build.variant=piranha_esp-32
-piranha_esp-32.build.board=Piranha ESP-32
+piranha_esp-32.build.board=Piranha
 
 piranha_esp-32.build.f_cpu=240000000L
 piranha_esp-32.build.flash_mode=dio

From 6bb3bc6be2777f836b91337fb4df90f2b0a412f9 Mon Sep 17 00:00:00 2001
From: drondistortion <cancelbutton@gmail.com>
Date: Thu, 5 Dec 2019 17:33:08 +0300
Subject: [PATCH 6/6] metro added

---
 boards.txt                             | 66 ++++++++++++++++++++++++++
 variants/metro_esp-32/pins_arduino.h   | 24 ++++++++++
 variants/piranha_ESP-32/pins_arduino.h | 61 ------------------------
 variants/piranha_esp-32/pins_arduino.h | 14 ------
 4 files changed, 90 insertions(+), 75 deletions(-)
 create mode 100644 variants/metro_esp-32/pins_arduino.h
 delete mode 100644 variants/piranha_ESP-32/pins_arduino.h

diff --git a/boards.txt b/boards.txt
index 82dd29e2679..37afe3a4c84 100644
--- a/boards.txt
+++ b/boards.txt
@@ -4313,3 +4313,69 @@ piranha_esp-32.menu.DebugLevel.verbose=Verbose
 piranha_esp-32.menu.DebugLevel.verbose.build.code_debug=5
 
 ##############################################################
+
+metro_esp-32.name=Metro ESP-32
+
+metro_esp-32.upload.tool=esptool_py
+metro_esp-32.upload.maximum_size=1310720
+metro_esp-32.upload.maximum_data_size=327680
+metro_esp-32.upload.wait_for_upload_port=true
+
+metro_esp-32.serial.disableDTR=true
+metro_esp-32.serial.disableRTS=true
+
+metro_esp-32.build.mcu=esp32
+metro_esp-32.build.core=esp32
+metro_esp-32.build.variant=metro_esp-32
+metro_esp-32.build.board=Metro
+
+metro_esp-32.build.f_cpu=240000000L
+metro_esp-32.build.flash_mode=dio
+metro_esp-32.build.flash_size=4MB
+metro_esp-32.build.boot=dio
+metro_esp-32.build.partitions=default
+metro_esp-32.build.defines=
+
+metro_esp-32.menu.PartitionScheme.default=Default
+metro_esp-32.menu.PartitionScheme.default.build.partitions=default
+metro_esp-32.menu.PartitionScheme.no_ota=No OTA (Large APP)
+metro_esp-32.menu.PartitionScheme.no_ota.build.partitions=no_ota
+metro_esp-32.menu.PartitionScheme.no_ota.upload.maximum_size=2097152
+metro_esp-32.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (Large APPS with OTA)
+metro_esp-32.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs
+metro_esp-32.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080
+
+metro_esp-32.menu.FlashFreq.80=80MHz
+metro_esp-32.menu.FlashFreq.80.build.flash_freq=80m
+metro_esp-32.menu.FlashFreq.40=40MHz
+metro_esp-32.menu.FlashFreq.40.build.flash_freq=40m
+
+metro_esp-32.menu.UploadSpeed.921600=921600
+metro_esp-32.menu.UploadSpeed.921600.upload.speed=921600
+metro_esp-32.menu.UploadSpeed.115200=115200
+metro_esp-32.menu.UploadSpeed.115200.upload.speed=115200
+metro_esp-32.menu.UploadSpeed.256000.windows=256000
+metro_esp-32.menu.UploadSpeed.256000.upload.speed=256000
+metro_esp-32.menu.UploadSpeed.230400.windows.upload.speed=256000
+metro_esp-32.menu.UploadSpeed.230400=230400
+metro_esp-32.menu.UploadSpeed.230400.upload.speed=230400
+metro_esp-32.menu.UploadSpeed.460800.linux=460800
+metro_esp-32.menu.UploadSpeed.460800.macosx=460800
+metro_esp-32.menu.UploadSpeed.460800.upload.speed=460800
+metro_esp-32.menu.UploadSpeed.512000.windows=512000
+metro_esp-32.menu.UploadSpeed.512000.upload.speed=512000
+
+metro_esp-32.menu.DebugLevel.none=None
+metro_esp-32.menu.DebugLevel.none.build.code_debug=0
+metro_esp-32.menu.DebugLevel.error=Error
+metro_esp-32.menu.DebugLevel.error.build.code_debug=1
+metro_esp-32.menu.DebugLevel.warn=Warn
+metro_esp-32.menu.DebugLevel.warn.build.code_debug=2
+metro_esp-32.menu.DebugLevel.info=Info
+metro_esp-32.menu.DebugLevel.info.build.code_debug=3
+metro_esp-32.menu.DebugLevel.debug=Debug
+metro_esp-32.menu.DebugLevel.debug.build.code_debug=4
+metro_esp-32.menu.DebugLevel.verbose=Verbose
+metro_esp-32.menu.DebugLevel.verbose.build.code_debug=5
+
+##############################################################
diff --git a/variants/metro_esp-32/pins_arduino.h b/variants/metro_esp-32/pins_arduino.h
new file mode 100644
index 00000000000..a531d9d88e9
--- /dev/null
+++ b/variants/metro_esp-32/pins_arduino.h
@@ -0,0 +1,24 @@
+#ifndef Pins_Arduino_h
+#define Pins_Arduino_h
+
+#include <stdint.h>
+
+#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 LED_BUILTIN = 2;
+#define BUILTIN_LED  LED_BUILTIN // backward compatibility
+
+static const uint8_t KEY_BUILTIN = 0;
+
+static const uint8_t SDA = 21;
+static const uint8_t SCL = 22;
+
+static const uint8_t ADR = 12;
+
+#endif /* Pins_Arduino_h */
diff --git a/variants/piranha_ESP-32/pins_arduino.h b/variants/piranha_ESP-32/pins_arduino.h
deleted file mode 100644
index 3bb26f1e94c..00000000000
--- a/variants/piranha_ESP-32/pins_arduino.h
+++ /dev/null
@@ -1,61 +0,0 @@
-#ifndef Pins_Arduino_h
-#define Pins_Arduino_h
-
-#include <stdint.h>
-
-#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 LED_BUILTIN = 2;
-#define BUILTIN_LED  LED_BUILTIN // backward compatibility
-
-static const uint8_t KEY_BUILTIN = 0;
-
-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    = 5;
-static const uint8_t MOSI  = 23;
-static const uint8_t MISO  = 19;
-static const uint8_t SCK   = 18;
-
-static const uint8_t A0 = 36;
-static const uint8_t A3 = 39;
-static const uint8_t A4 = 32;
-static const uint8_t A5 = 33;
-static const uint8_t A6 = 34;
-static const uint8_t A7 = 35;
-static const uint8_t A10 = 4;
-static const uint8_t A11 = 0;
-static const uint8_t A12 = 2;
-static const uint8_t A13 = 15;
-static const uint8_t A14 = 13;
-static const uint8_t A15 = 12;
-static const uint8_t A16 = 14;
-static const uint8_t A17 = 27;
-static const uint8_t A18 = 25;
-static const uint8_t A19 = 26;
-
-static const uint8_t T0 = 4;
-static const uint8_t T1 = 0;
-static const uint8_t T2 = 2;
-static const uint8_t T3 = 15;
-static const uint8_t T4 = 13;
-static const uint8_t T5 = 12;
-static const uint8_t T6 = 14;
-static const uint8_t T7 = 27;
-static const uint8_t T8 = 33;
-static const uint8_t T9 = 32;
-
-static const uint8_t DAC1 = 25;
-static const uint8_t DAC2 = 26;
-
-#endif /* Pins_Arduino_h */
diff --git a/variants/piranha_esp-32/pins_arduino.h b/variants/piranha_esp-32/pins_arduino.h
index 3bb26f1e94c..93ed1641c4c 100644
--- a/variants/piranha_esp-32/pins_arduino.h
+++ b/variants/piranha_esp-32/pins_arduino.h
@@ -27,33 +27,19 @@ static const uint8_t MOSI  = 23;
 static const uint8_t MISO  = 19;
 static const uint8_t SCK   = 18;
 
-static const uint8_t A0 = 36;
-static const uint8_t A3 = 39;
-static const uint8_t A4 = 32;
-static const uint8_t A5 = 33;
-static const uint8_t A6 = 34;
-static const uint8_t A7 = 35;
-static const uint8_t A10 = 4;
 static const uint8_t A11 = 0;
-static const uint8_t A12 = 2;
 static const uint8_t A13 = 15;
 static const uint8_t A14 = 13;
 static const uint8_t A15 = 12;
 static const uint8_t A16 = 14;
-static const uint8_t A17 = 27;
 static const uint8_t A18 = 25;
 static const uint8_t A19 = 26;
 
-static const uint8_t T0 = 4;
 static const uint8_t T1 = 0;
-static const uint8_t T2 = 2;
 static const uint8_t T3 = 15;
 static const uint8_t T4 = 13;
 static const uint8_t T5 = 12;
 static const uint8_t T6 = 14;
-static const uint8_t T7 = 27;
-static const uint8_t T8 = 33;
-static const uint8_t T9 = 32;
 
 static const uint8_t DAC1 = 25;
 static const uint8_t DAC2 = 26;