diff --git a/boards.txt b/boards.txt
index 96966b9bdac..fb112eefd86 100644
--- a/boards.txt
+++ b/boards.txt
@@ -4811,6 +4811,190 @@ lilygo_t_eth_lite.menu.EraseFlash.none.upload.erase_cmd=
 lilygo_t_eth_lite.menu.EraseFlash.all=Enabled
 lilygo_t_eth_lite.menu.EraseFlash.all.upload.erase_cmd=-e
 
+
+##############################################################
+
+lilygo_t3s3.name=LilyGo T3-S3
+
+lilygo_t3s3.upload.tool=esptool_py
+lilygo_t3s3.upload.tool.default=esptool_py
+lilygo_t3s3.upload.tool.network=esp_ota
+lilygo_t3s3.upload.maximum_size=1310720
+lilygo_t3s3.upload.maximum_data_size=327680
+lilygo_t3s3.upload.wait_for_upload_port=false
+lilygo_t3s3.upload.speed=460800
+lilygo_t3s3.upload.flags=
+lilygo_t3s3.upload.extra_flags=
+
+lilygo_t3s3.bootloader.tool=esptool_py
+lilygo_t3s3.bootloader.tool.default=esptool_py
+
+lilygo_t3s3.serial.disableDTR=true
+lilygo_t3s3.serial.disableRTS=true
+
+lilygo_t3s3.build.tarch=xtensa
+lilygo_t3s3.build.bootloader_addr=0x0
+lilygo_t3s3.build.mcu=esp32s3
+lilygo_t3s3.build.core=esp32
+lilygo_t3s3.build.target=esp32s3
+lilygo_t3s3.build.board=LILYGO_T3_S3
+
+lilygo_t3s3.build.usb_mode=1
+lilygo_t3s3.build.cdc_on_boot=1
+lilygo_t3s3.build.msc_on_boot=0
+lilygo_t3s3.build.dfu_on_boot=0
+
+lilygo_t3s3.build.f_cpu=240000000L
+lilygo_t3s3.build.flash_size=4MB
+lilygo_t3s3.build.flash_freq=80m
+lilygo_t3s3.build.flash_mode=dio
+lilygo_t3s3.build.boot=dio
+lilygo_t3s3.build.partitions=default
+lilygo_t3s3.build.defines=
+
+lilygo_t3s3.menu.PSRAM.disabled=Disabled
+lilygo_t3s3.menu.PSRAM.disabled.build.defines=
+lilygo_t3s3.menu.PSRAM.enabled=Enabled
+lilygo_t3s3.menu.PSRAM.enabled.build.defines=-DBOARD_HAS_PSRAM
+lilygo_t3s3.menu.PSRAM.enabled.build.psram_type=qspi
+
+lilygo_t3s3.menu.LoopCore.1=Core 1
+lilygo_t3s3.menu.LoopCore.1.build.loop_core=-DARDUINO_RUNNING_CORE=1
+lilygo_t3s3.menu.LoopCore.0=Core 0
+lilygo_t3s3.menu.LoopCore.0.build.loop_core=-DARDUINO_RUNNING_CORE=0
+
+lilygo_t3s3.menu.EventsCore.1=Core 1
+lilygo_t3s3.menu.EventsCore.1.build.event_core=-DARDUINO_EVENT_RUNNING_CORE=1
+lilygo_t3s3.menu.EventsCore.0=Core 0
+lilygo_t3s3.menu.EventsCore.0.build.event_core=-DARDUINO_EVENT_RUNNING_CORE=0
+
+lilygo_t3s3.menu.USBMode.hwcdc=Hardware CDC and JTAG
+lilygo_t3s3.menu.USBMode.hwcdc.build.usb_mode=1
+lilygo_t3s3.menu.USBMode.default=USB-OTG (TinyUSB)
+lilygo_t3s3.menu.USBMode.default.build.usb_mode=0
+
+lilygo_t3s3.menu.CDCOnBoot.default=Disabled
+lilygo_t3s3.menu.CDCOnBoot.default.build.cdc_on_boot=0
+lilygo_t3s3.menu.CDCOnBoot.cdc=Enabled
+lilygo_t3s3.menu.CDCOnBoot.cdc.build.cdc_on_boot=1
+
+lilygo_t3s3.menu.MSCOnBoot.default=Disabled
+lilygo_t3s3.menu.MSCOnBoot.default.build.msc_on_boot=0
+lilygo_t3s3.menu.MSCOnBoot.msc=Enabled (Requires USB-OTG Mode)
+lilygo_t3s3.menu.MSCOnBoot.msc.build.msc_on_boot=1
+
+lilygo_t3s3.menu.DFUOnBoot.default=Disabled
+lilygo_t3s3.menu.DFUOnBoot.default.build.dfu_on_boot=0
+lilygo_t3s3.menu.DFUOnBoot.dfu=Enabled (Requires USB-OTG Mode)
+lilygo_t3s3.menu.DFUOnBoot.dfu.build.dfu_on_boot=1
+
+lilygo_t3s3.menu.UploadMode.default=UART0 / Hardware CDC
+lilygo_t3s3.menu.UploadMode.default.upload.use_1200bps_touch=false
+lilygo_t3s3.menu.UploadMode.default.upload.wait_for_upload_port=false
+lilygo_t3s3.menu.UploadMode.cdc=USB-OTG CDC (TinyUSB)
+lilygo_t3s3.menu.UploadMode.cdc.upload.use_1200bps_touch=true
+lilygo_t3s3.menu.UploadMode.cdc.upload.wait_for_upload_port=true
+
+lilygo_t3s3.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS)
+lilygo_t3s3.menu.PartitionScheme.default.build.partitions=default
+lilygo_t3s3.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS)
+lilygo_t3s3.menu.PartitionScheme.defaultffat.build.partitions=default_ffat
+lilygo_t3s3.menu.PartitionScheme.minimal=Minimal (1.3MB APP/700KB SPIFFS)
+lilygo_t3s3.menu.PartitionScheme.minimal.build.partitions=minimal
+lilygo_t3s3.menu.PartitionScheme.no_ota=No OTA (2MB APP/2MB SPIFFS)
+lilygo_t3s3.menu.PartitionScheme.no_ota.build.partitions=no_ota
+lilygo_t3s3.menu.PartitionScheme.no_ota.upload.maximum_size=2097152
+lilygo_t3s3.menu.PartitionScheme.noota_3g=No OTA (1MB APP/3MB SPIFFS)
+lilygo_t3s3.menu.PartitionScheme.noota_3g.build.partitions=noota_3g
+lilygo_t3s3.menu.PartitionScheme.noota_3g.upload.maximum_size=1048576
+lilygo_t3s3.menu.PartitionScheme.noota_ffat=No OTA (2MB APP/2MB FATFS)
+lilygo_t3s3.menu.PartitionScheme.noota_ffat.build.partitions=noota_ffat
+lilygo_t3s3.menu.PartitionScheme.noota_ffat.upload.maximum_size=2097152
+lilygo_t3s3.menu.PartitionScheme.noota_3gffat=No OTA (1MB APP/3MB FATFS)
+lilygo_t3s3.menu.PartitionScheme.noota_3gffat.build.partitions=noota_3gffat
+lilygo_t3s3.menu.PartitionScheme.noota_3gffat.upload.maximum_size=1048576
+lilygo_t3s3.menu.PartitionScheme.huge_app=Huge APP (3MB No OTA/1MB SPIFFS)
+lilygo_t3s3.menu.PartitionScheme.huge_app.build.partitions=huge_app
+lilygo_t3s3.menu.PartitionScheme.huge_app.upload.maximum_size=3145728
+lilygo_t3s3.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS)
+lilygo_t3s3.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs
+lilygo_t3s3.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080
+
+lilygo_t3s3.menu.CPUFreq.240=240MHz (WiFi/BT)
+lilygo_t3s3.menu.CPUFreq.240.build.f_cpu=240000000L
+lilygo_t3s3.menu.CPUFreq.160=160MHz (WiFi/BT)
+lilygo_t3s3.menu.CPUFreq.160.build.f_cpu=160000000L
+lilygo_t3s3.menu.CPUFreq.80=80MHz (WiFi/BT)
+lilygo_t3s3.menu.CPUFreq.80.build.f_cpu=80000000L
+
+lilygo_t3s3.menu.FlashMode.qio=QIO
+lilygo_t3s3.menu.FlashMode.qio.build.flash_mode=dio
+lilygo_t3s3.menu.FlashMode.qio.build.boot=qio
+lilygo_t3s3.menu.FlashMode.dio=DIO
+lilygo_t3s3.menu.FlashMode.dio.build.flash_mode=dio
+lilygo_t3s3.menu.FlashMode.dio.build.boot=dio
+
+lilygo_t3s3.menu.FlashFreq.80=80MHz
+lilygo_t3s3.menu.FlashFreq.80.build.flash_freq=80m
+lilygo_t3s3.menu.FlashFreq.40=40MHz
+lilygo_t3s3.menu.FlashFreq.40.build.flash_freq=40m
+
+lilygo_t3s3.menu.UploadSpeed.921600=921600
+lilygo_t3s3.menu.UploadSpeed.921600.upload.speed=921600
+lilygo_t3s3.menu.UploadSpeed.115200=115200
+lilygo_t3s3.menu.UploadSpeed.115200.upload.speed=115200
+lilygo_t3s3.menu.UploadSpeed.256000.windows=256000
+lilygo_t3s3.menu.UploadSpeed.256000.upload.speed=256000
+lilygo_t3s3.menu.UploadSpeed.230400.windows.upload.speed=256000
+lilygo_t3s3.menu.UploadSpeed.230400=230400
+lilygo_t3s3.menu.UploadSpeed.230400.upload.speed=230400
+lilygo_t3s3.menu.UploadSpeed.460800.linux=460800
+lilygo_t3s3.menu.UploadSpeed.460800.macosx=460800
+lilygo_t3s3.menu.UploadSpeed.460800.upload.speed=460800
+lilygo_t3s3.menu.UploadSpeed.512000.windows=512000
+lilygo_t3s3.menu.UploadSpeed.512000.upload.speed=512000
+
+lilygo_t3s3.menu.DebugLevel.none=None
+lilygo_t3s3.menu.DebugLevel.none.build.code_debug=0
+lilygo_t3s3.menu.DebugLevel.error=Error
+lilygo_t3s3.menu.DebugLevel.error.build.code_debug=1
+lilygo_t3s3.menu.DebugLevel.warn=Warn
+lilygo_t3s3.menu.DebugLevel.warn.build.code_debug=2
+lilygo_t3s3.menu.DebugLevel.info=Info
+lilygo_t3s3.menu.DebugLevel.info.build.code_debug=3
+lilygo_t3s3.menu.DebugLevel.debug=Debug
+lilygo_t3s3.menu.DebugLevel.debug.build.code_debug=4
+lilygo_t3s3.menu.DebugLevel.verbose=Verbose
+lilygo_t3s3.menu.DebugLevel.verbose.build.code_debug=5
+
+lilygo_t3s3.menu.EraseFlash.none=Disabled
+lilygo_t3s3.menu.EraseFlash.none.upload.erase_cmd=
+lilygo_t3s3.menu.EraseFlash.all=Enabled
+lilygo_t3s3.menu.EraseFlash.all.upload.erase_cmd=-e
+
+lilygo_t3s3.menu.Revision.Radio_SX1262=Radio-SX1262
+lilygo_t3s3.menu.Revision.Radio_SX1262.build.board=LILYGO_T3S3_SX1262
+lilygo_t3s3.menu.Revision.Radio_SX1262.build.variant=lilygo_t3_s3_sx1262
+
+lilygo_t3s3.menu.Revision.Radio_SX1276=Radio-SX1276
+lilygo_t3s3.menu.Revision.Radio_SX1276.build.board=LILYGO_T3S3_SX1276
+lilygo_t3s3.menu.Revision.Radio_SX1276.build.variant=lilygo_t3_s3_sx127x
+
+lilygo_t3s3.menu.Revision.Radio_SX1278=Radio-SX1278
+lilygo_t3s3.menu.Revision.Radio_SX1278.build.board=LILYGO_T3S3_SX1278
+lilygo_t3s3.menu.Revision.Radio_SX1278.build.variant=lilygo_t3_s3_sx127x
+
+lilygo_t3s3.menu.Revision.Radio_SX1280=Radio-SX1280
+lilygo_t3s3.menu.Revision.Radio_SX1280.build.board=LILYGO_T3S3_SX1280
+lilygo_t3s3.menu.Revision.Radio_SX1280.build.variant=lilygo_t3_s3_sx1280
+
+lilygo_t3s3.menu.Revision.Radio_SX1280PA=Radio-SX1280PA
+lilygo_t3s3.menu.Revision.Radio_SX1280PA.build.board=LILYGO_T3S3_SX1280PA
+lilygo_t3s3.menu.Revision.Radio_SX1280PA.build.variant=lilygo_t3_s3_sx1280pa
+
+lilygo_t3s3.menu.Revision.Radio_LR1121=Radio-LR1121
+lilygo_t3s3.menu.Revision.Radio_LR1121.build.board=LILYGO_T3S3_LR1121
+lilygo_t3s3.menu.Revision.Radio_LR1121.build.variant=lilygo_t3_s3_lr1121
 ##############################################################
 
 micros2.name=microS2
diff --git a/variants/lilygo_t3_s3_lr1121/pins_arduino.h b/variants/lilygo_t3_s3_lr1121/pins_arduino.h
new file mode 100644
index 00000000000..70fc3502dab
--- /dev/null
+++ b/variants/lilygo_t3_s3_lr1121/pins_arduino.h
@@ -0,0 +1,67 @@
+#ifndef Pins_Arduino_h
+#define Pins_Arduino_h
+
+#include <stdint.h>
+
+#define USB_VID 0x303a
+#define USB_PID 0x820A
+
+static const uint8_t LED_BUILTIN = 37;
+#define BUILTIN_LED LED_BUILTIN  // backward compatibility
+#define LED_BUILTIN LED_BUILTIN  // allow testing #ifdef LED_BUILTIN
+
+static const uint8_t BUTTON_1 = 0;
+static const uint8_t BAT_VOLT = 1;
+
+static const uint8_t TX = 43;
+static const uint8_t RX = 44;
+
+static const uint8_t SDA = 18;
+static const uint8_t SCL = 17;
+
+#define WIRE1_PIN_DEFINED  //QWIIC
+static const uint8_t SDA1 = 10;
+static const uint8_t SCL1 = 21;
+
+// SD Card SPI
+static const uint8_t SS = 13;
+static const uint8_t MOSI = 11;
+static const uint8_t MISO = 2;
+static const uint8_t SCK = 14;
+
+#define LORA_SCK  5  // LR1121 SCK
+#define LORA_MISO 3  // LR1121 MISO
+#define LORA_MOSI 6  // LR1121 MOSI
+#define LORA_CS   7  // LR1121 CS
+#define LORA_RST  8  // LR1121 RST
+
+#define LORA_DIO9 36  // LR1121 DIO9
+#define LORA_BUSY 34  // LR1121 BUSY
+#define LORA_IRQ  LORA_DIO9
+
+// P1
+static const uint8_t PIN_42 = 45;
+static const uint8_t PIN_46 = 46;
+static const uint8_t PIN_45 = 45;
+static const uint8_t PIN_41 = 41;
+static const uint8_t PIN_40 = 40;
+static const uint8_t PIN_39 = 39;
+static const uint8_t PIN_43 = 43;
+static const uint8_t PIN_44 = 44;
+static const uint8_t PIN_38 = 38;
+
+// P2
+static const uint8_t PIN_37 = 37;
+static const uint8_t PIN_36 = 36;
+static const uint8_t PIN_0 = 0;
+static const uint8_t PIN_35 = 35;
+static const uint8_t PIN_34 = 34;
+static const uint8_t PIN_33 = 33;
+static const uint8_t PIN_47 = 47;
+static const uint8_t PIN_48 = 48;
+static const uint8_t PIN_12 = 12;
+static const uint8_t PIN_8 = 8;
+static const uint8_t PIN_15 = 15;
+static const uint8_t PIN_16 = 16;
+
+#endif /* Pins_Arduino_h */
diff --git a/variants/lilygo_t3_s3_sx1262/pins_arduino.h b/variants/lilygo_t3_s3_sx1262/pins_arduino.h
new file mode 100644
index 00000000000..8fbf0b31066
--- /dev/null
+++ b/variants/lilygo_t3_s3_sx1262/pins_arduino.h
@@ -0,0 +1,67 @@
+#ifndef Pins_Arduino_h
+#define Pins_Arduino_h
+
+#include <stdint.h>
+
+#define USB_VID 0x303a
+#define USB_PID 0x820A
+
+static const uint8_t LED_BUILTIN = 37;
+#define BUILTIN_LED LED_BUILTIN  // backward compatibility
+#define LED_BUILTIN LED_BUILTIN  // allow testing #ifdef LED_BUILTIN
+
+static const uint8_t BUTTON_1 = 0;
+static const uint8_t BAT_VOLT = 1;
+
+static const uint8_t TX = 43;
+static const uint8_t RX = 44;
+
+static const uint8_t SDA = 18;
+static const uint8_t SCL = 17;
+
+#define WIRE1_PIN_DEFINED  //QWIIC
+static const uint8_t SDA1 = 10;
+static const uint8_t SCL1 = 21;
+
+// SD Card SPI
+static const uint8_t SS = 13;
+static const uint8_t MOSI = 11;
+static const uint8_t MISO = 2;
+static const uint8_t SCK = 14;
+
+#define LORA_SCK  5  // SX1262 SCK
+#define LORA_MISO 3  // SX1262 MISO
+#define LORA_MOSI 6  // SX1262 MOSI
+#define LORA_CS   7  // SX1262 CS
+#define LORA_RST  8  // SX1262 RST
+
+#define LORA_DIO1 33  //SX1262 DIO1
+#define LORA_BUSY 34
+#define LORA_IRQ  LORA_DIO1
+
+// P1
+static const uint8_t PIN_42 = 45;
+static const uint8_t PIN_46 = 46;
+static const uint8_t PIN_45 = 45;
+static const uint8_t PIN_41 = 41;
+static const uint8_t PIN_40 = 40;
+static const uint8_t PIN_39 = 39;
+static const uint8_t PIN_43 = 43;
+static const uint8_t PIN_44 = 44;
+static const uint8_t PIN_38 = 38;
+
+// P2
+static const uint8_t PIN_37 = 37;
+static const uint8_t PIN_36 = 36;
+static const uint8_t PIN_0 = 0;
+static const uint8_t PIN_35 = 35;
+static const uint8_t PIN_34 = 34;
+static const uint8_t PIN_33 = 33;
+static const uint8_t PIN_47 = 47;
+static const uint8_t PIN_48 = 48;
+static const uint8_t PIN_12 = 12;
+static const uint8_t PIN_8 = 8;
+static const uint8_t PIN_15 = 15;
+static const uint8_t PIN_16 = 16;
+
+#endif /* Pins_Arduino_h */
diff --git a/variants/lilygo_t3_s3_sx127x/pins_arduino.h b/variants/lilygo_t3_s3_sx127x/pins_arduino.h
new file mode 100644
index 00000000000..1b3e0a99239
--- /dev/null
+++ b/variants/lilygo_t3_s3_sx127x/pins_arduino.h
@@ -0,0 +1,74 @@
+#ifndef Pins_Arduino_h
+#define Pins_Arduino_h
+
+#include <stdint.h>
+
+#define USB_VID 0x303a
+#define USB_PID 0x820A
+
+static const uint8_t LED_BUILTIN = 37;
+#define BUILTIN_LED LED_BUILTIN  // backward compatibility
+#define LED_BUILTIN LED_BUILTIN  // allow testing #ifdef LED_BUILTIN
+
+static const uint8_t BUTTON_1 = 0;
+static const uint8_t BAT_VOLT = 1;
+
+static const uint8_t TX = 43;
+static const uint8_t RX = 44;
+
+static const uint8_t SDA = 18;
+static const uint8_t SCL = 17;
+
+#define WIRE1_PIN_DEFINED  //QWIIC
+static const uint8_t SDA1 = 10;
+static const uint8_t SCL1 = 21;
+
+// SD Card SPI
+static const uint8_t SS = 13;
+static const uint8_t MOSI = 11;
+static const uint8_t MISO = 2;
+static const uint8_t SCK = 14;
+
+#define LORA_SCK  5  // SX1276/SX1278 SCK
+#define LORA_MISO 3  // SX1276/SX1278 MISO
+#define LORA_MOSI 6  // SX1276/SX1278 MOSI
+#define LORA_CS   7  // SX1276/SX1278 CS
+#define LORA_RST  8  // SX1276/SX1278 RST
+
+#define LORA_BUSY 33
+#define LORA_DIO0 9  //IRQ
+#define LORA_DIO1 33
+#define LORA_DIO2 34
+#define LORA_DIO3 21
+#define LORA_DIO4 10
+#define LORA_DIO5 36
+
+#define LORA_IRQ  LORA_DIO0
+#define LORA_BUSY LORA_DIO1
+
+// P1
+static const uint8_t PIN_42 = 45;
+static const uint8_t PIN_46 = 46;
+static const uint8_t PIN_45 = 45;
+static const uint8_t PIN_41 = 41;
+static const uint8_t PIN_40 = 40;
+static const uint8_t PIN_39 = 39;
+static const uint8_t PIN_43 = 43;
+static const uint8_t PIN_44 = 44;
+static const uint8_t PIN_38 = 38;
+
+// P2
+static const uint8_t PIN_37 = 37;
+static const uint8_t PIN_36 = 36;
+static const uint8_t PIN_0 = 0;
+static const uint8_t PIN_35 = 35;
+static const uint8_t PIN_34 = 34;
+static const uint8_t PIN_33 = 33;
+static const uint8_t PIN_47 = 47;
+static const uint8_t PIN_48 = 48;
+static const uint8_t PIN_12 = 12;
+static const uint8_t PIN_8 = 8;
+static const uint8_t PIN_15 = 15;
+static const uint8_t PIN_16 = 16;
+
+#endif /* Pins_Arduino_h */
diff --git a/variants/lilygo_t3_s3_sx1280/pins_arduino.h b/variants/lilygo_t3_s3_sx1280/pins_arduino.h
new file mode 100644
index 00000000000..ba342f3b8e9
--- /dev/null
+++ b/variants/lilygo_t3_s3_sx1280/pins_arduino.h
@@ -0,0 +1,67 @@
+#ifndef Pins_Arduino_h
+#define Pins_Arduino_h
+
+#include <stdint.h>
+
+#define USB_VID 0x303a
+#define USB_PID 0x820A
+
+static const uint8_t LED_BUILTIN = 37;
+#define BUILTIN_LED LED_BUILTIN  // backward compatibility
+#define LED_BUILTIN LED_BUILTIN  // allow testing #ifdef LED_BUILTIN
+
+static const uint8_t BUTTON_1 = 0;
+static const uint8_t BAT_VOLT = 1;
+
+static const uint8_t TX = 43;
+static const uint8_t RX = 44;
+
+static const uint8_t SDA = 18;
+static const uint8_t SCL = 17;
+
+#define WIRE1_PIN_DEFINED  //QWIIC
+static const uint8_t SDA1 = 10;
+static const uint8_t SCL1 = 21;
+
+// SD Card SPI
+static const uint8_t SS = 13;
+static const uint8_t MOSI = 11;
+static const uint8_t MISO = 2;
+static const uint8_t SCK = 14;
+
+#define LORA_SCK  5  // SX1280 SCK
+#define LORA_MISO 3  // SX1280 MISO
+#define LORA_MOSI 6  // SX1280 MOSI
+#define LORA_CS   7  // SX1280 CS
+#define LORA_RST  8  // SX1280 RST
+
+#define LORA_DIO1 9   // SX1280 DIO1
+#define LORA_BUSY 36  // SX1280 BUSY
+#define LORA_IRQ  LORA_DIO1
+
+// P1
+static const uint8_t PIN_42 = 45;
+static const uint8_t PIN_46 = 46;
+static const uint8_t PIN_45 = 45;
+static const uint8_t PIN_41 = 41;
+static const uint8_t PIN_40 = 40;
+static const uint8_t PIN_39 = 39;
+static const uint8_t PIN_43 = 43;
+static const uint8_t PIN_44 = 44;
+static const uint8_t PIN_38 = 38;
+
+// P2
+static const uint8_t PIN_37 = 37;
+static const uint8_t PIN_36 = 36;
+static const uint8_t PIN_0 = 0;
+static const uint8_t PIN_35 = 35;
+static const uint8_t PIN_34 = 34;
+static const uint8_t PIN_33 = 33;
+static const uint8_t PIN_47 = 47;
+static const uint8_t PIN_48 = 48;
+static const uint8_t PIN_12 = 12;
+static const uint8_t PIN_8 = 8;
+static const uint8_t PIN_15 = 15;
+static const uint8_t PIN_16 = 16;
+
+#endif /* Pins_Arduino_h */
diff --git a/variants/lilygo_t3_s3_sx1280pa/pins_arduino.h b/variants/lilygo_t3_s3_sx1280pa/pins_arduino.h
new file mode 100644
index 00000000000..03212754a69
--- /dev/null
+++ b/variants/lilygo_t3_s3_sx1280pa/pins_arduino.h
@@ -0,0 +1,66 @@
+#ifndef Pins_Arduino_h
+#define Pins_Arduino_h
+
+#include <stdint.h>
+
+#define USB_VID 0x303a
+#define USB_PID 0x820A
+
+static const uint8_t LED_BUILTIN = 37;
+#define BUILTIN_LED LED_BUILTIN  // backward compatibility
+#define LED_BUILTIN LED_BUILTIN  // allow testing #ifdef LED_BUILTIN
+
+static const uint8_t BUTTON_1 = 0;
+static const uint8_t BAT_VOLT = 1;
+
+static const uint8_t TX = 43;
+static const uint8_t RX = 44;
+
+static const uint8_t SDA = 18;
+static const uint8_t SCL = 17;
+
+// SD Card SPI
+static const uint8_t SS = 13;
+static const uint8_t MOSI = 11;
+static const uint8_t MISO = 2;
+static const uint8_t SCK = 14;
+
+#define LORA_SCK  5  // SX1280PA SCK
+#define LORA_MISO 3  // SX1280PA MISO
+#define LORA_MOSI 6  // SX1280PA MOSI
+#define LORA_CS   7  // SX1280PA CS
+#define LORA_RST  8  // SX1280PA RST
+
+#define LORA_DIO1 9   // SX1280 DIO1
+#define LORA_BUSY 36  // SX1280 BUSY
+#define LORA_IRQ  LORA_DIO1
+
+#define LORA_RX 21  // SX1280PA RX SWITCH
+#define LORA_TX 10  // SX1280PA TX SWITCH
+
+// P1
+static const uint8_t PIN_42 = 45;
+static const uint8_t PIN_46 = 46;
+static const uint8_t PIN_45 = 45;
+static const uint8_t PIN_41 = 41;
+static const uint8_t PIN_40 = 40;
+static const uint8_t PIN_39 = 39;
+static const uint8_t PIN_43 = 43;
+static const uint8_t PIN_44 = 44;
+static const uint8_t PIN_38 = 38;
+
+// P2
+static const uint8_t PIN_37 = 37;
+static const uint8_t PIN_36 = 36;
+static const uint8_t PIN_0 = 0;
+static const uint8_t PIN_35 = 35;
+static const uint8_t PIN_34 = 34;
+static const uint8_t PIN_33 = 33;
+static const uint8_t PIN_47 = 47;
+static const uint8_t PIN_48 = 48;
+static const uint8_t PIN_12 = 12;
+static const uint8_t PIN_8 = 8;
+static const uint8_t PIN_15 = 15;
+static const uint8_t PIN_16 = 16;
+
+#endif /* Pins_Arduino_h */