Skip to content

Add FED4 board #11536

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

Merged
merged 9 commits into from
Jul 2, 2025
Merged
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
185 changes: 185 additions & 0 deletions boards.txt
Original file line number Diff line number Diff line change
Expand Up @@ -50604,3 +50604,188 @@ kodedot.recipe.hooks.objcopy.postobjcopy.3.pattern_args=
kodedot.recipe.output.save_file={build.project_name}.ino.bin

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

# FED4 Board
fed4.name=FED4
fed4.vid.0=0x303A
fed4.pid.0=0x82E5
fed4.upload_port.0.vid=0x303A
fed4.upload_port.0.pid=0x82E5
fed4.bootloader.tool=esptool_py
fed4.bootloader.tool.default=esptool_py

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

fed4.upload.maximum_size=1310720
fed4.upload.maximum_data_size=327680
fed4.upload.flags=
fed4.upload.extra_flags=
fed4.upload.use_1200bps_touch=false
fed4.upload.wait_for_upload_port=false

fed4.serial.disableDTR=false
fed4.serial.disableRTS=false

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

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

## IDE 2.0 Seems to not update the value
fed4.menu.JTAGAdapter.default=Disabled
fed4.menu.JTAGAdapter.default.build.copy_jtag_files=0
fed4.menu.JTAGAdapter.builtin=Integrated USB JTAG
fed4.menu.JTAGAdapter.builtin.build.openocdscript=fed4-builtin.cfg
fed4.menu.JTAGAdapter.builtin.build.copy_jtag_files=1
fed4.menu.JTAGAdapter.external=FTDI Adapter
fed4.menu.JTAGAdapter.external.build.openocdscript=fed4-ftdi.cfg
fed4.menu.JTAGAdapter.external.build.copy_jtag_files=1
fed4.menu.JTAGAdapter.bridge=ESP USB Bridge
fed4.menu.JTAGAdapter.bridge.build.openocdscript=fed4-bridge.cfg
fed4.menu.JTAGAdapter.bridge.build.copy_jtag_files=1

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

fed4.menu.FlashSize.16M=16MB (128Mb)
fed4.menu.FlashSize.16M.build.flash_size=16MB

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

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

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

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

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

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

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

fed4.menu.PartitionScheme.default_16MB=Default (6.25MB APP/3.43MB SPIFFS)
fed4.menu.PartitionScheme.default_16MB.build.partitions=default_16MB
fed4.menu.PartitionScheme.default_16MB.upload.maximum_size=6553600
fed4.menu.PartitionScheme.large_spiffs=Large SPIFFS (4.5MB APP/6.93MB SPIFFS)
fed4.menu.PartitionScheme.large_spiffs.build.partitions=large_spiffs_16MB
fed4.menu.PartitionScheme.large_spiffs.upload.maximum_size=4718592
fed4.menu.PartitionScheme.app3M_fat9M_16MB=FFAT (3MB APP/9MB FATFS)
fed4.menu.PartitionScheme.app3M_fat9M_16MB.build.partitions=app3M_fat9M_16MB
fed4.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728
fed4.menu.PartitionScheme.fatflash=Large FFAT (2MB APP/12.5MB FATFS)
fed4.menu.PartitionScheme.fatflash.build.partitions=ffat
fed4.menu.PartitionScheme.fatflash.upload.maximum_size=2097152

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

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

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

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

fed4.menu.ZigbeeMode.default=Disabled
fed4.menu.ZigbeeMode.default.build.zigbee_mode=
fed4.menu.ZigbeeMode.default.build.zigbee_libs=
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

##############################################################
79 changes: 79 additions & 0 deletions variants/fed4/pins_arduino.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
#ifndef Pins_Arduino_h
#define Pins_Arduino_h

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

#define USB_VID 0x303A
#define USB_PID 0x82E5
#define USB_MANUFACTURER "Smart Bee Designs LLC"
#define USB_PRODUCT "FED4"
#define USB_SERIAL ""

static const uint8_t TX = 43;
static const uint8_t RX = 44;

static const uint8_t SDA = 8;
static const uint8_t SCL = 9;
static const uint8_t SDA2 = 20;
static const uint8_t SCL2 = 19;

static const uint8_t SS = 47;
static const uint8_t MOSI = 11;
static const uint8_t MISO = 13;
static const uint8_t SCK = 12;
static const uint8_t SDCS = 10; // sd cs pin
static const uint8_t DSCS = 14; //display cs pin

static const uint8_t A1 = 1;
static const uint8_t A2 = 2;
static const uint8_t A3 = 3;
static const uint8_t A4 = 4;
static const uint8_t A5 = 5;
static const uint8_t A6 = 6;

static const uint8_t D1 = 1;
static const uint8_t D2 = 2;
static const uint8_t D3 = 3;
static const uint8_t D4 = 4;
static const uint8_t D5 = 5;
static const uint8_t D6 = 6;
static const uint8_t D8 = 8;
static const uint8_t D13 = 13;
static const uint8_t D9 = 9;

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 BOOT_BTN = 0;
static const uint8_t VBAT_VOLTAGE = 7;
static const uint8_t LDO2 = 47;
static const uint8_t STATUS_RGB = 35;
static const uint8_t RGB_STRIP = 36;
static const uint8_t INTERRUPT_PIN = 18;
static const uint8_t USER_BTN_1 = 14;
static const uint8_t USER_BTN_2 = 39;
static const uint8_t USER_BTN_3 = 40;
static const uint8_t AMP_DIN = 39;
static const uint8_t AMP_SD = 42;
static const uint8_t AMP_BCLK = 45;
static const uint8_t AMP_LRCLK = 48;
static const uint8_t MSBY = 15;
static const uint8_t TRRS_1 = 4;
static const uint8_t TRRS_2 = 2;
static const uint8_t TRRS_3 = 3;

#define PIN_RGB_LED STATUS_RGB
// BUILTIN_LED can be used in new Arduino API digitalWrite() like in Blink.ino
static const uint8_t LED_BUILTIN = SOC_GPIO_PIN_COUNT + PIN_RGB_LED;
#define BUILTIN_LED LED_BUILTIN // backward compatibility
#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN
// RGB_BUILTIN and RGB_BRIGHTNESS can be used in new Arduino API rgbLedWrite()
#define RGB_BUILTIN LED_BUILTIN
#define RGB_BRIGHTNESS 64

#endif /* Pins_Arduino_h */