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:

../../_images/tester_scheme_en.png

Diagram of the Tester Scheme

  1. Download RF_Test_FW.bin to ESP IC RAM;

  2. 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;

  3. 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.

  • 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.

../../_images/signal_board_scheme_en.png

Diagram of Signal Board Scheme

../../_images/hardware_connection_for_signal_board_scheme.png

Hardware Connection for Signal Board Scheme

Note

The test above must be performed in a shielded enclosure.

Production Testing Process

  1. 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.

  1. 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.

  2. 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 Comparison

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

  1. 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.

  2. 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.

  3. 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

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.

../../_images/esp32_wroom_32d_wiring.jpg

Wiring for ESP32-WROOM-32D

../../_images/esp32_wroom_32e_wiring.jpg

Wiring for ESP32-WROOM-32E

  1. 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.

../../_images/quick_start_on_testing_diagram.png
  1. 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.

  2. Click START button to start the test. During the testing, Parameter fb_rssi in the Log must be kept at around -50.

  3. Troubleshoot based on the test results.

Production Testing Tool

Tool Introduction

Download Link

Directory

  • factory_test_ui_tool: the main directory

    • factory_test_cus_v1.0.exe: the executable file

    • config: 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

../../_images/main_interface.png

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

../../_images/dut_config.png

DUT Config

As shown in the figure above, the DUT Config tab can be divided into three major blocks:

  • 1. EST CONFIG: Test-related configuration

  • 2. DUT: DUT-related configuration

  • 3. APPLY: apply the configuration

TEST CONFIG

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

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 check RF_TEST.

../../_images/rf_test.png

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 the Test Flow tab. For details, please refer to Appendix B: GPIO Conductivity Test Configuration.

../../_images/gpio_cond_test.png

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 the Test Flow tab.

../../_images/firmware_version_verification_test.png

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:

  1. After setting up the environment, click START button (or ALL START) to begin synchronization and downloading.

../../_images/synchronization.png

Synchronization

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

../../_images/running.png

Running

  1. The tool displays test results.

../../_images/finish.png

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.

  1. Check the detailed test records.

../../_images/check_test_record.png

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>:

  1. GPIOx is the input pin, and GPIOy is the output pin.

  2. 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:

  1. First time with the configured n, and

  2. 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>

../../_images/test_option_esp32_series.png

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:

../../_images/detailed_configuration.png

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 the USER_FW_VER_STR is set to Espcmd_en, the USER_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 the 0.17.59eh in the figure above.

  • USER_TEST_CMD: If the USER_FW_VER_STR is set to Espcmd_en, the USER_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 command AT+GMR, the serial port should return a character string that contains 0.10.0.

Certification

Download certificates for Espressif products from Certificates.