W11(ESP32S3 Mini Module)
Product Introduction
Product display image:

Product Features
The ESP32S3 Mini Module Pro series development board boasts an ultra-compact hardware form factor. Featuring a unified, streamlined hardware architecture, it achieves a genuinely "thumb-sized" design for maximum portability. Whether carried for on-the-go project debugging or embedded within miniature devices, it adapts effortlessly to any scenario.
Within its compact footprint, this development board integrates a wealth of hardware. Beyond the core ESP32-S3 chip, it incorporates a camera sensor and digital microphone, with native support for microSD card expansion. The camera sensor captures high-definition images and short videos, while the digital microphone precisely captures ambient audio signals. The SD card provides a stable local storage solution for collected audio-visual data and AI model files.
Notably, the embedded machine learning capabilities of the ESP32-S3 chip synergise perfectly with the board's audio-visual capture hardware. Developers can directly undertake intelligent image recognition, voice wake-up and recognition, and edge AI inference tasks without requiring complex external modules. Indeed, the ESP32S3 Mini Module series represents the ideal choice for makers, electronics engineers, and AI beginners embarking on intelligent voice and visual AI projects.
Technical Specifications
Specifications
| Category | Parameter Item | Specification Requirements |
|---|---|---|
| Core processor | Chip model | ESP32-S3 (dual-core 32-bit LX7 microprocessor) |
| Primary frequency | Up to 240MHz | |
| Built-in SRAM | 512KB | |
| Built-in PSRAM | 8MB (supports high-resolution image caching and multi-task data storage) | |
| Distinctive Features | Hardware floating-point operations, vector instruction set, neural network accelerator (NPU, supporting INT8/FP16 precision AI inference) | |
| Storage Configuration | On-board Flash | 8/16MB SPI NOR Flash (supporting OTA firmware upgrades and firmware encryption) |
| Extended storage support | SPI interface expansion, compatible with SD cards up to 128GB | |
| Wireless connectivity | Wi-Fi Standard / Frequency Band | 802.11b/g/n, 2.4GHz band |
| Wi-Fi transmission rate / distance | Maximum 150Mbps, indoor range ≥50m, open terrain range ≥100m (packet loss rate ≤1% at 100m) | |
| Wi-Fi Mode / Security Protocol | Station/SoftAP/ Hybrid Mode; Supports WPA3/WPA2-PSK | |
| Bluetooth version / mode | Bluetooth 5.0, supporting BLE low-energy mode, traditional Bluetooth mode, and Bluetooth Mesh networking | |
| Bluetooth transmission rate / range | Maximum 2Mbps, BLE indoor range 32m, long-range mode in open terrain ≥1km | |
| Input/output interface | Number of GPIO pins | Up to 32 reusable GPIOs (all supporting interrupt triggering: rising edge / falling edge / both edges) |
| ADC channel | 20-channel 12-bit precision, input range 0–3.3V | |
| SPI interface | 3 channels (1 high-speed SPI at 40MHz for PSRAM/Flash, 2 general-purpose SPI for peripheral expansion) | |
| UART interface | 2-wire, supporting 1MHz high-speed mode | |
| UART interface | 3-channel, maximum baud rate 2Mbps (supports hardware flow control) | |
| Other key interfaces | 2-channel I²S (audio input/output), 2-channel DAC (8-bit precision), 8-channel PWM, 1-channel USB Type-C (data/power supply/programming) | |
| Additional Function Interface | Lithium battery interface (3.7V), user button (reset / customisable), RGB LED (status indicator) | |
| Sensor configuration | On-board sensors (standard equipment) | 1. Temperature sensor: Accuracy ±0.1°C, measurement range -40°C to 125°C 2. Inertial sensor: Accelerometer range ±2g to 16g, gyroscope ±16°/s to ±2048°/s (selectable) |
| External sensor support | Sensors compatible with I2C/SPI/ADC interfaces, including temperature and humidity, light, gas, distance, and gyroscope sensors (supporting sensor wake-up functionality) | |
| Power Management | Power supply method | 1. USB Type-C (5V/1A) 2. Lithium battery (3.7V, 300mAh–2000mAh) 3. External DC (3.3V–5V/1A peak) |
| Charging Management | Adjustable charging current (maximum 1A) with LED charging status indicator; features overcharge/over-discharge/overcurrent/short-circuit protection. | |
| Power consumption (typical value) | Active mode ≤ 120mA; Light sleep ≤ 15mA; Deep sleep ≤ 8µA; Sleep mode ≤ 1µA | |
| Physical and Environmental Characteristics | Dimensions | 24.54mm × 17.78mm × 4.50mm |
| Weight | 2.44g(Single ESP32-S3 module) | |
| Physical and Environmental Characteristics | PCB Specifications | 1.6mm thick FR-4 laminate, immersion gold plating process |
| Operating temperature range | -40℃~85℃(Industrial grade) | |
| Storage temperature range | -55℃~125℃ | |
| Operating humidity | 5%~95% RH(non-condensing) | |
| Reliability | Mean Time Between Failures (MTBF) | ≥20,000 hours |
| Electromagnetic Compatibility (EMC) | Complies with CE EN 300 328 and FCC Part 15B standards | |
| Electrostatic Discharge (ESD) Protection | Contact discharge ±8kV, air discharge ±15kV (IEC 61000-4-2 standard) | |
| IO Output Current Limiting | Single pin ≤ 20mA, total IO current ≤ 100mA | |
| Vibration-resistant / Shock-resistant | Vibration resistance: 10–2000 Hz, 10g acceleration (IEC 60068-2-6); Shock resistance: 1000g, 0.5ms half-sine wave (IEC 60068-2-27) |
Hardware pin
![]() | ![]() |
|---|
Module front:

1、Pin holes on the left side of the module, from top to bottom
| No. | Name | Type | Function |
|---|---|---|---|
| 1 | IO1 | I/O | GPIO1, ADC, UART, PWM, I2S, I2C, SPI |
| 2 | IO2 | I/O | GPIO2, ADC, UART, PWM, I2S, I2C, SPI |
| 3 | IO3 | I/O | GPIO3, ADC, UART, PWM, I2S, I2C, SPI |
| 4 | IO4 | I/O | GPIO4, ADC, UART, PWM, I2S, I2C, SPI |
| 5 | IO5 | I/O | GPIO5, ADC, UART, PWM, I2S, I2C, SPI |
| 6 | IO6 | I/O | GPIO6, ADC, UART, PWM, I2S, I2C, SPI |
| 7 | IO7 | I/O | GPIO7, ADC, UART, PWM, I2S, I2C, SPI |
| 8 | IO8 | I/O | GPIO8, ADC, UART, PWM, I2S, I2C, SPI |
2、Pin holes on the right side of the module, from top to bottom
| No. | Name | Type | Function |
|---|---|---|---|
| 16 | 5V | P | Power input or output 5.0V |
| 15 | GND | G | Ground |
| 14 | 3V3 | P | Output 3.3V, power supply for external sensor |
| 13 | IO13 | I/O | GPIO13, ADC, UART, PWM, I2S, I2C, SPI |
| 12 | IO12 | I/O | GPIO12, ADC, UART, PWM, I2S, I2C, SPI |
| 11 | IO11 | I/O | GPIO11, ADC, UART, PWM, I2S, I2C, SPI |
| 10 | IO10 | I/O | GPIO10, ADC, UART, PWM, I2S, I2C, SPI |
| 9 | IO9 | I/O | GPIO9, ADC, UART, PWM, I2S, I2C, SPI |
3、SMA stamp holes on the left side of the module, from top to bottom
| No. | Name | Type | Function |
|---|---|---|---|
| 17 | IO48 | I/O | GPIO48, UART, PWM, I2S, I2C, SPI |
| 18 | IO47 | I/O | GPIO47, UART, PWM, I2S, I2C, SPI |
| 19 | IO46 | I/O | GPIO46, UART, PWM, I2S, I2C, SPI |
| 20 | IO45 | I/O | GPIO45, UART, PWM, I2S, I2C, SPI |
| 21 | IO38 | I/O | GPIO38, UART, PWM, I2S, I2C, SPI |
| 22 | IO21 | I/O | GPIO21, UART, PWM, I2S, I2C, SPI |
| 23 | IO18 | I/O | GPIO18, ADC, UART, PWM, I2S, I2C, SPI |
4、SMA stamp holes on the right side of the module, from top to bottom
| No. | Name | Type | Function |
|---|---|---|---|
| 27 | IO14 | I/O | GPIO14, ADC, UART, PWM, I2S, I2C, SPI |
| 26 | IO15 | I/O | GPIO15, ADC, UART, PWM, I2S, I2C, SPI |
| 25 | IO16 | I/O | GPIO16, ADC, UART, PWM, I2S, I2C, SPI |
| 24 | IO17 | I/O | GPIO17, ADC, UART, PWM, I2S, I2C, SPI |
5、DF40C-30Pin module socket, from the lower left pin to the upper left corner
| No. | Name | Type | Function |
|---|---|---|---|
| 1 | NC | / | Reserved |
| 2 | IO3 | I/O | GPIO3, ADC, UART, PWM, I2S, I2C, SPI |
| 3 | IO7 | I/O | GPIO7, ADC, UART, PWM, I2S, I2C, SPI |
| 4 | IO8 | I/O | GPIO8, ADC, UART, PWM, I2S, I2C, SPI |
| 5 | IO9 | I/O | GPIO9, ADC, UART, PWM, I2S, I2C, SPI |
| 6 | IO10 | I/O | GPIO10, ADC, UART, PWM, I2S, I2C, SPI |
| 7 | IO11 | I/O | GPIO11, ADC, UART, PWM, I2S, I2C, SPI |
| 8 | IO12 | I/O | GPIO12, ADC, UART, PWM, I2S, I2C, SPI |
| 9 | IO13 | I/O | GPIO13, ADC, UART, PWM, I2S, I2C, SPI |
| 10 | IO14 | I/O | GPIO14, ADC, UART, PWM, I2S, I2C, SPI |
| 11 | IO15 | I/O | GPIO15, ADC, UART, PWM, I2S, I2C, SPI |
| 12 | IO16 | I/O | GPIO16, ADC, UART, PWM, I2S, I2C, SPI |
| 13 | IO17 | I/O | GPIO17, ADC, UART, PWM, I2S, I2C, SPI |
| 14 | IO18 | I/O | GPIO18, ADC, UART, PWM, I2S, I2C, SPI |
| 15 | VIN | P | Power input for module, Voltage range is 3.7~5.0V |
| 16 | IO21 | I/O | GPIO21, UART, PWM, I2S, I2C, SPI |
| 17 | GND | G | Ground |
| 18 | 3V3 | P | Output 3.3V, power supply for external sensor |
| 19 | 3V3 | P | Output 3.3V, power supply for external sensor |
| 20 | NC | / | Reserved |
| 21 | IO48 | I/O | GPIO48, UART, PWM, I2S, I2C, SPI |
| 22 | IO47 | I/O | GPIO47, UART, PWM, I2S, I2C, SPI |
| 23 | IO38 | I/O | GPIO38, UART, PWM, I2S, I2C, SPI |
| 24 | IO39 | I/O | GPIO39, UART, PWM, I2S, I2C, SPI |
| 25 | IO40 | I/O | GPIO40, UART, PWM, I2S, I2C, SPI |
| 26 | IO41 | I/O | GPIO41, UART, PWM, I2S, I2C, SPI |
| 27 | IO42 | I/O | GPIO42, UART, PWM, I2S, I2C, SPI |
| 28 | GND | G | Ground |
| 29 | GND | G | Ground |
| 30 | VIN | P | Power input for module, Voltage range is 3.7~5.0V |
DF40C-30-Pin Socket Interface Diagram
Module rear:
1、TP pads in the middle of the module, from top to bottom
| No. | Name | Type | Function |
|---|---|---|---|
| TP1 | GND | I/O | Ground |
| TP2 | EN | I/O | CHIP_PU, Connect to RST switch |
| TP3 | MTDO | I/O | MTDO, GPIO40, UART, PWM, I2S, I2C, SPI |
| TP4 | MTDI | I/O | MTDI, GPIO41, UART, PWM, I2S, I2C, SPI |
| TP5 | MTCK | I/O | MTCK, GPIO39, UART, PWM, I2S, I2C, SPI |
| TP6 | MTMS | I/O | MTMS, GPIO42, UART, PWM, I2S, I2C, SPI |
| TP7 | TX0 | I/O | U0TXD, GPIO43, UART, PWM, I2S, I2C, SPI |
| TP8 | RX0 | I/O | U0RXD, GPIO44, UART, PWM, I2S, I2C, SPI |
| TP9 | D+ | I/O | USB_D+, GPIO20, ADC, UART, PWM, I2S, I2C, SPI |
| TP10 | D- | I/O | USB_D-, GPIO19, ADC, UART, PWM, I2S, I2C, SPI |
| GND | GND | G | Ground |
| BAT- | BAT- | P | Input 3.7~4.2V, Battery negative terminal input |
| BAT+ | BAT+ | P | Input 3.7~4.2V, Battery positive terminal input |
Product dimensions
Dimension Drawing:

Instructions for Use
Hardware Preparation
- ESP32S3 Mini Module Mainboard + Expansion Board
- SD Card + OV5640 Camera + Antenna
- Supplementary: USB Cable (Type A Male to Type C Male) x1, Card Reader
![]() | ![]() |
|---|

Software Preparation
- Arduino IDE、flash_download_tool
Arduino development
Environment Setup
Downloading and Installing the Arduino IDE
Arduino download website:arduino.cc/en/software

Follow the installation instructions provided with the Arduino software to download and install.
Installing the ESP32 Development Board
- To use ESP32-related boards within the Arduino IDE, you must first install the "esp32 by Espressif Systems" development board package.
- Proceed with installation according to the board installation requirements.
After opening the software:
File - Preferences
Add the address of the development board manager
-
Stable release link:
https://espressif.github.io/arduino-esp32/package_esp32_index.json
-
Development version link:
https://espressif.github.io/arduino-esp32/package_esp32_dev_index.json
Once completed, select OK
Installing the development board
- Select the Board Manager from the left-hand side of the software
- Search for esp32 in the search bar
- From the found boards, select a version ≥3.2.0 for esp32 by Espressif Systems
- Click Install

- Upon clicking, a similar prompt message will appear in the bottom-right corner of the software. Please wait for the download to complete (ensure a stable internet connection during the download).

- Upon completion of the download, a success notification will appear.

- When searching again, the term 'already installed' will appear.

The development board type for this product is XIAO_ESP32S3.
Before each programming session, it is essential to verify that the development board type is correct.

Required libraries for installation
When installing Arduino libraries, there are typically two methods available: online installation and offline installation. Should a library require offline installation, the provided library files must be used. For most libraries, users can easily search for and install them via the Arduino software's online library manager. However, some open-source or custom libraries are not synchronised with the Arduino Library Manager and thus cannot be obtained via online search. In such cases, users must manually install these libraries offline.
The W11 (ESP32S3 Mini Module) library files are stored within the example programme. Click here to proceed: (Example download link to be added)
Library files required for W11:
FastLED
- To illuminate the CHANGE LED
- Simply install the latest version

SensorLib
- Used to retrieve data from the QMI8658C sensor
- Download version
0.3.1as shown in the diagram

SD
- Supports SD card read and write operations
- After connecting the SD memory card to the Arduino board's SPI interface, you may create files and perform read/write operations
- You may also browse the directory structure within the SD card
- Download the
1.3.0version shown in the image

Sample Programme
All example programmes have separate .ino files, which can be modified from the source code to achieve your desired programme functionality. Pre-compiled .bin files are also provided, which can be directly flashed using the flash_download_tool utility.
Firmware programming
flash_download_tool
Download the Flash Download Tool Official download link:https://dl.espressif.com/public/flash_download_tool.zip
Tool Introduction
Interface entry point
Launch the Flash download tool. After double-clicking the .exe file, the tool's main interface will appear as shown below:
-
ChipType:Chip type, select according to the product type used -
WorkMode:Software modes currently includeDevelopmode andFactorymode, with the following distinctions:-
DevelopThis mode utilises the absolute path for the firmware and supports programming of single-chip products only. -
FactoryThe mode utilises relative paths; it is recommended that the firmware to be flashed be placed in the bin folder at the same level as the.exefile. Upon configuration, it will be automatically saved locally when closed. -
FactoryWhen the mode is activated, the interface is locked. Click theLockSettingsbutton to enable editing. This prevents accidental mouse operations.
-
-
LoadMode:The download interface supportsUARTandUSB.
SPIDownload Interface
The following are the configuration instructions:
-
Download Path ConfigIncludes the firmware loading path and firmware download address, entered in hexadecimal format, for example 0x1000. -
SPI Flash Config-
SPI SPEED:SPI start rate -
SPI MODE:SPI Initialisation Mode -
DETECTED INFO:Automatically detected flash and crystal oscillator information -
DoNotChgBin:If enabled, the original contents of the bin file shall be programmed. If disabled, the configuration shall be updated according to theSPI SPEEDandSPI MODEsettings on the interface before programming. -
CombineBinButton: Can package multiple firmware files selected inDownload Path Configinto a single firmware file. IfDoNotChgBinis enabled, the original firmware files will be packaged as-is. IfDoNotChgBinis disabled, the firmware will be packaged according to theSPI SPEEDandSPI MODEsettings configured in the interface. Non-data regions between firmware files will be padded with 0xff. The combined firmware will be saved to./combine/target.bin, overwriting the previous version each time it is clicked. -
DefaultButton: Reset all SPI interface configurations to their default values.
-
-
Download Panel-
START:Start button -
STOP:Stop button -
ERASE:Full flash erase -
COM:Download serial port -
BAUD:Download baud rate
-

Factory Multi Download Interface
-
FactoryThe Mode uses relative paths, loading the firmware to be flashed by default from the bin directory within the tool directory. TheDevelopmode employs absolute paths. The advantage of theFactorymode is that the firmware to be flashed can be copied directly into the bin directory of the tool directory, enabling seamless transfer between factory computers without path-related issues. -
FactoryWhen the mode is activated, the tool defaults to enablingLockSettingson the interface. WhenLockSettingsis enabled, neither the firmware path nor theSPI flash configcan be configured, preventing accidental configuration errors by production line personnel. (Factory management personnel requiring configuration may clickLockSettingsto unlock it.)

The download path config and SPI flash config settings within the FactoryMultiDownload interface are largely identical to those in the SPIDownload interface. Please refer to [[#SPIDownload interface]] and note that the serial port number and baud rate must be configured individually for each channel.
chipInfoDump Interface
-
DeviceSelect the corresponding device's serial port number and communication baud rate. -
Read FlashSelect the starting address and size of the data to be read from the flash memory. This setting is only required when reading from flash.

-
Function Description
-
Chip Info:Read the chip model, flash ID, and flash status register values; the read content is displayed directly on the software interface. -
Read Flash:Read data from the flash memory. The read content will be stored in a generated bin file, named in the format: "chip MAC + read start address + read data length + read time". -
Read Efuse:Reading the contents of the chip's eFuse functions identically to esptool summary. The read data is stored in a generated text file, named in the format "chip MAC + read time".
-
Download sample
This section primarily uses the ESP32-S3 series as an example to demonstrate how to perform standard programming and encrypted programming.
Standard programming
-
Pull the GPIO0 pin low to place the device into download mode.
-
Open the download tool, select
ESP32forChipType, chooseDevelopforWorkMode, and opt forUARTunderLoadMode. ClickOKas illustrated below.
-
Proceed to the download page, enter the bin file to be programmed along with its corresponding programming address. Tick the checkbox preceding the bin file, then input
SPI SPEED,SPI MODE,COMandBAUDaccording to your specific requirements. -
Click
STARTto commence the download. During this process, the download tool will read the flash information and the chip's MAC address. -
Upon completion of the download, the tool's interface will appear as shown in the figure below.

01_LED_RGB
Programme Description
-
Testing the functionality of the LTH1010RGB RGB LED controlled by GPIO48 in the W11 product, including communication between the LED and ESP32S3, and the display and dimming functions for red, green, and blue colours.
-
The RGB LED cycles through red, green, and blue (each colour maintained for 1 second), followed by a 1-second off period. This process repeats continuously.
Hardware Connection
- Connect the board to your computer using a USB cable
Operational Output
- Open the serial monitor
- You will sequentially observe: LED displays red, LED displays green, LED displays blue, LED is off

Board status:

02_SD_Test
Programme Description
FS.h handles file operations, SD.h interfaces with microSD cards, and SPI.h utilises the SPI communication protocol
- SD card directory management:
- List root directory contents (non-recursively)
- Create "mydir" directory and print result
- Relist root directory to verify
- Delete "mydir" and print result
- Recursively list all contents of root directory to two levels
- SD card file operations:
- Create "hello.txt" and write "Hello "
- Append "World!\n"
- Read contents and output via serial port
- Attempt to delete "foo.txt"
- Rename "hello.txt" to "foo.txt"
- Read "foo.txt" to verify integrity (print operation results at each step)
- SD card I/O performance testing:
- Read full contents of "test.txt" (record byte count / elapsed time), write 1048576 bytes of data (record byte count / elapsed time), output both via serial port
- Storage capacity statistics:
- Calculate and print total capacity and used capacity (in MB) of SD card via serial port
Hardware connection
- Connect the board to the computer using a USB cable
- Insert the SD card into the designated card slot

Operational Effect
- Open the serial monitor


- A card reader may be used to inspect the internal state of the SD card; the diagram below illustrates the content viewable via mobile phone.
- Final SD card contents:
- Two new files will be created: one named
test.txtand another namedfoo.txt. - The
foo.txtfile will contain the text "Hello World!". - The
test.txtfile is used to test the speed of reading the entire file content, as well as to calculate the total file size and the time taken to read all data.
- Two new files will be created: one named

- Contents of the
foo.txtfile

03_DVP_Camare_SaveSD
Programme Description
Arduino IDE Supplementary configuration
The ESP32's PSRAM refers to the external PSRAM (Pseudo-Static Random Access Memory) on the ESP32 chip, which provides additional memory space to augment the available memory of the ESP32 system. Within the ESP32 system, PSRAM serves the following primary purposes:
-
Expanding available RAM: The ESP32's built-in RAM is limited, particularly for applications requiring substantial memory such as image processing or audio processing, where the internal RAM may prove insufficient. Utilising PSRAM enables the expansion of the ESP32's available RAM to meet the demands of such applications.
-
Accelerating memory access: Whilst PSRAM is external memory and thus slower than internal RAM, it can serve as cache or temporary storage to expedite memory access and data processing.
-
Storing buffers: For applications requiring substantial buffers—such as network buffers or audio buffers—PSRAM provides ample storage capacity to prevent memory shortages.
For the purposes of this tutorial, you must enable the PSRAM feature within the Arduino IDE to ensure the camera functions correctly.

- Define hardware communication pins: Default configuration for XIAO ESP32S3 (with PSRAM) camera, SD card select pin = 21, supports custom modification
- Configure core camera parameters: Set 20MHz clock, UXGA frame size, JPEG format; automatically adjusts JPEG quality and frame buffer based on PSRAM
- Camera module self-test: Executes camera initialisation, prints success/error codes via serial port to verify hardware functionality
- Initialise SD card: Mounts SD card using GPIO21 as chip select, prints mount success/failure via serial port to validate storage module
- Detect SD card information: Identifies and outputs SD card type via serial port; terminates storage process if no valid card is present
- Mark SD Card Ready: Flag status once SD card is normal; photo capture only triggers when both camera and SD card are ready
- Configure timed photography: Default 60-second interval, triggered by millisecond-accurate timing, supports adjustable capture frequency
- Generate incrementing filenames: Automatically creates files like /image1.jpg, prevents overwriting, supports continuous storage
- Capture JPEG images: Retrieves camera image buffer upon trigger, extracts complete image data
- Save images to SD card: Writes images to corresponding files, serial port prints success/failure status to confirm storage validity
- Release image buffer: Frees frame buffer after saving to prevent memory leaks and ensure stable operation
- Incremental photo sequence numbering: Updates file sequence numbers to guarantee unique filenames, supporting uninterrupted continuous capture and storage.
Hardware Connection
- Connect the board to the computer using a USB cable
- Both the camera and SD card must be connected to the expansion board
SD card:

Camera:

Complete connection (expansion board to mainboard):

Operational Results
- Upon opening the serial monitor, prompt outputs for each step can be observed.

- Board status: Remove the SD card, use a card reader, and check whether photographs have been captured and saved.

04_QMI8658C_IMU
Programme Description
- Defining Sensor Communication / Interrupt Pins: By default, I²C communication pins are defined as SDA=5 and SCL=4, with the interrupt pin set to IRQ=-1 (interrupts currently disabled). Custom pin modifications are supported.
- Sensor Self-Test Functionality: Performs separate self-tests for the accelerometer and gyroscope, printing self-test success/failure results to the serial port to verify sensor hardware integrity.
- Accelerometer Parameter Configuration: Sets accelerometer range to 4G, data output rate to 1000Hz, low-pass filter mode to 0 (filtering high-frequency noise).
- Gyroscope Parameter Configuration: Sets gyroscope range to 64°/s, data output rate to 896.8Hz, low-pass filter mode to 3 (enhanced noise filtering capability).
- Enable core detection functionality: Activate both accelerometer and gyroscope simultaneously; when operating concurrently, the output frequency defaults to the gyroscope's rate (896.8Hz).
- Support optional interrupt configuration: Defining IMU_INT>0 enables interrupt pin 1 and disables interrupt pin 2, reserving an interface for subsequent interrupt-triggered data reads.
- Data Readiness Detection: Cyclically checks whether sensor data acquisition is complete, reading only when data is ready to prevent invalid data acquisition.
- Read and Print Accelerometer Data: Reads x/y/z axis data from the accelerometer and prints specific values via the serial port, supporting subsequent visualisation with a serial plotter.
- Read and print gyroscope data: Retrieve angular velocity data from the gyroscope's x/y/z axes, printing specific values via the serial port to reflect the device's rotational state.
- Read and print sensor temperature: Continuously monitor the sensor's internal temperature (in degrees Celsius), outputting readings via the serial port to assist in monitoring the device's operating environment.
Hardware Connection
- Connect the board to the computer using a USB cable
Operational Results
- Open the serial monitor to view the serial port output information
- Specific details of the current IMU can be observed

05_ADC
Programme Description
- Configure ADC Acquisition Pins: Set designated GPIO pins to ADC data acquisition mode, ensuring no conflicts with other peripherals
- Print ADC Debug Information: Output programme name, ADC configuration details, and data output format via serial port for subsequent debugging and troubleshooting
- Optimise ADC Data Anti-Interference: Perform multiple acquisitions of the same measurement, summing and averaging the results to reduce interference and enhance data stability
- Read and Aggregate Raw ADC Data: Read 12-bit precision raw ADC data (range 0-4095), complete data organisation and aggregation
- Calculate and Correct Actual Voltage: Calculates the pin input voltage based on reference voltage and acquisition precision, applying voltage divider ratio correction to derive the true actual voltage
- Formatted output of ADC detection results: Prints ADC raw values and final actual voltage via serial port in a clear format for intuitive data comprehension
- Configuration of ADC cyclic sampling parameters: Sets a 1-second sampling interval for continuous ADC detection, perpetually outputting the latest detection results
Hardware Instructions
- Connect the board to your computer using a USB cable
Operational Results
- Open the serial monitor to verify whether the programme outputs correct voltage values

📌The serial monitor displays an output value of 0.75V. This occurs because the programme has configured GPIO pin 15, yet the device lacks soldered header pins → the ADC pin remains floating → preventing reception of the VCC_3V3 voltage divider signal.
06_wifi_finding
Programme Description
- Configure WiFi operating mode: Set WiFi to Station (STA) mode, disconnecting any existing AP connections
- Stabilise WiFi configuration state: Introduce a 100-millisecond delay to ensure WiFi mode switching takes effect
- Print initialisation completion prompt: Output "Setup done" via serial port to inform the user that programme initialisation is complete
- Initiate nearby WiFi scan: Trigger WiFi network scan to obtain count of available nearby WiFi networks
- Report no available networks: If no WiFi networks detected, serial port prints "no networks found" prompt
- Output total WiFi networks: Upon detecting available networks, serial port prints total count of found WiFi networks
- Iteratively print individual WiFi details: Sequentially print each WiFi's ID number, SSID, signal strength (RSSI), and indicate encryption status (unencrypted networks lack *, encrypted networks display *)
- Configure scanning interval: After each scan completes, introduce a 5-second delay before initiating the next WiFi scan to prevent frequent scanning from consuming resources
Hardware Connection
A dedicated "WiFi/BT Antenna Connector" is located at the bottom left corner of the board's front surface. To ensure optimal WiFi and Bluetooth signal quality, the accompanying antenna supplied in the packaging must be installed onto this connector.
Do not apply direct force to the antenna connector, as this may cause installation difficulties and potentially damage your hands or the connector itself. The correct procedure is as follows:
- Align one side of the antenna connector with the connector slot and insert it.
- Gently press the other side of the connector until it clicks firmly into place, completing the installation.
When dismantling, do not pull the antenna with excessive force to avoid damaging the connector or antenna interface. The correct procedure is as follows:
- Align the antenna connector with one side and gently apply upward pressure.
- Once that side has disengaged from the slot, the entire antenna can be easily removed.
❗note
- If the antenna is not installed, you may be unable to connect to WiFi networks.
- If circumstances permit, I recommend using a whip antenna for a superior experience.

- Next, connect the board to the computer using a USB cable and flash the program.
Operational performance
- Open the serial monitor to view all scanned Wi-Fi information: serial number, SSID, signal strength (RSSI), and whether encryption is enabled (unencrypted networks display no *, encrypted networks display an *).

07_wifi_connect
Programme Description
This procedure connects the ESP32S3 Mini Module to a specific Wi-Fi network; you must know its SSID and password. Furthermore, the network must be within the ESP32S3 Mini Module's Wi-Fi range (to verify this, you may use the preceding example to scan for Wi-Fi networks).
- Define WiFi connection credentials: Pre-configure the WiFi name (SSID) and password for the network to connect to, facilitating subsequent modification of network settings
- Configure WiFi Initial Mode: Set WiFi to Station (STA) mode, disconnecting from any existing wireless AP connections
- Stabilise WiFi Initial State: Introduce a 100-millisecond delay to ensure WiFi mode switching and disconnection take effect
- Invoke WiFi Connection Function: Execute the custom initWiFi function to initiate the WiFi connection process
- Initiate WiFi connection request: Within the connection function, pass the predefined WiFi name and password to establish the network link
- Feedback WiFi connection progress: During connection, the serial port continuously prints "." to visually indicate the connection status
- Loop to await connection completion: Continuously monitors WiFi connection status, persisting until connection succeeds
- Output successful connection result: Upon successful WiFi connection, the serial port prints the device's assigned local IP address
- Maintain WiFi connection state: The loop function is empty, ensuring the established WiFi connection is sustained without additional looping operations
Below is an example of connecting to a specified network using the ESP32S3 Mini Module. The function initWiFi() serves to establish the network connection within the programme.
Both the target Wi-Fi network's ID and Password must be entered within the programme.
// Replace with your network credentials
const char* ssid = "Target WiFi SSID";
const char* password = "Target WiFi Password";
Hardware connection
- Connect the board to the computer using a USB cable
- Connect the antenna to the board (refer to the hardware connection section in [[#06_wifi_finding]] for specific instructions)

Operational performance
- Print the IP address assigned upon successful connection.



