diff --git a/variants/ seeed_s3_gpio/pins_arduino.h b/variants/ seeed_s3_gpio/pins_arduino.h new file mode 100644 index 000000000..4f81c93c5 --- /dev/null +++ b/variants/ seeed_s3_gpio/pins_arduino.h @@ -0,0 +1,21 @@ +#ifndef Pins_Arduino_h +#define Pins_Arduino_h + +#include + +#define USB_VID 0x2886 +#define USB_PID 0x0059 + +// GPIO48 Reference: https://github.com/espressif/arduino-esp32/pull/8600 + +// The default Wire will be mapped to Screen and Sensors +static const uint8_t SDA = 47; +static const uint8_t SCL = 48; + +// Default SPI will be mapped to Radio +static const uint8_t MISO = 8; +static const uint8_t SCK = 7; +static const uint8_t MOSI = 9; +static const uint8_t SS = 5; + +#endif /* Pins_Arduino_h */ diff --git a/variants/ seeed_s3_gpio/platformio.ini b/variants/ seeed_s3_gpio/platformio.ini new file mode 100644 index 000000000..d14376ace --- /dev/null +++ b/variants/ seeed_s3_gpio/platformio.ini @@ -0,0 +1,18 @@ +[env:seeed-xiao-s3-gpio] +extends = esp32s3_base +board = seeed-xiao-s3 +board_check = true +board_build.partitions = default_8MB.csv +upload_protocol = esptool +board_level = extra +upload_speed = 921600 +lib_deps = + ${esp32s3_base.lib_deps} +build_unflags = + ${esp32s3_base.build_unflags} + -DARDUINO_USB_MODE=1 +build_flags = + ${esp32s3_base.build_flags} -DSEEED_XIAO_S3 -I variants/seeed_s3_gpio + -DBOARD_HAS_PSRAM + + -DARDUINO_USB_MODE=0 diff --git a/variants/ seeed_s3_gpio/variant.h b/variants/ seeed_s3_gpio/variant.h new file mode 100644 index 000000000..9bec13501 --- /dev/null +++ b/variants/ seeed_s3_gpio/variant.h @@ -0,0 +1,64 @@ +/* +Board Information: https://www.seeedstudio.com/XIAO-ESP32S3-Sense-p-5639.html +Expansion Board Information : https://www.seeedstudio.com/Seeeduino-XIAO-Expansion-board-p-4746.html +L76K GPS Module Information : https://www.seeedstudio.com/L76K-GNSS-Module-for-Seeed-Studio-XIAO-p-5864.html +*/ + +#define LED_PIN 44 +#define LED_STATE_ON 1 // State when LED is lit + +#define BUTTON_PIN 21 // This is the Program Button +#define BUTTON_NEED_PULLUP + +#define BATTERY_PIN -1 +#define ADC_CHANNEL ADC1_GPIO1_CHANNEL +#define BATTERY_SENSE_RESOLUTION_BITS 12 + +/*Warning: + https://www.seeedstudio.com/L76K-GNSS-Module-for-Seeed-Studio-XIAO-p-5864.html + L76K Expansion Board can not directly used, L76K Reset Pin needs to override or physically remove it, + otherwise it will conflict with the SPI pins +*/ +#define GPS_L76K +#ifdef GPS_L76K +#define GPS_RX_PIN 39 +#define GPS_TX_PIN 40 +#define HAS_GPS 0 +#define GPS_BAUDRATE 9600 +#define GPS_THREAD_INTERVAL 50 +#define PIN_SERIAL1_RX PIN_GPS_TX +#define PIN_SERIAL1_TX PIN_GPS_RX +#define PIN_GPS_STANDBY 1 +#endif + +// XIAO S3 Expansion board has 1.3 inch OLED Screen +#define USCREEN_SSD1306 + +#define I2C_SDA 5 +#define I2C_SCL 6 + +// XIAO S3 LORA module +#define USE_SX1262 + +#define LORA_MISO 8 +#define LORA_SCK 7 +#define LORA_MOSI 9 +#define LORA_CS 4 + +#define LORA_RESET 43 +#define LORA_DIO1 2 + +#define LORA_DIO2 1 + +#ifdef USE_SX1262 +#define SX126X_CS LORA_CS +#define SX126X_DIO1 LORA_DIO1 +#define SX126X_BUSY 3 +#define SX126X_RESET LORA_RESET + +// DIO2 controlls an antenna switch and the TCXO voltage is controlled by DIO3 +#define SX126X_DIO2_AS_RF_SWITCH +#define SX126X_RXEN 1 +#define SX126X_TXEN RADIOLIB_NC +#define SX126X_DIO3_TCXO_VOLTAGE 1.8 +#endif