Skip to content

Added FoBE Quill ESP32S3 Mesh board support #11698

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
212 changes: 212 additions & 0 deletions boards.txt
Original file line number Diff line number Diff line change
Expand Up @@ -51572,4 +51572,216 @@ fed4.menu.ZigbeeMode.zczr=Zigbee ZCZR (coordinator/router)
fed4.menu.ZigbeeMode.zczr.build.zigbee_mode=-DZIGBEE_MODE_ZCZR
fed4.menu.ZigbeeMode.zczr.build.zigbee_libs=-lesp_zb_api.zczr -lzboss_stack.zczr -lzboss_port.remote

##############################################################

# FoBE Quill ESP32S3 Mesh FH4R2

fobe_quill_esp32s3_mesh.name=FoBE Quill ESP32S3 Mesh
fobe_quill_esp32s3_mesh.vid.0=0x303a
fobe_quill_esp32s3_mesh.pid.0=0x82f4
fobe_quill_esp32s3_mesh.vid.1=0x303a
fobe_quill_esp32s3_mesh.vid.1=0x82f5
fobe_quill_esp32s3_mesh.vid.2=0x303a
fobe_quill_esp32s3_mesh.pid.2=0x82f6

fobe_quill_esp32s3_mesh.bootloader.tool=esptool_py
fobe_quill_esp32s3_mesh.bootloader.tool.default=esptool_py

fobe_quill_esp32s3_mesh.upload.tool=esptool_py
fobe_quill_esp32s3_mesh.upload.tool.default=esptool_py
fobe_quill_esp32s3_mesh.upload.tool.network=esp_ota

fobe_quill_esp32s3_mesh.upload.maximum_size=1310720
fobe_quill_esp32s3_mesh.upload.maximum_data_size=327680
fobe_quill_esp32s3_mesh.upload.flags=
fobe_quill_esp32s3_mesh.upload.extra_flags=
adafruit_feather_esp32s3.upload.use_1200bps_touch=true
adafruit_feather_esp32s3.upload.wait_for_upload_port=true

fobe_quill_esp32s3_mesh.serial.disableDTR=false
fobe_quill_esp32s3_mesh.serial.disableRTS=false

fobe_quill_esp32s3_mesh.build.tarch=xtensa
fobe_quill_esp32s3_mesh.build.bootloader_addr=0x0
fobe_quill_esp32s3_mesh.build.target=esp32s3
fobe_quill_esp32s3_mesh.build.mcu=esp32s3
fobe_quill_esp32s3_mesh.build.core=esp32
fobe_quill_esp32s3_mesh.build.variant=fobe_quill_esp32s3_mesh
fobe_quill_esp32s3_mesh.build.board=fobe_quill_esp32s3_mesh

fobe_quill_esp32s3_mesh.build.usb_mode=0
fobe_quill_esp32s3_mesh.build.cdc_on_boot=1
fobe_quill_esp32s3_mesh.build.msc_on_boot=0
fobe_quill_esp32s3_mesh.build.dfu_on_boot=0
fobe_quill_esp32s3_mesh.build.f_cpu=240000000L
fobe_quill_esp32s3_mesh.build.flash_size=4MB
fobe_quill_esp32s3_mesh.build.flash_freq=80m
fobe_quill_esp32s3_mesh.build.flash_mode=qio
fobe_quill_esp32s3_mesh.build.boot=qio
fobe_quill_esp32s3_mesh.build.boot_freq=80m
fobe_quill_esp32s3_mesh.build.partitions=ffat
fobe_quill_esp32s3_mesh.build.defines=
fobe_quill_esp32s3_mesh.build.loop_core=
fobe_quill_esp32s3_mesh.build.event_core=
fobe_quill_esp32s3_mesh.build.psram_type=qspi
fobe_quill_esp32s3_mesh.build.memory_type={build.boot}_{build.psram_type}

fobe_quill_esp32s3_mesh.menu.JTAGAdapter.default=Disabled
fobe_quill_esp32s3_mesh.menu.JTAGAdapter.default.build.copy_jtag_files=0
fobe_quill_esp32s3_mesh.menu.JTAGAdapter.builtin=Integrated USB JTAG
fobe_quill_esp32s3_mesh.menu.JTAGAdapter.builtin.build.openocdscript=esp32s3-builtin.cfg
fobe_quill_esp32s3_mesh.menu.JTAGAdapter.builtin.build.copy_jtag_files=1
fobe_quill_esp32s3_mesh.menu.JTAGAdapter.external=FTDI Adapter
fobe_quill_esp32s3_mesh.menu.JTAGAdapter.external.build.openocdscript=esp32s3-ftdi.cfg
fobe_quill_esp32s3_mesh.menu.JTAGAdapter.external.build.copy_jtag_files=1
fobe_quill_esp32s3_mesh.menu.JTAGAdapter.bridge=ESP USB Bridge
fobe_quill_esp32s3_mesh.menu.JTAGAdapter.bridge.build.openocdscript=esp32s3-bridge.cfg
fobe_quill_esp32s3_mesh.menu.JTAGAdapter.bridge.build.copy_jtag_files=1

fobe_quill_esp32s3_mesh.menu.PSRAM.disabled=Disabled
fobe_quill_esp32s3_mesh.menu.PSRAM.disabled.build.defines=
fobe_quill_esp32s3_mesh.menu.PSRAM.disabled.build.psram_type=qspi
fobe_quill_esp32s3_mesh.menu.PSRAM.enabled=QSPI PSRAM
fobe_quill_esp32s3_mesh.menu.PSRAM.enabled.build.defines=-DBOARD_HAS_PSRAM
fobe_quill_esp32s3_mesh.menu.PSRAM.enabled.build.psram_type=qspi

fobe_quill_esp32s3_mesh.menu.FlashMode.qio=QIO 80MHz
fobe_quill_esp32s3_mesh.menu.FlashMode.qio.build.flash_mode=dio
fobe_quill_esp32s3_mesh.menu.FlashMode.qio.build.boot=qio
fobe_quill_esp32s3_mesh.menu.FlashMode.qio.build.boot_freq=80m
fobe_quill_esp32s3_mesh.menu.FlashMode.qio.build.flash_freq=80m
fobe_quill_esp32s3_mesh.menu.FlashMode.dio=DIO 80MHz
fobe_quill_esp32s3_mesh.menu.FlashMode.dio.build.flash_mode=dio
fobe_quill_esp32s3_mesh.menu.FlashMode.dio.build.boot=dio
fobe_quill_esp32s3_mesh.menu.FlashMode.dio.build.boot_freq=80m
fobe_quill_esp32s3_mesh.menu.FlashMode.dio.build.flash_freq=80m

fobe_quill_esp32s3_mesh.menu.FlashSize.4M=4MB (32Mb)
fobe_quill_esp32s3_mesh.menu.FlashSize.4M.build.flash_size=4MB

fobe_quill_esp32s3_mesh.menu.LoopCore.1=Core 1
fobe_quill_esp32s3_mesh.menu.LoopCore.1.build.loop_core=-DARDUINO_RUNNING_CORE=1
fobe_quill_esp32s3_mesh.menu.LoopCore.0=Core 0
fobe_quill_esp32s3_mesh.menu.LoopCore.0.build.loop_core=-DARDUINO_RUNNING_CORE=0

fobe_quill_esp32s3_mesh.menu.EventsCore.1=Core 1
fobe_quill_esp32s3_mesh.menu.EventsCore.1.build.event_core=-DARDUINO_EVENT_RUNNING_CORE=1
fobe_quill_esp32s3_mesh.menu.EventsCore.0=Core 0
fobe_quill_esp32s3_mesh.menu.EventsCore.0.build.event_core=-DARDUINO_EVENT_RUNNING_CORE=0

fobe_quill_esp32s3_mesh.menu.USBMode.hwcdc=Hardware CDC and JTAG
fobe_quill_esp32s3_mesh.menu.USBMode.hwcdc.build.usb_mode=1
fobe_quill_esp32s3_mesh.menu.USBMode.default=USB-OTG (TinyUSB)
fobe_quill_esp32s3_mesh.menu.USBMode.default.build.usb_mode=0

fobe_quill_esp32s3_mesh.menu.CDCOnBoot.default=Enabled
fobe_quill_esp32s3_mesh.menu.CDCOnBoot.default.build.cdc_on_boot=1
fobe_quill_esp32s3_mesh.menu.CDCOnBoot.cdc=Disabled
fobe_quill_esp32s3_mesh.menu.CDCOnBoot.cdc.build.cdc_on_boot=0

fobe_quill_esp32s3_mesh.menu.MSCOnBoot.default=Disabled
fobe_quill_esp32s3_mesh.menu.MSCOnBoot.default.build.msc_on_boot=0
fobe_quill_esp32s3_mesh.menu.MSCOnBoot.msc=Enabled (Requires USB-OTG Mode)
fobe_quill_esp32s3_mesh.menu.MSCOnBoot.msc.build.msc_on_boot=1

fobe_quill_esp32s3_mesh.menu.DFUOnBoot.default=Disabled
fobe_quill_esp32s3_mesh.menu.DFUOnBoot.default.build.dfu_on_boot=0
fobe_quill_esp32s3_mesh.menu.DFUOnBoot.dfu=Enabled (Requires USB-OTG Mode)
fobe_quill_esp32s3_mesh.menu.DFUOnBoot.dfu.build.dfu_on_boot=1

fobe_quill_esp32s3_mesh.menu.UploadMode.default=UART0 / Hardware CDC
fobe_quill_esp32s3_mesh.menu.UploadMode.default.upload.use_1200bps_touch=false
fobe_quill_esp32s3_mesh.menu.UploadMode.default.upload.wait_for_upload_port=false
fobe_quill_esp32s3_mesh.menu.UploadMode.cdc=USB-OTG CDC (TinyUSB)
fobe_quill_esp32s3_mesh.menu.UploadMode.cdc.upload.use_1200bps_touch=true
fobe_quill_esp32s3_mesh.menu.UploadMode.cdc.upload.wait_for_upload_port=true

fobe_quill_esp32s3_mesh.menu.PartitionScheme.tinyuf2=TinyUF2 4MB (1.3MB APP/960KB FATFS)
fobe_quill_esp32s3_mesh.menu.PartitionScheme.tinyuf2.build.custom_bootloader=bootloader-tinyuf2
fobe_quill_esp32s3_mesh.menu.PartitionScheme.tinyuf2.build.partitions=tinyuf2-partitions-4MB
fobe_quill_esp32s3_mesh.menu.PartitionScheme.tinyuf2.upload.maximum_size=1441792
fobe_quill_esp32s3_mesh.menu.PartitionScheme.tinyuf2.upload.extra_flags=0x2d0000 "{runtime.platform.path}/variants/{build.variant}/tinyuf2.bin"
fobe_quill_esp32s3_mesh.menu.PartitionScheme.tinyuf2_noota=TinyUF2 4MB No OTA (2.7MB APP/960KB FATFS)
fobe_quill_esp32s3_mesh.menu.PartitionScheme.tinyuf2_noota.build.custom_bootloader=bootloader-tinyuf2
fobe_quill_esp32s3_mesh.menu.PartitionScheme.tinyuf2_noota.build.partitions=tinyuf2-partitions-4MB-noota
fobe_quill_esp32s3_mesh.menu.PartitionScheme.tinyuf2_noota.upload.maximum_size=2883584
fobe_quill_esp32s3_mesh.menu.PartitionScheme.tinyuf2_noota.upload.extra_flags=0x2d0000 "{runtime.platform.path}/variants/{build.variant}/tinyuf2.bin"
fobe_quill_esp32s3_mesh.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS)
fobe_quill_esp32s3_mesh.menu.PartitionScheme.default.build.partitions=default
fobe_quill_esp32s3_mesh.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS)
fobe_quill_esp32s3_mesh.menu.PartitionScheme.defaultffat.build.partitions=default_ffat
fobe_quill_esp32s3_mesh.menu.PartitionScheme.minimal=Minimal (1.3MB APP/700KB SPIFFS)
fobe_quill_esp32s3_mesh.menu.PartitionScheme.minimal.build.partitions=minimal
fobe_quill_esp32s3_mesh.menu.PartitionScheme.no_ota=No OTA (2MB APP/2MB SPIFFS)
fobe_quill_esp32s3_mesh.menu.PartitionScheme.no_ota.build.partitions=no_ota
fobe_quill_esp32s3_mesh.menu.PartitionScheme.no_ota.upload.maximum_size=2097152
fobe_quill_esp32s3_mesh.menu.PartitionScheme.noota_3g=No OTA (1MB APP/3MB SPIFFS)
fobe_quill_esp32s3_mesh.menu.PartitionScheme.noota_3g.build.partitions=noota_3g
fobe_quill_esp32s3_mesh.menu.PartitionScheme.noota_3g.upload.maximum_size=1048576
fobe_quill_esp32s3_mesh.menu.PartitionScheme.noota_ffat=No OTA (2MB APP/2MB FATFS)
fobe_quill_esp32s3_mesh.menu.PartitionScheme.noota_ffat.build.partitions=noota_ffat
fobe_quill_esp32s3_mesh.menu.PartitionScheme.noota_ffat.upload.maximum_size=2097152
fobe_quill_esp32s3_mesh.menu.PartitionScheme.noota_3gffat=No OTA (1MB APP/3MB FATFS)
fobe_quill_esp32s3_mesh.menu.PartitionScheme.noota_3gffat.build.partitions=noota_3gffat
fobe_quill_esp32s3_mesh.menu.PartitionScheme.noota_3gffat.upload.maximum_size=1048576
fobe_quill_esp32s3_mesh.menu.PartitionScheme.huge_app=Huge APP (3MB No OTA/1MB SPIFFS)
fobe_quill_esp32s3_mesh.menu.PartitionScheme.huge_app.build.partitions=huge_app
fobe_quill_esp32s3_mesh.menu.PartitionScheme.huge_app.upload.maximum_size=3145728
fobe_quill_esp32s3_mesh.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS)
fobe_quill_esp32s3_mesh.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs
fobe_quill_esp32s3_mesh.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080

fobe_quill_esp32s3_mesh.menu.CPUFreq.240=240MHz (WiFi)
fobe_quill_esp32s3_mesh.menu.CPUFreq.240.build.f_cpu=240000000L
fobe_quill_esp32s3_mesh.menu.CPUFreq.160=160MHz (WiFi)
fobe_quill_esp32s3_mesh.menu.CPUFreq.160.build.f_cpu=160000000L
fobe_quill_esp32s3_mesh.menu.CPUFreq.80=80MHz (WiFi)
fobe_quill_esp32s3_mesh.menu.CPUFreq.80.build.f_cpu=80000000L
fobe_quill_esp32s3_mesh.menu.CPUFreq.40=40MHz
fobe_quill_esp32s3_mesh.menu.CPUFreq.40.build.f_cpu=40000000L
fobe_quill_esp32s3_mesh.menu.CPUFreq.20=20MHz
fobe_quill_esp32s3_mesh.menu.CPUFreq.20.build.f_cpu=20000000L
fobe_quill_esp32s3_mesh.menu.CPUFreq.10=10MHz
fobe_quill_esp32s3_mesh.menu.CPUFreq.10.build.f_cpu=10000000L

fobe_quill_esp32s3_mesh.menu.UploadSpeed.921600=921600
fobe_quill_esp32s3_mesh.menu.UploadSpeed.921600.upload.speed=921600
fobe_quill_esp32s3_mesh.menu.UploadSpeed.115200=115200
fobe_quill_esp32s3_mesh.menu.UploadSpeed.115200.upload.speed=115200
fobe_quill_esp32s3_mesh.menu.UploadSpeed.256000.windows=256000
fobe_quill_esp32s3_mesh.menu.UploadSpeed.256000.upload.speed=256000
fobe_quill_esp32s3_mesh.menu.UploadSpeed.230400.windows.upload.speed=256000
fobe_quill_esp32s3_mesh.menu.UploadSpeed.230400=230400
fobe_quill_esp32s3_mesh.menu.UploadSpeed.230400.upload.speed=230400
fobe_quill_esp32s3_mesh.menu.UploadSpeed.460800.linux=460800
fobe_quill_esp32s3_mesh.menu.UploadSpeed.460800.macosx=460800
fobe_quill_esp32s3_mesh.menu.UploadSpeed.460800.upload.speed=460800
fobe_quill_esp32s3_mesh.menu.UploadSpeed.512000.windows=512000
fobe_quill_esp32s3_mesh.menu.UploadSpeed.512000.upload.speed=512000

fobe_quill_esp32s3_mesh.menu.DebugLevel.none=None
fobe_quill_esp32s3_mesh.menu.DebugLevel.none.build.code_debug=0
fobe_quill_esp32s3_mesh.menu.DebugLevel.error=Error
fobe_quill_esp32s3_mesh.menu.DebugLevel.error.build.code_debug=1
fobe_quill_esp32s3_mesh.menu.DebugLevel.warn=Warn
fobe_quill_esp32s3_mesh.menu.DebugLevel.warn.build.code_debug=2
fobe_quill_esp32s3_mesh.menu.DebugLevel.info=Info
fobe_quill_esp32s3_mesh.menu.DebugLevel.info.build.code_debug=3
fobe_quill_esp32s3_mesh.menu.DebugLevel.debug=Debug
fobe_quill_esp32s3_mesh.menu.DebugLevel.debug.build.code_debug=4
fobe_quill_esp32s3_mesh.menu.DebugLevel.verbose=Verbose
fobe_quill_esp32s3_mesh.menu.DebugLevel.verbose.build.code_debug=5

fobe_quill_esp32s3_mesh.menu.EraseFlash.none=Disabled
fobe_quill_esp32s3_mesh.menu.EraseFlash.none.upload.erase_cmd=
fobe_quill_esp32s3_mesh.menu.EraseFlash.all=Enabled
fobe_quill_esp32s3_mesh.menu.EraseFlash.all.upload.erase_cmd=-e

fobe_quill_esp32s3_mesh.menu.ZigbeeMode.default=Disabled
fobe_quill_esp32s3_mesh.menu.ZigbeeMode.default.build.zigbee_mode=
fobe_quill_esp32s3_mesh.menu.ZigbeeMode.default.build.zigbee_libs=
fobe_quill_esp32s3_mesh.menu.ZigbeeMode.zczr=Zigbee ZCZR (coordinator/router)
fobe_quill_esp32s3_mesh.menu.ZigbeeMode.zczr.build.zigbee_mode=-DZIGBEE_MODE_ZCZR
fobe_quill_esp32s3_mesh.menu.ZigbeeMode.zczr.build.zigbee_libs=-lesp_zb_api.zczr -lzboss_stack.zczr -lzboss_port.remote

##############################################################
Binary file not shown.
107 changes: 107 additions & 0 deletions variants/fobe_quill_esp32s3_mesh/pins_arduino.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
#ifndef Pins_Arduino_h
#define Pins_Arduino_h

#include <stdint.h>
#include "soc/soc_caps.h"

#define USB_VID 0x303A
#define USB_PID 0x82F4
#define USB_MANUFACTURER "FoBE Studio"
#define USB_PRODUCT "FoBE Quill ESP32S3 Mesh"
#define USB_SERIAL "" // Empty string for MAC address

// User LED
#define LED_BUILTIN 11
#define BUILTIN_LED LED_BUILTIN // backward compatibility

/*
* Battery
*/
#define PIN_VBAT (10)

/*
* Buttons
*/
#define PIN_BUTTON1 (0)

/*
* Serial interfaces
*/
static const uint8_t TX = 9;
static const uint8_t RX = 8;

/*
* Wire Interfaces
*/
static const uint8_t SDA = 14;
static const uint8_t SCL = 13;

/*
* SPI interfaces
*/
static const uint8_t SS = 45;
static const uint8_t MOSI = 39;
static const uint8_t SCK = 40;
static const uint8_t MISO = 41;

/*
* Screen
*/
#define PIN_OLED_SDA (14)
#define PIN_OLED_SCL (13)
#define PIN_OLED_EN (12)

/*
* LoRa
*/
#define PIN_SX126X_NSS (45)
#define PIN_SX126X_DIO1 (42)
#define PIN_SX126X_BUSY (43)
#define PIN_SX126X_RESET (44)
#define PIN_SX126X_TXEN (-1)
#define PIN_SX126X_RXEN (46)
#define SX126X_DIO2_AS_RF_SWITCH
#define SX126X_DIO3_TCXO_VOLTAGE 1.8

/*
* MFP
*/
#define PIN_MFP1 (38)
#define PIN_MFP2 (37)
#define PIN_MFP3 (36)
#define PIN_MFP4 (35)

/*
* Power
*/
#define PIN_PERI_EN (1)

/*
* PINs
*/
static const uint8_t A0 = 2;
static const uint8_t A1 = 3;
static const uint8_t A2 = 4;
static const uint8_t A3 = 5;
static const uint8_t A4 = 6;
static const uint8_t A5 = 7;
static const uint8_t D0 = 8;
static const uint8_t D1 = 9;
static const uint8_t D2 = 11;
static const uint8_t D3 = 38;
static const uint8_t D4 = 37;
static const uint8_t D5 = 36;
static const uint8_t D6 = 35;
static const uint8_t D7 = 34;
static const uint8_t D8 = 33;
static const uint8_t D9 = 47;
static const uint8_t D10 = 48;
static const uint8_t D11 = 21;
static const uint8_t D12 = 18;
static const uint8_t D13 = 17;
static const uint8_t MTCK = 39;
static const uint8_t MTDO = 40;
static const uint8_t MTDI = 41;
static const uint8_t MTMS = 42;

#endif /* Pins_Arduino_h */
Binary file added variants/fobe_quill_esp32s3_mesh/tinyuf2.bin
Binary file not shown.
15 changes: 15 additions & 0 deletions variants/fobe_quill_esp32s3_mesh/variant.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#include "esp32-hal-gpio.h"
#include "pins_arduino.h"

extern "C" {

void initVariant(void) {
// Turn on the peripheral power
pinMode(PIN_PERI_EN, OUTPUT);
digitalWrite(PIN_PERI_EN, HIGH);

// Turn on the OLED power
pinMode(PIN_OLED_EN, OUTPUT);
digitalWrite(PIN_OLED_EN, LOW);
}
}