Microsoft BTP / HLK Support Request – Model 2433 ESP32 Wi-Fi Firmware download error and LE Supported States Test cases error
Environment
- BTP version: v1.14.0
- Device: Microsoft Model 2433 ESP32 Wi-Fi module
- ESP32 firmware package:
C:\BTP\v1.14.0\DeviceFirmware - Target test: Bluetooth - LE Supported States - Act as a peripheral (Development and Integration)
- Tool used:
arduino-cli,esptool,TraduciCmd.exe
We are currently preparing the Model 2433 ESP32 Wi-Fi module for Microsoft BTP/HLK testing. We have encountered several issues related to the ESP32 firmware and the LE Supported States test.
We would appreciate Microsoft's guidance on the following questions.
Issue 1 – ESP32 firmware cannot be downloaded using the command provided in the BTP documentation
We followed the official Microsoft documentation for flashing the Model 2433 ESP32 firmware:
BTP hardware – ESP32 documentation
The documentation provides the following command:
arduino-cli upload -p COMX --fqbn esp32:esp32:esp32 --input-file C:\BTP\v1.14.0\DeviceFirmware\WiFi-ESP32.ino.bin
However, when we execute the command, arduino-cli reports that the bootloader binary cannot be found:
PS C:\Program Files\Arduino CLI> arduino-cli upload -p COM4 --fqbn esp32:esp32:esp32 --input-file C:\BTP\v1.14.0\DeviceFirmware\WiFi-ESP32.ino.bin
esptool v5.3.1
Usage: esptool.exe write-flash [OPTIONS] <address> <filename>...
Try 'esptool.exe write-flash -h' for help
+- Error ---------------------------------------------------------------------+
| Invalid value for '<address> <filename>...': [Errno 2] No such file or |
| directory: 'C:\\BTP\\v1.14.0\\DeviceFirmware/WiFi-ESP32.ino.bootloader.bin' |
+-----------------------------------------------------------------------------+
Failed uploading: uploading error: exit status 2
We checked the BTP firmware directory and confirmed that WiFi-ESP32.ino.bootloader.bin is not included:
C:\BTP\v1.14.0\DeviceFirmware
2022/09/24 03:09 133,021 BtpBluefruit_nRF52840.ino.zip
2022/09/24 03:09 762,960 WiFi-ESP32.ino.bin
2022/09/24 03:09 3,072 WiFi-ESP32.ino.partitions.bin
There is no WiFi-ESP32.ino.bootloader.bin in the package.
Questions
Could Microsoft please confirm:
- Is
WiFi-ESP32.ino.bootloader.binintentionally missing from the BTP v1.14.0 package? - Is the
arduino-cli uploadcommand in the documentation still correct for BTP v1.14.0? - If the bootloader file is required, where can we obtain the correct bootloader binary corresponding to the BTP firmware?
- What is the officially recommended procedure for updating/flashing the firmware on the Model 2433 ESP32 module?
Issue 2 – We can successfully flash the firmware directly using esptool
We analyzed the WiFi-ESP32.ino.partitions.bin file and obtained the partition information.
Based on the partition information, we used esptool to directly flash the application firmware:
esptool --chip esp32 --port COM4 --baud 115200 write-flash 0x10000 C:\BTP\v1.14.0\DeviceFirmware\WiFi-ESP32.ino.bin
This command completed successfully.
After that, we executed:
TraduciCmd.exe -updateesp32firmware
The command also completed successfully and reported:
C:\BTP\v1.14.0\x64>TraduciCmd.exe -updateesp32firmware
ESP32 Payload firmware version: 102
ESP32 Current firmware version: 102
ESP32 is up to date
SerialPortReader finished
Question
Could Microsoft please confirm whether this flashing procedure is valid and expected for the Model 2433 ESP32 module?
We would like to make sure that our current firmware flashing procedure is fully consistent with Microsoft's expected BTP environment before continuing with HLK/BTP certification testing.
Issue 3 – LE Supported States test fails at IsNotNull(m_scanner)
After successfully flashing the ESP32 firmware using the procedure described above, we ran the following test:
Bluetooth - LE Supported States - Act as a peripheral (Development and Integration)
The test fails at:
IsNotNull(m_scanner)
The relevant log is:
IsNotNull(m_scanner) - Value ()
File: onecore\drivers\bluetooth\test\hlk\singlemachine\lesupportedstates.cpp Line: 328
Exception (HR: 0x8007023e): onecore\drivers\bluetooth\test\hlk\singlemachine\lesupportedstates.cpp (338)
Cases log file: LE Supported States - Act as a peripheral (Development and Integration).txt
It appears that the test fails during scanner initialization, before the actual LE Supported States test functionality can proceed.
We would like Microsoft's help to determine the root cause.
Questions
Could you please clarify:
- What conditions are required for
m_scannerto be successfully initialized? - Does this failure indicate a problem with the ESP32 firmware, the Bluetooth adapter/driver, the BTP device plugin, or the test environment?
- Is there any additional log or ETW trace that we should collect to determine why
m_scanneris null? - Is the Model 2433 ESP32 firmware currently included in BTP v1.14.0 known to work with this test case?
Issue 4 – Purpose and requirements of the LE Supported States test
We would also like to better understand the purpose of the following test:
Bluetooth - LE Supported States - Act as a peripheral (Development and Integration)
We searched the Microsoft HLK Test Reference documentation:
However, we could not find a detailed description of this specific test case.
Questions
Could Microsoft please provide more information about:
What are the expected prerequisites for this test?