-

ESP32-S3-N16R8-M: Difference between revisions

From Geekworm Wiki
Jump to navigation Jump to search
Rita (talk | contribs)
Rita (talk | contribs)
 
(28 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{GD Template Impl}}
{{GD Template Impl}}
[[File:ESP32-P4-ETH-05.jpg|thumb|ESP32-P4-ETH]]
[[File:ESP32-S3-N16R8-M-01.jpg|thumb|ESP32-S3-DEV-KIT-N16R8-M]]
[[File:ESP32-P4-ETH-01.jpg|thumb|ESP32-P4-ETH Charging method]]
[[File:ESP32-S3-N16R8-M-04.jpg|thumb|ESP32-S3-DEV-KIT-N16R8-M]]
[[File:ESP32-P4-ETH-03.jpg|thumb|ESP32-P4-ETH Support AI]]
[[File:ESP32-S3-N16R8-M-05.jpg|thumb|ESP32-S3-DEV-KIT-N16R8-M Support AI]]
 
[[File:ESP32-S3-N16R8-M-06.jpg|thumb|ESP32-S3-DEV-KIT-N16R8-M Functional block diagram ]]
==Important Notes==
[[File:ESP32-S3-N16R8-M-02.jpg|thumb|ESP32-S3-DEV-KIT-N16R8-M resource interface]]
<font color=red>
[[File:ESP32-S3-N16R8-M-03.jpg|thumb|ESP32-S3-DEV-KIT-N16R8-M Pin distribution]]
* This documentation describes ESP32-P4-ETH bare board.
* The board is equipped with PoE expansion header ONLY. External PoE module must be purchased separately to achieve PoE power supply.
* Onboard microphone and speaker connector are provided. Audio codec and amplifier are NOT assembled on the board.
* MIPI-DSI display, MIPI-CSI camera and speaker are peripherals, NOT included with bare board.
</font>
 
==Overview==
==Overview==


Line 33: Line 27:
* Supports multiple low-power operating states, balancing communication distance, data rate, and power consumption to meet the power needs of various application scenarios
* Supports multiple low-power operating states, balancing communication distance, data rate, and power consumption to meet the power needs of various application scenarios


==Hardware Description==
[[File:ESP32-P4-ETH-08.jpg |500px]]


# '''ESP32-P4NRW32''' ESP32-P4 with 32MB stacked PSRAM
==Technical Specification==
# '''100M RJ45 Ethernet Port'''
{| class="wikitable"
# '''32MB Nor Flash'''
|-
# '''Display Interface''' MIPI-DSI (2-lane), compatible with 5 / 7 / 8 / 10.1inch DSI screens
|'''Module'''||  ESP32-S3-WROOM-1-N16R8
# '''Camera Interface''' MIPI-CSI (2-lane), compatible with cameras such as OV5647
|-
# '''Type-C Interface''' For power supply, programming, and debugging
|'''Processor '''|| Xtensa 32-bit LX7 dual-core, up to 240 MHz
# '''SMD Microphone'''
|-
# '''Speaker Interface''' MX1.25 2P connector, supports 8Ω 2W speaker
|'''On-chip '''||  Memory 512 KB SRAM (TCM), 384 KB ROM
# '''4PIN USB Interface''' USB OTG 2.0 High Speed interface
|-
# '''PoE Module & Power Supply Header'''
| '''Flash''' || 16 MB (Quad SPI, DIO/QIO mode)
# '''BOOT Button''' Press during power-up or reset to enter download mode
# '''RESET Button''' Reset button
# '''Power Indicator'''
# '''TF Card Slot''' SDIO 3.0 interface protocol


==Install Guide==
|-
[[File:ESP32-P4-ETH-07.jpg|500px]]
| '''PSRAM ''' || 8 MB
|-
| '''Wireless'''|| 2.4 GHz Wi-Fi (802.11 b/g/n), Bluetooth 5 (LE), Bluetooth Mesh


==Dimensions==
|-
[[File:ESP32-P4-ETH-09.jpg|500px]]
| '''USB Interface''' || USB Type-C (power supply, programming, debugging)
|-
|'''Onboard Chips'''||CH343 (USB to UART), CH334 (USB 2.0 HUB)
|-
| '''GPIO (chip)''' || GPIO35/36/37 are NC on the WROOM-1 module


==Development Tools==
|-
Arduino generally offers a gentler learning curve and may be more approachable for beginners and hobbyists. ESP-IDF provides advanced tooling and finer control over system behavior, making it better suited to complex projects and applications with demanding performance requirements.
| '''Peripherals ''' || 4× SPI, 3× UART, 2× I2C, 2× I2S, 14× Touch, RMT, LED PWM, USB-OTG, TWAI, 2×12-bit ADC, LCD interface, DVP


<font color=red>⚠️warning
|-
|'''Dimensions'''||
63.30 × 25.40 mm
|-
|'''Development Environment'''||ESP-IDF, Arduino, MicroPython, PlatformIO, etc.
|}


ESP32-P4 currently has limited adaptation on the Arduino platform. To ensure development stability, it is recommended to use ESP-IDF for development at this stage. If you have requirements for using the Arduino platform, you can participate in the discussion on GitHub: Support of Arduino</font>
==Development Methods==
The ESP32 supports multiple development methods, allowing for professional development using the Espressif official ESP-IDF framework, or rapid prototyping using platforms like the Arduino IDE or MicroPython.


* '''ESP-IDF''', short for Espressif IoT Development Framework, is a development framework provided by Espressif for the ESP series chips. It is developed using the C language, including a compiler, debugger, and flashing tool, etc., and can be developed via the command lines or through an integrated development environment (such as Visual Studio Code with the Espressif IDF plugin). The plugin offers features such as code navigation, project management, and debugging, etc. We recommend using VS Code for development. For the specific configuration process, please refer to the [Working with ESP-IDF|https://docs.waveshare.com/ESP32-P4-ETH/Development-Environment-Setup-IDF]. The tutorial also provides relevant demos for reference.
The main development platforms include:
 
* [https://docs.espressif.com/projects/esp-idf/en/stable/esp32s2/get-started/index.html ESP-IDF]: Espressif's official development framework, specifically built for the ESP32 series chips, providing a complete development toolchain, code libraries, and documentation. It can fully leverage all the performance and features of ESP32 and is the preferred solution for professional development and commercial products.
*
* [https://docs.espressif.com/projects/arduino-esp32/en/latest/getting_started.html# Arduino]: A well-known open-source hardware/software platform offering a simple and standard C++ interface, supporting numerous microcontrollers including ESP32. Arduino has rich libraries and examples, widely used in prototyping and education, and is a popular entry-level platform for beginners. For the development environment configuration, please refer to [https://docs.waveshare.com/ESP32-S3-DEV-KIT-N8R8/Arduino Working with Arduino] page.
*
* [https://micropython.org/ MicroPython]: The simplified version of Python 3 includes core features and is optimized for microcontroller environments. It supports instant execution without repeated compilation and flashing. It provides an efficient way for developers familiar with Python to get started with ESP32 quickly. For development environment setup, please refer to the [https://docs.waveshare.com/ESP32-S3-DEV-KIT-N8R8/MicroPython Working with MicroPython] page.
*
* '''Other Development Methods''': The ESP32 development ecosystem is very rich. Besides the aforementioned platforms, development is also supported via platforms like PlatformIO, Mongoose OS, Espruino (JavaScript), ESPHome, etc., catering to the needs of developers with different technical backgrounds.
*


==Packing List==
==Packing List==
* ESP32-P4-ETH Development Board x1
*ESP32-S3-DEV-KIT-N16R8-M Development Board (with pre-soldered headers)
* 20-pin GPIO Headers x2
 
[[File:ESP32-S3-N16R8-M-09.jpg |500px]]


==User Manual==
==User Manual==
* [https://docs.waveshare.com/ESP32-P4-ETH/Resources-And-Documents Resources]
* [https://docs.waveshare.com/ESP32-S3-DEV-KIT-N8R8/Resources-And-Documents Resources]
* [https://docs.waveshare.com/ESP32-P4-ETH/Development-Environment-Setup-IDF Working with ESP-IDF]
* [https://docs.waveshare.com/ESP32-S3-DEV-KIT-N8R8/Arduino Working with Arduino]
* [https://docs.waveshare.com/ESP32-P4-ETH/Firmware-Flashing Firmware Flashing and Erasing]
* [https://docs.waveshare.com/ESP32-S3-DEV-KIT-N8R8/ESP-IDF Working with ESP-IDF]
* [https://docs.waveshare.com/ESP32-S3-DEV-KIT-N8R8/MicroPython Working with MicroPython]
 
 


==FAQ==
==FAQ==
Line 79: Line 92:
<div class="toccolours mw-collapsible mw-collapsed">
<div class="toccolours mw-collapsible mw-collapsed">
<div style="font-weight:bold;line-height:1.0;">
<div style="font-weight:bold;line-height:1.0;">
Q1: Which screens are supported by the development board?
Q1: Two COM ports appear in Device Manager. Which one should I select?
</div>
</div>
<div class="mw-collapsible-content">
<div class="mw-collapsible-content">
A: Please first check the component documentation to confirm compatible screen types: [https://github.com/waveshareteam/Waveshare-ESP32-components/tree/master/bsp/esp32_p4_platform esp32_p4_platform]
A: The board has an onboard CH334 USB hub. A single Type-C connection enumerates two independent COM ports, and either port can be used to flash programs.


</div>
With the USB cable connected, locate the two ports under '''Ports (COM & LPT)''' in Device Manager and distinguish them by their device names:
</div>
 
* The port whose name contains <code>USB-Enhanced-SERIAL CH343</code> is the CH343 USB-to-UART interface.
* The port whose name contains <code>Espressif</code>  or<code> USB JTAG/serial debug unit</code>  is the ESP32-S3 native USB interface, which can also be used for JTAG debugging.
 
To open Device Manager in Windows, right-click the Start menu in the lower-left corner of the desktop and select '''Device Manager'''. Alternatively, press <kbd style="background:#eee;border:1px solid #aaa;border-radius:3px;padding:2px 6px;font-family:monospace;font-size:0.9em;">Win</kbd> + <kbd style="background:#eee;border:1px solid #aaa;border-radius:3px;padding:2px 6px;font-family:monospace;font-size:0.9em;">R</kbd>, enter<code>  devmgmt.msc</code>, and press Enter.


<div class="toccolours mw-collapsible mw-collapsed">
For a detailed comparison of the two interfaces, see [https://docs.waveshare.com/ESP32-S3-DEV-KIT-N8R8/Arduino Working with Arduino].
<div style="font-weight:bold;line-height:1.0;">
Q2: How do I determine my ESP32-P4 chip revision?
</div>
<div class="mw-collapsible-content">
A: Check the silkscreen marking on the chip and the boot log from the serial port. The ESP32-P4 Platform examples provide build configurations for rev v3.0 and later chips, rev v3.1 and later chips, and rev v0.x / v1.x engineering samples. Before flashing, make sure the firmware configuration matches the actual chip revision.


</div>
</div>
Line 99: Line 111:
<div class="toccolours mw-collapsible mw-collapsed">
<div class="toccolours mw-collapsible mw-collapsed">
<div style="font-weight:bold;line-height:1.0;">
<div style="font-weight:bold;line-height:1.0;">
Q3: Which ESP-IDF version is recommended for ESP32-P4?
Q2: Why does the board sometimes fail to connect to the serial port or fail to flash when I flash it again?
</div>
</div>
<div class="mw-collapsible-content">
<div class="mw-collapsible-content">
A: ESP-IDF v5.5.1 ~ v5.5.4 is recommended. The ESP32-P4 Platform examples are primarily maintained for ESP-IDF release/v5.4 and later versions. Some advanced UI examples may retain compatibility notes for release/v5.3; please refer to the README in the example directory for details.
A: Use either of the following methods to put the board back into download mode:


* Press and hold the RESET button for more than 1 second, then release it. Wait for the computer to detect the device again before flashing.
* Press and hold the BOOT button, press and release the RESET button, and then release the BOOT button. The board enters download mode, which resolves most flashing failures.
</div>
</div>
</div>
</div>
Line 109: Line 123:
<div class="toccolours mw-collapsible mw-collapsed">
<div class="toccolours mw-collapsible mw-collapsed">
<div style="font-weight:bold;line-height:1.0;">
<div style="font-weight:bold;line-height:1.0;">
Q4: Which ESP-IDF version is recommended for ESP32-P4?
Q3: Why does flashing fail or the program behave unexpectedly after I replace the board with another one of the same model?
</div>
</div>
<div class="mw-collapsible-content">
<div class="mw-collapsible-content">
A:This message means the firmware's ESP32-P4 chip revision configuration doesn't match the chip on your board. Do not use <code>--force</code>to skip the check — rebuild with the correct chip revision instead.
A: After replacing the board, the computer usually assigns different COM ports. Select the COM port and target chip again, then recompile and flash the program.
 
The ESP32-P4 Platform repository provides shared configuration files:
 
* rev v3.1 or later: <code>config/esp32p4_rev_v3_1.defaults</code>
* rev v3.0 or later: <code>config/esp32p4_rev_v3_0.defaults</code>
* rev v0.x / v1.x engineering sample: <code>config/esp32p4_rev_pre_v3.defaults</code>
 
Specify the matching config in the example directory via SDKCONFIG_DEFAULTS. See the detailed instructions under [https://docs.waveshare.com/ESP32-P4-ETH/Development-Environment-Setup-IDF#p4-revision-config ESP-IDF examples.]
 
[[File:ESP32-P4-ETH-10.jpg| 700px]]
</div>
</div>
</div>
</div>
Line 128: Line 132:
<div class="toccolours mw-collapsible mw-collapsed">
<div class="toccolours mw-collapsible mw-collapsed">
<div style="font-weight:bold;line-height:1.0;">
<div style="font-weight:bold;line-height:1.0;">
Q5: Can the development board be powered by both USB Type-C and PoE at the same time?
Q4: Why does the detected serial device repeatedly reset and reconnect after the board is powered on?
</div>
</div>
<div class="mw-collapsible-content">
<div class="mw-collapsible-content">
A: Yes, it does not affect power delivery.
A:This is usually caused by insufficient power from the USB port. Check the supply voltage of the computer's USB port. It should normally be above 4.9 V; below this value, the board may repeatedly disconnect. Switch to a USB port that provides sufficient power. Both USB interfaces on the board can operate normally.
 
</div>
</div>
</div>
</div>
Line 138: Line 141:
<div class="toccolours mw-collapsible mw-collapsed">
<div class="toccolours mw-collapsible mw-collapsed">
<div style="font-weight:bold;line-height:1.0;">
<div style="font-weight:bold;line-height:1.0;">
Q6: What is the maximum camera resolution supported by ESP32-P4?
Q5: Why are the ESP-IDF controls missing from the VS Code status bar?
</div>
</div>
<div class="mw-collapsible-content">
<div class="mw-collapsible-content">
A: During functionality testing, we have validated several features. Currently, there are developments such as using a Cat-4 module to provide network connectivity for the P4, or using the P4's MIPI-DSI to extend a host screen. However, for stability reasons, related example programs are not yet provided. They will be added to the wiki once the features and solutions are more mature.
A: PA: Press <kbd style="background:#eee;border:1px solid #aaa;border-radius:3px;padding:2px 6px;font-family:monospace;font-size:0.9em;">F1</kbd> to open the Command Palette and search for '''Espressif IDF'''. If the extension is marked as untrusted, set it to trusted so it can operate normally.


</div>
</div>
Line 148: Line 151:
<div class="toccolours mw-collapsible mw-collapsed">
<div class="toccolours mw-collapsible mw-collapsed">
<div style="font-weight:bold;line-height:1.0;">
<div style="font-weight:bold;line-height:1.0;">
Q7: Can I develop using PlatformIO or MicroPython?
Q6: Why can't I open the debugging interface when performing JTAG debugging?
</div>
</div>
<div class="mw-collapsible-content">
<div class="mw-collapsible-content">
A:  
A: Click the OpenOCD button in the VS Code status bar, stop OpenOCD, and then start it again.
* For stability, support for ESP32-P4 in PlatformIO requires the PlatformIO community to support the Arduino-esp32 SDK version 3.1x.
* During development, we have experimented with using MPY firmware for the ESP32-P4, which can run simple commands. However, this is still in the validation phase. Actual interfaces and peripheral applications are not yet fully adapted. Once adaptation is complete and stable, usage examples for ESP32-P4 in MicroPython will be released.


</div>
</div>

Latest revision as of 16:14, 25 August 2026

ESP32-S3-DEV-KIT-N16R8-M
ESP32-S3-DEV-KIT-N16R8-M
ESP32-S3-DEV-KIT-N16R8-M Support AI
ESP32-S3-DEV-KIT-N16R8-M Functional block diagram
ESP32-S3-DEV-KIT-N16R8-M resource interface
ESP32-S3-DEV-KIT-N16R8-M Pin distribution

Overview

The ESP32-S3-DEV-KIT-N16R8-M is a compact microcontroller development board equipped with multiple digital interfaces.

Hardware-wise, it uses the ESP32-S3-DEV-KIT-N16R8 module, which integrates an Xtensa 32-bit LX7 dual-core processor running at up to 240 MHz, with built-in 512KB SRAM (TCM) and 8MB PSRAM. The board also features CH343 and CH334 chips, allowing both USB and UART development through a single USB-C interface. When connected to a computer, the board enumerates two independent COM ports: one for the ESP32-S3 native USB interface and one for the CH343 USB-to-UART interface. See the FAQ for how to identify them. Its pinout is compatible with the ESP32-S3-DevKitC-1 board, enabling expansion with various peripherals for greater convenience.

This is the -M version, with factory pre-soldered 2×20 header pins (2.54 mm pitch) on both sides, ready to be inserted into a breadboard out of the box; no soldering is required.

As for the software, you can choose ESP-IDF, Arduino, MicroPython, or other development environments so that you can easily and quickly get started and apply it to the product.

Features

  • Powered by the ESP32-S3-WROOM-1-NXRX module, featuring an Xtensa 32-bit LX7 dual-core processor with a main frequency of up to 240MHz
  • Integrated 512KB SRAM and 384KB ROM, with optional PSRAM and Flash memory configurations
  • Integrated 2.4GHz Wi-Fi and Bluetooth LE dual-mode wireless communication with excellent RF performance
  • USB Type-C interface, eliminating concerns about plug orientation
  • Onboard CH343 and CH334 chips, meeting USB and UART development needs through a single Type-C port
  • Rich peripheral interfaces brought out; pin-compatible with the ESP32-S3-DevKitC-1 board for strong compatibility and expandability
  • The pin headers are pre-soldered (-M version), with a standard 2.54 mm pitch, ready to use.
  • Castellated module design allows direct soldering and integration onto user-designed carrier boards
  • Supports multiple low-power operating states, balancing communication distance, data rate, and power consumption to meet the power needs of various application scenarios


Technical Specification

Module ESP32-S3-WROOM-1-N16R8
Processor Xtensa 32-bit LX7 dual-core, up to 240 MHz
On-chip Memory 512 KB SRAM (TCM), 384 KB ROM
Flash 16 MB (Quad SPI, DIO/QIO mode)
PSRAM 8 MB
Wireless 2.4 GHz Wi-Fi (802.11 b/g/n), Bluetooth 5 (LE), Bluetooth Mesh
USB Interface USB Type-C (power supply, programming, debugging)
Onboard Chips CH343 (USB to UART), CH334 (USB 2.0 HUB)
GPIO (chip) GPIO35/36/37 are NC on the WROOM-1 module
Peripherals 4× SPI, 3× UART, 2× I2C, 2× I2S, 14× Touch, RMT, LED PWM, USB-OTG, TWAI, 2×12-bit ADC, LCD interface, DVP
Dimensions

63.30 × 25.40 mm

Development Environment ESP-IDF, Arduino, MicroPython, PlatformIO, etc.

Development Methods

The ESP32 supports multiple development methods, allowing for professional development using the Espressif official ESP-IDF framework, or rapid prototyping using platforms like the Arduino IDE or MicroPython.

The main development platforms include:

  • ESP-IDF: Espressif's official development framework, specifically built for the ESP32 series chips, providing a complete development toolchain, code libraries, and documentation. It can fully leverage all the performance and features of ESP32 and is the preferred solution for professional development and commercial products.
  • Arduino: A well-known open-source hardware/software platform offering a simple and standard C++ interface, supporting numerous microcontrollers including ESP32. Arduino has rich libraries and examples, widely used in prototyping and education, and is a popular entry-level platform for beginners. For the development environment configuration, please refer to Working with Arduino page.
  • MicroPython: The simplified version of Python 3 includes core features and is optimized for microcontroller environments. It supports instant execution without repeated compilation and flashing. It provides an efficient way for developers familiar with Python to get started with ESP32 quickly. For development environment setup, please refer to the Working with MicroPython page.
  • Other Development Methods: The ESP32 development ecosystem is very rich. Besides the aforementioned platforms, development is also supported via platforms like PlatformIO, Mongoose OS, Espruino (JavaScript), ESPHome, etc., catering to the needs of developers with different technical backgrounds.

Packing List

  • 1× ESP32-S3-DEV-KIT-N16R8-M Development Board (with pre-soldered headers)

User Manual


FAQ

Q1: Two COM ports appear in Device Manager. Which one should I select?

A: The board has an onboard CH334 USB hub. A single Type-C connection enumerates two independent COM ports, and either port can be used to flash programs.

With the USB cable connected, locate the two ports under Ports (COM & LPT) in Device Manager and distinguish them by their device names:

  • The port whose name contains USB-Enhanced-SERIAL CH343 is the CH343 USB-to-UART interface.
  • The port whose name contains Espressif or USB JTAG/serial debug unit is the ESP32-S3 native USB interface, which can also be used for JTAG debugging.

To open Device Manager in Windows, right-click the Start menu in the lower-left corner of the desktop and select Device Manager. Alternatively, press Win + R, enter devmgmt.msc, and press Enter.

For a detailed comparison of the two interfaces, see Working with Arduino.

Q2: Why does the board sometimes fail to connect to the serial port or fail to flash when I flash it again?

A: Use either of the following methods to put the board back into download mode:

  • Press and hold the RESET button for more than 1 second, then release it. Wait for the computer to detect the device again before flashing.
  • Press and hold the BOOT button, press and release the RESET button, and then release the BOOT button. The board enters download mode, which resolves most flashing failures.

Q3: Why does flashing fail or the program behave unexpectedly after I replace the board with another one of the same model?

A: After replacing the board, the computer usually assigns different COM ports. Select the COM port and target chip again, then recompile and flash the program.

Q4: Why does the detected serial device repeatedly reset and reconnect after the board is powered on?

A:This is usually caused by insufficient power from the USB port. Check the supply voltage of the computer's USB port. It should normally be above 4.9 V; below this value, the board may repeatedly disconnect. Switch to a USB port that provides sufficient power. Both USB interfaces on the board can operate normally.

Q5: Why are the ESP-IDF controls missing from the VS Code status bar?

A: PA: Press F1 to open the Command Palette and search for Espressif IDF. If the extension is marked as untrusted, set it to trusted so it can operate normally.

Q6: Why can't I open the debugging interface when performing JTAG debugging?

A: Click the OpenOCD button in the VS Code status bar, stop OpenOCD, and then start it again.