diff --git a/boards/esp32s3_supermini.json b/boards/esp32s3_supermini.json new file mode 100644 index 0000000..0a80a12 --- /dev/null +++ b/boards/esp32s3_supermini.json @@ -0,0 +1,48 @@ +{ + "build": { + "arduino": { + "ldscript": "esp32s3_out.ld", + "memory_type": "qio_qspi" + }, + "core": "esp32", + "extra_flags": [ + "-DARDUINO_ESP32S3_SUPERMINI", + "-DBOARD_HAS_PSRAM", + "-DARDUINO_USB_CDC_ON_BOOT=1" + ], + "f_cpu": "240000000L", + "f_flash": "80000000L", + "flash_mode": "qio", + "hwids": [ + [ + "0x303D", + "0x100D" + ] + ], + "mcu": "esp32s3", + "variants_dir": "boards/variants", + "variant": "esp32s3_supermini" + }, + "connectivity": [ + "bluetooth", + "wifi" + ], + "debug": { + "openocd_target": "esp32s3.cfg" + }, + "frameworks": [ + "arduino", + "espidf" + ], + "name": "ESP32-S3 SuperMini", + "upload": { + "flash_size": "4MB", + "maximum_ram_size": 327680, + "maximum_size": 4194304, + "require_upload_port": true, + "speed": 460800 + }, + "url": "https://www.aliexpress.com", + "vendor": "AliExpress" +} + \ No newline at end of file diff --git a/boards/variants/esp32s3_supermini/pins_arduino.h b/boards/variants/esp32s3_supermini/pins_arduino.h new file mode 100644 index 0000000..65346a8 --- /dev/null +++ b/boards/variants/esp32s3_supermini/pins_arduino.h @@ -0,0 +1,64 @@ +#ifndef Pins_Arduino_h +#define Pins_Arduino_h + +#include + +#include "soc/soc_caps.h" + +#define USB_VID 0x303d +#define USB_PID 0x100d + +static const uint8_t LED_BUILTIN = SOC_GPIO_PIN_COUNT + 48; +#define BUILTIN_LED LED_BUILTIN // backward compatibility +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN +#define RGB_BUILTIN LED_BUILTIN +#undef RGB_BRIGHTNESS +#define RGB_BRIGHTNESS 4 // 64 max + +// uart0 +static const uint8_t TX = 43; +static const uint8_t RX = 44; + +static const uint8_t SDA = 5; +static const uint8_t SCL = 6; + +static const uint8_t SS = 10; +static const uint8_t MOSI = 11; +static const uint8_t MISO = 13; +static const uint8_t SCK = 12; + +// adc +static const uint8_t A0 = 1; +static const uint8_t A1 = 2; +static const uint8_t A2 = 3; +static const uint8_t A3 = 4; +static const uint8_t A4 = 5; +static const uint8_t A5 = 6; +static const uint8_t A6 = 7; +static const uint8_t A7 = 8; +static const uint8_t A8 = 9; +static const uint8_t A9 = 10; +static const uint8_t A10 = 11; +static const uint8_t A11 = 12; +static const uint8_t A12 = 13; +static const uint8_t A13 = 14; +static const uint8_t A14 = 15; +static const uint8_t A15 = 16; + +// touch +static const uint8_t T1 = 1; +static const uint8_t T2 = 2; +static const uint8_t T3 = 3; +static const uint8_t T4 = 4; +static const uint8_t T5 = 5; +static const uint8_t T6 = 6; +static const uint8_t T7 = 7; +static const uint8_t T8 = 8; +static const uint8_t T9 = 9; +static const uint8_t T10 = 10; +static const uint8_t T11 = 11; +static const uint8_t T12 = 12; +static const uint8_t T13 = 13; +static const uint8_t T14 = 14; + +#endif /* Pins_Arduino_h */ diff --git a/platformio-tools.ini b/platformio-tools.ini index 542a710..e95a343 100644 --- a/platformio-tools.ini +++ b/platformio-tools.ini @@ -145,3 +145,19 @@ build_flags = -DESP32C3 -D BOARD=BOARD_XIAO_ESP32C3 board = seeed_xiao_esp32c3 + +[env:BOARD_ESP32S3_SUPERMINI] +platform = espressif32 @ 6.7.0 +platform_packages = + framework-arduinoespressif32 @ https://github.com/espressif/arduino-esp32.git#3.0.1 + framework-arduinoespressif32-libs @ https://github.com/espressif/arduino-esp32/releases/download/3.0.1/esp32-arduino-libs-3.0.1.zip +build_flags = + ${env.build_flags} + -DARDUINO_USB_MODE=1 + -DESP32S3 + -D BOARD=BOARD_ESP32S3_SUPERMINI +board = esp32s3_supermini +board_upload.use_1200bps_touch = 1 +board_upload.wait_for_upload_port = 1 +board_upload.require_upload_port = 1 +upload_speed = 921600 diff --git a/platformio.ini b/platformio.ini index b745010..fd7dbd0 100644 --- a/platformio.ini +++ b/platformio.ini @@ -122,3 +122,18 @@ upload_speed = 921600 ; -DESP32C6 ; -DARDUINO_USB_MODE=1 ; -DARDUINO_USB_CDC_ON_BOOT=1 + +;[env:BOARD_ESP32S3_SUPERMINI] +;platform = espressif32 @ 6.7.0 +;platform_packages = +; framework-arduinoespressif32 @ https://github.com/espressif/arduino-esp32.git#3.0.1 +; framework-arduinoespressif32-libs @ https://github.com/espressif/arduino-esp32/releases/download/3.0.1/esp32-arduino-libs-3.0.1.zip +;build_flags = +; ${env.build_flags} +; -DARDUINO_USB_MODE=1 +; -DESP32S3 +;board = esp32s3_supermini +;board_upload.use_1200bps_touch = 1 +;board_upload.wait_for_upload_port = 1 +;board_upload.require_upload_port = 1 +;upload_speed = 921600 diff --git a/src/boards/boards_default.h b/src/boards/boards_default.h index 72fb245..f329728 100644 --- a/src/boards/boards_default.h +++ b/src/boards/boards_default.h @@ -173,6 +173,18 @@ BATTERY_SHIELD_R(0) BATTERY_R1(10) BATTERY_R2(40.2) +#elif BOARD == BOARD_ESP32S3_SUPERMINI + +SDA(7) +SCL(6) +INT(5) +INT2(4) +BATTERY(A2) // IO3 +BATTERY_SHIELD_R(0) +BATTERY_R1(10) +BATTERY_R2(40.2) +LED(LED_BUILTIN) + #endif // Default IMU pinouts and definitions for default tracker types diff --git a/src/consts.h b/src/consts.h index 814447a..76119c5 100644 --- a/src/consts.h +++ b/src/consts.h @@ -95,6 +95,7 @@ enum class SensorTypeID : uint8_t { #define BOARD_GLOVE_IMU_SLIMEVR_DEV 20 // IMU Glove #define BOARD_GESTURES 21 // Used by Gestures #define BOARD_SLIMEVR_V1_2 22 // SlimeVR v1.2 +#define BOARD_ESP32S3_SUPERMINI 23 #define BOARD_DEV_RESERVED 250 // Reserved, should not be used in any release firmware #define BAT_EXTERNAL 1