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
- ESP32-S3 module with AI Acceleration
- 16MB Flash & 8MB PSRAM, more storage space
- Onboard camera interface & independent camera power supply, easy to connect and strong anti-interference
- Power management integrated, support Li-ion battery charging and hardware On/OFF controlling
- Onboard GDI for easy connection with screens
- Wi-Fi and Bluetooth dual-mode communication
Specification
- Basic Parameters
- Operating Voltage: 3.3V
- Type-C Input Voltage: 5V DC
- VCC Input Voltage: 5V DC
- Max Charging Current: 1A
- Operating Temperature: -20~70℃
- Dimension: 25.4x60mm/1x2.36”
- Hardware Information
- Processor: Xtensa® dual-core 32-bit LX7microprocessor
- Main Frequency: 240 MHz
- SRAM: 512KB
- ROM: 384KB
- Flash: 16MB
- PSRAM: 8MB
- RTC SRAM: 16KB
- USB: USB 2.0 OTG full-speed
- WIFI
- WIFI Protocol: IEEE 802.11b/g/n
- Bandwidth: Support 20 MHz and 40 MHz at 2.4 GHz band
- WIFI Mode: Station, SoftAP, SoftAP+Station combined mode
- WIFI Frequency: 2.4GHz
- Frame Aggregation: TX/RX A-MPDU, TX/RX A-MSDU
- Bluetooth
- Bluetooth Protocol: Bluetooth 5, Bluetooth mesh
- Bluetooth Frequency: 125 Kbps, 500 Kbps, 1 Mbps, 2 Mbps
- Ports
- Digital I/O x26
- LED PWM 8 Channel
- SPI x2
- UART x3
- I2C x2
- I2S x2
- IR Transceiver: transmit channel x5, receive channel x5
- 2 × 12-bit SAR ADC, 20 Channel
- DMA Controller: transmit channel x5, receive channel x5
Board Overview
- Type-C:Type-C USB port
- 21/D13:onboard LED pin
- 47/D14: IO/Power Control Pin. By default, Long press 6s to power off, press 2s to power on
- ESP32-S3: ESP32-S3-WROOM-1-N16R8 or ESP32-S3-WROOM-1U-N16R8 module
- RST: Reset button
- BOOT: Boot button
- AXP313A: Power management chip
- ETA6003:ETA6003 Li-ion Battery Charging Managment chip
- BAT: Li-ion battery port
- Charge: Charging indicator
- Off: not plugged in power supply or fully charged
- On: charging
- Blinking: battery not connected
- GDI: GDI display interface
- CAM: DVP camera interface
Pin Diagram
Pin Definition
- GPIO: general input/output
- Analog: analog input pin
- ADC: analog to digital conversion
- TOUCH: touch pin
- SPI: SPI interface
- I2C: I2C interface
- UART: UART interface
- USB: USB interface
- JTAG: debug interface
- 3V3: 3.3V stable output
- VCC: power input/output
- Input:5V DC input for powering FireBeetle(Cannot charge Li-ion battery)
- Output: output USB voltage when powered by 5V-USB;output battery voltage when powered by 3.7V Li-ion battery
- GND: common ground pin
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:
- 1.54" 240x240 IPS wide viewing angle TFT display
- 1.8" 128x160 IPS TFT LCD Display
- 2.0" 320x240 IPS wide viewing angle TFT display
- 2.8" 320x240 IPS TFT resistive touch display
- 3.5" 480x320 IPS TFT capacitive touch display
- 1.51" OLED Transparent Display with Converter
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.
- Add the json link in the IDE
- Download the core of the MCU
- Select the development board and serial port
- Open the sample code and burn it into the board
- Get to know the serial monitor
Arduino IDE compiler environment config
- Configure URL to the Arduino IDE
- Open Arduino IDE and click File->Preferences, as shown below.
- In the newly opened interface, click the button in the red circle as shown below
- 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.
Click OK. Update the board. Open Tools->Board:->Boards Manager... as shown below:
Boards Manager will automatically update the boards as shown below:
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):
Wait for the end of the following progress bar:
After completing the installation, the list will show that the esp32 has been installed, as shown below:
Click Tools->Board, select DFRobot FireBeetle 2 ESP32-S3.
- 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)
- 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);
}
- Copy the codes above to the code editing box.
- Click the arrow to complile the program and burn it into your development board.
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.
- MicroPython official firmware (Note: Please select Support for Octal-SPIRAM version)
- DFRobot MicroPython firmware-with camera driver
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
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 camera firmware tutorial
- Save power.py and test.py to MicroPython device.
- 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?
- There is no delay or too short delay in Loop.
The USB cannot be recognized by the PC as some functions are incorrectlly called.
How to solve
- Press Boot, press RST and release both, then try burning again.
2. Data cannot be printed on serial port
- Check if the USB CDC is enabled
- Check print information using other serial debugger.
2. Drive multiple servos in the same time
- If you can't drive multiple servos at the same time using the servo library in Basic Tutorial. Please use the ESP32-AnalogWrite library.
For any questions, advice or cool ideas to share, please visit the DFRobot Forum.