diff --git a/bpi_picow_esp32_s3.json b/bpi_picow_esp32_s3.json new file mode 100644 index 00000000..75983d84 --- /dev/null +++ b/bpi_picow_esp32_s3.json @@ -0,0 +1,38 @@ +{ + "build": { + "arduino": { + "ldscript": "esp32s3_out.ld" + }, + "core": "esp32", + "extra_flags": [ + "-DARDUINO_USB_CDC_ON_BOOT=1", + "-DARDUINO_USB_MODE=0", + "-DARDUINO_RUNNING_CORE=1", + "-DARDUINO_EVENT_RUNNING_CORE=1", + "-DBOARD_HAS_PSRAM" + ], + "f_cpu": "240000000L", + "f_flash": "80000000L", + "flash_mode": "dio", + "hwids": [["0x303A", "0x1001"]], + "mcu": "esp32s3", + "variant": "bpi_picow_esp32_s3" + }, + "connectivity": ["wifi"], + "debug": { + "openocd_target": "esp32s3.cfg" + }, + "frameworks": ["arduino", "espidf"], + "name": "BPI-PicoW-S3 (8 MB FLASH, 2 MB PSRAM)", + "upload": { + "flash_size": "8MB", + "maximum_ram_size": 327680, + "maximum_size": 8388608, + "use_1200bps_touch": true, + "wait_for_upload_port": true, + "require_upload_port": true, + "speed": 921600 + }, + "url": "https://wiki.banana-pi.org/BPI-PicoW-S3", + "vendor": "BPI" +} diff --git a/variants/bpi_picow_esp32_s3/pins_arduino.h b/variants/bpi_picow_esp32_s3/pins_arduino.h new file mode 100644 index 00000000..ee0e34eb --- /dev/null +++ b/variants/bpi_picow_esp32_s3/pins_arduino.h @@ -0,0 +1,37 @@ +#ifndef Pins_Arduino_h +#define Pins_Arduino_h + +#include + +#define USB_VID 0x303a +#define USB_PID 0x1001 + +#define EXTERNAL_NUM_INTERRUPTS 46 +#define NUM_DIGITAL_PINS 48 +#define NUM_ANALOG_INPUTS 20 + +#define analogInputToDigitalPin(p) (((p) < 20) ? (analogChannelToDigitalPin(p)) : -1) +#define digitalPinToInterrupt(p) (((p) < 48) ? (p) : -1) +#define digitalPinHasPWM(p) (p < 46) + +static const uint8_t TX = 43; +static const uint8_t RX = 44; + +// The default Wire will be mapped to PMU and RTC +static const uint8_t SDA = 12; +static const uint8_t SCL = 14; + +// Default SPI will be mapped to Radio +static const uint8_t MISO = 39; +static const uint8_t SCK = 21; +static const uint8_t MOSI = 38; +static const uint8_t SS = 17; + +//#define SPI_MOSI (11) +//#define SPI_SCK (14) +//#define SPI_MISO (2) +//#define SPI_CS (13) + +//#define SDCARD_CS SPI_CS + +#endif /* Pins_Arduino_h */ \ No newline at end of file diff --git a/variants/bpi_picow_esp32_s3/platformio.ini b/variants/bpi_picow_esp32_s3/platformio.ini new file mode 100644 index 00000000..27c420df --- /dev/null +++ b/variants/bpi_picow_esp32_s3/platformio.ini @@ -0,0 +1,14 @@ +[env:bpi_picow_esp32_s3] +extends = esp32s3_base +board = bpi_picow_esp32_s3 +board_level = extra +;OpenOCD flash method +;upload_protocol = esp-builtin +;Normal method +upload_protocol = esptool +upload_port = /dev/ttyACM2 +lib_deps = + ${esp32_base.lib_deps} + caveman99/ESP32 Codec2@^1.0.1 +build_flags = + ${esp32_base.build_flags} -D PRIVATE_HW -I variants/bpi_picow_esp32_s3 \ No newline at end of file diff --git a/variants/bpi_picow_esp32_s3/variant.h b/variants/bpi_picow_esp32_s3/variant.h new file mode 100644 index 00000000..78eae1da --- /dev/null +++ b/variants/bpi_picow_esp32_s3/variant.h @@ -0,0 +1,73 @@ +#define HAS_GPS 0 +#undef GPS_RX_PIN +#undef GPS_TX_PIN + +//#define HAS_SCREEN 0 + +//#define HAS_SDCARD +//#define SDCARD_USE_SPI1 + +#define USE_SSD1306 +#define I2C_SDA 12 +#define I2C_SCL 14 + +#define LED_PIN 46 +#define LED_STATE_ON 0 // State when LED is litted + +//#define BUTTON_PIN 15 // Pico OLED 1.3 User key 0 - removed User key 1 (17) + +#define BUTTON_PIN 40 +//#define BUTTON_PIN 0 // This is the BOOT button pad at the moment +//#define BUTTON_NEED_PULLUP + +//#define USE_RF95 // RFM95/SX127x + +#undef RF95_SCK +#undef RF95_MISO +#undef RF95_MOSI +#undef RF95_NSS + +// WaveShare Core1262-868M OK +// https://www.waveshare.com/wiki/Core1262-868M +#define USE_SX1262 + +#ifdef USE_SX1262 +#define RF95_MISO 39 +#define RF95_SCK 21 +#define RF95_MOSI 38 +#define RF95_NSS 17 +#define LORA_RESET 42 +#define LORA_DIO1 5 +#define LORA_BUSY 47 +#define SX126X_CS RF95_NSS +#define SX126X_DIO1 LORA_DIO1 +#define SX126X_BUSY LORA_BUSY +#define SX126X_RESET LORA_RESET +#define SX126X_E22 +#endif + +//#define USE_SX1280 +#ifdef USE_SX1280 +#define RF95_MISO 1 +#define RF95_SCK 3 +#define RF95_MOSI 4 +#define RF95_NSS 2 +#define LORA_RESET 17 +#define LORA_DIO1 12 +#define LORA_BUSY 47 +#define SX128X_CS RF95_NSS +#define SX128X_DIO1 LORA_DIO1 +#define SX128X_BUSY LORA_BUSY +#define SX128X_RESET LORA_RESET +#endif + +//#define USE_EINK +/* + * eink display pins + */ +//#define PIN_EINK_CS +//#define PIN_EINK_BUSY +//#define PIN_EINK_DC +//#define PIN_EINK_RES (-1) +//#define PIN_EINK_SCLK 3 +//#define PIN_EINK_MOSI 4 \ No newline at end of file