Bluetooth and Bluetooth LE Non-Signaling Test

[中文]

Bluetooth and Bluetooth LE Non-Signaling Test controls the device to transmit specific signals without establishing a connection, evaluating performance metrics such as transmit power, spectrum characteristics, and error rate to ensure communication quality.

Set Up Test Environment

The RF non-signaling test firmware environment mainly includes a PC, tester, a USB-to-UART board, a device under test (DUT), and a shield box.

../../_images/rf_non_signaling_setup.png

Test Environment Setup

  • PC is connected to the USB-to-UART board via USB and to the tester via an Ethernet cable. The PC needs to have the EspRFTestTool toolkit, tester control software, and the driver for the USB-to-UART board installed.

  • Tester is used to test the RF performance of the DUT in different modes. Typically, it is the WT-328/IQXel tester.

  • USB-to-UART board is used to communicate between the PC and the DUT.

  • Device under test (DUT) refers to a product designed based on the ESP32 chip or module. It is connected to the USB-to-UART board via UART and to the tester via an RF connection cable. The DUT is usually placed inside a shield box.

  • Shield Box is used to isolate external RF interference and ensure the stability of the test environment.

Note

  • The CHIP_EN pin of the DUT is pulled up by default. If it is not pulled up in the product design, you need to manually connect the CHIP_EN to the 3V3 pin.

  • Some serial communication boards have already swapped RXD and TXD internally, so there is no need to reverse the connection. Adjust the wiring according to the actual situation.

  • ESP32 has a power-on self-calibration feature. The RF connection cable must be connected to the tester before the DUT is powered on for testing.

Conduction Test

  • For modules without an onboard PCB antenna, the RF connection cable can be directly soldered to the antenna feed point of the module (as shown in the schematic diagram above).

  • For modules with an onboard PCB antenna, cut the trace that connects to the PCB antenna feed point and solder the RF connection cable. The RF cable’s shielding metal layer must be thoroughly soldered before connecting to the module’s GND. The GND soldering point can be either the shield cover or the exposed GND layer on the PCB (after removing the green solder mask). Besides, it should be as close to the feed point as possible.

../../_images/pcb_antenna_conducted_test.png

Soldering RF Connection Cable to Module with Onboard PCB Antenna

Flash Firmware

  1. Open EspRFTestTool.

  2. Set ChipType, COM, BaudRate, and click Open to open the COM port.

Note

Set BaudRate to 115200

  1. Flash ESP32 RF Non-Signaling Test Firmware to Flash via UART.

../../_images/nonsignaling_firmware_flash.png

ESPRFTestTool Configuration

  1. After the firmware flashing is completed, pull the boot pin high or leave it floating. The chip will enter the working mode after power-off restart.

Start Testing

Bluetooth/Bluetooth LE TX Performance Test

  • Test Mode:

    • BT TX: Used for Bluetooth TX performance tests;

    • BLE TX: Used for Bluetooth LE TX performance tests.

  • Power Level: Set the Bluetooth power level, supporting 0~7 levels of testing

  • Channel: Set the Bluetooth test channel

  • Hoppe: Enable the hopping function. Default: Disabled.

  • Ulap: Set the Bluetooth address, use the default value, only supported by Bluetooth

  • Itaddr: Set the logical TX address. Default value is used. Only supported by Bluetooth

  • Syncw: Set the identity code of the packet file. Default: syncw=0x71764129

  • Payload length: Set the payload length. Default: 250

  • Data Rate: Set the packet TX rate and encoding sequence. It supports four rates, including BT 1M, 2M, 3M and BLE 1M. It supports three encoding sequences, including 1010, 11110000, and prbs9

After clicking start, the Bluetooth TX parameter description is displayed in the log window, similar to the following:

fcc_bt_tx:txpwr=6,hoppe=0,chan=0,rate=1,DH_type=1,data_type=1

This indicates that the Bluetooth packet TX is normal, and the TX performance can be tested with the tester.

../../_images/esp32_bt_tx_on.png

Bluetooth Transmission Performance

../../_images/esp32_ble_tx_on.png

Bluetooth LE Transmit Performance

Bluetooth RX Performance Test

  • Test Mode: Set to BT RX for Bluetooth RX performance tests

  • Channel: Set the Bluetooth test channel

  • Ulap: Set the Bluetooth address. The default value is used. Only supported by Bluetooth

  • Itaddr: Set the logical TX address. The default value is used. Only supported by Bluetooth

  • Data Rate: Set the packet RX rate, supporting BT 1M, 2M, 3M. The default encoding sequence is prbs9

After clicking start, use the tester to send packets on the test channel. Click stop after completion. The packet RX information is displayed in the log window, similar to the following:

3e8 3e8 0 0 0 0 0 0 w 0 0 0 0 0 0 0 0 p 4176 45cf ddfd b 7ca240 0

Where:

  • The 1st parameter Res[0] (hexadecimal) represents the total number of packets received in this test. In this test, the total number of packets is 3e8.

  • The 2nd parameter Res[1] (hexadecimal) represents the number of packets of the corresponding rate received in this test. In this test, the number of packets of the corresponding rate is 3e8.

  • The second to last parameter Res[22] (hexadecimal) represents the total number of codes of the corresponding rate received in this test. In this test, the total number of codes of the corresponding rate is 7ca240.

  • The last parameter Res[23] (hexadecimal) represents the total number of error codes received in this test. In this test, the number of error codes is 0.

Based on the above parameters, you can calculate:

  • Bit error rate BT_BER = Res[23]/Res[22]

  • BT_RSSI = (-Res[18]]-Res[20])/Res[0]

../../_images/esp32_bt_rx_on.png

Bluetooth RX Performance Test

Bluetooth LE RX Performance Test

  • Test Mode: Select BLE RX for Bluetooth LE RX performance test

  • Channel: Set the Bluetooth LE test channel

  • Syncw: Set the identity code of the packet file. Default: syncw=0x71764129

  • Data Rate: Set the packet RX rate. Default rate: BLE 1M.Default encoding sequence: prbs9

After clicking start, use the tester to send packets on the test channel. Click stop after completion. The packet RX information is displayed in the log window, similar to the following:

3e8 3e8 0 0 0 0 0 0 0 0 w 0 0 0 0 0 0 0 0 p 5b83 58cf 6acb

Where:

  • The 1st parameter Res[0] (hexadecimal) represents the total number of packets received in this test. In this test, the total number of packets is 3e8.

  • The 2nd parameter Res[1] (hexadecimal) represents the number of packets received at the corresponding rate in this test. In this test, the number of packets at the corresponding rate is 3e8.

  • The third last parameter Res[20] (hexadecimal) represents the in-band power of all packets in this test. In this test, the in-band power of all packets is 5b83.

  • The last parameter Res[22] (hexadecimal) represents the gain of all packets in this test. In this test, the gain of all packets is 6acb.

Based on the above parameters, we can calculate:

  • Packet loss rate BLE_PER = [1-(Res[1]/Sent_Packet_Numbers)]*100%<=30.8%

  • BLE_RSSI = (-Res[20]-Res[22])/Res[0]

../../_images/esp32_ble_rx_on.png

Bluetooth LE RX Performance Test

Appendix

This appendix is mainly used to explain the power level and corresponding target power of Bluetooth and Bluetooth LE of ESP32, which is used for RF debugging or test reference.

ESP32 Bluetooth/Bluetooth LE TX Power Level

Power Level

ESP32 Bluetooth/Bluetooth LE TX Power (dBm)

0

-12

1

-9

2

-6

3

-3

4

0

5

3

6

6

7

9