ESP32-S3-Pico
| ||
Overview
Introduction
ESP32-S3-Pico is a low-cost, high-performance microcontroller development board with a small size and rich peripheral interfaces.
The main chip chip is the ESP32-S3R2, which is an MCU chip that integrates 2.4 GHz Wi-Fi and Bluetooth 5 (LE).
The interface chips are CH343 and CH334, and you can experience the fun of USB and UART development with a USB-C port, no longer worrying about switching interfaces.
The DC-DC chip adopts MP28164, a high-efficiency buck-boost chip, which adopts PWM fixed-frequency current control mode to optimize circuit stability and response speed.
You can choose to develop using ESP-IDF, Arduino, or MicroPython environments, making it easy and quick to get started and apply it to products
Features
- Adopts ESP32-S3R2 from Espressif as the main chip
- Comes with Xtensa® 32-bit LX7 dual-core processor, capable of running at 240 MHz
- Integrated 512KB SRAM, 384KB ROM, 2MB PSRAM, 16MB Flash memory
- Type-C connector, easier to use
- Onboard the CH343 and CH334 from Qinheng, you can experience the fun of USB and UART development with just one USB-C port
- Onboard DC-DC chip MP28164, a high-efficiency DC-DC buck-boost chip with a load current of up to 2A
- Supports a variety of low-power operating states, adjusts the optimal balance between communication distance, data rate and power consumption to meet the power consumption requirements of various application scenarios
- 27 × multi-function GPIO pins
- Castellated module allows to be directly welded and integrated into the user-designed base board
- Rich peripheral interfaces, including full-speed USB OTG, SPI, I2C, UART, ADC, PWM and DVP (8-bit ~ 16-bit camera interface), LCD interface (8-bit ~ 16-bit parallel RGB, I8080, MOTO6800), etc. to achieve various functions flexibly
Pinout Definition
![]()
Note: Digital interfaces such as SPI, I2C, and UART can be mapped to most GPIO via GPIO switching matrix and IO MUX, see the datasheet for details
Dimensions
Development Environment Configuration
- The following development system is Windows by default
ESP-IDF
- It is recommended to use the VSC plugin for development
Develop with VSCode Plug-in
Install VSCode
- Open the download page of the official VSCode website, and select the corresponding system and system bit to download

- After running the installation package, the rest can be installed by default, but here for the subsequent experience, it is recommended to check boxes 1, 2, and 3
- After the first two items are enabled, you can open VSCode directly by right-clicking files or directories, which can improve the subsequent user experience
- After the third item is enabled, you can select VSCode directly when you choose how to open it
Install Espressif IDF Plugin
- Note: Currently the latest version of the plugin is V1.6.0, users can choose the same version as us for a consistent experience
- Open VSCode, use Shift+Ctrl+X enter the plug-in manager

- In the search bar, enter Espressif IDF to select the corresponding plug-in and click Install

- Use the shortcut key F1 and enter
esp-idf: configure esp-idf extension

- Select express (This tutorial is intended for first-time installation users, so only the first general installation tutorial is covered)

- After opening, it displays this interface

- Choose the download server, we recommend users to use Espressif as your download server

- Select the ESP-IDF version you want to download, we choose the latest V5.0.1 (note that ESP-IDF only supports ESP32-S3 after V4.4)

- The following two are the installation paths respectively for the ESP-IDF container directory and the ESP-IDF Tools directory
- Note: If you have installed ESP-IDF before, or failed to do so, please be sure to delete the file completely or create a new path without Chinese
- After configuring, click Install to download

- Enter the download interface, and then it will automatically install the corresponding tools and environment, just wait for a second

- After the installation is complete, you will enter the following interface, indicating that the installation is finished

Run Official Demos
- The ESP official provides us with a large number of demos and detailed usage methods and effects Click here to view
Create Demo
- Using the shortcut F1, enter
esp-idf:show examples projects

- Select your current IDF version

- Take the Hello world demo as an example

- ①Select the corresponding demo
- ②Its readme will state what chip the demo applies to (how to use the demo and the file structure are described below, omitted here)
- ③Click to create the demo
- Select the path to save the demo, and require that the demos cannot use folders with the same name

Modify COM Port
- The corresponding COM ports are shown here, click to modify them

- The COM of our CH343 is COM5, so we choose COM5. Please choose the COM port corresponding to your CH343

- Select the project or demo to use

- Then we finish the modification of the COM ports
Modify Driver Object
- The driver object used is displayed here, and you can click it to modify the corresponding driver object

- Select the project or demo to use

- Click and wait for a moment

- Select the object we need to drive, which is our main chip ESP32S3

- Choose the path to openocd, it doesn't affect us here, so let's just choose one

Other Status Bars
- ①SDK configuration editor, supports modifying many features and configurations of ESP-IDF
- ②All cleanup, and clear all compiled files
- ③Compile
- ④Current download mode, the default is UART
- ⑤Flash the current firmware, please do it after compiling
- ⑥Open the serial port monitor, used to view the serial port information
- ⑦Compile, flash,open the serial monitor, all-in-one button (most commonly used for debugging)
Compile, Flash and Serial Port Monitor
- Click on the all-in-one button we described before to compile, flash and open the serial port monitor

- It may take a long time to compile especially for the first time
- During this process, the ESP-IDF may take up a lot of CPU resources, so it may cause the system to lag
- Because we are using CH343 as a USB to serial port chip, and there is an automatic download circuit on board, it can be automatically downloaded without manual operation

- After successful download, it will automatically enter the serial monitor, you can see the chip output the corresponding information and be prompted to restart after 10S

Arduino
- If you have not used Arduino ESP32 before, it is recommended to carefully read the official documentation, click here to view
Install Arduino IDE
- Open the software download page of the official website, and select the corresponding system and system bit to download

- You can choose to download directly or donate and download

- Run the installer and install all by default
Install Arduino-esp32 Online
- Open Preferences

- Add the corresponding board management link, click the button

- Add the following text in the first blank
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json

- Save settings
- Open the board manager and input ESP32 to search

- Wait for the download

- The arduino-esp32 download is complete

Install Arduino-esp32 Offline
- Arduino-ESP32 offline component package
- Unzip the compressed file

- Place the unzipped files in the Arduino components package directory of the corresponding user
C:\Users\{username}\AppData\Local\Arduino15\packages\Take the username waveshare as an exampleC:\Users\waveshare\AppData\Local\Arduino15\packages\
- Close all arduino windows to make sure Arduino is turned off
- Open Arduino, then open the board manager, you can see that esp32-arduino has been installed

Run Arduino Demos
- Select the demo, here we choose the demo to get the chip ID

- Choose our board as ESP32S3 Dev Module

- Choose our port number, here we choose COM5 for CH343

- Click the download button, and it will automatically compile and download

- The download is complete

- Open the serial port monitor

- See the chip ID of the loop output

MicroPython
- If you don't have basic knowledge of MicroPython, you can check out MicroPython Official Documentation to learn
Flash Firmware
- Click here to download the flashing tool and firmware
- Unzip the package downloaded before and enter

- Go to the flash_download_tool_3.9.4 folder and open the flash_download_tool_3.9.4.exe

- Select the corresponding chip, here select ESP32-S3

- Select the corresponding COM port, we have already configured other information for you. Click Start to begin the download
- ① Select COM port
- ② Click Download button
Install Thonny
- Open Thonny official website

- Select the appropriate system and version, here choose Windows, the mouse needs to be moved to the Windows section to display the corresponding information

- Choose the default installation option

- The installation is complete

Get Demo
- Click here to download the demo
- Unzip the compressed demo package

Run Demo
- Open thonny and select Configure interpreter

- Select MicroPython (ESP32) as the interpreter

- Click OK to save

- Click the Stop button or the shortcut Ctrl+F2

- At this time, you can see the MicroPython version information and board name in the command line

- Open the file serial port

- Select our demo file and open a demo, here we choose the wifi-scan demo
- ①Current local file directory
- ②The demo wifi-scan.by we need to open
- ③ESP32-S3-PICO directory
- Click the Run button or the shortcut F5

- Wait a moment, you can see the wifi information output by ESP32-S3 Pico

MicroPython Demo Explanation
- Most of the demos are based on Pico-Sensor-Kit-B.
In order to provide a better user experience with our firmware, we have integrated a py file in it to package scattered GPIO into a Pico pin sequence. The source code is as follows:
from micropython import const D0 = const(11) D1 = const(12) D2 = const(13) D3 = const(14) D4 = const(15) D5 = const(16) D6 = const(17) D7 = const(18) D8 = const(33) D9 = const(34) D10= const(35) D11= const(36) D12= const(37) D13= const(38) D14= const(39) D15= const(40) D16= const(42) D17= const(41) D18= const(1) D19= const(2) D20= const(4) D21= const(5) D22= const(6) D26= const(7) D27= const(8) D28= const(9) A1= const(7) A2= const(8) A3= const(9) RGB_PIN= const(21) USB_ADC= const(3)
1-GPIO
Blink Effect Explanation
- Blink GPO10 corresponding to Raspberry Pi PICO (GP35 corresponding to ESP32-S3) at a frequency of 1 second
Key Effect Explanation
- Read the level of GPO3 corresponding to Raspberry Pi PICO (GP13 corresponding to ESP32-S3)
- If it is a low level (button pressed), then flip the LED level
2-PWM
Fade Effect Explanation
- Output PWM frequency of GPIO12 corresponding to Raspberry Pi PICO (GP37 corresponding to ESP32-S3) at 1000Hz, with a duty cycle increasing or decreasing between 0% and 100%
Siren Effect Explanation
- Output PWM duty cycle of 30% for GPO12 corresponding to Raspberry Pi PICO (GP37 corresponding to ESP32-S3), with frequency increasing or decreasing between 600-1400Hz
3-UART
UART Effect Explanation
- Use the GPIO0 of Raspberry Pi PICO (corresponding to GP11 of ESP32-S3) and GPIO1 (corresponding to GP12 of ESP32-S3) as the TX and RX pins of UART for UART echo
4-I2C
I2C-OLED Effect Explanation
- Use GPIO6 of Raspberry Pi PICO (corresponding to GP17 of ESP32-S3) and GPIO7 (corresponding to GP18 of ESP32-S3) as SDA and SCL pins of I2C to drive the 1.5inch OLED module
I2C-SCAN Effect Explanation
- Use the GPIO8 of Raspberry Pi PICO (corresponding to GP33 of ESP32-S3) and GPIO9 (corresponding to GP34 of ESP32-S3) as the SDA and SCL pins of I2C to scan the device addresses on the I2C bus
5-SPI
Pico-LCD-1.3 Effect Explanation
- Can drive PICO-LCD-1.3 module
6-ADC
adc Effect Explanation
- Read the voltage values of GPO26-29 pins on Raspberry Pi PICO in sequence and output the information
7-RGB
rgb Effect Explanation
- Light up the onboard RGB-LED and keeps changing colors
8-SYS
FLASH-SIZE Effect Explanation
- Output remaining FLASH space
RAM-SIZE Effect Explanation
- Output remaining and used RAM space
RTC Effect Explanation
- Set the RTC time and loop to read the RTC values
SLEEP Effect Explanation
- Set ESP32-S3 to deep sleep for 10 seconds, it will automatically reset and restart when the sleep time is reached
WDT Effect Explanation
- Set the watchdog and wait for it to reset
9-WIFI
Scan Effect Explanation
- Scan the surrounding WiFi signals and display relevant information
Resources
Schematic Diagram
Demos
Software
ESP32-S3
Arduino
CH343
Serial Port
Datasheets
ESP32-S3
CH343
Official Documents
Raspberry Pi Official Documents
MicroPython Official Documents
FAQ
Support
Technical Support
If you need technical support or have any feedback/review, please click the Submit Now button to submit a ticket, Our support team will check and reply to you within 1 to 2 working days. Please be patient as we make every effort to help you to resolve the issue.
Working Time: 9 AM - 6 PM GMT+8 (Monday to Friday)