Firebeetle 2 Board ESP32-S3(N16R8) Microcontroller Wiki - DFRobot

Introduction

FireBeetle 2 ESP32-S3 is a high-performance main-controller built around the ESP32-S3-WROOM-1-N16R8 module. ESP32-S3-WROOM-1-N16R8 comes with 16MB Flash and 8MB PSRAM for storing more data. The acceleration for neural network computing and signal processing workloads provided by the ESP32-S3 chip make the module an ideal choice for a wide variety of applications, such as speech recognition, image recognition, and so on.
FireBeetle 2 ESP32-S3 offers a camera interface onboard for easy connection with a camera. Also, an independent camera power supply circuit is designed, which helps reduce interference from other signals to the camera. The board comes with an OV2640 camera that offers 2 megapixel, 68° FOV, and up to 1600×1200 resolution. Besides, its onboard easy-to-connect GDI greatly saves the trouble of wiring for using with a screen. Meanwhile, the controller integrates a power management function, which enables users to charge a Li-ion battery and turn the hardware on/off.
In addition, FireBeetle 2 ESP32-S3 supports WiFi and Bluetooth 5 (LE) dual-mode communication that reduces the difficulty of networking, and also both Bluetooth Mesh protocol and Espressif WiFi Mesh are supported for more stable communication and a larger coverage area. With the support of Matter protocol, the board can be used to develop industrial standard smart home devices for a wider range of IoT scenarios.
FireBeetle 2 ESP32-S3 can be programmed by Arduino IDE, ESP-IDF, MicroPython. Both C and Python are supported.

** Note: Before burning code, press and hold BOOT, click the reset button, and release BOOT to enter download mode. **

Features

Specification

Board Overview

Board Overview

Pin Diagram

Pinout

Pin Definition

GPIO Configuration

GDI Display Interface

This interface is a DFRbot dedicated GDI display interface for connecting a screen using a 18pin-FPC wire.

The pin list for using GDI camera interface is shown below:

FPC PINS Beetle ESP32 S3 Pins Description
VCC 3V3 3.3V
LCD_BL 21/D13 Backlight
GND GND GND
SCLK 17/SCK SPI clock
MOSI 15/MOSI Host output, slave input
MISO 16/MISO Host input, slave output
LCD_DC 3/D2 Data/command
LCD_RST 38/D3 Reset
LCD_CS 18/D6 TFT Chip Select
SD_CS 9/D7 SD card chip select
FCS 7/D6 Font library chip select
TCS 12/D12 Touch chip select
SCL 2/SCL I2C clock
SDA 1/SDA I2C data
INT 13/D11 INT
BUSY 4/D10 Tearproof pins
X1 NC custom pin 1
X2 NC custom pin 2

When using FPC to connect the screen, please configure the corresponding pin numbers according to the GDL demo. Normally, only three pins need to be configured on different main controllers.

Displays that support GDI:

CAM Interface

The CAM interface is compatible with both OV2640 and OV7725 camera. Enable AXP313A power output when using a camera. Click to download AXP313A library(ESP-IDF and MicroPython drivers are included).

The pin list for using DVP camera interface is shown below.

CAM PINS FireBeetle ESP32-S3 PINS Description
NC NC NC
AGND / Analog GND
SDA 1/SDA I2C data
AVDD / AXP313A Controllable Power
SCL 2/SCL I2C Clock
RST / Pulled up to DOVDD
VSYNC 6/A2 Frame sync signal
PWDN / Pulled down
HREF 42 Horizontal sync signal
DVDD / AXP313A Controllable Power
DOVDD / AXP313A Controllable Power
D9 48 DATA 9
XMCLK 45 Clock signal
D8 46 DATA 8
DGND GND Digital GND
D7 8/A3 DATA 7
PCLK 5/A1 Pixel Clock signal
D6 7/D5 DATA 6
D2 39 DATA 2
D5 4/A0 DATA 5
D3 40 DATA 3
D4 41 DATA 4
NC NC NC
NC NC NC

Pin connection

Connect the pin 1 of the camera to the white dot position

Tutorial - First Time Use

Arduino IDE Configuration

Please pay attention to the followings when using FireBeetle 2 ESP32-S3 for the first time.

  1. Add the json link in the IDE
  2. Download the core of the MCU
  3. Select the development board and serial port
  4. Open the sample code and burn it into the board
  5. Get to know the serial monitor

Arduino IDE compiler environment config

  1. Open Arduino IDE and click File->Preferences, as shown below.
  1. In the newly opened interface, click the button in the red circle as shown below

  1. Copy the following link into the new pop-up dialog box: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json

Note: If you have installed another environment before, you can press Enter key at the beginning or end of the previous link and paste the link at a new line.

  1. Click OK. Update the board. Open Tools->Board:->Boards Manager... as shown below:

  2. Boards Manager will automatically update the boards as shown below:

  3. After completing the update, you can enter esp32 at the top, select esp32 and click install when the following occurs (It's recommended to install the latest version):

  4. Wait for the end of the following progress bar:

  5. After completing the installation, the list will show that the esp32 has been installed, as shown below:

  6. Click Tools->Board, select DFRobot FireBeetle 2 ESP32-S3.

  1. Before starting, you need to configure the following settings (when you select Disabled, the serial port is RX(44), TX(43), if you need to print on the Arduino monitor via USB, you need to select Enable)

  1. Click Port to select the corresponding serial port.

5.2 LED Blinking

The default pin for the onboard LED is pin 12.

Sample Code

int led = 21;
void setup() {
  pinMode(led,OUTPUT);
}

void loop() {
  digitalWrite(led,HIGH);
  delay(1000);
  digitalWrite(led,LOW);
  delay(1000);
}

Burning Successful

The image above shows that your codes have been successfully loaded into the board. Then, the onboard LED will start blinking.

Basic Tutorial

The basic tutorial includes the use of PWM, interrupt, serial port, servo, and SD card.

Advanced Tutorial

The advanced tutorial domenstrates how to use screen, Bluetooth, WiFi, ESP-NOW, camera, one-key for networking config and sample projects.

Tutorial for MicroPython

Build Environment for MicroPython

To run microPython on the FireBeetle 2 ESP32-S3, you need to burn the firmware into FireBeetle 2 ESP32-S3 first.

1.Click to download microPython firmware.

2.Click to download esptool Flash burning tool

3.Run flash_download_tool_3.9.3.exe

4.Select the ESP32-S3 main controller, than Press Boot, press RST and release both, then try burning again.

5.Select the downloaded firmware, clear the flash and then burn the firmware.

MicroPython Interpreter

1.Click to download thonny

2.Open the software and set up the interpreter (Run->Configure interpreter...)

3.Copy and paste the code into the code box, save the file to the MicroPython device and name it main.py

import time
from machine import Pin 

led=Pin(21,Pin.OUT)

while True:

 led.value(1)
 time.sleep(1)
 led.value(0)
 time.sleep(1)

4.Reboot the FireBeetle 2 ESP32-S3, and you can see the L LED flashing.

MicroPython Tutorial

MicroPython basic tutorial

MicroPython camera firmware tutorial

  1. Save power.py and test.py to MicroPython device.
  2. Run the test.py code and after stopping the process, you can see the photos taken.

API

#Initialize camera
camera.init(0, format=camera.JPEG)

# Take a picture
buf = camera.capture()

# other settings:
# turn up and down
camera.flip(0)
#about
camera.mirror(1)

# resolution
camera.framesize(camera.FRAME_HVGA)
# Options are as follows:
# FRAME_96X96 FRAME_QQVGA FRAME_QCIF FRAME_HQVGA FRAME_240X240
# FRAME_QVGA FRAME_CIF FRAME_HVGA FRAME_VGA FRAME_SVGA
# FRAME_XGA FRAME_HD FRAME_SXGA FRAME_UXGA FRAME_FHD
# FRAME_P_HD FRAME_P_3MP FRAME_QXGA FRAME_QHD FRAME_WQXGA
# FRAME_P_FHD FRAME_QSXGA
# For more information, check out this link: https://bit.ly/2YOzizz

# special effects
camera.speffect(camera.EFFECT_NONE)
#The options are as follows:
# Effects\None (Default) Effect\Negative Effect\BW Effect\Red Effect\Green Effect\Blue Effect\Retro Effect
# EFFECT_NONE (default) EFFECT_NEG \EFFECT_BW\ EFFECT_RED\ EFFECT_GREEN\ EFFECT_BLUE\ EFFECT_RETRO

# white balance
camera.whitebalance(camera.WB_HOME)
#The options are as follows:
# WB_NONE (default) WB_SUNNY WB_CLOUDY WB_OFFICE WB_HOME

# saturation
camera.saturation(0)
#-2,2 (default is 0). -2 grayscale
# -2,2 (default 0). -2 grayscale

#brightness
camera.brightness(0)
#-2,2 (default 0). 2 brightness
# -2,2 (default 0). 2 brightness

# Contrast
camera.contrast(0)
#-2,2 (default is 0).2 high contrast
#-2,2 (default 0). 2 highcontrast

# quality
camera.quality(10)
#10-63 The smaller the number, the higher the quality.

FAQ

1. What will cause burning error?

How to solve

2. Data cannot be printed on serial port

2. Drive multiple servos in the same time

For any questions, advice or cool ideas to share, please visit the DFRobot Forum.

More Documents