From eeb2556b0e2dd1b15d49c2cec6c61a69cb1b1eaf Mon Sep 17 00:00:00 2001
From: Seon Rozenblum <seon@unexpectedmaker.com>
Date: Sun, 11 Apr 2021 09:06:39 +1000
Subject: [PATCH 1/3] Removed ProS2 and added TinyS2 to boards.txt

---
 boards.txt                                    | 230 ++++++++----------
 .../{um_pros2 => um_tinys2}/pins_arduino.h    |  21 +-
 2 files changed, 119 insertions(+), 132 deletions(-)
 rename variants/{um_pros2 => um_tinys2}/pins_arduino.h (83%)

diff --git a/boards.txt b/boards.txt
index e36c304c896..552057b0a76 100644
--- a/boards.txt
+++ b/boards.txt
@@ -801,128 +801,114 @@ feathers2.menu.DebugLevel.verbose=Verbose
 feathers2.menu.DebugLevel.verbose.build.code_debug=5
 
 ##############################################################
-pros2.name=UM ProS2
-pros2.vid.0=0x239A
-pros2.pid.0=0x80A9
-
-pros2.upload.tool=esptool_py
-pros2.upload.maximum_size=1310720
-pros2.upload.maximum_data_size=327680
-pros2.upload.flags=
-pros2.upload.use_1200bps_touch=true
-pros2.upload.wait_for_upload_port=true
-
-pros2.serial.disableDTR=false
-pros2.serial.disableRTS=false
-
-pros2.build.mcu=esp32s2
-pros2.build.core=esp32
-pros2.build.variant=um_pros2
-pros2.build.board=PROS2
-
-pros2.build.serial=1
-pros2.build.f_cpu=240000000L
-pros2.build.flash_size=16MB
-pros2.build.flash_freq=80m
-pros2.build.flash_mode=dio
-pros2.build.boot=qio
-pros2.build.partitions=fatflash
-pros2.build.defines=
-
-pros2.menu.SerialMode.cdc=USB CDC
-pros2.menu.SerialMode.cdc.build.serial=1
-pros2.menu.SerialMode.default=UART0
-pros2.menu.SerialMode.default.build.serial=0
-
-pros2.menu.PSRAM.enabled=Enabled
-pros2.menu.PSRAM.enabled.build.defines=-DBOARD_HAS_PSRAM
-pros2.menu.PSRAM.disabled=Disabled
-pros2.menu.PSRAM.disabled.build.defines=
-
-pros2.menu.PartitionScheme.fatflash=16M Flash (2MB APP/12.5MB FAT)
-pros2.menu.PartitionScheme.fatflash.build.partitions=ffat
-pros2.menu.PartitionScheme.fatflash.upload.maximum_size=2097152
-pros2.menu.PartitionScheme.app3M_fat9M_16MB=16M Flash (3MB APP/9MB FATFS)
-pros2.menu.PartitionScheme.app3M_fat9M_16MB.build.partitions=app3M_fat9M_16MB
-pros2.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728
-pros2.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS)
-pros2.menu.PartitionScheme.default.build.partitions=default
-pros2.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS)
-pros2.menu.PartitionScheme.defaultffat.build.partitions=default_ffat
-pros2.menu.PartitionScheme.default_8MB=8M Flash (3MB APP/1.5MB FAT)
-pros2.menu.PartitionScheme.default_8MB.build.partitions=default_8MB
-pros2.menu.PartitionScheme.default_8MB.upload.maximum_size=3342336
-pros2.menu.PartitionScheme.minimal=Minimal (1.3MB APP/700KB SPIFFS)
-pros2.menu.PartitionScheme.minimal.build.partitions=minimal
-pros2.menu.PartitionScheme.no_ota=No OTA (2MB APP/2MB SPIFFS)
-pros2.menu.PartitionScheme.no_ota.build.partitions=no_ota
-pros2.menu.PartitionScheme.no_ota.upload.maximum_size=2097152
-pros2.menu.PartitionScheme.noota_3g=No OTA (1MB APP/3MB SPIFFS)
-pros2.menu.PartitionScheme.noota_3g.build.partitions=noota_3g
-pros2.menu.PartitionScheme.noota_3g.upload.maximum_size=1048576
-pros2.menu.PartitionScheme.noota_ffat=No OTA (2MB APP/2MB FATFS)
-pros2.menu.PartitionScheme.noota_ffat.build.partitions=noota_ffat
-pros2.menu.PartitionScheme.noota_ffat.upload.maximum_size=2097152
-pros2.menu.PartitionScheme.noota_3gffat=No OTA (1MB APP/3MB FATFS)
-pros2.menu.PartitionScheme.noota_3gffat.build.partitions=noota_3gffat
-pros2.menu.PartitionScheme.noota_3gffat.upload.maximum_size=1048576
-pros2.menu.PartitionScheme.huge_app=Huge APP (3MB No OTA/1MB SPIFFS)
-pros2.menu.PartitionScheme.huge_app.build.partitions=huge_app
-pros2.menu.PartitionScheme.huge_app.upload.maximum_size=3145728
-pros2.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS)
-pros2.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs
-pros2.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080
-
-pros2.menu.CPUFreq.240=240MHz (WiFi)
-pros2.menu.CPUFreq.240.build.f_cpu=240000000L
-pros2.menu.CPUFreq.160=160MHz (WiFi)
-pros2.menu.CPUFreq.160.build.f_cpu=160000000L
-pros2.menu.CPUFreq.80=80MHz (WiFi)
-pros2.menu.CPUFreq.80.build.f_cpu=80000000L
-pros2.menu.CPUFreq.40=40MHz
-pros2.menu.CPUFreq.40.build.f_cpu=40000000L
-pros2.menu.CPUFreq.20=20MHz
-pros2.menu.CPUFreq.20.build.f_cpu=20000000L
-pros2.menu.CPUFreq.10=10MHz
-pros2.menu.CPUFreq.10.build.f_cpu=10000000L
-
-pros2.menu.FlashSize.16M=16MB (128Mb)
-pros2.menu.FlashSize.16M.build.flash_size=16MB
-pros2.menu.FlashSize.4M=4MB (32Mb)
-pros2.menu.FlashSize.4M.build.flash_size=4MB
-pros2.menu.FlashSize.8M=8MB (64Mb)
-pros2.menu.FlashSize.8M.build.flash_size=8MB
-pros2.menu.FlashSize.8M.build.partitions=default_8MB
-pros2.menu.FlashSize.2M=2MB (16Mb)
-pros2.menu.FlashSize.2M.build.flash_size=2MB
-pros2.menu.FlashSize.2M.build.partitions=minimal
-
-pros2.menu.UploadSpeed.921600=921600
-pros2.menu.UploadSpeed.921600.upload.speed=921600
-pros2.menu.UploadSpeed.115200=115200
-pros2.menu.UploadSpeed.115200.upload.speed=115200
-pros2.menu.UploadSpeed.256000.windows=256000
-pros2.menu.UploadSpeed.256000.upload.speed=256000
-pros2.menu.UploadSpeed.230400.windows.upload.speed=256000
-pros2.menu.UploadSpeed.230400=230400
-pros2.menu.UploadSpeed.230400.upload.speed=230400
-pros2.menu.UploadSpeed.460800.linux=460800
-pros2.menu.UploadSpeed.460800.macosx=460800
-pros2.menu.UploadSpeed.460800.upload.speed=460800
-
-
-pros2.menu.DebugLevel.none=None
-pros2.menu.DebugLevel.none.build.code_debug=0
-pros2.menu.DebugLevel.error=Error
-pros2.menu.DebugLevel.error.build.code_debug=1
-pros2.menu.DebugLevel.warn=Warn
-pros2.menu.DebugLevel.warn.build.code_debug=2
-pros2.menu.DebugLevel.info=Info
-pros2.menu.DebugLevel.info.build.code_debug=3
-pros2.menu.DebugLevel.debug=Debug
-pros2.menu.DebugLevel.debug.build.code_debug=4
-pros2.menu.DebugLevel.verbose=Verbose
-pros2.menu.DebugLevel.verbose.build.code_debug=5
+tinys2.name=UM TinyS2
+tinys2.vid.0=0x303a
+tinys2.pid.0=0x8001
+
+tinys2.upload.tool=esptool_py
+tinys2.upload.maximum_size=1310720
+tinys2.upload.maximum_data_size=327680
+tinys2.upload.flags=
+tinys2.upload.use_1200bps_touch=true
+tinys2.upload.wait_for_upload_port=true
+
+tinys2.serial.disableDTR=false
+tinys2.serial.disableRTS=false
+
+tinys2.build.mcu=esp32s2
+tinys2.build.core=esp32
+tinys2.build.variant=um_tinys2
+tinys2.build.board=TINYS2
+
+tinys2.build.serial=1
+tinys2.build.f_cpu=240000000L
+tinys2.build.flash_size=4MB
+tinys2.build.flash_freq=80m
+tinys2.build.flash_mode=dio
+tinys2.build.boot=qio
+tinys2.build.partitions=default
+tinys2.build.defines=
+
+tinys2.menu.SerialMode.cdc=USB CDC
+tinys2.menu.SerialMode.cdc.build.serial=1
+tinys2.menu.SerialMode.default=UART0
+tinys2.menu.SerialMode.default.build.serial=0
+
+tinys2.menu.PSRAM.enabled=Enabled
+tinys2.menu.PSRAM.enabled.build.defines=-DBOARD_HAS_PSRAM
+tinys2.menu.PSRAM.disabled=Disabled
+tinys2.menu.PSRAM.disabled.build.defines=
+
+tinys2.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS)
+tinys2.menu.PartitionScheme.default.build.partitions=default
+tinys2.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS)
+tinys2.menu.PartitionScheme.defaultffat.build.partitions=default_ffat
+tinys2.menu.PartitionScheme.minimal=Minimal (1.3MB APP/700KB SPIFFS)
+tinys2.menu.PartitionScheme.minimal.build.partitions=minimal
+tinys2.menu.PartitionScheme.no_ota=No OTA (2MB APP/2MB SPIFFS)
+tinys2.menu.PartitionScheme.no_ota.build.partitions=no_ota
+tinys2.menu.PartitionScheme.no_ota.upload.maximum_size=2097152
+tinys2.menu.PartitionScheme.noota_3g=No OTA (1MB APP/3MB SPIFFS)
+tinys2.menu.PartitionScheme.noota_3g.build.partitions=noota_3g
+tinys2.menu.PartitionScheme.noota_3g.upload.maximum_size=1048576
+tinys2.menu.PartitionScheme.noota_ffat=No OTA (2MB APP/2MB FATFS)
+tinys2.menu.PartitionScheme.noota_ffat.build.partitions=noota_ffat
+tinys2.menu.PartitionScheme.noota_ffat.upload.maximum_size=2097152
+tinys2.menu.PartitionScheme.noota_3gffat=No OTA (1MB APP/3MB FATFS)
+tinys2.menu.PartitionScheme.noota_3gffat.build.partitions=noota_3gffat
+tinys2.menu.PartitionScheme.noota_3gffat.upload.maximum_size=1048576
+tinys2.menu.PartitionScheme.huge_app=Huge APP (3MB No OTA/1MB SPIFFS)
+tinys2.menu.PartitionScheme.huge_app.build.partitions=huge_app
+tinys2.menu.PartitionScheme.huge_app.upload.maximum_size=3145728
+tinys2.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS)
+tinys2.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs
+tinys2.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080
+
+tinys2.menu.CPUFreq.240=240MHz (WiFi)
+tinys2.menu.CPUFreq.240.build.f_cpu=240000000L
+tinys2.menu.CPUFreq.160=160MHz (WiFi)
+tinys2.menu.CPUFreq.160.build.f_cpu=160000000L
+tinys2.menu.CPUFreq.80=80MHz (WiFi)
+tinys2.menu.CPUFreq.80.build.f_cpu=80000000L
+tinys2.menu.CPUFreq.40=40MHz
+tinys2.menu.CPUFreq.40.build.f_cpu=40000000L
+tinys2.menu.CPUFreq.20=20MHz
+tinys2.menu.CPUFreq.20.build.f_cpu=20000000L
+tinys2.menu.CPUFreq.10=10MHz
+tinys2.menu.CPUFreq.10.build.f_cpu=10000000L
+
+tinys2.menu.FlashSize.4M=4MB (32Mb)
+tinys2.menu.FlashSize.4M.build.flash_size=4MB
+tinys2.menu.FlashSize.2M=2MB (16Mb)
+tinys2.menu.FlashSize.2M.build.flash_size=2MB
+tinys2.menu.FlashSize.2M.build.partitions=minimal
+
+tinys2.menu.UploadSpeed.921600=921600
+tinys2.menu.UploadSpeed.921600.upload.speed=921600
+tinys2.menu.UploadSpeed.115200=115200
+tinys2.menu.UploadSpeed.115200.upload.speed=115200
+tinys2.menu.UploadSpeed.256000.windows=256000
+tinys2.menu.UploadSpeed.256000.upload.speed=256000
+tinys2.menu.UploadSpeed.230400.windows.upload.speed=256000
+tinys2.menu.UploadSpeed.230400=230400
+tinys2.menu.UploadSpeed.230400.upload.speed=230400
+tinys2.menu.UploadSpeed.460800.linux=460800
+tinys2.menu.UploadSpeed.460800.macosx=460800
+tinys2.menu.UploadSpeed.460800.upload.speed=460800
+
+
+tinys2.menu.DebugLevel.none=None
+tinys2.menu.DebugLevel.none.build.code_debug=0
+tinys2.menu.DebugLevel.error=Error
+tinys2.menu.DebugLevel.error.build.code_debug=1
+tinys2.menu.DebugLevel.warn=Warn
+tinys2.menu.DebugLevel.warn.build.code_debug=2
+tinys2.menu.DebugLevel.info=Info
+tinys2.menu.DebugLevel.info.build.code_debug=3
+tinys2.menu.DebugLevel.debug=Debug
+tinys2.menu.DebugLevel.debug.build.code_debug=4
+tinys2.menu.DebugLevel.verbose=Verbose
+tinys2.menu.DebugLevel.verbose.build.code_debug=5
 
 ##############################################################
 S_ODI_Ultra.name=S.ODI Ultra v1
diff --git a/variants/um_pros2/pins_arduino.h b/variants/um_tinys2/pins_arduino.h
similarity index 83%
rename from variants/um_pros2/pins_arduino.h
rename to variants/um_tinys2/pins_arduino.h
index a793a6b3768..c79f3940295 100644
--- a/variants/um_pros2/pins_arduino.h
+++ b/variants/um_tinys2/pins_arduino.h
@@ -3,10 +3,10 @@
 
 #include <stdint.h>
 
-#define USB_VID 0x239A
-#define USB_PID 0x80A9
+#define USB_VID 0x303A
+#define USB_PID 0x8001
 #define USB_MANUFACTURER "Unexpected Maker"
-#define USB_PRODUCT "ProS2"
+#define USB_PRODUCT "TinyS2"
 #define USB_SERIAL ""
 
 #define EXTERNAL_NUM_INTERRUPTS 46
@@ -23,12 +23,12 @@ static const uint8_t RX = 44;
 static const uint8_t SDA = 8;
 static const uint8_t SCL = 9;
 
-static const uint8_t SS    = 34;
+static const uint8_t SS    = 14;
 static const uint8_t MOSI  = 35;
-static const uint8_t MISO  = 37;
+static const uint8_t MISO  = 36;
 static const uint8_t SDO  = 35;
-static const uint8_t SDI  = 37;
-static const uint8_t SCK   = 36;
+static const uint8_t SDI  = 36;
+static const uint8_t SCK   = 37;
 
 static const uint8_t A0 = 1;
 static const uint8_t A1 = 2;
@@ -69,9 +69,10 @@ static const uint8_t T14 = 14;
 static const uint8_t DAC1 = 17;
 static const uint8_t DAC2 = 18;
 
-static const uint8_t LDO_2_POWER = 21;
+static const uint8_t VBAT_SENSE = 3;
+static const uint8_t VBUS_SENSE = 21;
 
-static const uint8_t APA_DATA = 40;
-static const uint8_t APA_CLK = 45;
+static const uint8_t RGB_DATA = 1;
+static const uint8_t RGB_PWR = 2;
 
 #endif /* Pins_Arduino_h */

From 1d1803f2c967f293ab7cb83d0e61e2a66254fb7d Mon Sep 17 00:00:00 2001
From: Seon Rozenblum <seon@unexpectedmaker.com>
Date: Wed, 14 Apr 2021 05:48:36 +1000
Subject: [PATCH 2/3] Fixed incorrect NUM_OUTPUT_PINS - should be 47 not 45
 This is why my APA doesn't work on my FeatherS2 as it usess IO45 and the
 check is for < not <=

---
 cores/esp32/esp32-hal-gpio.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/cores/esp32/esp32-hal-gpio.h b/cores/esp32/esp32-hal-gpio.h
index f3a61ff9067..65454d2ca85 100644
--- a/cores/esp32/esp32-hal-gpio.h
+++ b/cores/esp32/esp32-hal-gpio.h
@@ -28,7 +28,7 @@ extern "C" {
 #include "soc/soc_caps.h"
 
 #if (CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3)
-#define NUM_OUPUT_PINS  45
+#define NUM_OUPUT_PINS  47
 #define PIN_DAC1        17
 #define PIN_DAC2        18
 #else

From ffd0ef7af21d44f5b6bf0e43a2110ddafc56be82 Mon Sep 17 00:00:00 2001
From: Me No Dev <me-no-dev@users.noreply.github.com>
Date: Thu, 15 Apr 2021 12:51:13 +0300
Subject: [PATCH 3/3] Update esp32-hal-gpio.h

---
 cores/esp32/esp32-hal-gpio.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/cores/esp32/esp32-hal-gpio.h b/cores/esp32/esp32-hal-gpio.h
index 65454d2ca85..d7618392619 100644
--- a/cores/esp32/esp32-hal-gpio.h
+++ b/cores/esp32/esp32-hal-gpio.h
@@ -28,7 +28,7 @@ extern "C" {
 #include "soc/soc_caps.h"
 
 #if (CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3)
-#define NUM_OUPUT_PINS  47
+#define NUM_OUPUT_PINS  46
 #define PIN_DAC1        17
 #define PIN_DAC2        18
 #else