Skip to content

I have added support for the DFRobot Romeo ESP32-S3 board. #8195

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 7 commits into from
May 31, 2023
Merged
Show file tree
Hide file tree
Changes from 5 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
196 changes: 194 additions & 2 deletions boards.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7479,8 +7479,8 @@ dfrobot_firebeetle2_esp32e.menu.EraseFlash.all.upload.erase_cmd=-e
dfrobot_firebeetle2_esp32s3.name=DFRobot Firebeetle 2 ESP32-S3
#dfrobot_firebeetle2_esp32s3.vid.0=0x3343
#dfrobot_firebeetle2_esp32s3.pid.0=0x83CF
dfrobot_beetle_esp32c3.vid.0=0x303a
dfrobot_beetle_esp32c3.pid.0=0x1001
dfrobot_firebeetle2_esp32s3.vid.0=0x303a
dfrobot_firebeetle2_esp32s3.pid.0=0x1001

dfrobot_firebeetle2_esp32s3.bootloader.tool=esptool_py
dfrobot_firebeetle2_esp32s3.bootloader.tool.default=esptool_py
Expand Down Expand Up @@ -7691,6 +7691,198 @@ dfrobot_firebeetle2_esp32s3.menu.EraseFlash.none.upload.erase_cmd=
dfrobot_firebeetle2_esp32s3.menu.EraseFlash.all=Enabled
dfrobot_firebeetle2_esp32s3.menu.EraseFlash.all.upload.erase_cmd=-e

##############################################################
# dfrobot Romeo ESP32-S3
dfrobot_romeo_esp32s3.name=DFRobot Romeo ESP32-S3
dfrobot_romeo_esp32s3.vid.0=0x303a
dfrobot_romeo_esp32s3.pid.0=0x1001

dfrobot_romeo_esp32s3.bootloader.tool=esptool_py
dfrobot_romeo_esp32s3.bootloader.tool.default=esptool_py

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

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

dfrobot_romeo_esp32s3.serial.disableDTR=false
dfrobot_romeo_esp32s3.serial.disableRTS=false

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


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

dfrobot_romeo_esp32s3.menu.PSRAM.opi=OPI PSRAM
dfrobot_romeo_esp32s3.menu.PSRAM.opi.build.defines=-DBOARD_HAS_PSRAM
dfrobot_romeo_esp32s3.menu.PSRAM.opi.build.psram_type=opi
dfrobot_romeo_esp32s3.menu.PSRAM.disabled=Disabled
dfrobot_romeo_esp32s3.menu.PSRAM.disabled.build.defines=
dfrobot_romeo_esp32s3.menu.PSRAM.disabled.build.psram_type=qspi
dfrobot_romeo_esp32s3.menu.PSRAM.enabled=QSPI PSRAM
dfrobot_romeo_esp32s3.menu.PSRAM.enabled.build.defines=-DBOARD_HAS_PSRAM
dfrobot_romeo_esp32s3.menu.PSRAM.enabled.build.psram_type=qspi


dfrobot_romeo_esp32s3.menu.FlashMode.qio=QIO 80MHz
dfrobot_romeo_esp32s3.menu.FlashMode.qio.build.flash_mode=dio
dfrobot_romeo_esp32s3.menu.FlashMode.qio.build.boot=qio
dfrobot_romeo_esp32s3.menu.FlashMode.qio.build.boot_freq=80m
dfrobot_romeo_esp32s3.menu.FlashMode.qio.build.flash_freq=80m
dfrobot_romeo_esp32s3.menu.FlashMode.qio.build.flash_type=qio
dfrobot_romeo_esp32s3.menu.FlashMode.qio120=QIO 120MHz
dfrobot_romeo_esp32s3.menu.FlashMode.qio120.build.flash_mode=dio
dfrobot_romeo_esp32s3.menu.FlashMode.qio120.build.boot=qio
dfrobot_romeo_esp32s3.menu.FlashMode.qio120.build.boot_freq=120m
dfrobot_romeo_esp32s3.menu.FlashMode.qio120.build.flash_freq=80m
dfrobot_romeo_esp32s3.menu.FlashMode.qio120.build.flash_type=qio
dfrobot_romeo_esp32s3.menu.FlashMode.dio=DIO 80MHz
dfrobot_romeo_esp32s3.menu.FlashMode.dio.build.flash_mode=dio
dfrobot_romeo_esp32s3.menu.FlashMode.dio.build.boot=dio
dfrobot_romeo_esp32s3.menu.FlashMode.dio.build.boot_freq=80m
dfrobot_romeo_esp32s3.menu.FlashMode.dio.build.flash_freq=80m
dfrobot_romeo_esp32s3.menu.FlashMode.dio.build.flash_type=qio
dfrobot_romeo_esp32s3.menu.FlashMode.opi=OPI 80MHz
dfrobot_romeo_esp32s3.menu.FlashMode.opi.build.flash_mode=dout
dfrobot_romeo_esp32s3.menu.FlashMode.opi.build.boot=opi
dfrobot_romeo_esp32s3.menu.FlashMode.opi.build.boot_freq=80m
dfrobot_romeo_esp32s3.menu.FlashMode.opi.build.flash_freq=80m
dfrobot_romeo_esp32s3.menu.FlashMode.opi.build.flash_type=opi

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


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

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

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

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


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

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

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

dfrobot_romeo_esp32s3.menu.PartitionScheme.app3M_fat9M_16MB=16M Flash (3MB APP/9.9MB FATFS)
dfrobot_romeo_esp32s3.menu.PartitionScheme.app3M_fat9M_16MB.build.partitions=app3M_fat9M_16MB
dfrobot_romeo_esp32s3.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728
dfrobot_romeo_esp32s3.menu.PartitionScheme.fatflash=16M Flash (2MB APP/12.5MB FATFS)
dfrobot_romeo_esp32s3.menu.PartitionScheme.fatflash.build.partitions=ffat
dfrobot_romeo_esp32s3.menu.PartitionScheme.fatflash.upload.maximum_size=2097152
dfrobot_romeo_esp32s3.menu.PartitionScheme.minimal=Minimal (1.3MB APP/700KB SPIFFS)
dfrobot_romeo_esp32s3.menu.PartitionScheme.minimal.build.partitions=minimal
dfrobot_romeo_esp32s3.menu.PartitionScheme.huge_app=Huge APP (3MB No OTA/1MB SPIFFS)
dfrobot_romeo_esp32s3.menu.PartitionScheme.huge_app.build.partitions=huge_app
dfrobot_romeo_esp32s3.menu.PartitionScheme.huge_app.upload.maximum_size=3145728
dfrobot_romeo_esp32s3.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS)
dfrobot_romeo_esp32s3.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs
dfrobot_romeo_esp32s3.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080
dfrobot_romeo_esp32s3.menu.PartitionScheme.rainmaker=RainMaker
dfrobot_romeo_esp32s3.menu.PartitionScheme.rainmaker.build.partitions=rainmaker
dfrobot_romeo_esp32s3.menu.PartitionScheme.rainmaker.upload.maximum_size=3145728

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

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

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

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

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

firebeetle32.name=FireBeetle-ESP32
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,8 @@
//#define CAMERA_MODEL_ESP32_CAM_BOARD
//#define CAMERA_MODEL_ESP32S2_CAM_BOARD
//#define CAMERA_MODEL_ESP32S3_CAM_LCD

//#define CAMERA_MODEL_DFRobot_FireBeetle2_ESP32S3 // Has PSRAM
//#define CAMERA_MODEL_DFRobot_Romeo_ESP32S3 // Has PSRAM
#include "camera_pins.h"

// ===========================
Expand Down
19 changes: 19 additions & 0 deletions libraries/ESP32/examples/Camera/CameraWebServer/camera_pins.h
Original file line number Diff line number Diff line change
Expand Up @@ -293,6 +293,25 @@
#define HREF_GPIO_NUM 7
#define PCLK_GPIO_NUM 13

#elif defined(CAMERA_MODEL_DFRobot_FireBeetle2_ESP32S3) || defined(CAMERA_MODEL_DFRobot_Romeo_ESP32S3)
#define PWDN_GPIO_NUM -1
#define RESET_GPIO_NUM -1
#define XCLK_GPIO_NUM 45
#define SIOD_GPIO_NUM 1
#define SIOC_GPIO_NUM 2

#define Y9_GPIO_NUM 48
#define Y8_GPIO_NUM 46
#define Y7_GPIO_NUM 8
#define Y6_GPIO_NUM 7
#define Y5_GPIO_NUM 4
#define Y4_GPIO_NUM 41
#define Y3_GPIO_NUM 40
#define Y2_GPIO_NUM 39
#define VSYNC_GPIO_NUM 6
#define HREF_GPIO_NUM 42
#define PCLK_GPIO_NUM 5

#else
#error "Camera model not selected"
#endif
83 changes: 83 additions & 0 deletions variants/dfrobot_romeo_esp32s3/pins_arduino.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
#ifndef Pins_Arduino_h
#define Pins_Arduino_h

#include <stdint.h>



#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;

static const uint8_t SDA = 1;
static const uint8_t SCL = 2;


static const uint8_t MOSI = 15;
static const uint8_t MISO = 16;
static const uint8_t SCK = 17;
static const uint8_t SS = 18;

#define GDI_DISPLAY_FPC_INTERFACE
#ifdef GDI_DISPLAY_FPC_INTERFACE

#define GDI_BLK 21
#define GDI_SPI_SCLK SCK
#define GDI_SPI_MOSI MOSI
#define GDI_SPI_MISO MISO
#define GDI_DC 3
#define GDI_RES 38
#define GDI_CS 18
#define GDI_SDCS 0
#define GDI_FCS 7
#define GDI_TCS 12
#define GDI_SCL SCL
#define GDI_SDA SDA
#define GDI_INT 13
#define GDI_BUSY_TE 14

// CAM
#define CAM_DVP_INTERFACE
#ifdef CAM_DVP_INTERFACE

#define CAM_D5 4
#define CAM_PCLK 5
#define CAM_VSYNC 6
#define CAM_D6 7
#define CAM_D7 8
#define CAM_D8 46
#define CAM_D9 48
#define CAM_XMCLK 45
#define CAM_D2 39
#define CAM_D3 40
#define CAM_D4 41
#define CAM_HREF 42
#define CAM_SCL SCL
#define CAM_SDA SDA

#endif /* CAM_DVP_INTERFACE */

// Motor
#define MOTOR_INTERFACE
#ifdef MOTOR_INTERFACE

#define M1_EN 12
#define M1_PH 13
#define M2_EN 14
#define M2_PH 21
#define M3_EN 9
#define M3_PH 10
#define M4_EN 47
#define M4_PH 11

#endif

#endif /* Pins_Arduino_h */