Espressif Production Testing Guide
This guide mainly describes the production testing schemes available for Espressif Wi-Fi products (Wi-Fi module/Chip Onboard), thus providing reference for the production testing of customer products.
Introduction
Generally, there are two production testing schemes available to test the RF performance of the Wi-Fi products based on Espressif IC:
RF General-purpose Tester Scheme (general standard in the industry);
Signal Board Scheme (ESP enterprise standard).
RF General-purpose Tester Scheme
The tester scheme is widely used for the production testing of Wi-Fi products. Espressif provides the necessary serial port commands and firmware, so the customers can easily use this scheme for testing.
The testing steps can be found below, which are also demonstrated in the figure below:

Diagram of the Tester Scheme
Download
RF_Test_FW.bin
to ESP IC RAM;Run the Test Tool that corresponds with the RF tester on the PC, and send the serial port commands to the modules for sending/receiving packets in different modes;
The RF tester analyzes the RF related parameters in each specific mode.
Note
For this scheme, the mass production testing tool provided by the tester supplier should be adaptable with the Espressif IC products;
- If the supplier is unable to provide this kind of test tool, customers can alternatively make the tool adaptable by using the tester’s available interfaces. Meanwhile, customers can use esptool to download
RF_Test_FW.bin
: esptool can be downloaded from here. For related commands, refer to the documentation;
For the manual testing of ESP products’ RF performance, please refer to RF Test Items.
- If the supplier is unable to provide this kind of test tool, customers can alternatively make the tool adaptable by using the tester’s available interfaces. Meanwhile, customers can use esptool to download
The test above must be performed in a shielded enclosure.
Signal Board Scheme
The signal board scheme is specially designed by Espressif, which can effectively test the RF performance of the mass-produced Wi-Fi products, and therefore guarantee the RF quality. This scheme features low cost of hardwares and easy environment setup for factories.
As demonstrated in the figure below, the signal board can be used as a standard device to interact with and test the DUT (Device Under Test) by analyzing the communication data.

Diagram of Signal Board Scheme

Hardware Connection for Signal Board Scheme
Note
The test above must be performed in a shielded enclosure.
Production Testing Process
Please find the followings that need to be tested, and connect the DUT accordingly to conduct the test:
Test Points |
Download Mode |
Flash Operation Mode |
---|---|---|
V33, GND, RXD, TXD, EN, GPIO0 |
GPIO0 connected to low level |
GPIO0 connected to high level |
Note
Download mode: for downloading bin files and is the main mode used for production testing.
Flash operation mode: for checking the log info.
Connect the DUT to the serial port board by using the test fixture, and enter the DUT into the download mode via the production testing tool. If your serial port board does not support flow control, connect the corresponding GPIO(s) to low level directly, so DUT enters the download mode after powering up automatically.
Start the production testing tool on your PC, and follow the instruction provided in Production Testing Tool.
Note
To enhance production efficiency, test fixtures are typically designed for one-to-multiple configurations. For instance, a common set-up is one-to-four, where a single fixture can accommodate and test four devices simultaneously.
For more details about the test fixture manufacturing instruction, please refer to Test Fixture Manufacturing Instruction.
Connect the serial port board (which is placed inside the bottom box of the fixture) to the PC with a USB cable, and install the corresponding driver to ensure the serial port can be successfully identified.
Scheme Comparison
The comparison between the signal board scheme and the tester scheme is shown in the table below. You can choose from these two schemes according to your actual requirements.
Scheme |
Test Item |
Description |
---|---|---|
Signal Board Scheme |
RF Test |
Tests the supply voltage of the chip and its fluctuation, and the frequency offset against the signal board, etc. |
Packet Sending/Receiving Test |
Tests the packet sending/receiving between the DUT and the signal board. |
|
GPIO Conductivity Test |
Identifies IC soldering defects, if there are any. |
|
Firmware Version Verification Test |
Verifies the version information of the firmware that has been downloaded to flash. |
|
Flash RW Test |
Verifies the RW operation of flash. |
|
Tester Scheme |
EVM Test |
Tests the TX Power, and EVM performance of the DUT during the packet sending. |
Frequency Offset Test |
Tests the frequency of the DUT during the packet sending. |
|
TX Power Test |
Tests the TX power of the DUT during the packet sending. |
|
RX Sensitivity Test |
Tests RX sensitivity of the DUT (This test must be performed in an RF shielded environment). |
|
GPIO Conductivity Test |
See above in this table. |
|
Flash RW Test |
See above in this table. |
Note
The signal board scheme has applied Espressif’s internal standards and can effectively ensure the quality of RF products, provided that the RF matching of the module is qualified and the production materials are consistent with those specified in the production processes.
To ensure the overall quality of the mass production of modules, the customers may use the signal board scheme for full inspection and the tester scheme for sampling inspection.
You cannot directly test the RF performance parameters of a DUT, such as TX, RX, EVM, and FREQ, with the signal board scheme. Therefore, a general-purpose Wi-Fi tester can be used as a supplement to the signal board scheme.
The signal board scheme features low cost and easy environment setup, making it a popular solution that has long been widely used by the customers. Therefore, this guide will mainly focus on this scheme, and demonstrate it with the use of Espressif modules. Customers may follow this guide to set up the testing environment for their own Wi-Fi products.
Environment Setup
In order to show the customers the effectiveness of our signal board scheme, Espressif provides a complete testing package. Our testing package introduces the customers to the overall process of the production testing. Note that an Espressif module is used in the package as an example, so that the customers can simply replace this module with their Wi-Fi products (of ESP32-C/ESP32/ESP32-S/ESP8266 series) in their own production testing.
Testing Package
The production testing package has the following key components:
Production Testing Package |
Component |
Quantity |
Remark |
---|---|---|---|
ESP32 / ESP32-S |
ESP-BAT32 |
1 |
ESP32 signal board |
ESP-FactoryTB2 |
2 |
UART base board |
|
ESP32-WROOM-32D / ESP32-S2-WROOM |
2 |
Espressif modules ESP32-WROOM-32D / Espressif modules ESP32-S2-WROOM |
Test Step
Please connect your DUT to the production testing base board as shown in the following figures, depending on the product series (ESP32-C/ESP32/ESP32-S/ESP8266) your DUT belongs to; then, connect the serial port board, signal board and your PC together; then, open the production testing software tool on your PC.

Wiring for ESP32-WROOM-32D

Wiring for ESP32-WROOM-32E
The DUT communicates with the signal board at a rate of around 1 to 2 M. Configure the DUT to download mode and power up the serial port board.

Open the production testing software tool and complete the corresponding configuration based on which product series your DUT belongs to. For details, please refer to Section Tool Configuration below.
Click
START
button to start the test. During the testing, Parameterfb_rssi
in the Log must be kept at around -50.Troubleshoot based on the test results.
Production Testing Tool
Tool Introduction
Directory
factory_test_ui_tool
: the main directoryfactory_test_cus_v1.0.exe
: the executable fileconfig
: the configuration files run by the tool.sys_config/.bin
: stores the test bin files for different chips.sys_config/.spec_file
: stores the threshold files for different chips.sys_config/.sys_settings.conf
: configures the current test bin file and threshold file
logs
: stores test logs for each DUT
Interface

Main Interface
The MainWindows of the tool, as shown in the figure above, can be divided into six main parts:
1. Menu Bar:
Config
button can be used to switch between Local Mode and Cloud Mode (Cloud Mode is currently not supported);Log
button can be used to select and open log files;Help
button can be used to find help files.
2. Test Configuration Info:
left section
shows test configuration information such as Chip Type;right section
shows the summary of all historical tests till now (the numbers of passed and failed tests).
3. Interface Tab Bar switches between different interfaces for testing or configuration.
4. ALL START/ALL STOP: Start/Stop all operations.
5. Testing Interface: the default testing interface after configuration. Here, you can see four DUT blocks, because a one-to-four fixture is used. Testing for different DUTs is independent from each other while the configuration of those is not.
6. Position displays if Local
Mode or Cloud
Mode is enabled.
Test Mode
The current testing tool only supports 1 type of testing:
RAM Test: Before testing, make sure the DUT is in download mode. During testing, the host computer downloads the firmware for testing to the RAM of the DUT, and runs it.
Tool Configuration
Interface

DUT Config
As shown in the figure above, the DUT Config
tab can be divided into three major blocks:
1. EST CONFIG
: Test-related configuration2. DUT
: DUT-related configuration3. APPLY
: apply the configuration
TEST CONFIG
Parameter |
Description |
Notes |
---|---|---|
Test From |
Location from which the program starts to run |
RAM: The test bin to be downloaded must be selected. |
Fac-Plan |
Test record code |
The MAC list stored in the form of code + test result. |
AUTOST |
Automatic test switch |
If this option is checked, a new test will start automatically when the current test finishes. |
EFUSE MODE |
Detection method of eFuse |
If a customized MAC address is used, the custom option should be selected here. Otherwise, use normal. |
DUT CONFIG
Parameter |
Description |
Notes |
---|---|---|
Port |
Serial port number |
Serial port configuration of the DUT, including the serial port for normal test and the serial port for firmware test. The configuration of these two serial ports can be the same or not, depending on the customers’ actual requirements. |
Rate |
Baud rate |
Baud rate of the serial port. |
APPLY |
Confirms all the modification that has been made |
Any modification to the configuration on the interface takes effect only after clicking the APPLY button and passing the verification by entering the correct verification code. The verification code depends on the date and time of performing the test (the sum of the values of year, month, day and hour). For example, assuming the test is performed at 12 o’clock on March 1st, 2018, the verification code is the sum of 2018 (year), 03 (month), 01 (date) and 15 (hour), i.e. 2037. |
Test Flow
In addition to some basic RF performance tests, the production testing scheme can also be used to evaluate the overall quality of the DUT through a variety of other tests, including but not limited to the RF Test (customizing commands is allowed), GPIO Conductivity Test, Firmware Version Verification Test, and Flash RW Test.
RF Test
Test Objective: RF performance tests must be conducted during the production testing to ensure that the DUT can send/receive packets as expected.
Test Method: Send/Receive packets back and forth between the signal board and the DUT through radiation. The DUT sends the test results to the host computer via the serial port. Then, the host computer provides conclusions by analyzing the test results.
Test Steps: DUT runs with the testing firmware. The test starts after the host computer sends the serial port commands. Initially, the DUT obtains the RF performance information by reading registers, including the voltage fluctuations; then the DUT sends/receives a certain number of packets to/from the signal board; upon completion, the host computer determines if the DUT has passed the tests by checking the log information against the set thresholds.
Configuration Interface: To enable this test, go to the
Test Flow
tab and checkRF_TEST
.

RF Test
GPIO Conductivity Test
Test Objective: This test can be performed to check the conductivity of GPIOs. It can help identify if there are any soldering problems, such as insufficient wetting or solder bridges.
Test Method: After the corresponding pins of the fixture and DUT are shortened, the pin levels are set and obtained with the serial port commands, thus identifying any existing soldering problems.
Test Steps: After the RF test is completed, a series of serial port commands are sent to perform the GPIO conductivity test. The serial port commands have been integrated in the host computer, so the customers can easily perform the GPIO Conductivity Test by enabling this function.
Configuration Interface: As shown in the figure below, you can enable this test in the
GENERAL_TEST
sub-list on theTest Flow
tab. For details, please refer to Appendix B: GPIO Conductivity Test Configuration.

GPIO Conductivity Test
Firmware Version Verification Test
Test Objective: This test can be performed to verify the correctness of the firmware version downloaded to flash.
Test Method: Check against the target firmware by comparing a “certain verification string” or “version number” in the serial port log. Therefore, this verification string must distinguish itself from those of other firmware.
Test Steps: After the RF test, the host computer configures the serial port board to flow control mode, so the DUT boots from flash, and check the string in the log against the target string. You can easily verify the firmware version by enabling this function.
Configuration Interface: You can enable this test in the
GENERAL_TEST
sub-list on theTest Flow
tab.

Firmware Version Verification Test
Tool Operation
Two different test modes are supported in the signal board scheme: the Single-DUT mode and the Four-DUT mode. The configuration below is applicable to both of these two test modes. The operation process is as follows:
After setting up the environment, click
START
button (orALL START
) to begin synchronization and downloading.

Synchronization
After downloading is finished, the tool displays testing progress (
RUN
). Wait for test results.

Running
The tool displays test results.

Finish
The tool displays FAIL
if any test item fails. The status block lists the detailed results of each test, to help you identify the reasons.
Check the detailed test records.

Check Test Record
The test results of each production test will be saved in a separated log. The name of each log follows the pattern of “DUT MAC + date”. Click the Log
button to bring up the log file of the last test for the corresponding DUT. If there is no test history for this workstation, open the Logs
folder to access available logs.
Appendix B: GPIO Conductivity Test Configuration
During the GPIO Conductivity Test, the pins (GPIOx, GPIOy) to be tested should be connected with each other as instructed below. One pin works as an output for a signal (n = 0 or 1), while the other one works as an input and reads the current signal.
Note on <GPIOx, GPIOy, n>:
GPIOx is the input pin, and GPIOy is the output pin.
n can be 0 or 1. 0: low level; 1: high level.
To make sure both high and low levels of all the pins can be tested. Once configured, this GPIO conductivity test is always performed twice:
First time with the configured n, and
Second time with the inverted n.
For example, if n is configured to 1, then the test will run with n = 1 for the first time, and then run again with n = 0 for the second time.
Test Configuration
Please see the followings to configure the GPIO conductivity test for ESP32-WROOM-32D module.
Pin wiring:
IO23–>IO34
IO22–>IO35
IO15–>IO32
IO02–>IO33
IO19–>IO25
IO18–>IO26
IO05–>IO12
IO13–>IO27
IO21–>IO14
Configuration on the host computer:
<GPIO34,GPIO23,0>;<GPIO35,GPIO22,1>;<GPIO32,GPIO15,0>;<GPIO33,GPIO2,1>;<GPIO25,GPIO19,0>;<GPIO26,GPIO18,1>;<GPIO12,GPIO5,0>;<GPIO27,GPIO13,0>;<GPIO14,GPIO21,1>

ESP32 Series Test Option
Serial Command
Serial port command: ESP_TEST_GPIO <Parameter1> <Parameter2> <Parameter3>
Input |
ESP_TEST_GPIO 0xD9000C20 0x0054ECE0 0x00000055 |
Expected Input Result |
0x33000000 0x00AC0000 0x000000BB |
Command Description: The states of a GPIO are represented with a 2-bit character. Each GPIO has four states:
00: the default mode;
01: INPUT;
10: the OUTPUT level is low;
11: the OUTPUT level is high.
Parameter description:
<Parameter1>: 32-bit character, which represents the states of the range from GPIO0 to GPIO15. To be more specific, bit [1:0] represents the states of GPIO0, bit [3:2] represents the states of GPIO1,… bit [30:31] represents the states of GPIO15.
<Parameter2>: 32-bit character, which represents the states of the range from GPIO16 to GPIO31. To be more specific, bit [1:0] represents the states of GPIO16, bit [3:2] represents the states of GPIO17,… bit [30:31] represents the states of GPIO31.
<Parameter3>: 32-bit character, which represents the states of the range from GPIO32 to GPIO47. To be more specific, bit [1:0] represents the states of GPIO32, bit [3:2] represents the states of GPIO33,… bit [30:31] represents the states of GPIO47.
Result:
Input result: <Parameter1> <Parameter2> <Parameter3>
Description: A 2-bit character is used to represent a GPIO as input result, in which the higher bit indicates whether the input is valid, while the lower bit represents the input level. Each GPIO as INPUT has four results in total:
00: this GPIO does not work as INPUT;
10: the OUTPUT level is low;
11: the INPUT level is high;
01: no significant meaning.
Parameter description:
<Parameter1>: 32-bit character, which represents the input results of the range from GPIO0 to GPIO15. To be more specific, bit [1:0] represents the input results of GPIO0, bit [3:2] represents the input results of GPIO17,… bit [30:31] represents the input results of GPIO15.
<Parameter2>: 32-bit character, which represents the input results of the range from GPIO16 to GPIO31. To be more specific, bit [1:0] represents the input results of GPIO16, bit [3:2] represents the input results of GPIO17,… bit [30:31] represents the input results of GPIO31.
<Parameter3>: 32-bit character, which represents the input results of the range from GPIO32 to GPIO47. To be more specific, bit [1:0] represents the input results of GPIO32, bit [3:2] represents the input results of GPIO33,… bit [30:31] represents the input results of GPIO47.
Note
ESP32 has 34 GPIOs, of which:
GPIO20, GPIO24, and GPIO28 to GPIO31 are not available for state configuration;
GPIO1/U0RXD and GPIO3/U0TXD are used to send/receive commands, thus cannot be used for IO tests (Therefore, the test results are considered invalid);
GPIO34 to GPIO39 only work as INPUT only.
Appendix C: Firmware Version Verification Test
The detailed configuration of the firmware version verification test is shown below:

Detailed Configuration
The firmware version verification test is enabled if the option USER_FW_CHECK
is checked. Here, two test modes are available:
USER_FW_VER_TEST
: If theUSER_FW_VER_STR
is set toEspcmd_en
, theUSER_TEST_CMD
is enabled. Otherwise,USER_FW_VER_TEST
is enabled, in which a string is used to verify the firmware version number, such as the0.17.59eh
in the figure above.USER_TEST_CMD
: If theUSER_FW_VER_STR
is set toEspcmd_en
, theUSER_TEST_CMD
is enabled. You can verify the firmware version number with your customized commands. For example, the value <AT+GMR,“0.10.0”,5> in the figure above indicates that after sending the commandAT+GMR
, the serial port should return a character string that contains0.10.0
.
Certification
Download certificates for Espressif products from Certificates.