Table of Contents

Advertisement

Quick Links

ESP-FAQ Handbook
Release master
Espressif Systems
Aug 24, 2023

Advertisement

Table of Contents
loading
Need help?

Need help?

Do you have a question about the ESP and is the answer not in the manual?

Questions and answers

Summary of Contents for Espressif Systems ESP

  • Page 1 ESP-FAQ Handbook Release master Espressif Systems Aug 24, 2023...
  • Page 2: Table Of Contents

    2.2.10 ESP8266 enters boot mode (2,7) and hits a watchdog reset. What could be wrong? ..12 2.2.11 When using the ESP-WROVER-KIT board with OpenOCD, an error occurred as: Can’t find board/esp32-wrover-kit-3.3v.cfg. How can I resolve such issue? .
  • Page 3 ......... . . 16 2.3.10 How to know the version of ESP-IDF, is it recorded in a certain document? .
  • Page 4 ..... . 24 3.2.6 Does ESP-DL support all models of the three platforms mentioned above (mxnet, pytorch, and tensorflow)? ........24 3.2.7...
  • Page 5 . . 29 3.6.5 Can the 2-megapixel OV2640 camera on the ESP-EYE be changed to only output 0.3- megapixel images? ........29 3.6.6...
  • Page 6 Do I need to connect a router for communication between ESP-NOW devices? ..36 3.9.8 Why does ESP-NOW limit the data length of each packet to 250 bytes? Can it be configured? 3.9.9 What should I pay attention to when using ESP-NOW applications? .
  • Page 7 4.1.2 Does ESP32 support Bluetooth 5.0? ......43 4.1.3 After the Bluetooth® LE starts advertising, why some mobile phones cannot successfully scan them? .
  • Page 8 ....57 4.2.3 When using the Ethernet example in ESP-IDF, an error occurred as “Timed out waiting for PHY register 0x3 to have value 0xc0f0 (mask 0xfff0). Current value 0xffff”. How to resolve such issue? .
  • Page 9 ..........104 4.6.1 Can I add any broadcast data I want to Android ESP-Touch (e.g., add a device ID so that ESP32 can receive this ID)? .
  • Page 10 4.7.22 After I input the command espefuse.py read_protect_efuse BLOCK3 command in the terminal configured with ESP-IDF to enable the read-protection for Efuse BLOCK3, why is the data of the Efuse BLOCK3 all 0x00 when I input esp_efuse_read_block() to read the Efuse BLOCK3? .
  • Page 11 4.9.42 Why do different ESP32 modules have different flash erase time? ... . . 124 4.9.43 Why I encountered the following error after I run the firmware based on the esp-idf SDK? 4.10 Wi-Fi .
  • Page 12 4.10.13 Does the buffer parameter in esp_wifi_802.11_tx interface include FCS? ..128 4.10.14 What is the supported Wi-Fi frequency band and power meter for ESP-WROOM-32D? . 128 4.10.15 What is the maximum value of ESP32 Wi-Fi RF power?...
  • Page 13 API to directly tell that the entered password is wrong? ....144 4.10.91 When testing the Station example of ESP32 base on v4.4 version of ESP-IDF, how to support WPA3 encryption mode? .
  • Page 14 60 mA. How to troubleshoot the issue? ....147 4.10.107How to configure the Wi-Fi country code when the ESP end product needs to be sold worldwide? .
  • Page 15 5.3.32 Does ESP32-C3F SPI CS0 pin need an external 10 kΩ pull-up resistor? ..161 5.3.33 Is there any hardware design reference for ESP-Skainet Speech Recognition? ..161 5.3.34 Is it necessary to connect a 32 kHz RTC crystal?
  • Page 16 Does the RF performance of an ESP32 module degrade if it runs with a 2.8 V supply? . . 165 5.4.2 What are the modulation methods supported by ESP chips? ....166 5.4.3 How can I get the RF related information (e.g., antenna specification, antenna pattern, etc.)
  • Page 17 6.1.6 In ESP32’s Deep-sleep mode, using an internal 150 KHz RTC clock or using an external 32 KHz, which consumes more power? ......170 6.1.7 What are the requirements for CPU frequency to ensure normal operation of the RF module when reducing power consumption by reducing the CPU frequency?
  • Page 18 Table of contents [Coming Soon …] ESP-FAQ is a summary document of frequently asked questions released by Espressif. This repository aims to help our users to quickly locate those questions and get answers through simple explanations. The current categories of FAQ cover: development environment, application solution, software framework, hardware related and test verification.
  • Page 19 Table of contents Espressif Systems Release master Submit Document Feedback...
  • Page 20: Instruction

    In the mean- time, you are welcomed to make contributions directly to ESP-FAQ, such as fixing bugs and adding new documents. For detailed information about this process, please go to “Document contribution”.
  • Page 21: Question Classification Categories

    Once you have mastered the above mentioned question search techniques, you can use the categories in ESP-FAQ for reference to extract keywords for the questions you expect to ask and then search for them. The framework of ESP-FAQ categories is shown as follows: •...
  • Page 22: Branch Naming Conventions

    For additional guidance regarding list please refer to Bulleted and Numbered Lists. Please see the example template for text and figures below. Q&A example -------------- Does Espressif have any AI image recognition products? (continues on next page) Espressif Systems Release master Submit Document Feedback...
  • Page 23: Local Build Environment

    Chapter 1. Instruction (continued from previous page) -------------------------------------------------------- Yes, we already have the ESP-EYE development board. With ESP32 as its␣ main control chip, ESP-EYE supports various types of cameras, such as␣ → 0v2640, 3660, 5640 and etc. → Q&A figure example -------------- curses.h: No such file or directory?...
  • Page 24: Commit Message Standards

    Please add commit messages on your branch to explain what you have added/modified/deleted. Each commit has one message, for example: artificial-intelligence: add esp-eye support those camera models 1. esp-eye support those camera models. The first line of the commit message should be like “Q&A category: add/fix/modify/delete something”. And this line should be started with the file name you updated, for example: artificial-intelligence: esp-eye support those camera models.
  • Page 25 Chapter 1. Instruction Espressif Systems Release master Submit Document Feedback...
  • Page 26: Development Environment

    Chapter 2 Development environment 2.1 IDE plugins 2.1.1 How to add ESP32 development board on Arduino IDE? • For installation instructions of Arduino-ESP32, please refer to arduino-ide getting started. • For instructions on how to add development boards on Arduino IDE, please refer to arduino Cores.
  • Page 27: What Is The Serial Port Name Of Esp Devices

    • For second-stage Bootloader log, go to menuconfig and configure the Bootloader config option. • For ESP-IDF log, go to menuconfig > Component config and configure the Log output option. 2.2.3 How to modify the default method of RF calibration in ESP32? •...
  • Page 28: How To Troubleshoot In Esp32 Boot Mode

    For example, to set the log level for the network module to ESP_LOG_DEBUG, you can use the following code: esp_log_level_set("network", ESP_LOG_DEBUG); For more information about this functinality, please refer to Logging library. Espressif Systems Release master Submit Document Feedback...
  • Page 29: Esp8266 Enters Boot Mode (2,7) And Hits A Watchdog Reset. What Could Be Wrong

    For more information, please refer to ESP8266 Boot Mode Selection. 2.2.11 When using the ESP-WROVER-KIT board with OpenOCD, an error occurred as: Can’t find board/esp32-wrover-kit-3.3v.cfg. How can I resolve such issue? • With 20190313 and 20190708 versions of OpenOCD, please use instruction openocd -f board/ esp32-wrover.cfg.
  • Page 30: How To Do Rf Performance Test With Esp32, Esp8266, And Esp32S2

    Espressif’s chips and modules. esptool.py --port /dev/ttyUSB* flash_id 2.2.18 When debugging the Ethernet Example in ESP-IDF, the following exception log appears. How can I resolve such issue? emac: Timed out waiting for PHY register 0x2 to have value 0x0243(mask␣...
  • Page 31: I Found A "Brownout Detector Was Triggered"Failure On My Esp32. How To Resolve Such Issue

    “Error: No such command ‘set-target’ ”. What could be the reason? • The ESP-IDF is adapted to ESP32-S2 from release/v4.2, thus setting up ESP32-S2 environment in previous versions will cause errors. In this case, when using command idf.py set-target esp32s2, there will be error as “Error: No such command ‘set-target’...
  • Page 32: When Installing Esp-Idf Version Master Using Esp-Idf Tools 2.3 In Windows System, An Error Occurred As: Installation Has Failed With Exit Code 2. What Could Be The Reason

    This is because the system could not find the project to be compiled. You need to change directory to the ESP-IDF project before running commands to configure and compile the project. For example, to build the project hello world, go to esp-idf/examples/get-started/hello_world before running the commands.
  • Page 33: Errors Occurred When Using Idf.menuconfig And Idf.build After Updating The Esp- Idf Version From V3.3 To The Latest One

    Chapter 2. Development environment 2.3.7 Errors occurred when using idf.menuconfig and idf.build after updating the ESP- IDF version from v3.3 to the latest one: • Rebuild the environment following Started. • Remove build directory build and configuration file sdkconfig under the hello_world directory.
  • Page 34: How To Know The Version Of Esp-Idf, Is It Recorded In A Certain Document

    2.3.11 How to optimize ESP-IDF compilation in Windows environment? • Please add the directories of ESP-IDF source code and compiler .espressif to the exclusions of anti-virus program. 2.3.12 Is there an esptool that can be used directly on Windows? •...
  • Page 35: How To Flash Firmware In Macos And Linux Systems

    A fatal error occurred: Invalid head of packet (0x50) esptool.py failed with exit code Solution If you are using ESP32-S2 instead of ESP32-S2 Beta, please update ESP-IDF to v4.2 or later versions. Notes: Espressif Systems Release master Submit Document Feedback...
  • Page 36: Esp-Idf V4.1

    Chapter 2. Development environment • ESP-IDF v4.1 only supports ESP32-S2 Beta, which is not compatible with ESP32-S2. • The version of esptool came with ESP-IDF v4.1 is v2.9-dev, which only supports ESP32-S2 Beta as well. • Both ESP-IDF v4.2 and its esptool v3.0-dev support ESP32-S2 series chips.
  • Page 37: What Are The Espressif Module Programming Tools

    • Connecting the CMD pin of the SPI Flash in ESP32-WROVER-B to GND will cause the flash failing to start. And the following error log will be printed: rst:0x10 (RTCWDT_RTC_RESET),boot:0x1b (SPI_FAST_FLASH_BOOT) flash read err, 1000 ets_main.c ets Jun 8 2016 00:22:57 Espressif Systems Release master Submit Document Feedback...
  • Page 38: The Encrypted Device Cannot Be Re-Flashed Via The Flash Download Tool. What Could Be The

    2.4.22 When using the Flash Download Tools to flash ESP32-C3 via USB, 8-download data fail occurs repeatedly. How can I solve it? • Please erase the chip completely first before flashing • This problem has been solved in V3.9.4 and above versions Espressif Systems Release master Submit Document Feedback...
  • Page 39 Chapter 2. Development environment Espressif Systems Release master Submit Document Feedback...
  • Page 40: Application Solution

    3.1 Android application 3.2 Artificial intelligence 3.2.1 What types of cameras are supported on AI image recognition products? With ESP32 as its main control chip, ESP-EYE supports various types of cameras, such as 0V2640, OV3660, OV5640, OV7725, etc. Please see esp32-camera Github.
  • Page 41: What Model Frameworks Does Esp-Dl Support

    3.2.6 Does ESP-DL support all models of the three platforms mentioned above (mxnet, pytorch, and tensorflow)? ESP-DL supports models in which all the operators are supported by ESP-DL. Please check layer the supported operators.
  • Page 42: Do You Have Relevant Study Materials For Esp-Sr Github

    3.4.3 There is an AUX input on the ESP32 AI development board, can MIC be used to pick up the sound? • The ESP-ADF development framework can choose a variety of ways to pick up sound, including MIC input and Line-in.
  • Page 43: When Using Esp32-Wrover-B Module + Es8311 To Design Audio Development Board, Which Pins Can Be Selected For Mclk Clock

    (IllegalInstruction). Exception was unhandled. How to resolve such issue? • Please check the power supply. • it is recommended that the system be connected to an at least 5 V/2 A power adapter for sufficient current supply. Espressif Systems Release master Submit Document Feedback...
  • Page 44: Can Esp-Dsp Fft Run 4096, 8192 And More Samples

    3.4.13 Where is the code example for ESP-LED-Strip? • Code examples for ESP-LED-Strip are provided in the ESP-ADF repo, please refer to led_pixels example. 3.4.14 Does ESP32 support online voice recognition? • Yes. Please refer to esp-adf/examples/dueros.
  • Page 45: What Is The Maximum Data Transmission Load For Bluetooth® Le (Ble) Mesh

    • For the network configuration process, please refer to Getting Started with ESP-BLE-MESH. 3.5.3 For unprovisioned device in BLE-MESH, the default name is ESP-BLE-MESH, how to modify this name? • You can use API esp_ble_mesh_set_unprovisioned_device_name(), it is suggested to call it after esp_ble_mesh_init(), otherwise the device name is still ESP-BLE-MESH.
  • Page 46 JPEG encoding on the ESP32 devices. This method encodes YUV422 or RGB565 data by software to obtain JPEG images. 3.6.5 Can the 2-megapixel OV2640 camera on the ESP-EYE be changed to only output 0.3-megapixel images?
  • Page 47 In this case, it is necessary to reduce the PCLK of GC2145. For specific methods, try to configure a smaller XCLK and debug the PLL clock coefficient of the camera. 3.6.14 Does ESP32-S3 support GB28181 protocol? Not yet supported. Espressif Systems Release master Submit Document Feedback...
  • Page 48 ESP-WROVER-KIT development board includes the camera and SD card circuits, so you can refer to pins configuration of ESP-WROVER-KIT V3 Getting Started Guide. 3.6.17 Can a driver for a specific camera model be added if the currently supported cam- era sensors do not meet my requirements? Yes.
  • Page 49 • It is currently not possible to compile on Windows. Also, it is not recommended to use a virtual machine for ESP Matter development, as the Matter Controller will use Bluetooth hardware where unknown errors may occur with the virtual machine. Using Linux or macOS systems directly are recommended.
  • Page 50 I followed the Matter official tutorial. What could be the reason? It is not recommended to use a virtual machine for ESP Matter development, as the Matter Controller will use Bluetooth hardware where unknown errors may occur with the virtual machine. It is recommended to use Ubuntu 20.04 LTS and above hosts directly.
  • Page 51 • Using Amazon/Google/Apple voice devices that support Matter protocol, it is possible to remotely control Mattter ESP devices. In addition, if other ecosystems also support the ecosystem of the Matter protocol, then the home hub devices such as speakers in this ecosystem can also control the Matter devices remotely.
  • Page 52: Can Wi-Fi Be Used With Esp-Now At The Same Time

    3.9.3 Can Wi-Fi be used with ESP-NOW at the same time? • Yes, but it should be noted that the channel of ESP-NOW must be the same as that of the connected AP. 3.9.4 How do I set the rate at which ESP-NOW data is sent?
  • Page 53: Do I Need To Connect A Router For Communication Between Esp-Now Devices

    • The maximum length does not support configuration. ESP-NOW uses one vendor-specific element field of action frame to transmit ESP-NOW data, whose length field is only 1 byte (0xff = 255) as defined by IEEE 802.11. Thus, the maximum length of ESP-NOW data is limited to 250 bytes.
  • Page 54: Do Esp-Now Applications Support Sending Packets Over Each Wi-Fi Channel

    3.9.14 I tested the application esp-idf/examples/wifi/espnow using ESP32. Does it only support connecting to 7 encrypted devices at the maximum? • In the esp-now application, ESP32 supports connecting to no more than 17 encrypted devices, and the default value is 7. For more details, please refer to “Add Paired...
  • Page 55: Does Esp Azure Library Support Azure Iot Central? Is There An Example

    • ESP Azure already supports Azure IoT Central. But there is no relevant example on the master. • The PnP example on the ESP Azure’ s preview/pnp_example branch will report some actual data from sensors, you can refer to the operation of Azure IoT Central for the data management.
  • Page 56: When Using An Esp32 Development Board To Test The Esp

    3.13.8 How do I upgrade my ESP-MESH device via OTA after networking? • The ROOT node can connect to the server to get the upgrade bin file and then send the firmware to the corre- sponding module via MAC address for OTA upgrade.
  • Page 57: What Is The Default Mode For Esp-Mesh Nodes Without Any Configuration

    3.13.13 When using an ESP32 as a master device to synchronize time for multiple slave devices, can the time error be less than 2 ms? • For this application scenario, it is recommended to develop based on esp-mdf, please refer to esp- mdf/examples/development_kit/light example.
  • Page 58: When Esp-Wifi-Mesh Is Already Networked, Does The Root Or Node Device Can Also Enable Wi-Fi Scan To Scan Surrounding Available Ap Information

    Wi-Fi Scan to scan surrounding available AP information? • The Wi-Fi Scan feature is not supported on any node device when esp-wifi-mesh is already networked. 3.13.18 How can I switch to a new router for networking when using the esp-wifi-mesh router solution? •...
  • Page 59 Chapter 3. application solution Espressif Systems Release master Submit Document Feedback...
  • Page 60: Software Framework

    Chapter 4 Software framework 4.1 Bluetooth LE & Bluetooth 4.1.1 When porting example gatt_server, an error occurred indicating head file does not exist. What could be the reasons? When porting example gatt_server, an error occurred as fatal error: esp_gap_ble_api.h: No such file or directory, but this file is already included in the head file. •...
  • Page 61: Can I Process Ota Through Bluetooth® On Esp32

    4.1.7 Does ESP32 support Bluetooth® 4.2 DLE (Data Length Extension)? Yes, Bluetooth 4.2 DLE is supported in all versions of ESP-IDF. There is no sample code pro- vided currently. You can implement this by calling corresponding APIs directly. Please refer to esp_ble_gap_set_pkt_data_len.
  • Page 62: What Is The Transmit Power Of Esp32 Bluetooth

    4.1.15 How is the ESP32 SPP performance? When we use two ESP32 boards to run SPP, one-way throughput can reach up to 1900 Kbps (about 235 KB/s), which is close to the theoretical value in the specifications. Espressif Systems Release master Submit Document Feedback...
  • Page 63: What Is The Maximum Transmission Rate For Esp32 Bluetooth® Le

    In an open environment, the transmission rate for ESP32 Classic Bluetooth SPP can reach 1400+ Kbps ~ 1590 Kbps (only for reference, please do tests based on your actual application environment) with bi-directional transmitting and receiving simultaneously. Espressif Systems Release master Submit Document Feedback...
  • Page 64: Is Esp32 Bluetooth® Compatible To Bluetooth® Ver2.1 + Edr Protocol

    4.1.25 What is the operating current for ESP32 Classic Bluetooth®? A2DP (Single core CPU 160 Mhz,DFS = false,commit a7a90f) Current Maximum (mA) Minimum (mA) Average (mA) Scanning 106.4 30.8 37.8 Sniff 107.6 31.1 32.2 Play Music 90.1 100.4 Espressif Systems Release master Submit Document Feedback...
  • Page 65: How Can I Modify The Transmit Power For Esp32 Bluetooth

    Bluetooth protocol stack will drop some data and generate an error warning. • If the data to be advertised exceeds the maximum packet length, the extra data can be put in the scan response packet. Espressif Systems Release master Submit Document Feedback...
  • Page 66: Does Esp32 Bluetooth® Le Support Client-Server Mode, In Which Gatt Server And Gatt Client Can Coexist

    • The“0x0F” in the third line means the length of the following data is 15,“0x09” stands for data type (fixed) and data from “0x45”indicates the corresponding ASCII code of the device names (BLE_SPP_SERVER by default). Espressif Systems Release master Submit Document Feedback...
  • Page 67: When I Use The "Blufi"Example To Configure Network For Esp32, The Wi-Fi Cannot Be

    MTU exchange is used as the MTU size for the communication between the two devices. You can check the value of the MTU after exchange, such as the follows: case ESP_GATTS_MTU_EVT: ESP_LOGI(GATTS_TAG, "ESP_GATTS_MTU_EVT, MTU%d", param->mtu.mtu); Espressif Systems Release master Submit Document Feedback...
  • Page 68: What Profile Does Esp32'S Classic Bluetooth® Support

    Pairing mode? You can disable Secure Simple Pairing to support only Legacy Pairing. • From esp-idf v3.3 to v4.0 (not include v4.0): Component config > Bluetooth > Blue- droid Enable > [*] Classic Bluetooth > [ ]Secure Simple Pairing • esp-idf v4.0 and above: Component config > Bluetooth > Bluedroid Options >...
  • Page 69: When I Use The "Gattc_Gatts_Coex.c"Example On Esp32 To Test Ble Multi-Connection

    Chapter 4. Software framework In ESP-IDF v3.0 and later versions, if you open the PSRAM related options of the Bluetooth menu in menuconfig, and put part of the .bss/.data section and heap of Bluedroid (Host) into PSRAM, almost 50 KB memory space can be saved.
  • Page 70: When I Use An Esp32 Development Board To Test Several Versions Of Bluefi Example Under

    4.1.52 When I use ESP32, can Light-sleep mode be enabled for Bluetooth and can Blue- tooth be kept connected in Light-sleep mode? • To use Light-sleep mode for ESP32, release/4.0 or above versions of ESP-IDF and a 32.768 kHz crystal are needed.
  • Page 71: What Is The Maximum Supported Broadcast Length Of Ble 5.0 Broadcast After It Is Set To Legacy Mode

    4.1.59 Can ESP32 Bluetooth LE use PSRAM? To enable Bluetooth LE to use PSRAM, please go to Component config > Bluetooth > Blue- droid Options and enable BT/BLE will first malloc the memory from the PSRAM。 Espressif Systems Release master Submit Document Feedback...
  • Page 72: When Using Esp32-C3 Ble Scan, Can I Set It To Only Scan The Long Range Devices

    Chapter 4. Software framework 4.1.60 When using ESP32-C3 BLE Scan, can I set it to only scan the Long Range devices? • Yes, you can make tests based on esp-idf/examples/bluetooth/bluedroid/ble_50/ble50_security_client. changing configuration .cfg_mask ESP_BLE_GAP_EXT_SCAN_CFG_UNCODE_MASK ESP_BLE_GAP_EXT_SCAN_CFG_CODE_MASK ext_scan_params .cfg_mask ESP_BLE_GAP_EXT_SCAN_CFG_CODE_MASK, you can scan the broadcast packets whose primary PHY type is LE CODED PHY.
  • Page 73: However, It Does Not Work On Ios Devices. The Device Name Is Still The Default Bluetooth Name. How Can I Make It Work On Apple Devices As Well

    Chapter 4. Software framework • For the BLE5.0 examples, please refer to ble_50 examples in ESP-IDF. 4.1.65 I have changed name Bluetooth device with esp_ble_gap_set_device_name() in ESP32-C3. It works for Android devices and the customized device name can be shown. However, it does not work on IOS devices.
  • Page 74: What Is The Maximum Length Of Data In A Ble Advertising Packet Supported By Esp32-C3

    E (2329) emac: Timed out waiting for PHY register 0x3 to have value␣ 0xc0f0(mask 0xfff0). Current value 0xffff → E (2329) emac: Initialise PHY device Timeout ESP_ERROR_CHECK failed: esp_err_t 0xffffffff (ESP_FAIL) at 0x40084140 0x40084140: _esp_error_check_failed at /mnt/hgfs/workspace/esp32/IDF/esp- idf-v3.3/components/esp32/panic.c:720 → file: "/mnt/hgfs/workspace/esp32/project/ethernet/main/ethernet_example_ main.c" line 153 →...
  • Page 75: When Using The Ethernet Example In Esp-Idf, An Error Occurred As "Timed Out Waiting

    PHY ID register to see if you can get the correct data. If yes, then write down the current PHY address. 4.2.4 When using ESP-IDF v4.1, how to set the static IP for ESP32 Ethernet? Since v4.1 and later versions of ESP-IDF will remove the tcp/ip interface, it is recommended to use the ESP-NETIF interface.
  • Page 76: Is There Any Impact On Ethernet Functionality If Replacing The Module Of Esp32-Ethernet-Kit With Esp32-Wroom-32D

    ESP32-Ethernet-Kit Getting Started Guide. 4.2.6 When using ESP32 to design a self-developed Ethernet board, after downloaded the official esp-idf/examples/ethernet example, errors are reported as follows, what is the reason? E (5556) emac: Timed out waiting for PHY rdgister 0x2 to have value␣...
  • Page 77: When Ethernet And Wi-Fi Co-Exist, Is Ethernet Prioritized To Transfer Data

    4.2.9 Is it possible to connect ESP32-S2 to Ethernet externally? • Yes, ESP-IDF currently provides drivers for the DM9051 module, which has integrated Ethernet MAC and PHY functionality and can communicate with the MCU via the SPI interface. The DM9051 has an integrated MAC+PHY module, please refer to example reference <https://github.com/espressif/esp-...
  • Page 78: When Wi-Fi Coexists With Esp-Ble-Mesh, The Wi-Fi Throughput Is Low, Why

    4.3.2 When Wi-Fi coexists with ESP-BLE-MESH, the Wi-Fi throughput is low, why? For ESP32-DevKitC boards without PSRAM, Wi-Fi can coexist with ESP-BLE-MESH but with a rela- tively low throughput. For ESP32-DevKitC boards with PSRAM, the transmit rate can stabilize at over 1 Mbps.
  • Page 79: Peripherals

    • Please use adc_read() for ADC acquisition when Wi-Fi is on. To ensure data stability, you need to use function esp_wifi_set_ps(WIFI_PS_NONE) to turn off Wi-Fi Modem-sleep mode. Note: ADC sampling rate: can reach 100000 times per second with Wi-Fi turned off, and 1000 times per second with Wi-Fi turned on. Espressif Systems Release master Submit Document Feedback...
  • Page 80 Frequency limit : 611 Hz ~ 83333 Hz. Does the ADC of ESP32 support simultaneous sampling of multiple channels? No, If you are using ADC to do multi-channel sampling, please implement it via ADC polling scheme. Espressif Systems Release master Submit Document Feedback...
  • Page 81 ESP32 datasheet. I tried to test the functionality of ADC2 using GPIO19 and GPIO20 of ESP32-S3 based on “esp- idf/examples/peripherals/adc/oneshot_read”example and set the attenuation parameter of ADC2 to 11 dB. When the input voltage is 0.6 V, why are the test results 1.1 V and 2.8 V? •...
  • Page 82: Digital-To-Analog Converter (Dac)

    • If you expect to use these GPIOs, it is recommended to keep the hardware peripherals be consistent with the default level status, or adjust level status in software during bootloader process. When using the later method, you may also encounter temporary level exception. Espressif Systems Release master Submit Document Feedback...
  • Page 83 • The USB pull-up value of GPIO19 is 1 by default, so when the pin is pulled down, GPIO19 still keeps high level. • This issue has been fixed in the GPIO driver in ESP-IDF v4.4.3 and later versions. For other versions, please write the register USB_SERIAL_JTAG_DP_PULLUP to 0 for configuration.
  • Page 84: Inter-Integrated Circuit (I2C)

    Chapter 4. Software framework When using the release/v4.2 version of ESP-IDF, how to set a single GPIO as input/output mode simultane- ously for ESP32? You can set via the esp_err_t gpio_set_direction(gpio_num_t gpio_num, gpio_mode_t mode) API. Is it possible to set the drive capability of the GPIO in ESP-IDF? Yes.
  • Page 85: Inter-Ic Sound (I2S)

    ESP32-S3, the PDM RX of ESP32-C3 does not have a module supporting converting from PDM to PCM, which means the acquired data is in the RAW PDM format. The data in this format can’t be used directly in most cases. Espressif Systems Release master Submit Document Feedback...
  • Page 86: Lcd

    ESP-IDF. However, this document is only available in * release/v4.4 and newer* versions. esp_lcd can drive LCD screens with four interfaces (I2C, SPI, 8080, and RGB) supported by ESP series chips. For the LCD interfaces supported by ESP32 series chips, see ESP32 series chip screen interface.
  • Page 87 PCLK of RGB LCD cannot be set to a higher PCLK frequency and the frame rate will be too low. Which image decoding formats are supported by the ESP32-S3 series of chips? • Currently, ESP-IDF only supports the JPEG decoding format. For an application example, please refer to esp-idf/examples/peripherals/lcd/tjpgd.
  • Page 88 – If you need to use Wi-Fi and continuous write operation to flash, please use XIP PSRAM + RGB Bounce buffer method, and the settings are as follows: ∗ Make sure the ESP-IDF version is (> 2022.12.12) release/v5.0 and above (released after 2022.12.12), as older versions do not support the XIP PSRAM function.
  • Page 89: Led Control (Ledc)

    • For the LCD screen driven by the SPI interface, the driver IC generally has built-in GRAM. Thus, the static pictures can be displayed normally without the ESP continuously outputting the SPI clock, but the pictures cannot be updated during this period.
  • Page 90: Motor Control Pulse Width Modulator (Mcpwm)

    ESP8266_RTOS_SDK/examples/peripherals/pwm example. I’ m using v3.3.3 version of ESP-IDF to test the ledc example on ESP32. The LED PWM outputs when Auto Light Sleep mode is disabled, but does not output when this mode is enabled. According the description of LED PWM in ESP-IDF programming guide, LED PWM should work in sleep modes.
  • Page 91: Remote Control Transceiver (Rmt)

    (one memory block is set), after lighting up two LEDs, the RMT driver will go into the interrupt to switch the internal ping-pong buffer. • Workaround: – For esp-idf release/v4.4 and earlier versions, increase mem_block_num. There is a change in re- lease/v5.0. Please see Breaking Changes in Usage。...
  • Page 92 SPI DMA LED strip example. • If you are in the product selection stage, it is recommended to use ESP32-S3 RMT. How can I quickly adapt other infrared protocols based on the IR NEC example in ESP-IDF? You can utilize RMT Encoder...
  • Page 93: Secure Digital Input Output (Sdio)

    • Note that when ESP32 uses the SDMMC host driver, the SDMMC Slot0 pins in the ESP32-WROOM and ESP32-WROVER modules conflict with the flash. Does ESP-WROOM-S2 module support using SDIO as a slave? Yes, it does. Since ESP32-S2 has removed the SDIO interface, does it still support external TF card? You can use the interface of SPI2/SPI3 to connect an external TF card.
  • Page 94: Serial Peripheral Interface (Spi)

    02D module should be considered to improve the reliability and performance of the system as much as possible. Taking ESP-WROOM-S2 as the slave device and STM32 as MCU, is it possible to download through SPI interface? No, we use UART0 to download by default. You can also design OTA support yourself in firmware.
  • Page 95 For details, please refer to SPI Master driver-feature. When using an ESP32 board for development and testing based on ESP-IDF release/v4.3, I received the following error log during compilation. What is the reason? spi_flash:Detected size(8192K) smaller than the size in the binary image␣...
  • Page 96 RAM chip in use (Ouad Mode PSRAM) When using the ESP32-S3-WROOM-2 (ESP32-S3R8V) module to enable the PSRAM configuration based on the “hello-world”example in ESP-IDF v4.4, the following error is printed. What is the reason? E (453) psrm: psrm ID read error: 0x00ffff...
  • Page 97: Timer

    In the event of a large area of standing water (i.e. the Touch contact area is completely covered), the Touch will temporarily lock and will not resume operation until the water is cleared. Espressif Systems Release master Submit Document Feedback...
  • Page 98: Two-Wire Automotive Interface (Twai)

    4.4.15 Two-Wire Automotive Interface (TWAI) What are the considerations when using the ESP32 TWAI® controller? Please refer to the ESP32 Series SoC Errata > Section ESP32 TWAI Errata. 4.4.16 Universal Asynchronous Receiver/Transmitter (UART) Espressif Systems Release master Submit Document Feedback...
  • Page 99 Is it possible to use GPIO34 ~GPIO39 from ESP32-SOLO-1 as the RX signal pin for UART and TWAI®? Yes, GPIO34 ~GPIO39 are for receive only and can be used as the RX signal pins for UART and TWAI®. Espressif Systems Release master Submit Document Feedback...
  • Page 100 CHIP: ESP32 | ESP32 | ESP32-C3 This can be set in menuconfig: idf.py menuconfig —> Component config —> Common ESP-related -> Channel for console output(custom UART). When using ESP8266, I want to use UART0 exclusively for downloading, and then use UART1 to communi- cate with other chips.
  • Page 101: Usb

    Can ESP32’s UART0 be used for inputting from the computer console while it is being used for outputting logs? • Yes. Outputting logs only requires using the TXD0 pin, while receiving input from the computer console only requires using the RXD0 pin. You can use the“esp-idf/examples/system/console/basic”example for testing. 4.4.17 USB Does ESP32 support USB function? •...
  • Page 102 Does ESP32-C3 support USB Host? No, it only supports USB-Serial-JTAG function and can only be used as the USB device. The ESP32-C3 chip can use USB to download firmware, but it is not supported under ESP-IDF v4.3. How to use USB to download firmware? You need to compile under ESP-IDF v4.4 or later versions.
  • Page 103 Yes, ESP32-S3 supports printing program log and downloading firmware using USB CDC when the following configuration option is enabled: Component config > ESP System Settings > Channel for console output > USB CDC Does ESP32-S3 support devices with USB Device being Class 0? •...
  • Page 104 USB CDC 4G Module Example. Is there any USB CDC Host example for ESP32-S2/ESP32-S3? Yes, please refer to ESP-IDF USB CDC Host example esp-iot-solution USB CDC Host example. When burning firmware through the ESP32-C3/ESP32-S3 USB Serial/JTAG Controller function, I found that the PC sometimes cannot recognize the USB serial port, or automatically disconnects from the USB serial port repeatedly after recognizing it.
  • Page 105 • If we do not consider local JPEG decoding, the bottleneck is the throughput rate of USB. The USB camera generally adopts synchronous transmission. ESP USB has a limitation of FIFO size, which can reach 500 KB/s at the maximum currently. Thus, if you want to achieve 15 frames, the size of each frame can only be 33 KB.
  • Page 106: Other Peripherals

    303A10010101 /V IgnoreHWSerNum /t REG_BINARY /d 01 → • For more information, please refer to Prevent Windows from Increasing COM Number Ac- cording to Serial Numbers of USB Devices <https://docs.espressif.com/projects/espressif-esp-iot- solution/en/latest/esp32/usb/usb_device_const_COM.html>__. 4.4.18 Other Peripherals Can the REF_TICK clock frequency be modified? CHIP: ESP32 | ESP32-S2 | ESP32-C3 No, the REF_TICK clock is fixed.
  • Page 107: Protocols

    What are the TLS versions supported by ESP-IDF? • The recommended TLS protocol in ESP-IDF is the Mbed TLS protocol. • ESP-IDF v5.0 and later no longer support SSL 3.0, TLS 1.0 and TLS 1.1, but only support TLS 1.2 and TLS 1.3.
  • Page 108: Http

    "\r\n", 2); esp_http_client_write(client, "0", 1); // end esp_http_client_write(client, "\r\n", 2); esp_http_client_write(client, "\r\n", 2); // After the POST is complete, you can examine the response as required␣ using: → content_length esp_http_client_fetch_headers(client); (continues on next page) Espressif Systems Release master Submit Document Feedback...
  • Page 109: Lwip

    Does ESP32 have an example of implementing a gRPC client over HTTP/2 and above versions? Not yet. How to download a specific segment of a file over HTTP in ESP-IDF (i.e., add Range:bytes information to the header)? Please refer to the http_partial_download function in the esp http client example.
  • Page 110 Is there any special firmware or SDK in ESP32 that can only provide AP/STA (TCP/IP bypass) without using its internal TCP/IP so as to give developers more permissions? The software solution ESP-Dongle can fit your requirements. Please contact Business Team to sign NDA and then get related solutions.
  • Page 111 Will memory leak occur when ESP32 TCP repeatedly closes and rebuilds socket (IDF 3.3)? In ESP-IDF v3.3, every time a socket is created, a lock will be assigned, given that this internal socket array has not been assigned any lock before. This lock will not be reclaimed after the socket is released.
  • Page 112 #define DNS_MAX_RETRIES esp- idf/components/lwip/lwip/src/include/lwip/opt.h. For example, you can change the value of #define DNS_MAX_RETRIES to 10. In this way, the maximum time that DNS waits for a response from the server is 46 s (1+1+2+3+4+5+6+7+8+9). After creating and closing TCP SOCKET several times, an error is reported as “Unable to create TCP socket: errno 23”.
  • Page 113 SO_RCVBUF option of setsockopt to get or set the receive buffer size. I find that the network data latency of TCP & UDP is large when testing ESP-IDF. What is the buffering data mechanism of TCP & UDP protocols? •...
  • Page 114 What are the three lease related times in ESP-IDF DHCP? What parameters in the code do they correspond They are Address Lease Time, Lease Renewal Time and Lease Rebinding Time, corresponding to the lwIP codes offered_t0_lease, offered_t1_renew, and offered_t2_rebind respec- tively.
  • Page 115 API, which is a higher-level interface than tcp_write and is more suitable for user-level calls. There is basically no difference in resource usage between the two API calls. If I need more debug logs for lwIP layer related issues with ESP-IDF, how can I enable the corresponding debug log to be printed (e.g. DHCP, IP)? •...
  • Page 116: Mbed Tls

    #define SNTP_STARTUP_DELAY 0 to lwipopts.h in the lwip component. This code reduces the time that SNTP takes to send a request, so it can reduce the total time for ESP devices connecting to the cloud after they are powered up as a result.
  • Page 117: Mqtt

    MQTT Examples. I’m using ESP8266 release/v3.3 version of SDK to test the example/protocols/esp-mqtt/tcp example. Then during Wi-Fi configuration, the connection fails after configuring SSID, password and connecting to the default server. The log is as follows, what is the reason?
  • Page 118 What are the supported MQTT versions of ESP-IDF? ESP-IDF currently supports MQTT 3.1 and MQTT 3.1.1, and MQTT 5.0. When a Wi-Fi connection is disconnected in ESP-IDF, will the memory previously requested by MQTT upper layer protocol be automatically released? •...
  • Page 119: Other Protocols

    Therefore, the MQTT keepalive time should be set based on actual needs and system performance. When will the disconnect event message be triggered for ESP-MQTT clients? The disconnect message only occurs in the follow cases: •...
  • Page 120 • The errno list in ESP-IDF v3.x exists directly in the IDF. Click errno.h to check it. • The errno.h for ESP-IDF v4.x is located under the compiler toolchain. For example, for esp-2020r3, the path of errno.h is /root/.espressif/tools/xtensa-esp32-elf/esp-2020r3-8.4.0/ xtensa-esp32-elf/xtensa-esp32-elf/include/sys/errno.h.
  • Page 121: Provisioning

    4.6 Provisioning 4.6.1 Can I add any broadcast data I want to Android ESP-Touch (e.g., add a device ID so that ESP32 can receive this ID)? • ESP-Touch is a communication protocol used to establish a Wi-Fi connection between a mobile phone and ESP8266/ESP32.
  • Page 122: Is It Possible To Encrypt Firmware For Esp8285

    Note: Please note there is a time limit for the flash encrypted function. Espressif Systems Release master Submit Document Feedback...
  • Page 123: After Enabling Flash Encryption And Secure Boot For Esp32, How To Disable Them

    4.7.12 Can the secure boot function be enabled for ESP32 in Arduino development envi- ronment? • No. If you want to use Arduino for development, the only way to enable the secure boot function is to use Arduino as an IDF component. Espressif Systems Release master Submit Document Feedback...
  • Page 124 4.7.19 Can I update an app firmware which enables flash encryption in a device which does not enable fash encryption through OTA? • Yes, please deselect Check Flash Encryption enabled on app startup when compiling. Espressif Systems Release master Submit Document Feedback...
  • Page 125 4.7.22 After I input the command espefuse.py read_protect_efuse BLOCK3 command in the terminal configured with ESP-IDF to enable the read-protection for Efuse BLOCK3, why is the data of the Efuse BLOCK3 all 0x00 when I input esp_efuse_read_block() to read the Efuse BLOCK3? •...
  • Page 126 (charged). How to make and flash the image of a FatFs file system? Here we will use a third-party tool, since there is no such tool provided in ESP-IDF now. The entire process shows as below: • Step 1: use the mkfatfs tool to create image in a specified folder.
  • Page 127 Please refer File System <https://github.com/espressif/esp-iot- solution/blob/master/docs/en/storage/file_system.rst>. What is the maximum size supported by FatFs? Due to the limitations of the Windows system, FatFs is currently generally only available on storage devices up to 32 GB. Storage devices larger than 32 GB use other file systems, such as exFAT.
  • Page 128 Can NVS sectors be corrupted by accidental power loss during writing? No, NVS is designed to resist accidental power loss, so it will not be damaged. Will the configured Wi-Fi SSID and PASSWORD disappear after the ESP series development board is pow- ered on again and need to be reconfigured? •...
  • Page 129 I’m using an ESP32 development board with the official PSRAM chip PSRAM64H embedded. But after replacing another type of PSRAM chip to PSRAM64H, it failed to recognize when I ran an ESP-IDF example and enabled the PSRAM configuration. What is the reason? •...
  • Page 130 • You should specify flash partition table when programming. Specifically, you should divide flash into different partitions, such as app partition, data partition, and OTA partition, and you should specify the size and offset address of each partition. Espressif Systems Release master Submit Document Feedback...
  • Page 131 Please enable the settings in the configuration options: • (Top) > Serial flasher config > [*] Enable Octal Flash > Flash SPI mode (OPI) • (Top) > Component config > ESP PSRAM > Support external, SPI-connected RAM > SPI RAM config > Mode (QUAD/OCT) of SPI RAM...
  • Page 132 Optional features for flash to learn more about the flash information supported by ESP-IDF. It should be noted that this document only indicates that the ESP-IDF code has supported these flash, but this flash list is not fully certified by Espressif.
  • Page 133 Chapter 4. Software framework Can ESP32 use LittleFS file system? Currently, LittleFS is not included in ESP-IDF, but there is a third-party porting component esp_littlefs that can be used directly in ESP-IDF. You can use the mklittlefs tool for the image of LittleFS file system.
  • Page 134 4.9.1 My application does not really need the watchdog timer, can I disable it? There are two types of watchdog in ESP-IDF: task watchdog and interrupt watchdog. You can disable these two types of watchdog in menuconfig. For more details, please refer to Watchdogs.
  • Page 135 • You can turn off the program log by setting menuconfig > Component config > log output > Default log verbosity to No output. • For ESP-IDF release/v4.3 and earlier versions, you can turn off UART0 output log by menuconfig > Com- ponent Config > Common ESP-related > Channel for console output > None.
  • Page 136 4.9.14 Does the cJSON in ESP-IDF release/v4.2 support uint64_t data analysis? • No. The cJSON library has restrictions on parsing long integers, and the longest type is Double. 4.9.15 Given that the GDB debugging function is working before the flash encryption is...
  • Page 137 ESP32 will print the“SW_CPU_RESET”log on the serial terminal (UART). In addition, when devel- oping applications using ESP-IDF, it is also possible to call the esp_restart() function in the application to restart ESP32. In this case, ESP32 will also print the“SW_CPU_RESET” log on the serial terminal.
  • Page 138 • Deep-sleep wakeup can be awakened by RTC_GPIO. Please refer to ESP32 Technical Reference Manual. 4.9.28 When multiple threads want to use the watchdog of ESP32, should each thread enable the watchdog individually? • Yes, please see Task watchdog instructions. Espressif Systems Release master Submit Document Feedback...
  • Page 139 ESP32 Datasheet. 4.9.32 How to flash a customized mac address? • You can start by understanding the MAC mechanics of ESP modules, please refer to Introduction to Mac Addresses. There are currently 2 options for burning customized MAC addresses: • Option 1: directly flash it into efuse blk3.
  • Page 140 • For SDK v5.0 and the above versions, you can enable the CONFIG_APP_REPRODUCIBLE_BUILD config- uration option. In doing so, the application built upon ESP-IDF does not depend on the build environment and both the .elf file and .bin file of the application remain unchanged even if the following variables change: –...
  • Page 141 • The actual version of the chip can be obtained by the command esptool.py chip_id. If the chip version is the production version, this error is related to the version of the used esp-idf SDK. For ESP32-S3 series products, esp-idf release/v4.4 and later are necessary.
  • Page 142 It should be noted you need to make special configurations when using Chinese SSID as Chinese characters occupy different numbers of bytes. For ESP32, you can use the Wi-Fi related API provided by ESP-IDF. When connecting AP, you can use the fuction esp_wifi_set_config() to set Wi-Fi.
  • Page 143 ESP_ERROR_CHECK(esp_netif_dhcps_start(ap_netif)); 4.10.6 [LWIP] How to configure ESP32’s static IP when it is in Station mode? Since ESP-IDF v4.2 and later versions do not have tcp/ip interfaces anymore, it is recommended to use ESP-NETIF interface instead. The code example is as follows:...
  • Page 144 4.10.8 [Performance] How to test the bit rate of Wi-Fi modules? Please use the example iperf in ESP-IDF for testing. 4.10.9 [LWIP] What is the default IP address of ESP8266 SoftAP? Why do I have problem connecting to router with IP 192.168.4.X in SoftAP + Station mode? •...
  • Page 145 4.10.13 Does the buffer parameter in esp_wifi_802.11_tx interface include FCS? No, the FCS frame is generated automatically by hardware. 4.10.14 What is the supported Wi-Fi frequency band and power meter for ESP- WROOM-32D? The Wi-Fi frequency band is 2412 ~ 2484 MHz, and the available channels and corresponding oper- ating frequencies can be configured in software.
  • Page 146 5 minutes. This time can be modified via API esp_wifi_set_inactive_time. • Note: esp_wifi_set_inactive_time is a newly added API. – master commit: 63b566eb27da187c13f9b6ef707ab3315da24c9d – 4.2 commit: d0dae5426380f771b0e192d8ccb051ce5308485e – 4.1 commit: 445635fe45b7205497ad81289c5a808156a43539 – 4.0 commit: 0a8abf6ffececa37538f7293063dc0b50c72082a – 3.3 commit: 908938bc3cd917edec2ed37a709a153182d511da Espressif Systems Release master Submit Document Feedback...
  • Page 147 Chapter 4. Software framework 4.10.20 [Connect] While ESP32 connecting Wi-Fi, how can I determine the reason of failure by error codes? For ESP-IDF v4.0 and later versions, please refer to the following codes to get the reason: (event_base WIFI_EVENT &&...
  • Page 148 • Other reasons include wireless interference, security settings, and network configuration. These reasons may also affect Wi-Fi of ESP32 or ESP8266. In this case, you need to carefully check the Wi-Fi environment and implement corresponding settings. Espressif Systems Release master Submit Document Feedback...
  • Page 149 4.10.30 [LWIP] How to get error code of the socket? • For ESP-IDF v4.0 and later versions: use the value of errno directly to get the error code after the socket API returns failure. • For previous versions of ESP-IDF v4.0: call getsockopt(sockfd, SOL_SOCKET, SO_ERROR, …) to get the error code after the socket API returns failure, otherwise you may get wrong error code when multiple sockets operate simultaneously.
  • Page 150 (DFS) at startup (NEW). 4.10.36 [Sleep] How low can the speedstep function go for ESP32 in modem sleep mode? For now, the CPU clock can go down to as low as 40 MHz. Espressif Systems Release master Submit Document Feedback...
  • Page 151 • The application layer code is running continuously, thus the CPU does not get chance to suspend. • The application layer has enabled ets timer or esp timer and the timeout interval is short, thus the CPU does not get chance to suspend.
  • Page 152 → esp_wifi_set_promiscuous_rx_cb(wifi_sniffer_cb); • The abovementioned APIs are also used in the ESP-MDF project, please refer to mconfig_chain. 4.10.45 [Connect] The ESP32 and ESP8266 failed to connect to router, what could be the reasons? • Please check if the SSID or password is wrong.
  • Page 153 • Please find examples in ESP-IDF - > examples - > wifi - > power_save. 4.10.50 Do Espressif’s chips support WPA3? • ESP32 series: WPA3 is supported from esp-idf release/v4.1 and enabled by default. Go to menuconfig > Component config > Wi-Fi for configuration.
  • Page 154 The retransmission time is 31 and it can not be configured. 4.10.54 How to customize the hostname for ESP32? • Taking ESP-IDF V4.2 as an example, you can go to menuconfig > Component Config > LWIP > Local netif hostname, and type in the customized hostname.
  • Page 155 Chapter 4. Software framework 4.10.60 I’m scanning Wi-Fi on an ESP32 device using release/v3.3 version of ESP-IDF. When there are some identical SSIDs, same SSID names will show in the Wi-Fi list repeatedly. Is there an API to filter such repeated names? •...
  • Page 156 • Please use callback function to received data packets as follows: esp_wifi_set_promiscuous_rx_cb(wifi_sniffer_cb); esp_wifi_set_promiscuous(true); • The above data receive method is also used in another open-sourced project, please see esp-mdf. 4.10.69 What are the reasons for the high failure rate of esptouch networking? CHIP: ESP32, ESP32S2, ESP32S3, ESP32C3, ESP8266 •...
  • Page 157 4.10.75 After ESP32 used the Wi-Fi function, are all ADC2 channels unavailable? • When an ESP32 device is using Wi-Fi function, the ADC2 pins that are not occupied by Wi-Fi can be used as normal GPIOs. You can refer to the official Description. Espressif Systems Release master Submit Document Feedback...
  • Page 158 • You can call API esp_wifi_ap_get_sta_list, please refer to the following code snippet: wifi_sta_list_t wifi_sta_list; esp_wifi_ap_get_sta_list(&wifi_sta_list); (int 0; i < wifi_sta_list.num; i++) { printf("mac address: %02x:%02x:%02x:%02x:%02x:%02x\t rssi:%d\n",wifi_ sta_list.sta[i].mac[0], wifi_sta_list.sta[i].mac[1],wifi_sta_list.sta[i]. → mac[2], → wifi_sta_list.sta[i].mac[3],wifi_sta_list.sta[i].mac[4],wifi_ sta_list.sta[i].mac[5],wifi_sta_list.sta[i].rssi); → Espressif Systems Release master Submit Document Feedback...
  • Page 159 • No, it doesn’t. FTM needs hardware support, but ESP32 doesn’t have it. • ESP32-S2 and ESP32-C3 can support FTM in hardware. • ESP-IDF can support FTM from v4.3-beta1. • For more information and examples of FTM, please refer to FTM.
  • Page 160 • For AP mode selection instructions, please refer to esp_wifi_types. 4.10.87 What is the maximum PHY rate of Wi-Fi communication of ESP32-S2 chip? • The theoretical maximum PHY rate of ESP32-S2 Wi-Fi communication is 150 Mbps. Espressif Systems Release master Submit Document Feedback...
  • Page 161 • Please refer to Wi-Fi reason code. 4.10.91 When testing the Station example of ESP32 base on v4.4 version of ESP-IDF, how to support WPA3 encryption mode? • Open menuconfig → Component config → Wi-Fi → Enable WPA3-Personal configuration; • Set capable = true in pmf_cfg in the application code;...
  • Page 162 – If the phone cannot connect to the router either, please check if there is any problem with the router. – If it can, please check whether there is any issue with ESP32. • Steps to troubleshoot router issues: Espressif Systems Release master Submit Document Feedback...
  • Page 163 4.10.102 How do I debug the ESP32 station that is connected to a router but does not get an IP properly? • Open the debug log of DHCP in lwIP, go to ESP-IDF menuconfig, and configure Component config > LWIP > Enable LWIP Debug(Y) and Component config -> LWIP > Enable DHCP debug messages(Y).
  • Page 164 Is there a way to connect to Chinese SSID routers with GB2312 en- coding? Yes, please keep the encoding method of the ESP device consistent with that of the router. In this case, make the ESP device also use the GB2312-based Chinese SSID.
  • Page 165 Chapter 4. Software framework 4.10.107 How to configure the Wi-Fi country code when the ESP end product needs to be sold worldwide? • Different Wi-Fi country codes need to be set for different countries. • The default country code configuration can be used for most countries, but it is not compatible with some special cases.
  • Page 166 4.10.113 What is the value range of ESP32 Wi-Fi TX power? • It ranges from 2 to 20 dBm. In ESP-IDF, you can use esp_wifi_set_max_tx_power() to set the maximum of TX power, and use esp_wifi_get_max_tx_power() to the get the maximal TX power supported by the system.
  • Page 167 WPA3-Enterprise mode for testing. You can configure it as following: idf.py menuconfig > Example Configuration > Enterprise configuration to be used > WPA3_ENT. 4.10.116 Does ESP modules support WAPI (Wireless LAN Authentication and Privacy Infrastructure)? • Yes. Please refer to WIFI_AUTH_WAPI_PSK 4.10.117 How can I increase the time for scanning routers when using ESP32 as the Wi-Fi...
  • Page 168 Chapter 5 Hardware related 5.1 Chip Comparison 5.1.1 What is the difference between ESP32 with a single core and ESP32 with dual cores regarding programming method, feature performance, power consumption, and so Compared with the single-core chip, the dual-core chip has one more independent core, on which some highly real-time operations can be supported in a better way.
  • Page 169 GPIO. 5.1.4 Does ESP32 support a driver for Linux? Yes, please refer to the example esp-hosted. Note: This example is adapted to the 802.3 protocol rather than the 802.11 protocol. 5.1.5 What is the meaning of the acquired data when you scan the data matrix on the module’s shielding case?
  • Page 170 While there are only a few functional modules have been adapted so far, other modules will be updated further later. For feature requests, you may check or ask on the Zephyr GitHub issue first. • You can also find information about ESP products in sections like XTENSA Boards RISCV Boards Zephyr Docs <https://docs.zephyrproject.org/latest/introduction/index.html>.
  • Page 171 Espressif Chip Packaging Information. 5.2 Development board 5.2.1 How long does it take for the ESP-WROOM-02D module to restart after the reset signal? • It will restart when the input level is lower than 0.6 V for more than 200 μs.
  • Page 172 GPIO & RTC GPIO. Note: • Strapping pins have default levels. Please refer to ESP32 Datasheet. • GPIO34 ~ GPIO39 can only be set as input without software-enabled pull-up or pull-down func- tions. Espressif Systems Release master Submit Document Feedback...
  • Page 173 • GPIO16 and GPIO17 are saved for PSRAM if there is any. 5.3.4 What is the voltage tolerance of GPIOs of ESP chips? • The voltage tolerance of GPIO is 3.6 V. If the voltage exceeds 3.6 V, please add a voltage divider to protect GPIO pins from damage.
  • Page 174 5.3.14 Can I use ESP32 to play music with PWM or DAC? You may use ESP32 to play music with PWM or DAC, and we recommend you play voice prompts. To run a test, please refer to esp-adf/examples/player/pipeline_play_mp3_with_dac_or_pwm. Espressif Systems...
  • Page 175 • For details, please refer to the Configure MAC and PHY guide. 5.3.19 What kind of socket is used on ESP32-LyraT development boards to connect a speaker? Please use a PH-2A socket. Espressif Systems Release master Submit Document Feedback...
  • Page 176 • For details, please refer to Hardware Design Guidelines. 5.3.25 Can GPIO 34 ~ GPIO39 of ESP32 be used as UART RX pins? • GPIO 34 ~ GPIO39 can be used as UART RX pins. Espressif Systems Release master Submit Document Feedback...
  • Page 177 5.3.28 How to configure the RMII synchronous clock for the Ethernet of ESP32? • To run a test, please refer to esp-idf/examples/ethernet/basic. • When GPIO0 provides clock output for PHY, the Ethernet connection of the IP101 PHY chip can be unstable.
  • Page 178 CS pin high to release the device. Additionally, the level and status of the CS pin should be adjusted according to the actual situation to ensure the stability and reliability of the SPI bus. 5.3.33 Is there any hardware design reference for ESP-Skainet Speech Recognition? • Please refer to ESP32-Korvo V1.1 User Guide.
  • Page 179 • In the mass production stage, you can also download the firmware directly by modifying the default configura- tion of ESP32_EFUSE_CONFIG to config_voltage = 3.3 V in config/esp32/utility.confgi in the flash download tool. Espressif Systems Release master Submit Document Feedback...
  • Page 180 GPIO0 is generally not recommended for other functions because it is a strapping pin. 5.3.44 Does the ESP32-U4WDH chip support external PSRAM chips? • The ESP32-U4WDH chip supports external PSRAM chips. However, only the ESP-PSRAMXXH chip re- leased by Espressif is supported. Third-party PSRAM chips are not supported.
  • Page 181 RF, and adjust timing for better interference shielding. – Keep GND intact as much as possible. – For more hardware design suggestions, please refer to 《ESP Hardware Design Guidelines》. 5.3.50 Why do I need to connect a 499 Ω resistor to U0TXD for ESP32-S3? •...
  • Page 182 5.4.1 Does the RF performance of an ESP32 module degrade if it runs with a 2.8 V sup- ply? Yes, its RF performance may become unstable. It is recommended to follow the suggested operating voltage range specified in the module’s datasheet. Espressif Systems Release master Submit Document Feedback...
  • Page 183 Chapter 5. Hardware related 5.4.2 What are the modulation methods supported by ESP chips? • ESP8266 supports BPSK/QPSK/16QAM/64QAM/DBPSK/DQPSK/CCK. • ESP32 supports BPSK/QPSK/16QAM/64QAM/DBPSK/DQPSK/CCK/GFSK Π/4-DQPSK 8-DPSK. • ESP32-S2 supports BPSK/QPSK/16QAM/64QAM/DBPSK/DQPSK/CCK. • ESP32-C3 supports BPSK/QPSK/16QAM/64QAM/DBPSK/DQPSK/CCK/GFSK. • ESP32-S3 supports BPSK/QPSK/16QAM/64QAM/DBPSK/DQPSK/CCK/GFSK. 5.4.3 How can I get the RF related information (e.g., antenna specification, antenna pat- tern, etc.) for certification?
  • Page 184 - If the module does not respond, please check the voltage of the air discharge or contact discharge used in the test. Espressif Systems Release master Submit Document Feedback...
  • Page 185 • Secondly, please check the QE bit of the status register of flash, which determines whether the flash supports the QUAD mode or not. • Different ESP chips/modules use flashes from different manufacturers. Some flashes have QE disabled by default. Thus, it is necessary to check whether the flash supports Quad mode through actual testing.
  • Page 186 Chapter 6 Test verification 6.1 Power Consumption Verification 6.1.1 Why does ESP32 reboot when it is woken up from Deep-sleep mode? When ESP32 is in Deep-sleep mode, the digital core is powered off and the information stored in CPU will be lost. After ESP32 is woken up from Deep-sleep mode, it re-boots firmwares and re-loads them to the internal memory.
  • Page 187 • For the issue details and on how to optimize power consumption in this scenario please refer to Power-down of Flash in the ESP-IDF Programming Guide. 6.1.6 In ESP32’s Deep-sleep mode, using an internal 150 KHz RTC clock or using an external 32 KHz, which consumes more power? •...
  • Page 188 Chapter 7 Commercial FAQ 7.1 Which certificates have your products passed? Please check our Certificates , where you can get all the relevant information about our products. 7.2 Does your company have the ISO Quality Management System Certi- fication? Yes, our company has passed the ISO9001:2015 Quality Management System Certification. 7.3 Do your chips and modules have environmental certificates such as REACH, ROHS, etc? Our chips and modules comply with REACH, ROHS, Prop65 and many other environmental certifica-...
  • Page 189 7.11 Where can I find all the differences between your products (e.g. in terms of series and types)? Please click here to find some introductory information on our products. For detailed information, please contact our sales team by clicking here Espressif Systems Release master Submit Document Feedback...
  • Page 190 How long does it take? How can you help me do this? Espressif Systems has developed a set of AT commands that can be used for Espressif products to easily interface with other products. Most of our modules have a standard AT firmware by default.
  • Page 191 Thank you for your interests in our new products and helping us providing better products. Please contact our technical support team if you have any questions using our NPI products. Espressif Systems Release master Submit Document Feedback...

This manual is also suitable for:

Esp32Esp8266Esp32-s2Esp32-c3Esp32-s3

Table of Contents