UM11442
[PDF] UM11442 - MCUXpresso SDK Builder - NXP Semiconductors
Jul 20, 2023 · Now, open the “Serial Bluetooth Terminal” smartphone application and go to settings > devices. Select the device “edgefast spp”. The ...
Not Your Device? Search For Manuals or Datasheets below:
File Info : application/pdf, 273 Pages, 8.55MB
Document DEVICE REPORTUM11442-NXP-Wi-Fi-and-Bluetooth-Demo-Applications-for-i.MX-RT-platforms-User-GuideUM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Rev. 19 26 Mar 2025 User Manual Document information Information Content Keywords Abstract i.MX RT crossover MCU, i.MX RT products, MX RT1060 EVK board, MCUXpresso SDK, 88W8801-based wireless module, IW416- based wireless module, 88W8987-based wireless module, IW611/612-based wireless module, RTOS image, Provides step-by-step guidance to configure, compile, debug, flash and run the Wi-Fi and Bluetooth sample applications available in the MCUXpresso SDK. It also covers IDE configurations and required tool set up NXP Semiconductors Revision history Rev Date v.1 20200717 v.2 20210110 v.3 20210331 v.4 20210602 UM11442 User manual UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Description Initial version Modifications: · Extended the scope to IW416-based modules · Table 3: updated · Section 1 "About this Document": updated · Section 2 "Tool Setup": updated · Section 3 "Wi-Fi Sample Applications": updated · Section 4 "Useful Wi-Fi APIs": updated · Section 3.5 "wifi_test_mode Sample Application": added · Section 3.6 "wifi_cert Sample Application": added · Section 5 "Bluetooth Classic/Low Energy Application": added · Section 6 "Acronyms and abbreviations": added Modifications: · Section 1.3 "References": updated · Section 3.1.4 "Run a Demo using ARM GCC": updated · Section 3.5 "wifi_test_mode Sample Application": updated · Section 3.6 "wifi_cert Sample Application": updated · Section 3.6.1 "wifi_cert Application Execution": updated · Section 5 "Bluetooth Classic/Low Energy Application": updated · Table 15: added Modifications: · Document Format modifications · Section 1.3 "References": updated · Section 1 "About this Document": updated · Section 2 "Tool Setup": updated · Table 3: updated · Section 3.1 "wifi_iperf Sample Application": updated · Section 3.1.3.2 "Project Settings": updated · Section 3.1.4.2 "Project Settings": updated · Section 3.1.5.2 "Project Settings": updated · Section 3.1.6.3 "Project Settings": updated · Section 3.1.7.1 "Start-up logs": updated · Section 3.2 "wifi_setup Sample Application": added · Table 12: updated · Section 3.3.1.1 "Run the application": updated · Section 3.3.1.3 "Wi-Fi Power Save": added · Section 3.3.1.4 "Other useful CLI commands": updated · Figure 35: updated · Section 3.4.2.1 "Start-up logs": updated · Section 3.4.2.5 "Device reboot with configuration stored in mflash": updated · Section 3.5.1.3 "Wi-Fi Packet count": updated · Table 15: updated · Section 3.5.1.8 "Other useful CLI commands": updated · Table 16: updated · Table 17: updated · Section 3.6.1.1 "Run the application": updated · Section 3.6.1.6 "Set/Get Tx Rate Configuration": updated All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 2 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms · Table 21: updated · Section 2.2 "Wireshark Tool Setup": added · Section 5 "Bluetooth Classic/Low Energy Applications": updated · Section 5.14.2 "audio_profile Application Execution": updated · Section 5.15.2 "wifi_provisioning Application Execution": updated v.5 20210823 v.6 20220114 v.7 20220314 UM11442 User manual Modifications: · Section 1.3 "References": updated · Table 2: updated · Section 3.1.3.2 "Project Settings": updated · Section 3.1.4.2 "Project Settings": updated · Section 3.1.5.2 "Project Settings": updated · Section 3.1.6.3 "Project Settings": updated · Section 5.14 "Wireless UART Sample Application": added · Section 5.15 "Shell Sample Application": added · Table 23: updated Modifications: · Table 2: updated · Section 3.1.3.2 "Project Settings": updated · Section 3.1.4.2 "Project Settings": updated · Section 3.1.5.2 "Project Settings": updated · Section 3.1.6.3 "Project Settings": updated · Section 3.1.7.1 "Start-up logs": updated · Section 3.2.1.1 "Run the application": updated · Section 3.3.1.4 "Other useful CLI commands": updated · Section 3.4.2.1 "Start-up logs": updated · Section 3.4.2.5 "Device reboot with the configurations stored in mflash": updated · Section 3.5.1.8 "Other useful CLI commands": updated · Section 3.6.1.3 "Set/Get Tx Power Limit": updated · Table 23: updated · Section 5.1.1 "a2dp_sink Application Execution": updated · Section 5.15.1.1 "Shell Run the application": updated · Table 24: updated · Section 5.16.2.3 "Create IoT thing, private key, and certificate for device": updated · Section 5.16.2.5 "Configure the AWS IoT endpoint": updated · Section 5.16.2.4 "Configure the AWS IoT Certificate and Private Keys": updated · Section 5.17.2 "wifi_provisioning Application Execution": updated Modifications: · Section 1.3 "References": updated · Section 3 "Wi-Fi Sample Application": updated · Section 3.1 "wifi_cli Sample Application": updated · Section 3.1.1 "Run a demo with MCUXPresso IDE": updated · Section 3.1.2 "Run a demo using ARM® GCC": updated · Section 3.1.3 "Run a demo using IAR IDE": updated All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 3 NXP Semiconductors v.8 20220627 v.9 20220812 UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms · Section 3.1.4 "Run a demo using Keil MDK/µVision": updated · Section 3.1.5 "wifi_cli Application Execution": updated · Section 3.1.5.10 "IPerf Server/Client": updated · Section 3.6 "wifi_ipv4_ipv6_echo Sample Application": Added · Section 5.15 "Shell Sample Application": Updated · Section 5.15.1 "Shell Application Execution": updated · Section 5.15.1.1 "Shell Run the application": updated Modifications: · Table 5 : added u-blox modules · Section 3.1.5.1 "Start-up logs: updated": updated logs · Section 3.1.5.3 "Reset Wi-Fi module": added new command · Section 3.1.5.9 "Start Soft AP": added bandwidth NOTE for 8977 and 8801 · Section 3.1.5.13 "Wi-Fi Host sleep/wowlan": added new command · Section 3.1.5.14 "Other useful CLI commands": added commands for heap stat and 8801 ext-coex · Section 3.4.1.1 "Run the application": updated startup logs · Section 3.4.1.2 "Prerequisite Commands": added 80MHz bandwidth option · Table 11: rename to 11bgn data rate parameters · Table 12: added 11ac data rates · Section 5.15 "Shell Sample Application": added new commands for RF Test and generic HCI command execution · Section 5.16 "peripheral_beacon Sample Application": added new application · Table 24: added new acronyms Modifications: · Deprecated reference of 88W8977 from the document · Section 3 "Wi-Fi Sample Applications": Updated SDK version · Section 3.1.1.2 "Project Settings": Updated screenshot · Section 3.1.3.2 "Project Settings": Updated screenshot · Section 3.1.4.2 "Project Settings": Updated screenshot · Section 3.1.5.12 "Wi-Fi Power Save": Added NOTE for WNM · Section 3.1.5.14 "Other useful CLI commands": Updated FW version, added NOTE for heap-stat, and added new commands for encryption and decryption · Section 3.2.1.1 "Run the application": Updated FW version · Section 3.3.2.1 "Start-up logs": Updated FW version · Section 3.3.2.5 "Device reboot with the configurations stored in mflash": Updated FW version · Section 3.4.1.8 "Other useful CLI commands": Updated FW version · Section 5.1.1.1 "Run the Application": Updated logs · Section 5.3.1.1 "Run the application": Updated help details · Section 5.5.1.1 "Run the application": More commands added in the help · Section 5.5.1.2 "Serial Port Profile Server Configuration": Added connection and disconnection logs · Section 5.10.1.1 "Run the application": Updated connection logs · Section 5.12 "peripheral_ipsp Sample Application": Updated logs · Section 5.15.1.1 "Shell Run the application": Updated help console logs UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 4 NXP Semiconductors v.10 20230103 v.11 20230320 v.12 20230727 UM11442 User manual UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Modifications: · Table 5 : Updated tested module information · Section 3 "Wi-Fi Sample Applications": Updated SDK version · Section 3.1.1.2 "Project Settings": Updated module macro and screenshot · Section 3.1.2.1 "Install ARM® GCC toolchain": Updated armgcc and cmake version · Section 3.1.2.2 "Build the application": Updated module macro details · Section 3.1.3.2 "Project Settings": Updated module macro and screenshot · Section 3.1.4.2 "Project Settings": Updated module macro and screenshot · Section 3.1.5.12 "Wi-Fi Power Save": Updated logs and NOTEs · Section 3.1.5.14 "Other useful CLI commands": Updated FW version, wlan_info output · Section 3.2.1.1 "Run the application": Updated FW version · Section 3.3.2.1 "Start-up logs": Updated FW version · Section 3.3.2.5 "Device reboot with the configurations stored in mflash": Updated FW version · Section 3.4.1.8 "Other useful CLI commands": Updated FW version · Section 3.5.1.4 "Set/Get Active/Passive Channel List": Updated logs · Section 3.5.1.5 "Set Channel List and Tx Power Limit": Updated logs · Section 5.16.1 "peripheral_beacon Application Execution": iBeacon: Output changed · Section 5.17 "audio_profile Sample Application": Updated screenshots · Section 5.17.2.4 "Configure the AWS IoT Certificate and Private Keys ": Added new method for converting PEM file to C string · Section 5.18 "wifi_provisioning Sample Application": Removed Modifications: · Section 3 "Wi-Fi Sample Applications": Updated SDK version · Section 3.1.5.9 "Start Soft AP": Added command for WPA3 SAE (R3) · Section 3.1.5.14 "Set/Get Antenna Diversity Configuration": Added new command · Section 3.1.5.15 "Set/Get Region Code": Added new command · Section 3.1.5.16 "Set RSSI low threshold": Added new command · Section 3.1.5.17 "Roaming with 802.11k, 802.11r, and 802.11v": Added new command · Section 3.1.5.18 "Other useful CLI commands": Updated crypto commands · Section 3.2 "wifi_setup Sample Application": Modification in sample app flow · Section 3.3.2 "wifi_webconfig Application Execution": Updated logs and added NOTE for wpa3 · Section 3.5.1.9 "Set/Get ED MAC Feature": Updated logs · Section 3.6 "wifi_ipv4_ipv6_echo Sample Application": Updated logs Modifications: · Section 2.3 "IPerf Remote Host Setup": Updated iPerf version · Table 5: Added macro for IW612, updated SDK version, added foot NOTE for IW612 · Section 3.1.1 "Run a Demo with MCUXpresso IDE": Updated version · Section 3.1.2 "Run a demo using ARM® GCC": Updated version All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 5 NXP Semiconductors v.13 20231018 v.14 20240110 UM11442 User manual UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms · Section 3.1.3 "Run a demo with IAR IDE": Updated version · Section 3.1.4 "Run a demo using Keil MDK/µVision": Updated version · Section 3.1.5.1 "Start-up logs": updated logs · Section 3.1.5.2 "Help command": updated logs · Secion 3.1.5.4 "Scan command": updated logs and added new command wlan-scan-channel-gap · Section 3.1.5.6 "Station mode (connect to AP)": new command wlan-get- signal · Section 3.1.5.7 "Start Soft AP": Added new command wlan-set-uap- hidden-ssid · Section 3.1.5.10 "Wi-Fi Host sleep/wowlan": Updated logs · Section 3.1.5.11 "Wi-Fi Cloud Keep Alive": Added new · Section 3.1.5.15 "Roaming based on RSSI event": Added new · Section 3.7 "wifi_wpa_supplicant Sample Application": Added new · Section 4.2 "Enable Host based WPA supplicant Feature for Wi-Fi application": Added new · Table 20: Added macro for IW612 · Section 6 "802.15.4 Sample Application": Added new Modifications: · Table 12: Added data rate table for 802.11ax · Section 3.7 "uart_wifi_bridge Sample Application": Added new · Section 3.8.1.6 "Wi-Fi easy connect (DPP)": Added new · Section 3.8.1.7 "wlan-cloud-keep-alive": Added new · Section 5.14 to 5.21: Added new · Section 5.23 "Wi-Fi CLI over Wireless UART Sample Application": Added new Modifications: · Section 1.2 "Considerations": Added entry for IW612 · Table 4: Added entry for IW612 · Table 5: Added new · Section 3.1.2.3 "Flash the application program (no debugging)": Added NOTE for i.MX RT1060 EVKC and RT1170 EVKB · Section 3.1.5.1 "Start-up logs": Updated logs · Section 3.1.5.5 "Add network profile": Updated logs · Section 3.1.5.6 "Station mode (connect to AP)": Updated wlan-add command · Section 3.1.5.7 "Start Soft AP": Updated wlan-add command · Section 3.4.1.3 "Display and Clear Received Wi-Fi Packet Count": Updated logs · Section 3.8.1.3.3 WPA3- Enterprise": Added information for Connection Establish time · Table 10: Updated · Table 11: Updated · Table 12: Updated · Section 3.4.1.7 "Transmit standard 802.11 packets": Updated command usage and logs · Section 3.7 "uart_wifi_bridge Sample Application": Removed NOTE for IW612 and added labtool link for 8987 and IW416 · Section 3.8.1.2 "Add network profile": Updated logs · Section 3.8.1.3.1 "Enable auto reconnect option": Added new · Section: 3.8.1.3.2 "Channel State Information (CSI)": Added New All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 6 NXP Semiconductors v.15 20240405 v.16 20240628 v.17 20240925 UM11442 User manual UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms · Section 3.8.1.3.3 "Other Security options": Added new EAP methods SIM, AKA, AKA-PRIME, FAST · Section 3.8.1.4.1 "Other Security options": Added new EAP methods SIM, AKA, AKA-PRIME, FAST · Section 3.8.1.6 "Independent Reset (IR)": Added new · Section 3.8.1.8 "wlan-cloud-keep-alive": Removed comment related to IW612 Modifications: · Table 4: Updated for 2.15.1 · Section 3.1.3: "Run a demo with IAR IDE": Updated IDE version · Section 3.1.5.6: "Station mode (connect to AP)": Update WPA3 Security · Section 3.1.5.7: "Start Soft AP": Update WPA3 Security · Section 3.1.5.11: "Set/Get Antenna Diversity Configuration": Updated · Section 3.1.5.13: "Roaming based on RSSI event": Updated Modifications: · Updated SDK version to 2.16.0 and foot note for AW611 · Features and Debug macros configurations restructured · Section 1.2 "Considerations": Added note for AW611 · Section 3 "Wi-Fi Sample Applications": Added note · Section 3.1.1 "Run a Demo with MCUXpresso IDE": Updated IDE version · Section 3.1.3 "Run a demo with IAR IDE": Updated IDE version · Section 3.1.4 "Run a demo using Keil MDK/µVision": Updated IDE version · Section 3.1.5.7 "Start Soft AP": Added note for PWE · Section 3.1.5.8 "IPerf Server/Client": Updated logs, Added -r option for server · Secion 3.1.5.10 "Wi-Fi Host sleep/wowlan": Added mef · Section 3.1.5.12 "Get Region Code": Removed set command and added note · Section 3.5.1.2 "Get Region Code": Removed set command and added note · Section 3.5.1.6 "Set/Get Tx Rate Configuration": Updated · Section 3.8.1.6 "Independent Reset (IR)": Added OOB · Secion 5.24.1.1 "Shell Run the application": Added command for HCI reset, independent reset, In-band reset, Out-of-band reset · Section 5.27: "Bluetooth Only firmware Download Test Procedure": Added new Modifications: · Updated SDK version to 2.16.100 · Section 3.1.5.7 "Start Soft AP": Added WPA3 SAE examples · Section 3.1.5.9 "Wi-Fi Power Save": Updated idle time related info · Section: 3.8.1.3 "Station mode (connect to external AP)": Added info related to pwe along with WPA3 SAE examples · Section: 3.8.1.3.2 "Channel State Information (CSI)": Added UAP and STA mode examples · Section 3.8.1.4.1 "Other Security options": Added new WPA3 SAE examples · 3.1.5.6 "Station mode (connect to AP)": Added STA's OWE examples · Section 3.1.5.7 "Start Soft AP": Added ACS mode info & examples · Section 3.1.5.7 "Start Soft AP": Added AP's OWE mode info & examples · Section 3.1.5.7 "Start Soft AP": Added Hidden SSID cmd usage details All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 7 NXP Semiconductors v.18 20241210 UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms · Section 3.1.5.8 "IPerf Server/Client": Updated usage details · Section 3.1.5.13 "Roaming based on RSSI event": updated · Section 3.1.5.17 "Roaming with 802.11k, 802.11r, and 802.11v": Added description and cmd usage examples · 3.7 "uart_wifi_bridge Sample Application": Added labtool option details. · 3.8.1.3.4 "Other Security options": Updated STA's OWE examples · 3.8.1.4 "Soft AP mode": Added ACS mode info & examples · 3.8.1.4 "Soft AP mode": Added Hidden SSID cmd usage details · Section 3.8.1.4.1 "Other Security options": Added AP's OWE examples · Section 3.8.1.9 "Wireless Location Service (WLS) using IEEE 802.11mc and IEEE 802.11az": Added · Section 5.6 to 5.9: Added PBAP and MAP profile examples Modifications: · Updated SDK version to 24.12.00 · 3.8.1.10 "WLAN Offload Feature": Added ARP & NS Offload command examples · 3.8.1.3.1 "Enable auto reconnect option": Removed v.19 20250326 UM11442 User manual Modifications: · Updated SDK version to 25.03.00 · Section 1.2: New addition of wireless SoC IW610 · Section 1.3: Added link for HW rework guide, user manual UM11441 and WLAN driver reference manual · Section 3: Added wireless module configuration changes with snapshot. · Section 3: Added snapshots of MCU expresso IDE with respect to RT 1060 EVKC. · Section 3: Updated IW610 Murata 2LL module, Updated RT1060 EVKC · Section 3.1.5 "wifi_cli Application Execution" : Updated logs · Section 3.2 "wifi_setup Sample Application": Updated logs · Section 3.3.1 "User Configurations": Updated · Section 3.3.2 "wifi_webconfig Application Execution": Updated logs and images · Section 3.4.1 "wifi_test_mode Application Execution": Updated logs · Section 3.5 "wifi_cert Sample Application": Updated logs · Section 3.8.1 "wifi_wpa_supplicant Application Execution": Updated logs and commands · Section 5: Added wireless module configuration changes with snapshot. · Section 5: Updated IW610 Murata 2LL module · Section 5: Updated the command output as per the latest validation · 5.20 Broadcast media sender 4 BIS: Added new LE audio sample example · 5.21 Broadcast media receiver 4 BIS: Added new LE audio sample example · 5.26 Unicast media sender 4 CIS: Added new LE audio sample example · 5.27 Unicast media receiver 4 CIS: Added new LE audio sample example · 5.28 Unicast media sender Microphone: Added new LE audio sample example · 5.29 Unicast media receiver to BMS: Added new LE audio sample example · Section 5.30.2 & Section 5.31.2: Added a note which explains URI All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 8 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms · Section 5.35: Changed the Bluetooth config file name UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 9 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 1 About this Document 1.1 Purpose and Scope This document provides the steps to configure, compile, debug, flash and run the Wi-Fi and Bluetooth sample applications available in the MCUXpresso SDK. It also covers IDE configurations and required tool set up. 1.2 Considerations The i.MX RT is powered by FreeRTOS and the RTOS drivers are added to support the 88W8801, IW416, IW612, IW610 and 88W8987 NXP-based wireless modules. This document does not include NXP-based wireless modules information, i.MX RT product information, hardware interconnection, board settings, bring-up, IDE setup, SDK download, as these are covered in the UM11441. The user must have i.MX RT platform related IDE and tools installed before going through the given demo process. Note: The IW612/611 support is enabled in i.MX RT1170 EVKB and i.MX RT1060 EVKC. AW611 module support is available only in i.MX RT1180 EVKA UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 10 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 1.3 References Table 1: Reference Documents Reference Type Description User manual NXP MCUXSDKGSUG - Getting Started with MCUXpresso SDK (link) Web page NXP - Getting Started with Wi-Fi on i.MX RT platforms (link) User manual NXP UM11441 - Getting Started with NXP-based Wireless Modules and i.MX RT Platform Running on RTOS (link) User manual NXP - MCUXpresso_SDK_WLAN_Driver_Reference_Manual.pdf (link) SDK Documents available at SDK_<version>_EVK-<RT-Platform>\docs\wireless\Wi-Fi Web page NXP - Hardware Rework Guide (link) User manual App NOTE App NOTE Android Application Configuration file Configuration file Mobile application Specifications SIG - Core Specification (link) NXP - AN13296 Embedded Wi-Fi Subsystem API Specification v16 - Host driver firmware interface (link) NXP - AN13612 Overview of 88W8801 Coexistence with External Radios (link) NXP AwsMusicControl.apk SDK Source: SDK_<PATH>\boards\evkmimxrt1060\edgefast_bluetooth_examples\audio_profile\android_ app. NXP - aws_clientcredential.h SDK Source: SDK_<PATH>\ rtos\freertos\demos\include. NXP - CertificateConfigurator.html SDK Source: SDK_<PATH>\ rtos\freertos\tools\certificate_configuration. NXP - IoT Toolbox Android (IoT Toolbox on Google Play)IoT Toolbox on the APP Store) Specifications | Bluetooth® Technology Website UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 11 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 2 Tool Setup 2.1 Serial Console Tool Setup The serial console tool is used to read out the demo application's logs on the computer connected to i.MX RT EVK board. · Download and install the terminal emulator software such as minicom (Linux or Mac OS) or Tera Term (Windows) · Use a micro-USB to USB cable to connect i.MX RT1060 EVKC board to the host computer running on Linux, Mac OS or Windows. · Open a terminal emulator program like minicom or Tera term. · For minicom use following command and configure the below settings for serial console access: # minicom -s Serial Port Setup: - /dev/ttyACMX serial port - 115200 baud rate - 8 data bits - No parity - One stop bit - No flow control Prior to running the Bluetooth demo application, update the serial console configuration so there is no extra spacing. For Tera Term: · Go to Setup > Terminal · Look for the new line section · Set the Receive to Auto For minicom: Press Ctrl + A and then press Z key to open the Help menu Press the U key to add a carriage return 2.2 Wireshark Tool Setup The Wireshark tool is required to analyze the Wi-Fi sniffer logs. Download and install Wireshark tool for Windows and Mac OS from here. Steps to install Wireshark tool on a computer running Linux Ubuntu: sudo add-apt-repository ppa:wireshark-dev/stable sudo apt update sudo apt install wireshark 2.3 IPerf Remote Host Setup Remote host setup for OS-Linux: Perform the following steps to complete the setup: · Download package of IPerf 2.1.9 for Ubuntu 16.04 from here · Extract the package $ tar -xzf iperf-2.1.9.tar.gz · Install the package using below commands $ cd iperf-2.1.9 $ ./configure $ make UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 12 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms $ sudo make install NOTE: Iperf 2.1.9 is used for the demonstration. · Run the suitable command from the following table. Table 2: iPerf Commands for Linux Remote Host Functionality Command TCP server iperf -s -i 1 UDP server iperf -s -u -i 1 TCP client iperf -c <server_ip> -i 1 -t 60 UDP client iperf -c <server_ip> -u -i 1 -t 60 Remote host setup for mobile phone: Perform the following steps to run the iPerf: · Download the iPerf application like Magic iPerf, HE.NET Network Tools etc. · Open the application and select the iperf2. Run the suitable from the following table. Table 3: iPerf Commands for Mobile Phone Remote Host Functionality Command TCP server -s -i 1 UDP server -s -u -i 1 TCP client -c <server_ip> -i 1 -t 60 UDP client -c <server_ip> -u -i 1 -t 60 2.4 iPV4/6 Tool Setup Remote host setup: · ncat - Recommended tool. Supports both IPv4 and IPv6. It is part of nmap tools. It can be found at https://nmap.org/download.html. · nc (netcat) - Basically, the same as ncat, but a lot of antiviruses consider this a virus. · echotool - Supports only IPv4 and only for Windows. It can be obtained from https://github.com/PavelBansky/EchoTool Zone Index: · On Windows, the zone index is a number. You can get it from the output of the ipconfig command. · On Linux, the zone index is an interface name. · To connect to board with address FE80::12:13FF:FE10:1511, o over interface 21 on your Windows machine specify address as FE80::12:13FF:FE10:1511%21 o over interface eth on your Linux or Mac machine specify address as FE80::12:13FF:FE10:1511%eth0 NOTE: The demo has only a single interface, so do not append zone ID to any address typed to the demo terminal. UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 13 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 3 Wi-Fi Sample Applications This chapter describes the Wi-Fi example applications that are available in the SDK, and the steps to configure, compile, debug, flash, and execute these examples. These Wi-Fi examples can be configured based on the Wi-Fi modules used with the help of Wi-Fi modulespecific macros. Table 4 lists the Wi-Fi module specific macros that are common to all Wi-Fi examples. Macros are available in the file evk<RT-Platform>_wifi_cli\source\app_config.h Note: The macro configSUPPORT_STATIC_ALLOCATION is not for user configuration. Table 4: Macros for Wi-Fi Modules Module Chipset AzureWave AW-NM191NF 88W8801 AzureWave AW-AM457 IW416 Macro WIFI_88W8801_BOARD_AW_NM191_USD WIFI_88W8801_BOARD_AW_NM191MA WIFI_IW416_BOARD_AW_AM457_USD WIFI_IW416_BOARD_AW_AM457MA AzureWave AW-AM510 AzureWave AW-CM358 Murata Type 2DS Murata Type 1XK Murata 1ZM Murata Type 2EL Murata Type 2LL EVK-LILY-W131 EVK-MAYA-W1 EVK-JODY-W2 u-blox Jody W5 IW416 88W8987 88W8801 IW416 88W8987 IW611/612 IW610 88W8801 IW416 88W8987 AW611 WIFI_IW416_BOARD_AW_AM510_USD WIFI_IW416_BOARD_AW_AM510MA WIFI_88W8987_BOARD_AW_CM358_USD WIFI_88W8987_BOARD_AW_CM358MA WIFI_88W8801_BOARD_MURATA_2DS_USD WIFI_88W8801_BOARD_MURATA_2DS_M2 WIFI_IW416_BOARD_MURATA_1XK_USD WIFI_IW416_BOARD_MURATA_1XK_M2 WIFI_88W8987_BOARD_MURATA_1ZM_USD WIFI_88W8987_BOARD_MURATA_1ZM_M2 WIFI_IW61x_BOARD_MURATA_2EL_USD[1] WIFI_IW612_BOARD_MURATA_2EL_M2[1] WIFI_IW610_BOARD_MURATA_2LL_M2 WIFI_88W8801_BOARD_UBX_LILY_W1_USD WIFI_IW416_BOARD_UBX_MAYA_W1_USD WIFI_88W8987_BOARD_UBX_JODY_W2_USD WIFI_AW611_BOARD_UBX_JODY_W5_M2[2] [1] The module operation support is available in the i.MX RT1170 EVKB and i.MX RT1060 EVKC [2] The module operation is available only with i.MX RT1180 EVKA USD=microSD interface M2=M.2 interface Table 5: Memory used by Wi-Fi sample application on RT1060 EVKC Memory Region Total Size wifi_cli wifi_wpa_supplicant BOARD FLASH 8 MB 1.57 MB 2.54 MB SRAM_OC 768 KB 385.49 KB 518.77 KB SRAM_DTC 128 KB 132 B 132 B SRAM_ITC 128 KB 123.616 KB 130.82 KB BOARD_SDRAM 30 MB 0 0 NCACHE_REGION 2 MB 0 0 UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 14 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 3.1 wifi_cli Sample Application This section describes the wifi_cli application to demonstrate the CLI support to handle and enable Wi-Fi configuration for the features including scan the visible access points, create and configure the access point, connection with the access point and Throughput performance check using iPerf measurement tool. The CLI module in the application allows users to add CLIs in the application. In this sample application Wi-Fi connection manager CLIs are available. Figure 1: wifi_cli Sample Application Components UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 15 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Wi-Fi and iPerf Features: Table 6: Sample Application Features Features Details Wi-Fi Wi-Fi Soft AP mode Wi-Fi Station mode Wi-Fi Scan Wi-Fi IEEEPS power saving mode Wi-Fi deep-sleep power saving mode Wi-Fi host sleep/wowlan Wi-Fi RF Calibration Wi-Fi coexistence with external radios (for 88W8801) Wi-Fi 11r roaming Wi-Fi Cloud keep alive Wi-Fi Turbo mode TCP Client and Server TCP Client dual mode (Tx and Rx in simultaneous) TCP Client trade-off mode (Tx and Rx individual) IPerf UDP Client and Server UDP Client dual mode (Tx and Rx in simultaneous) UDP Client trade-off mode (Tx and Rx individual) 3.1.1 Run a Demo with MCUXpresso IDE This section describes the steps to import, configure, build, debug and run the demo example through MCUXpresso IDE. MCUXpresso IDE version v24.12.00 or higher is used for the following demo steps. 3.1.1.1 Project Import Step 1: SDK Installation · Open MCUXpresso IDE. · Locate the Installed SDKs tab at the bottom of the following image. · Drag and drop the SDK into the Installed SDKs tab. Once done click "OK" on the pop-up window. Figure 2: SDK Drag and Drop in MCUXpresso UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 16 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Step 2: Import an example · Go to the Quickstart panel and select the option Import SDK example(s). Figure 3: SDK Import Example in MCUXpresso Step 3: Select EVK board. · Select the evaluation board. Figure 3: Device/EVK Selection in MCUXpresso UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 17 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Step 4: Select any Wi-Fi or Bluetooth example and verify default Project Options. · For example, select wifi_examples > wifi_cli and press Finish button to import the selected example into the workspace. Figure 4: Sample App Selection in MCUXpresso UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 18 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 3.1.1.2 Project Settings · By default, the project is configured to use the WIFI_IW612_BOARD_MURATA_2EL_M2 Wi-Fi module based on IW612 chipset. Modify the value to match the module on your setup to include and compile the desired driver, components and application(s). · To enable the support for other modules: o Import the project. o Go to project properties > C/C++ Build > Settings > Preprocessor. o Select another macro. · Refer to Table 4 for the list of macros for Wi-Fi modules. Figure 5: Wi-Fi Module Selection in MCUXpresso 3.1.1.3 Build the Application · To build the application, go to the Quickstart panel and select Build, or select the Build icon in the main toolbar. UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 19 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Figure 6: Application Build in MCUXpresso · Verify the build result (success or fail) on the console window. UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 20 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Figure 7: Build Messages in MCUXpresso 3.1.1.4 Run the Application in Debug Mode Please follow these steps to run the application in debug mode. · Initiate the application debug using the debug icon in the toolbar or go to the Quickstart panel and select Debug. Figure 8: Initiate Debug in MCUXpresso · Select the associated emulator probe for the first time as illustrated below and press OK. UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 21 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Figure 9: Emulator Probe Selection in MCUXpresso · Upon selecting the probe, the application is downloaded on the board and the program execution starts with the program counter set at the main() function. Press Resume to start the application. To debug the application, use the step into, step over and step return buttons. To end the debugging session, use the Terminate button. Figure 10: Application Debugging in MCUXpresso UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 22 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 3.1.1.5 Flash the Application Program (no debugging) Please use the following steps to flash the application program. To flash the required binaries, select the GUI Flash Tool icon in the toolbar as shown in the figure below. The GUI Flash Tool can be used to flash pre-build binary or locally compiled binary with *.axf or *.bin format. The path to the locally compiled binary is the following. ${workspace_loc}\evkmimxrt1060_wifi_cli\Debug\evkmimxrt1060_wifi_cli.axf Figure 11: Binary Flashing in MCUXpresso NOTE: Please refer to section 3.1.5 to view the output on the console once the application is executed. UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 23 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 3.1.2 Run a demo using ARM® GCC This section describes the steps to configure the command line ARM® GCC tools to build and run demo applications. The wifi_cli application is used as an example, yet the same steps apply to any other example application available with the MCUXpresso SDK. The example uses Linux, one of the operating systems that ARM GCC tools support. Please refer to MCUXSDKGSUG for more details on ARM GCC toolchain setup. 3.1.2.1 Install ARM® GCC toolchain In this section, the following steps are given to install toolchain: · Download the toolchain for Linux x86_64 system from the Link (package Linux x86_64 tarball). · Create a directory at the location of your choice: $ mkdir toolchain-dir · Copy the downloaded toolchain package to the created directory and extract the downloaded toolchain. $ cp <download_path>/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi.tar.xz toolchain-dir/ $ cd toolchain-dir/ $ tar -xvf arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi.tar.xz · Export the ARMGCC_DIR variable using the following command: $ export ARMGCC_DIR=<absolute-path>/toolchain-dir/ arm-gnu-toolchain-12.2.rel1x86_64-arm-none-eabi/ · Add the toolchain path to the PATH environment variable using the command: $ export PATH=$PATH:<absolute-path>/toolchain-dir/arm-gnu-toolchain-12.2.rel1x86_64-arm-none-eabi /bin/ · Download and install cmake (source and binary distribution) using the Link for Linux system. · Extract the source distribution and copy it to the /usr/share/ directory $ tar -zxf cmake-3.25.1.tar.gz $ sudo cp -rf cmake-3.25.1 /usr/share/cmake-3.25 · Extract the binary distribution and copy the binaries to the /usr/bin/ directory $ tar -zxf cmake-3.25.1-Linux-x86_64.tar.gz $ sudo cp cmake-3.25.1-Linux-x86_64/bin/* /usr/bin/ UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 24 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 3.1.2.2 Build the application This section provides the steps to build the application using the ARM GCC toolchain: · Go to the armgcc directory of the application $ cd <SDK-top-dir>/boards/evkmimxrt1060/wifi_examples/wifi_cli/armgcc/ Modify the configuration for a wireless module · By default, the project is configured to use the WIFI_IW416_BOARD_MURATA_1XK_USD Wi-Fi module based on IW416 chipset. Modify the value in the file "<SDK_EXAMPLE_PATH>/source/app_config.h" to match the module on your setup to include and compile the desired driver, components and application(s). · Build the binary $ sh build_flexspi_nor_debug.sh [100%] Linking C executable flexspi_nor_debug/wifi_cli.elf [100%] Built target wifi_cli.elf · Generate wifi_cli.bin using following command arm-none-eabi-objcopy flexspi_nor_debug/wifi_cli.elf -O binary flexspi_nor_debug/wifi_cli.bin NOTE: Please refer to MCUXSDKGSUG for more details to debug the application using GDB. 3.1.2.3 Flash the application program (no debugging) NOTE: Step provided in this section will not be useful for i.MX RT1170 EVKB and i.MX RT1060 EVKC This section provides the steps to flash the binary on the i.MX RT board: · Connect the board to the Linux host system. The board shows as a Mass storage device in the Linux host system. · Copy the application binary (wifi_cli.bin) to the Mass storage device and wait for the start of the binary download on the board. $ sudo cp flexspi_nor_debug/wifi_cli.bin /media/<user>/RT1060-EVK/ · The board stops showing as Mass storage device and appears again once the flash process has completed. If any error occurs during the flashing, the FAIL.txt file is generated and stored in the Mass storage device. · To access the device using the serial console please refer to section 2.1. ========================= wifi cli demo ======================================== Initialize CLI ======================================== Initialize WLAN Driver ======================================== MAC Address: 00:13:43:7F:9C:9F [net] Initialized TCP/IP networking stack ======================================== app_cb: WLAN: received event 10 ======================================== app_cb: WLAN initialized ======================================== WLAN CLIs are initialized ======================================== NOTE: Please refer to section 3.1.5 to view the actual output on the console once the application is executed. UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 25 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 3.1.3 Run a demo with IAR IDE This section provides the steps to open, configure, build, debug and run the demo example using IAR Embedded Workbench IDE. The instructions and illustrations refer to IAR version 9.60.1. 3.1.3.1 Open the project workspace To open the wifi_cli project available in the SDK, double-click the project workspace file named wifi_cli.eww stored at the following location. <install_dir>\boards\evkmimxrt1060\wifi_examples\wifi_cli\iar\wifi_cli.eww Figure 12: Open Project in IAR 3.1.3.2 Project Settings · By default, the project is configured to use the WIFI_IW416_BOARD_MURATA_1XK_USD Wi-Fi module based on IW416 chipset. Modify the value to match the module on your setup to include and compile the desired driver, components and application(s). · The file "app_config.h" from the source folder is used for the macro definitions · Refer to Table 4 for the list of macros for Wi-Fi modules. Figure 13: Wi-Fi Module Selection in IAR UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 26 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 3.1.3.3 Build the application · To build the wifi_cli application, press the Make icon as illustrated below. Figure 14: Application Build in IAR · The details of the Build procedure are displayed in the Messages window of the Build tab. Figure 15: Build Message in IAR UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 27 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 3.1.3.4 Run the application in debug mode The following steps describe how to run the application in debug mode. The default debugger is CMSIS-DAP. However, if CMSIS-DAP is not selected, use the drop-down list to select it and press OK. The selection of the debugger is a one-time configuration step that is not required for incremental debug. Figure 16: Debugger Selection in IAR · To initiate the application debug, press the Download and Debug icon on the toolbar. Figure 17: Initiate Debug in IAR · The Download and Debug button is used to download the application to the target and set the program counter to the main( ) function of the application. Press Go to start the application. To debug the application, use the Step Into, Step over and Step return icons. To stop the debugging session, press the Stop Debugging icon. Figure 18: Application Debugging in IAR UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 28 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 3.1.3.5 Flash the application program (no debugging) Please use the following steps to flash the application program. · Go to Project > Download to flash the binary file. The Download menu provides the commands to flash the pre-built binary file and to erase the memory. Figure 19: Binary Flashing in IAR NOTE: Refer to section 3.1.5 to view the output on the console once the application is executed. UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 29 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 3.1.4 Run a demo using Keil MDK/µVision This section details the steps to open, configure, build, debug and run demo example through Keil IDE. The Keil version used in the following instructions is V5.39.0.0. NOTE: For Bluetooth demo applications Keil MDK/ µVision IDE is not supported. 3.1.4.1 Install CMSIS device pack Following the installation of the MDK tools, install the CMSIS device packs so you can use the debug functionality on your device. The CMSIS device packs include the memory map information, register definitions and flash programming algorithms. The following steps install the MIMXRT106x CMSIS pack. · Click on the Pack Installer icon in the toolbar, look for iMXRT1060_MWP in the Packs tab. Press Install in the Action column. Figure 20: Install Packages using Pack Installer in Keil · When the installation is complete, Up to date is displayed in the Action column. Verify that the Board Support Pack (BSP) and Device Family Pack (DFP) are both listed in the Device > Packs tab. Figure 21: DFP Verification in Pack Installer in Keil UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 30 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 3.1.4.2 Open the project workspace To open the wifi_cli project: double-click the project workspace file wifi_cli.uvprojx located at the following path: <install_dir>\boards\evkmimxrt1060\wifi_examples\wifi_cli\mdk\wifi_cli.uvprojx NOTE: For a multi-project, use wifi_cli.uvmpw instead of wifi_cli.uvprojx. Figure 22: Open Project in Keil 3.1.4.3 Project Settings · By default, the project is configured to use the WIFI_IW416_BOARD_MURATA_1XK_USD Wi-Fi module based on IW416 chipset. Modify the value to match the module on your setup to include and compile the desired driver, components and application(s). · The file "app_config.h" from the source folder is used for the macro definitions · Refer to Table 4 for the list of macros for Wi-Fi modules. Figure 23: Wi-Fi Module Selection in Keil UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 31 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 3.1.4.4 Build the application · To build the wifi_cli application, press the Build or Rebuild icons. Figure 24: Application Build in Keil · Verify the build progress in the Build Output window. Figure 25: Build Message in Keil UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 32 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 3.1.4.5 Run the application in debug mode Please refer to following steps to run the application in debug mode. The default debugger is CMSIS-DAP. However, if CMSIS-DAP is not selected, use the Options icon in the toolbar and open the Debug tab, select the debugger in the drop-down list and press OK. Figure 26: Debugger Selection in Keil · To start the application debug, click on the LOAD icon to download the application on the board then click on the Start/Stop Debug Session icon in the toolbar. Figure 27: Load the application Figure 28: Initiate Debug in Keil UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 33 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms · Click on the Start/Stop Debug Session icon to set the program counter to the main() function of the application. Figure 29: Application Debugging in Keil · Press Run to start the application. Use Step, Step Over, Step Out and Run to Cursor Line icons in the toolbar to debug the application. To end the debugging session, click the Stop icon. Figure 30: Application Debugging Features in Keil 3.1.4.6 Flash the application program (no debugging) Please refer following steps to flash the application program. · Click on the Download icon in the toolbar to flash the required binary file. Figure 31: Binary Flashing in Keil NOTE: Please refer to section 3.1.5 to view the output on the console once the application is executed. UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 34 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 3.1.5 wifi_cli Application Execution 3.1.5.1 Start-up logs The following logs can be observed on the console once the devices (i.MX RT1060 EVKC board and NXPbased Wireless module) are up and running and it shows that Wi-Fi module is ready for the operations. This section describes the available Wi-Fi commands, press Enter for the command prompt. ======================================== wifi cli demo ======================================== Initialize CLI ======================================== CLI Build: Feb 14 2025 [12:31:11] Copyright 2024 NXP MCU Board: MIMXRT1060-EVKC ======================================== Initialize WLAN Driver ======================================== STA MAC Address: A0:CD:F3:77:E5:00 app_cb: WLAN initialized ======================================== WLAN CLIs are initialized ======================================== ENHANCED WLAN CLIs are initialized ======================================== CLIs Available: ======================================== help clear wlan-version wlan-mac wlan-thread-info wlan-net-stats wlan-set-mac <MAC_Address> wlan-scan wlan-scan-opt ssid <ssid> bssid ... wlan-add <profile_name> ssid <ssid> bssid... wlan-remove <profile_name> wlan-list wlan-connect <profile_name> wlan-connect-opt <profile_name> ... wlan-reassociate wlan-start-network <profile_name> wlan-stop-network wlan-disconnect wlan-stat wlan-info wlan-address wlan-uap-disconnect-sta <mac address> wlan-get-uap-channel wlan-get-uap-sta-list wlan-ieee-ps <0/1> wlan-set-ps-cfg <null_pkt_interval> wlan-deep-sleep-ps <0/1> wlan-get-beacon-interval wlan-wnm-ps <0/1> <sleep_interval> wlan-set-max-clients-count <max clients count> wlan-rts <sta/uap> <rts threshold> wlan-host-11k-enable <0/1> wlan-host-11k-neighbor-req [ssid <ssid>] wlan-host-11v-bss-trans-query <0..16> UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 35 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms wlan-mbo-enable <0/1> wlan-mbo-nonprefer-ch <ch0> <Preference0: 0/1/255> <ch1> <Preference1: 0/1/255> wlan-roaming <0/1> <rssi_threshold> wlan-multi-mef <ping/arp/multicast/del> [<action>] wlan-send-hostcmd wlan-ext-coex-uwb wlan-set-uap-bandwidth <1/2/3> 1:20 MHz 2:40MHz 3:80MHz wlan-set-uap-hidden-ssid <0/1/2> wlan-eu-crypto-rc4 <EncDec> wlan-eu-crypto-aes-wrap <EncDec> wlan-eu-crypto-aes-ecb <EncDec> wlan-eu-crypto-ccmp-128 <EncDec> wlan-eu-crypto-ccmp-256 <EncDec> wlan-eu-crypto-gcmp-128 <EncDec> wlan-eu-crypto-gcmp-256 <EncDec> wlan-set-antcfg <ant mode> [evaluate_time] wlan-get-antcfg wlan-scan-channel-gap <channel_gap_value> wlan-wmm-stat <bss_type> wlan-reset wlan-set-regioncode <region-code> wlan-get-regioncode wlan-11d-enable <sta/uap> <0/1> wlan-rssi-low-threshold <threshold_value> wlan-get-signal wlan-set-bandcfg wlan-get-bandcfg wlan-enable-disable-htc <option> wlan-set-su <0/1> wlan-get-turbo-mode <STA/UAP> wlan-set-turbo-mode <STA/UAP> <mode> wlan-set-multiple-dtim <value> wlan-cloud-keep-alive <start/stop/reset> wlan_tcp_client dst_ip <dst_ip> src_port <src_port> dst_port <dst_port> wlan-set-country <country_code_str> wlan-set-country-ie-ignore <0/1> wlan-get-txpwrlimit <subband> wlan-set-chanlist wlan-get-chanlist wlan-set-txratecfg <sta/uap> <format> <index> <nss> <rate_setting> <autoTx_set> wlan-get-txratecfg <sta/uap> wlan-get-data-rate <sta/uap> wlan-get-pmfcfg wlan-uap-get-pmfcfg wlan-set-ed-mac-mode <interface> <ed_ctrl_2g> <ed_offset_2g> <ed_ctrl_5g> <ed_offset_5g> wlan-get-ed-mac-mode <interface> wlan-set-tx-omi <interface> <tx-omi> <tx-option> <num_data_pkts> wlan-set-toltime <value> wlan-set-rutxpwrlimit wlan-11ax-cfg <11ax_cfg> wlan-11ax-bcast-twt <dump/set/done> [<param_id> <param_data>] wlan-11ax-twt-setup <dump/set/done> [<param_id> <param_data>] wlan-11ax-twt-teardown <dump/set/done> [<param_id> <param_data>] wlan-11ax-twt-report ping [-s <packet_size>] [-c <packet_count>] [-W <timeout in sec>] <ipv4/ipv6 address> iperf [-s|-c <host>|-a|-h] [options] dhcp-stat ======================================== UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 36 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 3.1.5.2 Help command The help command is used to get the list of commands available in the wifi_cli sample application. # help help wlan-reset wlan-version wlan-mac wlan-thread-info wlan-net-stats wlan-set-mac <MAC_Address> wlan-scan wlan-scan-opt ssid <ssid> bssid ... wlan-add <profile_name> ssid <ssid> bssid... wlan-remove <profile_name> wlan-list wlan-connect <profile_name> wlan-connect-opt <profile_name> ... wlan-start-network <profile_name> wlan-stop-network wlan-disconnect wlan-stat wlan-info wlan-address wlan-get-uap-channel wlan-get-uap-sta-list . . . 3.1.5.3 Reset Wi-Fi module The reset command is used to reset and re-initialize the Wi-Fi module. # wlan-reset MAC Address: 70:66:55:7B:AC:84 # ======================================== app_cb: WLAN: received event 11 ======================================== app_cb: WLAN initialized ======================================== WLAN CLIs are initialized ======================================== CLIs Available: . . . 3.1.5.4 Scan command The scan command is used to scan the visible access points. # wlan-scan Scan scheduled... # 10 networks found: 14:EB:B6:8A:80:1F "TPLink-2G" Infra mode: 802.11N channel: 1 rssi: -53 dBm security: WPA/WPA2 Mixed WMM: YES 802.11K: YES 802.11V: YES UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 37 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 802.11W: NA 14:EB:B6:8A:80:1E "TP-link-5G" Infra mode: 802.11AC channel: 36 rssi: -37 dBm security: WPA/WPA2 Mixed WMM: YES 802.11K: YES 802.11V: YES 802.11W: NA . . . # wlan-scan-opt ssid ASUS_2G Scan for ssid "ASUS_2G" scheduled... # 1 network found: 7C:10:C9:02:DA:48 "ASUS_2G" Infra mode: 802.11AC channel: 10 rssi: -37 dBm security: WPA2 WMM: YES 802.11V: YES 802.11W: NA Set time gap between two consecutive channels scan Command usage: # wlan-scan-channel-gap Invalid arguments Usage: wlan-scan-channel-gap <scan_gap_value> scan_gap_value: [2,500] Set time gap to 5 sec # wlan-scan-channel-gap 5 3.1.5.5 Add network profile Before adding a network profile for Soft AP and Station mode, please check command usage. # wlan-add Usage: For Station interface For DHCP IP Address assignment: wlan-add <profile_name> ssid <ssid> [wpa2 <psk/psk-sha256> <secret>] [mfpc <1> mfpr <0>] If using WPA2 security, set the PMF configuration as mentioned above. wlan-add <profile_name> ssid <ssid> <owe_only> mfpc 1 mfpr 1 If using OWE only security, always set the PMF configuration. NOTE: [og <"19 20 21">] is only supported in Micro-AP mode . wlan-add <profile_name> ssid <ssid> [wpa3 sae <secret> [pwe <0/1/2>] mfpc <1> mfpr <0/1>] If using WPA3 SAE security, always set the PMF configuration. wlan-add <profile_name> ssid <ssid> [wpa2 psk psk-sha256 <secret> wpa3 sae <secret>] [mfpc <1> mfpr <0>] If using WPA2/WPA3 Mixed security, set the PMF configuration as mentioned above. For static IP address assignment: wlan-add <profile_name> ssid <ssid> ip:<ip_addr>,<gateway_ip>,<netmask> UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 38 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms [bssid <bssid>] [channel <channel number>] [wpa2 <psk/psk-sha256> <secret>] [owe_only] [wpa3 sae <secret>] [mfpc <0/1> mfpr <0/1>] For Micro-AP interface wlan-add <profile_name> ssid <ssid> ip:<ip_addr>,<gateway_ip>,<netmask> role uap [bssid <bssid>] [channel <channelnumber>] [wpa2 <psk/psk-sha256> <secret>] [wpa3 sae <secret> [pwe <0/1/2>] [tr <0/1>]] [owe_only ] [mfpc <0/1>] [mfpr <0/1>] Note: Setting the channel value greater than or equal to 36 is mandatory, if UAP bandwidth is set to 80MHz. [capa <11ax/11ac/11n/legacy>] If Set channel to 0, set acs_band to 0 1. 0: 2.4GHz channel 1: 5GHz channel Not support to select dual band automatically. Error: invalid number of arguments 3.1.5.6 Station mode (connect to AP) WPA2 Security Use the following command to add the network profile to configure the device in station mode. Provide any profile name as well as use your AP's SSID and Passphrase in argument shown below: # wlan-add test ssid TPLink-2G wpa2 psk 12345678 Added "test" Connect to the AP network using the saved network profile: # wlan-connect test Connecting to network... Use 'wlan-stat' for current connection status. # app_cb: WLAN: authenticated to network app_cb: WLAN: connected to network Connected to following BSS: SSID = [TPLink-2G] IPv4 Address: [192.168.0.156] IPv6 Address: Link-Local : FE80::A2CD:F3FF:FE77:E500 (Preferred) NOTE: Once connected to the AP the console output will show Client successfully connected to AP with ssid "TPLink-2G" and got ip address "192.168.0.156" from AP. Get signal information of connected External AP # wlan-get-signal BeaconLast RSSI -45 SNR 50 NF -95 Beacon Average -45 48 -93 Data Last -61 34 -95 Data Average -58 35 -93 WPA2 Station disconnection (from AP) Disconnect from the AP network profile: # wlan-disconnect # app_cb: disconnected Remove the saved network profile: # wlan-remove test Removed "test" UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 39 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms WPA3 Security NOTE: For WPA3 default mode is set to pwe 2 (both hunting-and-pecking loop and hash-to-element enabled) Usage for pwe and tr SAE mechanism for PWE derivation # 0 = hunting-and-pecking loop only (default without password identifier) # 1 = hash-to-element only (default with password identifier) # 2 = both hunting-and-pecking loop and hash-to-element enabled Transition Disable indication # 0 = transition mode (allow to connect WPA2-Personal) # 1 = disable transition mode ((i.e., disable WPA2-Personal = WPA-PSK and only allow SAE to be used)) WPA3 SAE (R1) # wlan-add nxp_test_1 ssid WPA3_AP wpa3 sae 12345678 pwe 0 mfpc 1 mfpr 1 Added "nxp_test_1" WPA3 SAE (R3) # wlan-add nxp_test_1 ssid WPA3_AP wpa3 sae 12345678 pwe 1 mfpc 1 mfpr 1 Added "nxp_test_1" OWE Always set mfpc and mfpr to 1. wlan-add oweNet ssid oweNet_AP owe_only mfpc 1 mfpr 1 Connect to the AP network using the saved network profile: # wlan-connect nxp_test_1 Connecting to network... Use 'wlan-stat' for current connection status. # app_cb: WLAN: authenticated to network app_cb: WLAN: connected to network Connected to following BSS: SSID = [WPA3_AP] IPv4 Address: [192.168.131.188] IPv6 Address: Link-Local : FE80::A2CD:F3FF:FE77:E500 (Preferred) NOTE: Once connected to the AP the console output will show Client successfully connected to AP with ssid "WPA3_AP" and got ip address "192.168.131.188" from AP. For WPA3 R3, above configuration will also work. WPA3 Station disconnection (from AP) Disconnect from the AP network profile: # wlan-disconnect # app_cb: disconnected Remove the saved network profile: # wlan-remove nxp_test_1 Removed "nxp_test_1" 3.1.5.7 Start Soft AP Use the following command to add the network profile to configure the device in AP mode. Use your AP's SSID, IP details, role, channel and security (Passphrase if applicable) in argument shown below. WPA2 Security # wlan-add xyz ssid NXPAP ip:192.168.10.1,192.168.10.1,255.255.255.0 role uap channel 6 wpa2 psk 12345678 UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 40 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Added "xyz" WPA3 Security Note: Default value of pwe is 0 for Soft AP Default value of tr is 0 for Soft AP WPA3 SAE (R1) wlan-add xyz ssid NXPAP ip:192.168.10.1,192.168.10.1,255.255.255.0 role uap channel 6 wpa3 sae 12345678 pwe 0 mfpc 1 mfpr 1 WPA3 SAE (R3) wlan-add xyz ssid NXPAP ip:192.168.10.1,192.168.10.1,255.255.255.0 role uap channel 6 wpa3 sae 12345678 pwe 1 mfpc 1 mfpr 1 WPA3 SAE (R3), with capability set to 11AX wlan-add xyz ssid NXPAP ip:192.168.10.1,192.168.10.1,255.255.255.0 role uap channel 6 wpa3 sae 12345678 pwe 1 mfpc 1 mfpr 1 capa 11ax UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 41 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms WPA3 SAE (R3), Transition Disable set wlan-add xyz ssid NXPAP ip:192.168.10.1,192.168.10.1,255.255.255.0 role uap channel 6 wpa3 sae 12345678 pwe 1 tr 1 mfpc 1 mfpr 1 OWE Always set mfpc and mfpr to 1. # wlan-add xyz ssid oweNet_AP ip:192.168.10.1,192.168.10.1,255.255.255.0 role uap channel 36 owe_only mfpc 1 mfpr 1 Set ACS mode The Automatic Channel Selection (ACS) mode can be enabled while adding the profile using wlan-add command. When channel parameter is set as 0 then it enables ACS mode. Default value for ACS band is 0. <acs_band> usage # 0 = 2.4GHz # 1 = 5GHz AP with wpa2 psk security configured with 5 GHz ACS mode # wlan-add xyz ssid NXPAP ip:192.168.10.1,192.168.10.1,255.255.255.0 role uap channel 0 acs_band 1 wpa2 psk 12345678 AP with wpa2 psk security configured with 2.4 GHz ACS mode # wlan-add xyz ssid NXPAP ip:192.168.10.1,192.168.10.1,255.255.255.0 role uap channel 0 acs_band 0 wpa2 psk 12345678 Set Wi-Fi bandwidth The following command is used to set Wi-Fi bandwidth (20MHz or 40MHz or 80MHz): NOTE: Default bandwidth is set to 40MHz if not set by following command. NOTE: For 88W8801, default bandwidth is set to 20MHz and following command is not available. Command Usage: # wlan-set-uap-bandwidth Usage: wlan-set-uap-bandwidth <1/2/3> Error: Specify 1 to set bandwidth 20MHz or 2 for 40MHz or 3 for 80MHz Set bandwidth: # wlan-set-uap-bandwidth 1 bandwidth set successfully Start the AP using saved network profile: # wlan-start-network xyz [wlcm] Warn: NOTE: uAP will automatically switch to the channel that station is on. ======================================== app_cb: WLAN: received event 14 ======================================== app_cb: WLAN: UAP Started ======================================== Soft AP "NXPAP" started successfully ======================================== DHCP Server started successfully ======================================== Connect the wireless client to the AP just created, NXPAP. The logs below can be observed once the Client is associated successfully: # app_cb: WLAN: UAP a Client Associated ======================================== Client => B2:82:D4:09:44:5F Associated with Soft AP UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 42 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms ======================================== app_cb: WLAN: UAP a Client Connected ======================================== Client => B2:82:D4:09:44:5F Connected with Soft AP ======================================== Get the associated clients list: # wlan-get-uap-sta-list Number of STA = 1 STA 1 information: ===================== MAC Address: B2:82:D4:09:44:5F Power mfg status: power save Rssi : -62 dBm Get the IP and MAC information for the associated clients: # dhcp-stat DHCP Server Lease Duration : 86400 seconds Client IP Client MAC 192.168.10.2 B2:82:D4:09:44:5F SSID broadcast configuration: User can control SSID IE configuration using this command. It has 3 modes: 0: When user wants to enable SSID broadcast (default) 1: When user wants to disable SSID name(ASCII 0) and SSID length (Length = 0) 2: When user wants to disable only the SSID name (ASCII 0) Command usage: # wlan-set-uap-hidden-ssid Usage: wlan-set-uap-hidden-ssid <0/1/2> Error: 0: broadcast SSID in beacons. 1: send empty SSID (length=0) in beacons. 2: clear SSID (ACSII 0), but keep the original length Set SSID broadcast control # wlan-set-uap-hidden-ssid 1 SSID broadcast control set successfully Stop Soft AP # wlan-stop-network # ======================================== app_cb: WLAN: UAP a Client Dissociated: Client MAC => B2:82:D4:09:44:5F code => 0 ======================================== app_cb: WLAN: UAP Stopped ======================================== Soft AP stopped successfully ======================================== DHCP Server stopped successfully ======================================== Reason 3.1.5.8 IPerf Server/Client The sample application implements the protocol used by iPerf performance measurement tool. The performance is measured between a single i.MX RT+NXP-based Wireless module and a computer running the iPerf tool. The instructions in this guide use an i.MX RT1060 EVKC board. Yet the same steps apply to other i.MX RT products. The following figures show the setup overview to run the iPerf performance test. UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 43 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Figure 32: Hardware Setup for iPerf performance test with Soft AP Mode Figure 33: Hardware Setup for iPerf performance test with Station Mode NOTE: Please refer to the section 2.3 for iperf remote host setup. The following commands are used for IPerf Initialization: IPerf Usage : # iperf Incorrect usage Usage: iperf [-s|-c <host>|-a] [options] iperf [-h] UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 44 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Client/Server: -u use UDP rather than TCP -B <host> bind to <host> (including multicast address) -V Set the domain to IPv6 (send packets over IPv6) -a abort ongoing iperf session -p server port to listen on/connect to -r Do a bidirectional UDP test individually Server specific: -s run in server mode. Support 8 parallel traffic(-P) maximum from client side -D Do a bidirectional UDP test simultaneously and with - d from external iperf client Client specific: -c <host> run in client mode, connecting to <host> -d Do a bidirectional test simultaneously -R reverse the test (client receives, server sends) -t # time in seconds to transmit for (default 10 secs) -b # for UDP, bandwidth to send at in Mbps, default 100Mbps without the parameter -S # QoS for udp traffic (default 0(Best Effort)) -l length of buffer in bytes to write (Defaults: v4 TCP=1460, v6 TCP=1440, v4 UDP=1470, v6 UDP=1450) Note: Limit length is smaller than default size. NOTE: For iperf Linux and Mobile application commands refer Table 2 and Table 3 respectively from section 2.3. Please abort ongoing iperf session using "iperf -a" command, before starting new session. iPerf TCP Start IPerf server: # iperf -s # IPERF initialization successful New TCP client (settings flags 0x0) ------------------------------------------------TCP_DONE_SERVER (RX) Local address : 192.168.10.1 Port 5001 Remote address : 192.168.10.2 Port 36874 Bytes Transferred XXXX Duration (ms) 10130 Bandwidth (Mbitpsec) XX Start IPerf Client (Tx Only): # iperf -c 192.168.10.2 # IPERF initialization successful ------------------------------------------------- TCP_DONE_CLIENT (TX) Local address : 192.168.10.1 Port 49153 Remote address : 192.168.10.2 Port 5001 Bytes Transferred XXXX Duration (ms) 10001 Bandwidth (Mbitpsec) XX Start IPerf Server (Tx and Rx individual): # iperf -s -r IPERF initialization successful # New TCP client (settings flags 0xc0010078) UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 45 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms client requested transmission after end of test ------------------------------------------------- TCP_DONE_SERVER (RX) Local address : 192.168.1.1 Port 5001 Remote address : 192.168.1.2 Port 50496 Bytes Transferred xxxx Duration (ms) 10177 Bandwidth (Mbitpsec) xx ------------------------------------------------TCP_DONE_CLIENT (TX) Local address : 192.168.1.1 Port 54237 Remote address : 192.168.1.2 Port 5001 Bytes Transferred xxxx Duration (ms) 10001 Bandwidth (Mbitpsec) xx Start IPerf Client (Tx and Rx simultaneous): # iperf -c 192.168.10.2 -d IPERF initialization successful New TCP client (settings flags 0x30313233) ------------------------------------------------TCP_DONE_CLIENT (TX) Local address : 192.168.10.1 Port 49154 Remote address : 192.168.10.2 Port 5001 Bytes Transferred XXXX Duration (ms) 10001 Bandwidth (Mbitpsec) XX ------------------------------------------------TCP_DONE_SERVER (RX) Local address : 192.168.10.1 Port 5001 Remote address : 192.168.10.2 Port 36876 Bytes Transferred XXXX Duration (ms) 10138 Bandwidth (Mbitpsec) XX Start IPerf Client (Tx and Rx individual): # iperf -c 192.168.10.2 -r # IPERF initialization successful ------------------------------------------------- TCP_DONE_CLIENT (TX) Local address : 192.168.10.1 Port 49155 Remote address : 192.168.10.2 Port 5001 Bytes Transferred XXXX Duration (ms) 10001 Bandwidth (Mbitpsec) XX New TCP client (settings flags 0x30313233) ------------------------------------------------TCP_DONE_SERVER (RX) Local address : 192.168.10.1 Port 5001 Remote address : 192.168.10.2 Port 36878 Bytes Transferred XXXX Duration (ms) 10095 Bandwidth (Mbitpsec) XX iPerf UDP UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 46 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms For UDP tests please specify local interface ip address using -B option Start IPerf server: # iperf -s -u -B 192.168.10.1 # IPERF initialization successful New UDP client (settings flags 0x0) ------------------------------------------------UDP_DONE_SERVER (RX) Local address : 192.168.10.1 Port 5001 Remote address : 192.168.10.2 Port 54882 Bytes Transferred XXXX Duration (ms) 10057 Bandwidth (Mbitpsec) XX Start IPerf Client (Tx Only): for UDP, bandwidth to send at in Mbps, default 100Mbps # iperf -c 192.168.10.2 -u -B 192.168.10.1 -b 50 Ideal frame delay: 224 us Send 4 frame(s) once per 1000 us IPERF initialization successful ------------------------------------------------UDP_DONE_CLIENT (TX) Local address : 255.113.231.15 Port 49157 Remote address : 192.168.10.2 Port 5001 Bytes Transferred XXXX Duration (ms) 10501 Bandwidth (Mbitpsec) XX Start IPerf Client with specific time (Tx Only): for UDP, bandwidth to send at in Mbps, default 100Mbps # iperf -c 192.168.10.2 -u -B 192.168.10.1 -b 50 -t 10 Ideal frame delay: 224 us Send 4 frame(s) once per 1000 us IPERF initialization successful ------------------------------------------------UDP_DONE_CLIENT (TX) Local address : 255.113.231.15 Port 49157 Remote address : 192.168.10.2 Port 5001 Bytes Transferred XXXX Duration (ms) 10501 Bandwidth (Mbitpsec) XX Start IPerf server with multicast ip (Tx Only): # iperf -s -u -B 224.0.0.3 # IPERF initialization successful # New UDP client (settings flags 0x0) Sending report back to client (0x80). Jitter 0.045, Lost 4/5 datagrams, OoO 2 ------------------------------------------------UDP_DONE_SERVER (RX) Local address : 224.0.0.3 Port 5001 Remote address : 192.168.1.2 Port 34218 Bytes Transferred XXXX UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 47 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Duration (ms) 11033 Bandwidth (Mbitpsec) XX 3.1.5.9 Wi-Fi Power Save The following commands are used to save Wi-Fi power in different modes: NOTE: By default feature (IEEEPS and DEEP Sleep) is enabled, to disable need to configure macro CONFIG_WIFI_AUTO_POWER_SAVE 0 in wifi_config.h · IEEE Power Save (idle time is 10 msec) For IEEEPS mode Wi-Fi station should be connected with external AP and Soft AP should be de-activated. IEEEPS Usage: # wlan-ieee-ps Usage: wlan-ieee-ps <0/1> Error: Specify 0 to Disable or 1 to Enable Enable IEEEPS: # wlan-ieee-ps 1 Turned on IEEE Power Save mode Disable IEEEPS : # wlan-ieee-ps 0 Turned off IEEE Power Save mode · DeepSleep (idle time is 100 msec) Check Wi-Fi connection: # wlan-stat Station not connected uAP not started DeepSleep Usage: # wlan-deep-sleep-ps Usage: wlan-deep-sleep-ps <0/1> Error: Specify 0 to Disable or 1 to Enable Enable DeepSleep: # wlan-deep-sleep-ps 1 Turned on Deep Sleep Power Save mode Disable DeepSleep: # wlan-deep-sleep-ps 0 Turned off Deep Sleep Power Save mode 3.1.5.10 Wi-Fi Host sleep/wowlan The following commands are used to put the Wi-Fi in the sleep mode and wake up based on the provided conditions. NOTE: Define CONFIG_HOST_SLEEP macro in wifi_config.h to enable the feature. NOTE: This command is only tested with i.MX RT1060 EVKC, i.MX RT1060 EVKB and i.MX RT1170 EVKB. For this command execution Wi-Fi station should be connected with external AP. Host sleep Usage: # wlan-host-sleep Error: invalid number of arguments Usage: wlan-host-sleep <1/0> <wowlan [wake_up_conds]/mef> [wake_up_conds] -- value for host wakeup conditions bit 0: WAKE_ON_ALL_BROADCAST bit 1: WAKE_ON_UNICAST bit 2: WAKE_ON_MAC_EVENT bit 3: WAKE_ON_MULTICAST UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 48 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms bit 4: WAKE_ON_ARP_BROADCAST bit 6: WAKE_ON_MGMT_FRAME All bit 0 discard and not wakeup host All bit 1 cancel host sleep configuration mef -- MEF host wakeup Example: wlan-host-sleep <1/0> mef wlan-host-sleep <1/0> wowlan 0x1e wlan-host-sleep <1/0> wowlan 0x1e MEF Usage: # wlan-multi-mef Usage: wlan-multi-mef <ping/arp/multicast/ns/del> [<action>] ping/arp/multicast/ns -- MEF entry type, will add one mef entry at a time del -- Delete all previous MEF entries action -- 0--discard and not wake host 1--discard and wake host 3--allow and wake host Example: wlan-multi-mef ping 3 wlan-multi-mef del Error: invalid number of arguments Reset Previous configured Host sleep configuration # wlan-host-sleep 0 Cancel Previous configured Host sleep configuration Enable host sleep with one of the conditions like, Broadcast or Unicast or Multicast or Mac event or ARP Broadcast or Management frame. For example, device will wake up on ping request. # wlan-multi-mef ping 3 # wlan-host-sleep 1 wowlan 2 Host sleep configuration successs with regular condition Enable host sleep with no condition. Here device will not wake up based on any event/request like ping. # wlan-host-sleep 1 wowlan 0 Host sleep configuration successs with regular condition 3.1.5.11 Set/Get Antenna Diversity Configuration The following commands are used to set and get antenna diversity configuration: NOTE: Make sure second antenna is connected before performing antenna configurations. Command Usage: # wlan-set-antcfg Usage: wlan-set-antcfg <ant mode> [evaluate_time] <ant_mode>: 1 -- Tx/Rx antenna 1 2 -- Tx/Rx antenna 2 0xFFFF -- Tx/Rx antenna diversity [evaluate_time]: If ant mode = 0xFFFF, use this to configure SAD evaluate time interval in milli seconds unit. MAX evaluate time is 65535ms. UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 49 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms If not specified, default value is 6000 milli seconds. Examples: wlan-set-antcfg 1 wlan-set-antcfg 0xffff wlan-set-antcfg 0xffff 5000 UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 50 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 3.1.5.12 Get Region Code Note: The region codes will be update from tx_pwr_limit region files. The following commands are used to get region code: Get region code: # wlan-get-regioncode Region code: 0x0 3.1.5.13 Roaming based on RSSI event NOTE: This feature is only enabled for IW611/612, and IW611/612 support is enabled in i.MX RT1170 EVKB and i.MX RT1060 EVKC. Command Usage: # wlan-roaming Usage: wlan-roaming <0/1> <rssi_threshold> Example: wlan-roaming 1 40 Error: invalid number of arguments Enable client to roam based on RSSI values. If AP1 crosses RSSI value, DUT will roam to AP2. # wlan-roaming 1 40 Legacy roam sequence # wlan-add abc ssid nxp wpa2 psk 12345678 # wlan-connect abc # wlan-roaming 1 40 FT roam sequence (This feature is not supported for IW611/612) # wlan-add abc ssid nxp wpa2 ft-psk 12345678 # wlan-connect abc # wlan-roaming 1 40 3.1.5.14 Roaming with 802.11k, 802.11r, and 802.11v The following commands are used for client roaming using Wi-Fi network standards: · 802.11K The 802.11k standard helps devices search quickly for nearby APs that are available as roaming targets by creating an optimized list of channels. When the signal strength of the current AP weakens, STADUT will scan for target APs from this list. NOTE: For roaming, Ext.AP should be capable of 11k, 11v and 11r. Command Usage: # wlan-host-11k-enable Usage: wlan-host-11k-enable <0/1> < 0--disable host 11k; 1---enable host 11k> Enable 11k: # wlan-host-11k-enable 1 Send neighbor request and get nearby Aps list Command Usage: # wlan-host-11k-neighbor-req [ssid <ssid>] Send neighbor request with all nearby APs: # wlan-host-11k-neighbor-req Send neighbor request with particular APs with SSID name "11K_AP": # wlan-host-11k-neighbor-req ssid 11K_AP UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 51 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms · 802.11r (This feature is not supported for IW611/612) When STADUT roams from one AP to another on the same network, 802.11r uses a feature called Fast Basic Service Set Transition (FT) to authenticate more quickly. Command Usage: bssid: MAC address of that AP to which user wants to roam channel: Channel number on which desired AP is active # wlan-ft-roam Usage: Roam to new AP using FT: wlan-ft-roam <bssid> <channel> Error: invalid number of arguments Roam through bssid and channel wlan-ft-roam 00:e9:3a:b9:e0:35 1 · 802.11v Trigger the bss transition query with specified status code from 0 to 16. Command Usage: # wlan-host-11v-bss-trans-query Usage: wlan-host-11v-bss-trans-query <query_reason[0..16]> 3.1.5.15 Other useful CLI commands Use the other commands to get the Wi-Fi information, driver version, firmware version, list of the networks and other information. Get the Wi-Fi information: # wlan-info Station connected to: "test" SSID: TPLink-2G BSSID: 14:EB:B6:8A:80:1F mode: 802.11N channel: 1 role: Infra RSSI: -57dBm security: WPA2 IPv4 Address address: DHCP IP: gateway: netmask: dns1: dns2: 192.168.0.156 192.168.0.1 255.255.255.0 192.168.0.1 0.0.0.0 IPv6 Addresses Link-Local : FE80::A2CD:F3FF:FE77:E500 (Preferred) rssi threshold: 0 uAP started as: "xyz" SSID: NXPAP BSSID: A2:CD:F3:77:E6:00 mode: 802.11AX channel: 1 role: uAP UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 52 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms security: WPA2 wifi capability: 11ax user configure: 11ax IPv4 Address address: STATIC IP: gateway: netmask: dns1: dns2: 192.168.10.1 192.168.10.1 255.255.255.0 192.168.10.1 0.0.0.0 IPv6 Addresses Link-Local : FE80::A0CD:F3FF:FE77:E600 (Tentative) rssi threshold: 0 Get the Wi-Fi driver and firmware version: # wlan-version WLAN Driver Version : vX.X.rXX.pX WLAN Firmware Version : w9177o-V1, SDIO, FP99, 18.99.3.p23.16, PVE_FIX 1 Get the Wi-Fi MAC address: # wlan-mac MAC address 00:13:43:6A:5A:ED Get the list of Wi-Fi networks: # wlan-list 2 networks: "test" SSID: TPLink-2G BSSID: 00:00:00:00:00:00 mode: 802.11N channel: (Auto) role: Infra RSSI: 0dBm security: WPA2 IPv4 Address address: DHCP IP: gateway: netmask: dns1: dns2: 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 IPv6 Addresses Link-Local : FE80::A2CD:F3FF:FE77:E500 (Preferred) "xyz" UM11442 User manual rssi threshold: 0 SSID: NXPAP BSSID: 00:00:00:00:00:00 mode: 802.11AX channel: 1 role: uAP security: WPA2 wifi capability: 11ax user configure: 11ax All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 53 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms IPv4 Address address: STATIC IP: gateway: netmask: dns1: dns2: 192.168.10.1 192.168.10.1 255.255.255.0 192.168.10.1 0.0.0.0 IPv6 Addresses Link-Local : FE80::A0CD:F3FF:FE77:E600 (Tentative) rssi threshold: 0 Get the Wi-Fi stats: # wlan-stat Station connected (IEEE ps) uAP started (Active)) Get the AP channel: # wlan-get-uap-channel uAP channel: 1 UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 54 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Ping the IP address: # ping Incorrect usage Usage: ping [-s <packet_size>] [-c <packet_count>] [-W <timeout in sec>] <ip_address> Default values: packet_size: 56 packet_count: 10 timeout: 2 sec # ping -s 56 -c 2 -W 2 192.168.10.4 PING 192.168.10.4 (192.168.10.4) 56(84) bytes of data 64 bytes from 192.168.10.4: icmp_req=1 ttl=64 time=12 ms 64 bytes from 192.168.10.4: icmp_req=2 ttl=64 time=1 ms Send RF Calibration host command: # wlan-send-hostcmd Hostcmd success, response is e0 80 12 0 3c 0 0 0 1 0 0 0 38 2 2 0 7 1 This cli hardcodes a specific command and demonstrates usage of wlan_send_hostcmd API. This command can be changed to any other hostcmd, formed in the format mentioned here. First 8 bytes of cmd_buf should have Command Header. * 2 bytes : Command. * 2 bytes : Size. * 2 bytes : Sequence number. * 2 bytes : Result. * Rest of buffer length is Command/Response Body Default structure for hostcmd defined in wlan_tests.c cmd_buf[] = {0xe0, 0, 0x12, 0, 0x3c, 0, 0, 0, 0x01, 0, 0, 0, 0x38, 0x02, 0x02, 0, 0x07, 0x01}; and differentiated as below. cmd_buf[] = { Command: 0xe0, 0, Size: <2 bytes of size of entire data>, Sequence number: 0, 0, Result: 0, 0, Set/Get: (for set 0x1 0x0, for get 0x0 0x0) Revision: <Cal data format revision, 2 bytes> Cal Data len: <length of cal data, 2 bytes> Cal Data: <cal data byte array> }; Please refer to AN13296 for more details about RF calibration Data commands. Get the heap utilization NOTE: Add CONFIG_HEAP_STAT in wifi_config.h to include in cli option. # heap-stat Heap size ---------------------- : 22080 Largest Free Block size -------- : 22080 Smallest Free Block size ------- : 22080 Number of Free Blocks ---------- : 1 Total successful allocations --- : 97 Total successful frees --------- : 12 Min Free since system boot ----- : 21136 UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 55 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Coexistence with External Radios for 88W8801 88W8801 Wi-Fi subsystem supports the packet traffic arbiter (PTA) protocol for coexistence with external radios (BT/802.15.4). The CLI command wlan-8801-enable-ext-coex is used to configure coexistence according to the external radio capabilities. Please refer to AN13612 for more details about the Wi-Fi driver APIs. # wlan-8801-enable-ext-coex 8801 External Coex Config set successfully Get External Radio Coex statistics # wlan-8801-get-ext-coex-stats BLE_EIP: 1, BLE_PRI: 1, WLAN_EIP: 1 Data encryption and decryption wlan-eu-crypto command is used to encrypt and decrypt data based on FIPS (Federal Information Processing Standards). FIPS is the standard for the protection of sensitive or valuable data. Usage: # wlan-eu-crypto-aes-wrap Usage: Algorithm AES-WRAP encryption and decryption verification wlan-eu-crypto-aes-wrap <EncDec> EncDec: 0-Decrypt, 1-Encrypt Error: invalid number of arguments Encrypt Data: # wlan-eu-crypto-aes-wrap 1 Raw Data: **** Dump @ 202523F4 Len: 16 **** 12 34 56 78 90 12 34 56 78 90 12 34 56 78 90 12 ******** End Dump ******* Encrypted Data: **** Dump @ 20252418 Len: 24 **** fa da 96 53 30 97 4b 61 77 c6 d4 3c d2 0e 1f 6d 43 8a 0a 1c 4f 6a 1a d7 ******** End Dump ******* Decrypt Data: # wlan-eu-crypto-aes-wrap 0 Raw Data: **** Dump @ 202523DC Len: 24 **** fa da 96 53 30 97 4b 61 77 c6 d4 3c d2 0e 1f 6d 43 8a 0a 1c 4f 6a 1a d7 ******** End Dump ******* Decrypted Data: **** Dump @ 20252418 Len: 16 **** 12 34 56 78 90 12 34 56 78 90 12 34 56 78 90 12 ******** End Dump ******* List of useful crypto commands wlan-eu-crypto-rc4 <EncDec> wlan-eu-crypto-aes-wrap <EncDec> wlan-eu-crypto-aes-ecb <EncDec> wlan-eu-crypto-ccmp-128 <EncDec> wlan-eu-crypto-ccmp-256 <EncDec> wlan-eu-crypto-gcmp-128 <EncDec> wlan-eu-crypto-gcmp-256 <EncDec> UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 56 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 3.1.6 Add CLIs in wifi_cli Sample Application APIs can be called using CLI wrappers with the appropriate arguments. The new CLI command can be added in the existing demo application by using the existing structure that defines the list of commands. Command line arguments can be passed based on the API requirement. The following example shows how to add a new command with arguments in the CLI application. Command structure modification: File: wlan_tests.c or wlan_basic_cli.c Structure elements: {"command-name", "help", handler} {"wlan-command-name", "<argument1> <argument2> <argument3>...", handler_wlan_command}, Command Handler: void handler_wlan_command (int argc, char *argv[]) Store the input argv list and pass it to the relative APIs to be used by the driver/firmware. Return value of API can be used to print the Error/Success message and command output. void handler_wlan_command (int argc, char *argv[]) { /* argv contains pointer to the arguments and argc is the number of arguments */ return_value = wlan_command_driver_API(argument1, argument2, argument3,...); if (return_value == WM_SUCCESS) { /* Print success message and command output */ } else { /* Print failure message and error number */ } } UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 57 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 3.2 wifi_setup Sample Application This section describes wifi_setup sample application and its configuration along with the application execution. The wifi_setup sample application is used to demonstrate a Wi-Fi Station mode that connects to AP and starts pinging the IP address provided by the user. Wi-Fi Features: Table 7: wifi_setup Application Features Features Wi-Fi Wi-Fi Scan Wi-Fi Station mode Ping Details 3.2.1 wifi_setup Application Execution Please refer to the previous sections 3.1.1-3.1.4 for instructions on importing a project, building an application, running an application in debug mode and flashing an application program for a few IDEs. Please refer to section 2.1 for information about the serial console tool setup. 3.2.1.1 Run the application The following logs can be observed on the console once the devices (i.MX RT1060 EVK board and NXPbased wireless module) are up and running. Starting wifi_setup DEMO STA MAC Address: A0:CD:F3:77:E5:00 [i] WPL_Init: Success [i] WPL_Start: Success Once Wi-Fi module is initialized it'll try to scan nearby networks. Initiating scan... TPLink-2G BSSID RSSI Channel Huawei_2G_5G BSSID RSSI Channel : 14:EB:B6:8A:80:1F : -39dBm : 1 : DC:33:3D:AB:E9:FC : -59dBm : 44 BSSID RSSI Channel : 16:EB:B6:AA:80:1F : -40dBm : 1 BSSID RSSI Channel Linksys_2G BSSID RSSI Channel ASUS_5G BSSID RSSI Channel TP-link-5G BSSID RSSI Channel : 16:EB:B6:AA:80:1E : -40dBm : 36 : 94:10:3E:0E:75:20 : -54dBm : 11 : 7C:10:C9:02:DA:4C : -39dBm : 40 : 14:EB:B6:8A:80:1E : -40dBm : 36 UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 58 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Huawei_2G_5G_Wi-Fi5 BSSID : DC:33:3D:FB:E9:FE RSSI : -59dBm Channel : 44 Tenda_2EACF0_5G BSSID : E8:65:D4:2E:AC:F5 RSSI : -57dBm Channel : 44 ASUS_2G BSSID : 7C:10:C9:02:DA:48 RSSI : -41dBm Channel : 8 It will ask details to connect preferred network Please enter parameters of WLAN to connect SSID: TPLink-2G Password (for unsecured WLAN press Enter): ******** [i] WPL_AddNetwork: Success [i] Trying to join the network... [i] WPL_Join: Success Once the connection is established successfully, it will ask a valid IPv4 address to ping. It will continuously ping the IP and print the received response time in ms(millisecond). Please enter a valid IPv4 address to test the connection IP address: 192.168.0.175 [!] 192.168.0.1 is not a valid IPv4 address Please enter a valid IPv4 address to test the connection IP address: is not a valid IPv4 address Please enter a valid IPv4 address to test the connection IP address: 192.168.0.175 Starting ping task... ping: send 192.168.0.175 ping: recv 192.168.0.175 243 ms ping: send 192.168.0.175 ping: recv 192.168.0.175 27 ms ping: send 192.168.0.175 ping: recv 192.168.0.175 27 ms ... UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 59 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 3.3 wifi_webconfig Sample Application This section describes wifi_webconfig sample application and its configuration along with the application execution. The wifi_webconfig sample application is used to demonstrate a commissioning procedure using the uAP with an HTTP server to configure client mode to connect to an AP. A simple LED control is implemented to check the operational mode. LED is on if the device is in AP mode, and it turns off after device is set to client mode. The website in AP mode shows the available networks using scan. The desired network can be chosen by clicking on the listed SSID. Once SSID and passphrase are entered and posted, the device attempts to connect to the chosen network with the given configuration. The Wi-Fi credentials are stored in mflash, so the device can connect to the network after a reboot. Once the device comes up with the client mode, the AP mode goes down, and consequently the website closes. The website allows the user to reset the device to AP mode. The following figure shows the logical flow diagram of the wifi_webconfig sample application. UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 60 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 61 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Figure 34: wifi_webconfig flow diagram The wifi_webconfig application features are summarized in the table below. Table 8: wifi_webconfig Sample Application Features Features Details Wi-Fi and HTTP Wi-Fi Soft AP mode Wi-Fi Station mode Wi-Fi Security (WPA2 by default for Soft AP) Desired Channel Selection for AP HTTP server (Request GET/POST) DHCP Server/Client 3.3.1 User Configurations Some of the Wi-Fi features and feature related macros that user can configure based on requirement are listed in below table along with source file name. Wi-Fi configurations Table 9: wifi_webconfig Application Wi-Fi Configurations Feature Macro definition Default value File name WIFI_SSID "nxp_configuration_ac cess_point" WIFI_PASSWORD "NXP0123456789" webconfig.h Wi-Fi Soft AP WIFI_AP_CHANNEL WIFI_AP_IP_ADDR 1 "192.168.1.1" wpl.h WIFI_AP_NET_MASK "255.255.0.0" Details Default SSID and passphrase to start soft AP using the given sample application. It can be modified by changing the macro value. Default wpa2 security is used. 3.3.2 wifi_webconfig Application Execution Please refer to the previous sections 3.1.1-3.1.4 for instructions on importing a project, building an application, running an application in debug mode and flashing an application program for a few IDEs. Please refer to section 2.1 for information about the serial console setup. 3.3.2.1 Start-up logs The following logs can be observed on the console once the devices (i.MX RT1060 EVK board and NXP-based wireless module) are up and running. The Wi-Fi FW version log shows that the Wi-Fi module is ready to operate. Starting webconfig DEMO [i] Trying to load data from mflash. [i] Nothing stored yet [i] Initializing Wi-Fi connection... STA MAC Address: A0:CD:F3:77:E5:00 [i] Successfully initialized Wi-Fi module Starting Access Point: SSID: nxp_configuration_access_point, Chnl: 1 [wlcm] Warn: NOTE: uAP will automatically switch to the channel that station is on. Now join that network on your device and connect to this IP: 192.168.1.1 3.3.2.2 Connect the client to Soft AP Connect the client to soft AP and observe the logs with the client mac address. Client => 14:AB:C5:F4:C4:C3 Associated with Soft AP UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 62 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 3.3.2.3 Open the website in the client web browser Use the AP IP-192.168.1.1 open website http://192.168.1.1 in the client browser. Opening the website triggers the scan in the device and the available wireless networks are listed in the console and webpage. The current Wi-Fi mode AP is highlighted on the web page. See Figure 35. Initiating scan... Galaxy M210997 BSSID RSSI Channel nxp BSSID RSSI Channel : 8A:A3:03:B3:09:97 : -86dBm : 2 : 38:E6:0A:C6:1A:EC : -90dBm : 165 Figure 35: wifi_webconfig Website in AP Mode 3.3.2.4 Connect the device to the AP Click on the desired SSID on the web page. If the AP uses Wi-Fi security, a dialog box opens and asks to enter a password. Once the credentials are posted, the device attempts the connection to the AP. NOTE: This demo will not allow to connect with WPA3 SSID [i] Chosen ssid: nxp [i] Chosen passphrase: "12345678" [i] Joining: nxp Switch to channel 165 success! [i] Successfully joined: nxp Now join that network on your device and connect to this IP: 192.168.43.35 [i] mflash_save_file success [i] Stopping AP! UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 63 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Figure 36: Connection Attempt to AP using wifi_webconfig Application NOTE: Once the configurations are successfully received by the device, soft AP goes down and the device switches to the client mode. To reconnect to the website, switch to the AP network and use the device (client mode) IP (printed on the console) to open the website. For example, Figure 37 shows http://192.168.43.35 to reconnect to website. UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 64 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms The current Wi-Fi mode client is highlighted on the webpage captured in Figure 37. Figure 37: wifi_webconfig Website in Client Mode 3.3.2.5 Device reboot with the configurations stored in mflash The following logs can be observed when the device has the client configuration saved in mflash. It reads the stored information and uses it to configure client mode after a reboot. Starting webconfig DEMO [i] Trying to load data from mflash. [i] Saved SSID: nxp, Password: 12345678 [i] Initializing Wi-Fi connection... MAC Address: 20:4E:F6:EC:1F:27 [i] Successfully initialized Wi-Fi module Connecting as client to ssid: nxp with password 12345678 UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 65 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 3.3.2.6 Clear the settings on the website To clear the configurations saved in mflash, press the Clear Board settings button available on the webpage. [i] mflash_save_file success Starting Access Point: SSID: nxp_configuration_access_point, Chnl: 1 [wlcm] Warn: NOTE: uAP will automatically switch to the channel that station is on. Now join that network on your device and connect to this IP: 192.168.1.1 UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 66 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Figure 38: Clear Configurations saved in mflash using website (wifi_webconfig Application) Figure 39: Clear Configuration Success Message in wifi_webconfig Application UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 67 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 3.4 wifi_test_mode Sample Application This section describes the wifi_test_mode application to demonstrate the CLI support to enable the user to control the Wi-Fi device to run various RF and regulatory compliance tests. This application enables RF testing for the Wi-Fi module. It helps to Measure RF parameters such as transmit power for both 2.4GHz and 5GHz, display RF packet counts, RF antenna configuration and transmit standard 802.11 packets. 3.4.1 wifi_test_mode Application Execution Please refer to the previous sections 3.1.1-3.1.4 for instructions on importing a project, building an application, running an application in debug mode and flashing an application program for a few IDEs. Please refer to section 2.1 for information about the serial console setup. 3.4.1.1 Run the application This section describes the available Wi-Fi commands. The application starts with the welcome message, press Enter for the command prompt. ======================================== wifi test mode demo ======================================== Initialize CLI ======================================== CLI Build: Feb 14 2025 [19:04:48] Copyright 2024 NXP MCU Board: MIMXRT1060-EVKC ======================================== Initialize WLAN Driver ======================================== STA MAC Address: A0:CD:F3:77:E5:00 ======================================== app_cb: WLAN: received event 12 ======================================== app_cb: WLAN initialized ======================================== WLAN Test Mode CLIs are initialized ======================================== CLIs Available: ======================================== help clear wlan-version wlan-mac wlan-set-rf-test-mode wlan-unset-rf-test-mode wlan-set-rf-tx-antenna <antenna> wlan-get-rf-tx-antenna wlan-set-rf-rx-antenna <antenna> wlan-get-rf-rx-antenna wlan-set-rf-band <band> wlan-get-rf-band wlan-set-rf-bandwidth <bandwidth> wlan-get-rf-bandwidth wlan-set-rf-channel <channel> wlan-get-rf-channel wlan-set-rf-radio-mode <radio_mode> wlan-get-rf-radio-mode wlan-set-rf-tx-power <tx_power> <modulation> <path_id> wlan-set-rf-tx-cont-mode <enable_tx> <cw_mode> <payload_pattern> <cs_mode> <act_sub_ch> <tx_rate> UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 68 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms wlan-set-rf-tx-frame <start> <data_rate> <frame_pattern> <frame_len> <adjust_burst_sifs> <burst_sifs_in_us> <short_preamble> <act_sub_ch> <short_gi> <adv_coding> <tx_b> wlan-set-rf-trigger-frame-cfg <Enable_tx> <Standalone_hetb> <FRAME_CTRL_TYPE> <FRAME_CTRL_SUBTYPE> <FRAME_DURATION><TriggerType> <UlLen> <MoreTF> <CSRequired> <UlBw> < wlan-set-rf-he-tb-tx <enable> <qnum> <aid> <axq_mu_timer> <tx_power> wlan-get-and-reset-rf-per wlan-set-rf-otp-mac-addr <mac_addr> wlan-get-rf-otp-mac-addr wlan-set-rf-otp-cal-data wlan-get-rf-otp-cal-data ======================================== ======================================== app_cb: WLAN: received event 16 ======================================== app_cb: WLAN: PS_ENTER ======================================== app_cb: WLAN: received event 16 ======================================== app_cb: WLAN: PS_ENTER UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 69 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 3.4.1.2 Prerequisite Commands The following steps describe prerequisite commands to start Wi-Fi RF Test. Wi-Fi RF test mode enable The following command is used to set Wi-Fi mode to rf test mode: # wlan-set-rf-test-mode ======================================== app_cb: WLAN: received event 17 ======================================== app_cb: WLAN: PS EXIT ======================================== app_cb: WLAN: received event 17 ======================================== app_cb: WLAN: PS EXIT RF Test Mode Set configuration successful Wi-Fi RF band set and get The following commands are used to set and get Wi-Fi band: Command Usage: # wlan-set-rf-band Usage: wlan-set-rf-band <band> band: 0=2.4G, 1=5G Set and Get RF band: # wlan-set-rf-band 1 RF Band configuration successful # wlan-get-rf-band Configured RF Band is: 5G Wi-Fi RF channel set and get The following commands are used to set and get Wi-Fi channel: Command Usage: # wlan-set-rf-channel Usage: wlan-set-rf-channel <channel> Set and Get RF channel: # wlan-set-rf-channel 132 Channel configuration successful # wlan-get-rf-channel Configured channel is: 132 Wi-Fi RF bandwidth set and get The following commands are used to set and get Wi-Fi bandwidth: NOTE: 88W8987 supports 11ac 80MHz support Command Usage: # wlan-set-rf-bandwidth Usage: wlan-set-bandwidth <bandwidth> <bandwidth>: 0: 20MHz 1: 40MHz 4: 80MHz Set and Ge RF Bandwidth: UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 70 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms For 20MHz # wlan-set-rf-bandwidth 0 Bandwidth configuration successful 0MHz # wlan-get-rf-bandwidth Configured bandwidth is: 20MHz For 80MHz # wlan-set-rf-bandwidth 4 Bandwidth configuration successful # wlan-get-rf-bandwidth Configured bandwidth is: 80MHz 3.4.1.3 Display and Clear Received Wi-Fi Packet Count The following command clear the received packet count and displays the received multi-cast and error packet counts. # wlan-get-and-reset-rf-per PER is as below: Total Rx Packet Count : 15505 Total Rx Multicast/Broadcast Packet Count: 4409 Total Rx Packets with FCS error : 2906 3.4.1.4 Wi-Fi Antenna Configuration The following commands are used to set and get Wi-Fi Tx/Rx antenna configuration. Command Usage: # wlan-set-rf-tx-antenna Usage: wlan-set-rf-tx-antenna <antenna> antenna: 1=Main, 2=Aux Set and Get TX antenna configuration: # wlan-set-rf-tx-antenna 1 Tx Antenna configuration successful # wlan-get-rf-tx-antenna Configured Tx Antenna is: Main Command Usage: # wlan-set-rf-rx-antenna Usage: wlan-set-rf-rx-antenna <antenna> antenna: 1=Main, 2=Aux Set and Get RX antenna configuration: # wlan-set-rf-rx-antenna 2 Rx Antenna configuration successful # wlan-get-rf-rx-antenna Configured Rx Antenna is: Aux UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 71 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 3.4.1.5 Wi-Fi Tx Power configuration The following command is used to set the transmitter output power at the antenna using stored calibration data. Power level is in dBm. Command Usage: # wlan-set-rf-tx-power Usage: wlan-set-rf-tx-power <tx_power> <modulation> <path_id> Power (0 to 24 dBm) Modulation (0: CCK, 1:OFDM, 2:MCS) Path ID (0: PathA, 1:PathB, 2:PathA+B) Set Tx Power: # wlan-set-rf-tx-power 8 1 1 Tx Power configuration successful Power : 8 dBm Modulation Path ID : OFDM : PathB 3.4.1.6 Wi-Fi set transmitter in CW mode The following command is used to set Wi-Fi transmitter to Continuous Wave (CW) mode. Command Usage: For different data rate values See Table 10bgn: Data rate parameter # wlan-set-rf-tx-cont-mode Usage: wlan-set-rf-tx-cont-mode <enable_tx> <cw_mode> <payload_pattern> <cs_mode> <act_sub_ch> <tx_rate> Enable (0:disable, 1:enable) Continuous Wave Mode (0:disable, 1:enable) Payload Pattern (0 to 0xFFFFFFFF) (Enter hexadecimal value) CS Mode (Applicable only when continuous wave is disabled) (0:disable, 1:enable) Active SubChannel (0:low, 1:upper, 3:both) Tx Data Rate (Rate Index corresponding to legacy/HT/VHT rates) To Disable: Set all parameters with expected values Enable CW mode: # wlan-set-rf-tx-cont-mode 1 1 B496DEB6 0 0 7 Tx continuous configuration successful Enable : enable Continuous Wave Mode : enable Payload Pattern : 0x7FFFFFFF CS Mode Active SubChannel Tx Data Rate : disable : low : 7 Disable CW mode: # wlan-set-rf-tx-cont-mode 0 Tx continuous configuration successful Enable : disable Continuous Wave Mode : disable Payload Pattern : 0x00000000 CS Mode Active SubChannel Tx Data Rate : disable : low : 0 NOTE: It is required to disable CW mode once test completed. CW mode test and TX frame test does not support parallel operation. UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 72 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Table 10bgn: Data rate parameter ID (Hex value) 00 1Mbits/sec 01 2Mbits/sec 02 5.5Mbits/sec 03 11Mbits/sec 04 22Mbits/sec 05 6Mbits/sec 06 9Mbits/sec 07 12Mbits/sec 08 18Mbits/sec 09 24Mbits/sec 0A 36Mbits/sec 0B 48Mbits/sec 0C 54Mbits/sec 0D 72Mbits/sec 0E HT_MCS 0 0F HT_MCS 1 10 HT_MCS 2 11 HT_MCS 3 12 HT_MCS 4 13 HT_MCS 5 14 HT_MCS 6 15 HT_MCS 7 2E HT_MCS 32 Data rate Table 11: 11ac Data rate parameter ID (Hex value) 00 1Mbits/sec 01 2Mbits/sec 02 5.5Mbits/sec 03 11Mbits/sec 04 Reserved 05 6Mbits/sec 06 9Mbits/sec 07 12Mbits/sec 08 18Mbits/sec 09 24Mbits/sec 0A 36Mbits/sec 0B 48Mbits/sec 0C 54Mbits/sec Data rate UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 73 NXP Semiconductors 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 100 101 102 103 104 105 106 107 108 109 UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Reserved HT_MCS 0 HT_MCS 1 HT_MCS 2 HT_MCS 3 HT_MCS 4 HT_MCS 5 HT_MCS 6 HT_MCS 7 HT_MCS 8 HT_MCS 9 HT_MCS 10 HT_MCS 11 HT_MCS 12 HT_MCS 13 HT_MCS 14 HT_MCS 15 VHT_SS1_MCS0 VHT_SS1_MCS1 VHT_SS1_MCS2 VHT_SS1_MCS3 VHT_SS1_MCS4 VHT_SS1_MCS5 VHT_SS1_MCS6 VHT_SS1_MCS7 VHT_SS1_MCS8 VHT_SS1_MCS9 Table 12: 11ax Data rate parameter ID (Hex value) 00 1Mbits/sec 01 2Mbits/sec 02 5.5Mbits/sec 03 11Mbits/sec 04 22Mbits/sec 05 6Mbits/sec 06 9Mbits/sec 07 12Mbits/sec 08 18Mbits/sec 09 24Mbits/sec 0A 36Mbits/sec Data rate UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 74 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 0B 0C 0D 0E 0F 10 11 12 13 14 15 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 210A 210B 48Mbits/sec 54Mbits/sec 72Mbits/sec HT_MCS 0 HT_MCS 1 HT_MCS 2 HT_MCS 3 HT_MCS 4 HT_MCS 5 HT_MCS 6 HT_MCS 7 VHT_SS1_MCS0 VHT_SS1_MCS1 VHT_SS1_MCS2 VHT_SS1_MCS3 VHT_SS1_MCS4 VHT_SS1_MCS5 VHT_SS1_MCS6 VHT_SS1_MCS7 VHT_SS1_MCS8 VHT_SS1_MCS9 HE_SS1_MCS0 HE_SS1_MCS1 HE_SS1_MCS2 HE_SS1_MCS3 HE_SS1_MCS4 HE_SS1_MCS5 HE_SS1_MCS6 HE_SS1_MCS7 HE_SS1_MCS8 HE_SS1_MCS9 HE_SS1_MCS10 HE_SS1_MCS11 3.4.1.7 Transmit standard 802.11 packets The following command is used to continuously transmit packets, with an adjustable time gap of 0 to 250 microseconds between packets. Command Usage: For different data rate values See Table 10bgn: Data rate parameter # wlan-set-rf-tx-frame Usage: wlan-set-rf-tx-frame <start> <data_rate> <frame_pattern> <frame_len> <adjust_burst_sifs> <burst_sifs_in_us> <short_preamble> <act_sub_ch> <short_gi> <adv_coding> <tx_bf> <gf_mode> <stbc> <bssid> UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 75 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Enable (0:disable, 1:enable) Tx Data Rate (Rate Index corresponding to legacy/HT/VHT rates)(Enter hexadecimal value) Payload Pattern (0 to 0xFFFFFFFF) (Enter hexadecimal value) Payload Length (1 to 0x400) (Enter hexadecimal value) Adjust Burst SIFS3 Gap (0:disable, 1:enable) Burst SIFS in us (0 to 255us) Short Preamble (0:disable, 1:enable) Active SubChannel (0:low, 1:upper, 3:both) Short GI (0:disable, 1:enable) Adv Coding (0:disable, 1:enable) Beamforming (0:disable, 1:enable) GreenField Mode (0:disable, 1:enable) STBC (0:disable, 1:enable) BSSID (xx:xx:xx:xx:xx:xx) To Disable: wlan-set-rf-tx-frame 0 Enable Tx Frame: # wlan-set-rf-tx-frame 1 0x7 2730 256 0 0 0 0 0 0 0 0 0 38:E6:0A:C6:1A:EC Tx Frame configuration successful Enable : enable Tx Data Rate : 7 Payload Pattern : 0x2730 Payload Length : 0x256 Adjust Burst SIFS3 Gap : disable Burst SIFS in us : 0 us Short Preamble : disable Active SubChannel : low Short GI : disable Adv Coding : disable Beamforming : disable GreenField Mode : disable STBC : disable BSSID : 38:E6:0A:C6:1A:EC Packet Capture: Please refer section 2.2 for the Wireshark tool setup and start capturing packets for configured channel and bandwidth. UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 76 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Figure 40: TX Frame Packet Capture Disable TX Frame: # wlan-set-rf-tx-frame 0 Tx Frame configuration successful Enable : disable Tx Data Rate Payload Pattern : 0 : 0x0 Payload Length Adjust Burst SIFS3 Gap Burst SIFS in us : 0x1 : disable : 0 us Short Preamble Active SubChannel Short GI : disable : low : disable Adv Coding Beamforming GreenField Mode : disable : disable : disable STBC BSSID : disable : 00:00:00:00:00:00 3.4.1.8 Other useful CLI commands Use the other commands to get the Wi-Fi information, driver version and firmware version. Get the Wi-Fi driver and firmware version: # wlan-version WLAN Driver Version : vX.X.rXX.pX WLAN Firmware Version : w9177o-V1, RF878X, FP91, 16.91.21.p133, WPA2_CVE_FIX 1, PVE_FIX 1 Get the Wi-Fi MAC address: MAC address 00:13:43:7F:9C:9F UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 77 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 3.4.1.9 Example command sequences for adjusting Tx power in 2.4GHz The radio is configured as shown below. · 2.4 GHz band · Channel 6 · 20 MHz bandwidth · 6 Mbps legacy data rate · Test pattern transmitted is 0x00000AAA · Output power set to +15 dBm. then adjusted to +14 dBm · For different data rate values See Table 10bgn: Data rate parameter Table 13: Tx power command sequences for 2.4GHz Step Operation 1 Set RF test mode 2 Set RF band 3 Set RF bandwidth (switched order with step 4) 4 Set RF channel 5 Set Tx antenna 6 Get settings (optional) 7 Set output power to +15 dBm 8 Set continuous transmit mode 9 Stop transmission 10 Set output power to +14 dBm Command # wlan-set-rf-test-mode rf_test_mode set successfully # wlan-set-rf-band 0 RF Band configuration successful # wlan-set-rf-bandwidth 0 Bandwidth configuration successful # wlan-set-rf-channel 6 Channel configuration successful # wlan-set-rf-tx-antenna 1 Tx antenna configuration successful # wlan-get-rf-band Configured RF band is: 2.4 G # wlan-get-rf-channel Configured channel is: 6 # wlan-get-rf-bandwidth Configured bandwidth is: 20MHz # wlan-set-rf-tx-power 15 1 0 Tx Power configuration successful Power : 15 dBm Modulation : OFDM Path ID : PathA # wlan-set-rf-tx-cont-mode 1 0 0xAAA 0 3 5 Tx continous mode successful Enable : enable CW mode : disable Payload pattern : 0x00000AAA CS mode : disable Active SubChannel : both Tx Data Rate : 5 # wlan-set-rf-tx-cont-mode 0 # wlan-set-rf-tx-power 14 1 0 Tx Power configuration successful Power : 14 dBm UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 78 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 11 Restart transmission 12 Stop transmission Modulation : OFDM Path ID : PathA # wlan-set-rf-tx-cont-mode 1 0 0xAAA 0 3 5 Tx continous mode successful Enable : enable CW mode : disable Payload pattern : 0x00000AAA CS mode : disable Active SubChannel : both Tx Data Rate : 5 # wlan-set-rf-tx-cont-mode 0 3.4.1.10 Example command sequences for adjusting Tx power in 5GHz The radio is configured as shown below. · 5 GHz band · Channel 44/48 · 40 MHz bandwidth · MCS0 HT data rate · Test pattern transmitted is 0x00BBBAAA · Output power set to +9 dBm, then adjusted to +8 dBm. · For different data rate values See Table 10bgn: Data rate parameter Table 14: Tx power command sequences for 5GHz Step Operation Command 1 Set RF test mode # wlan-set-rf-test-mode RF Test Mode configuration successful 2 Set RF band # wlan-set-rf-band 1 RF Band configuration successful 3 Set RF bandwidth (switched order with step # wlan-set-rf-bandwidth 1 4) Bandwidth configuration successful 4 Set RF channel # wlan-set-rf-channel 48 Channel configuration successful 5 Set Tx antenna # wlan-set-rf-tx-antenna 1 Tx antenna configuration successful 6 Get settings (optional) # wlan-get-rf-band Configured RF band is: 5 G # wlan-get-rf-channel Configured channel is: 48 # wlan-get-rf-bandwidth Configured bandwidth is: 40MHz 7 Set output power to +10 dBm # wlan-set-rf-tx-power 10 1 0 Tx Power configuration successful Power : 10 dBm Modulation : OFDM Path ID : PathA UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 79 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 8 Set continuous transmit mode 9 Stop transmission 10 Set output power to +9 dBm 11 Restart transmission 12 Stop transmission 13 Set output power to +8 dBm 14 Restart transmission 15 Stop transmission # wlan-set-rf-tx-cont-mode 1 0 0xBBBAAA 0 3 14 Tx continous mode successful Enable : enable CW mode : disable Payload pattern : 0x00BBBAAA CS mode : disable Active SubChannel : both Tx Data Rate : 14 # wlan-set-rf-tx-cont-mode 0 # wlan-set-rf-tx-power 9 1 0 Tx Power configuration successful Power : 9 dBm Modulation : OFDM Path ID : PathA # wlan-set-rf-tx-cont-mode 1 0 0xBBBAAA 0 3 14 Tx continous mode successful Enable : enable CW mode : disable Payload pattern : 0x00BBBAAA CS mode : disable Active SubChannel : both Tx Data Rate : 14 # wlan-set-rf-tx-cont-mode 0 # wlan-set-rf-tx-power 8 1 0 Tx Power configuration successful Power : 8 dBm Modulation : OFDM Path ID : PathA # wlan-set-rf-tx-cont-mode 1 0 0xBBBAAA 0 3 14 Tx continous mode successful Enable : enable CW mode : disable Payload pattern : 0x00BBBAAA CS mode : disable Active SubChannel : both Tx Data Rate : 14 # wlan-set-rf-tx-cont-mode 0 UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 80 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 3.5 wifi_cert Sample Application This section describes the wifi_cert application to demonstrate the CLI support to handle and enable Wi-Fi configuration for different features. This sample application includes commands related to the Wi-Fi certification process. In this sample application Wi-Fi connection manager CLIs are available. NOTE: Support for this application is available only for i.MX RT1060 EVK/EVKC board. Table 15: wifi_cert Application Features Features Details Wi-Fi Wi-Fi Soft AP mode Wi-Fi Station mode Wi-Fi Scan Wi-Fi Tx Power Limit Wi-Fi Active/Passive Channel List Wi-Fi Tx Data Rate Wi-Fi Management Frame Protection Wi-Fi ED MAC Wi-Fi host sleep/wowlan Wi-Fi RF Calibration Wi-Fi coexistence with external radios (for 88W8801) TCP Client and Server TCP Client dual mode (Tx and Rx in simultaneous) TCP Client trade-off mode (Tx and Rx individual) IPerf UDP Client and Server UDP Client dual mode (Tx and Rx in simultaneous) UDP Client trade-off mode (Tx and Rx individual) 3.5.1 wifi_cert Application Execution Please refer to the previous sections 3.1.1-3.1.4 for instructions on importing a project, building an application, running an application in debug mode and flashing an application program for a few IDEs. Please refer to section 2.1 for information about the serial console setup. UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 81 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 3.5.1.1 Run the application This section describes the available Wi-Fi commands. The application starts with the welcome message, press Enter for the command prompt. ======================================== wifi cert demo ======================================== Initialize CLI ======================================== Initialize WLAN Driver ======================================== MAC Address: 00:13:43:7F:9C:9F [net] Initialized TCP/IP networking stack ======================================== app_cb: WLAN: received event 10 ======================================== app_cb: WLAN initialized ======================================== WLAN CLIs are initialized ======================================== ENHANCED WLAN CLIs are initialized ======================================== CLIs Available: ======================================== help wlan-version wlan-mac wlan-scan wlan-scan-opt ssid <ssid> bssid ... wlan-add <profile_name> ssid <ssid> bssid... wlan-remove <profile_name> wlan-list wlan-connect <profile_name> wlan-start-network <profile_name> wlan-stop-network wlan-disconnect wlan-stat wlan-info wlan-address wlan-get-uap-channel wlan-get-uap-sta-list wlan-ieee-ps <0/1> wlan-deep-sleep-ps <0/1> wlan-host-sleep <0/1> wowlan_test <0/1> wlan-send-hostcmd wlan-8801-enable-ext-coex wlan-get-regioncode wlan-get-txpwrlimit <subband> wlan-set-txpwrlimit wlan-set-chanlist-and-txpwrlimit wlan-set-chanlist wlan-get-chanlist wlan-set-txratecfg <sta/uap> <format> <index> <nss> <rate_setting> wlan-get-txratecfg wlan-get-data-rate wlan-set-pmfcfg <mfpc> <mfpr> wlan-get-pmfcfg wlan-set-antcfg <ant mode> [evaluate_time] wlan-get-antcfg wlan-set-ed-mac-mode <ed_ctrl_2g> <ed_offset_2g> wlan-get-ed-mac-mode UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 82 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms ping [-s <packet_size>] [-c <packet_count>] [-W <timeout in sec>] <ipv4 address> iperf [-s|-c <host>|-a|-h] [options] dhcp-stat ======================================== NOTE: Please refer sections 3.1.5.4 to 0 for basic Wi-Fi features like Wi-Fi Scan, Wi-Fi AP mode, Wi-Fi Station mode, IPerf etc. 3.5.1.2 Get Region Code Note: The region codes will be update from tx_pwr_limit region files. Get region code: # wlan-get-regioncode Region code: 0xaa 3.5.1.3 Set/Get Tx Power Limit The following commands are used to get and set tx power limit: Command Usage: # wlan-get-txpwrlimit Usage: wlan-get-txpwrlimit <subband> Where subband is: 0x00 2G subband (2.4G: channel 1-14) 0x10 5G subband0 (5G: channel 36,40,44,48, 52,56,60,64) 0x11 5G subband1 (5G: channel 100,104,108,112, 116,120,124,128, 132,136,140,144) 0x12 5G subband2 (5G: channel 149,153,157,161,165,172) 0x13 5G subband3 (5G: channel 183,184,185,187,188, 189, 192,196; 5G: channel 7,8,11,12,16,34) Get Tx Power Limit: # wlan-get-txpwrlimit 00 ------------------------------------------------------------------------------Get txpwrlimit: sub_band=0 StartFreq: 2407 ChanWidth: 20 ChanNum: 1 Pwr:0,8,1,8,2,8,3,8,4,8,5,8,6,8 StartFreq: 2407 ChanWidth: 20 ChanNum: 2 Pwr:0,8,1,8,2,8,3,8,4,8,5,8,6,8 StartFreq: 2407 ChanWidth: 20 ChanNum: 3 Pwr:0,8,1,8,2,8,3,8,4,8,5,8,6,8 StartFreq: 2407 ChanWidth: 20 ChanNum: 4 Pwr:0,8,1,8,2,8,3,8,4,8,5,8,6,8 StartFreq: 2407 ChanWidth: 20 ChanNum: 5 Pwr:0,8,1,8,2,8,3,8,4,8,5,8,6,8 StartFreq: 2407 ChanWidth: 20 ChanNum: 6 UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 83 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Pwr:0,8,1,8,2,8,3,8,4,8,5,8,6,8 StartFreq: 2407 ChanWidth: 20 ChanNum: 7 Pwr:0,8,1,8,2,8,3,8,4,8,5,8,6,8 StartFreq: 2407 ChanWidth: 20 ChanNum: 8 Pwr:0,8,1,8,2,8,3,8,4,8,5,8,6,8 StartFreq: 2407 ChanWidth: 20 ChanNum: 9 Pwr:0,8,1,8,2,8,3,8,4,8,5,8,6,8 StartFreq: 2407 ChanWidth: 20 ChanNum: 10 Pwr:0,8,1,8,2,8,3,8,4,8,5,8,6,8 StartFreq: 2407 ChanWidth: 20 ChanNum: 11 Pwr:0,8,1,8,2,8,3,8,4,8,5,8,6,8 StartFreq: 2407 ChanWidth: 20 ChanNum: 12 Pwr:0,8,1,8,2,8,3,8,4,8,5,8,6,8 StartFreq: 2407 ChanWidth: 20 ChanNum: 13 Pwr:0,8,1,8,2,8,3,8,4,8,5,8,6,8 StartFreq: 2414 ChanWidth: 20 ChanNum: 14 Pwr:0,0,1,0,2,0,3,0,4,0,5,0,6,0 UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 84 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Set Tx Power Limit: NOTE: This command will first set tx power configurations for the band 2GHz or both 2GHz and 5GHz based on the Wi-Fi module selection and then prints saved tx power configurations of all the sub-bands on the console output. # wlan-set-txpwrlimit ------------------------------------------------------------------------------StartFreq: 2407 ChanWidth: 20 ChanNum: 1 Pwr:0,8,1,8,2,8,3,8,4,8,5,8,6,8 StartFreq: 2407 ChanWidth: 20 ChanNum: 2 Pwr:0,8,1,8,2,8,3,8,4,8,5,8,6,8 StartFreq: 2407 ChanWidth: 20 ChanNum: 3 Pwr:0,8,1,8,2,8,3,8,4,8,5,8,6,8 StartFreq: 2407 ChanWidth: 20 ChanNum: 4 Pwr:0,8,1,8,2,8,3,8,4,8,5,8,6,8 StartFreq: 2407 ChanWidth: 20 ChanNum: 5 Pwr:0,8,1,8,2,8,3,8,4,8,5,8,6,8 StartFreq: 2407 ChanWidth: 20 ChanNum: 6 Pwr:0,8,1,8,2,8,3,8,4,8,5,8,6,8 StartFreq: 2407 ChanWidth: 20 ChanNum: 7 ... 3.5.1.4 Set/Get Active/Passive Channel List The following commands are used to set and get active and passive channel list. Set Channel List: # wlan-set-chanlist ------------------------------------------------------------------------------Number of channels configured: 39 ChanNum: 1 ChanNum: 2 ChanNum: 3 ChanNum: 4 ChanNum: 5 ChanNum: 6 ChanNum: 7 ChanNum: 8 ChanNum: 9 ChanNum: 10 ChanNum: 11 ChanNum: 12 ChanNum: 13 ChanNum: 14 ChanNum: 36 ... ChanFreq: 2412 ChanFreq: 2417 ChanFreq: 2422 ChanFreq: 2427 ChanFreq: 2432 ChanFreq: 2437 ChanFreq: 2442 ChanFreq: 2447 ChanFreq: 2452 ChanFreq: 2457 ChanFreq: 2462 ChanFreq: 2467 ChanFreq: 2472 ChanFreq: 2484 ChanFreq: 5180 Active Active Active Active Active Active Active Active Active Active Active Passive Passive Passive Active UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 85 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Get Channel List: # wlan-get-chanlist ------------------------------------------------------------------------------Number of channels configured: 39 ChanNum: 1 ChanNum: 2 ChanNum: 3 ChanNum: 4 ChanNum: 5 ChanNum: 6 ChanNum: 7 ChanNum: 8 ChanNum: 9 ChanNum: 10 ChanNum: 11 ChanNum: 12 ChanNum: 13 ChanNum: 14 ChanNum: 36 ... ChanFreq: 2412 ChanFreq: 2417 ChanFreq: 2422 ChanFreq: 2427 ChanFreq: 2432 ChanFreq: 2437 ChanFreq: 2442 ChanFreq: 2447 ChanFreq: 2452 ChanFreq: 2457 ChanFreq: 2462 ChanFreq: 2467 ChanFreq: 2472 ChanFreq: 2484 ChanFreq: 5180 Active Active Active Active Active Active Active Active Active Active Active Passive Passive Passive Active 3.5.1.5 Set Channel List and Tx Power Limit The following command is used to set channel list as well as tx power limit. NOTE: This command will first set defined configuration of channel list and tx power limit and then prints saved configuration on the console output. # wlan-set-chanlist-and-txpwrlimit ------------------------------------------------------------------------------Get txpwrlimit: sub_band=0 StartFreq: 2407 ChanWidth: 20 ChanNum: 1 Pwr:0,8,1,8,2,8,3,8,4,8,5,8,6,8 StartFreq: 2407 ChanWidth: 20 ChanNum: 2 Pwr:0,8,1,8,2,8,3,8,4,8,5,8,6,8 StartFreq: 2407 ChanWidth: 20 ChanNum: 3 Pwr:0,8,1,8,2,8,3,8,4,8,5,8,6,8 StartFreq: 2407 ChanWidth: 20 ChanNum: 4 Pwr:0,8,1,8,2,8,3,8,4,8,5,8,6,8 StartFreq: 2407 ChanWidth: 20 ChanNum: 5 Pwr:0,8,1,8,2,8,3,8,4,8,5,8,6,8 StartFreq: 2407 ChanWidth: 20 ChanNum: 6 Pwr:0,8,1,8,2,8,3,8,4,8,5,8,6,8 StartFreq: 2407 ChanWidth: 20 ChanNum: 7 ... Number of channels configured: 39 UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 86 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms ChanNum: 1 ChanNum: 2 ChanNum: 3 ChanNum: 4 ChanNum: 5 ChanNum: 6 ChanNum: 7 ChanNum: 8 ChanNum: 9 ChanNum: 10 ChanNum: 11 ChanNum: 12 ChanNum: 13 ChanNum: 14 ChanNum: 36 ... ChanFreq: 2412 ChanFreq: 2417 ChanFreq: 2422 ChanFreq: 2427 ChanFreq: 2432 ChanFreq: 2437 ChanFreq: 2442 ChanFreq: 2447 ChanFreq: 2452 ChanFreq: 2457 ChanFreq: 2462 ChanFreq: 2467 ChanFreq: 2472 ChanFreq: 2484 ChanFreq: 5180 Active Active Active Active Active Active Active Active Active Active Active Passive Passive Passive Active 3.5.1.6 Set/Get Tx Rate Configuration The following commands are used to set and get tx rate. Command Usage: # wlan-set-txratecfg Invalid arguments Usage: wlan-set-txratecfg <sta/uap> <format> <index> <nss> <rate_setting> Where <format> - This parameter specifies the data rate format used in this command 0: LG 1: HT 2: VHT 0xff: Auto <index> - This parameter specifies the rate or MCS index If <format> is 0 (LG), 0 1 Mbps 1 2 Mbps 2 5.5 Mbps 3 11 Mbps 4 6 Mbps 5 9 Mbps 6 12 Mbps 7 18 Mbps 8 24 Mbps 9 36 Mbps 10 48 Mbps 11 54 Mbps If <format> is 1 (HT), 0 MCS0 1 MCS1 2 MCS2 3 MCS3 4 MCS4 5 MCS5 6 MCS6 7 MCS7 If <format> is 2 (VHT), 0 MCS0 1 MCS1 2 MCS2 3 MCS3 4 MCS4 UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 87 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 5 MCS5 6 MCS6 7 MCS7 8 MCS8 9 MCS9 <nss> - This parameter specifies the NSS. It is valid only for VHT and HE If <format> is 2 (VHT) or 3 (HE), 1 NSS1 2 NSS2 <rate_setting> - This parameter can only specifies the GI types now. If <format> is 1 (HT), 0x0000 Long GI 0x0020 Short GI If <format> is 2 (VHT), 0x0000 Long GI 0x0020 Short GI 0x0060 Short GI and Nsym mod 10=9 Set Tx Rate: # wlan-set-txratecfg ff 0 Configured txratecfg as below: Tx Rate Configuration: Type: 0 (LG) Rate Index: 0 (1 Mbps) Get Tx Rate: # wlan-get-txratecfg Tx Rate Configuration: Type: 0xFF (Auto) Rate Index: 0 (1 Mbps) Get Data Rate: # wlan-get-data-rate Data Rate: TX: Type: LG Rate: 1 Mbps RX: Type: LG Rate: 1 Mbps 3.5.1.7 Set/Get Management Frame Protection Capability The following commands are used to set and get MFP capability: Command Usage: # wlan-set-pmfcfg Usage: wlan-set-pmfcfg <mfpc> <mfpr> <mfpc>: Management Frame Protection Capable (MFPC) 1: Management Frame Protection Capable 0: Management Frame Protection not Capable <mfpr>: Management Frame Protection Required (MFPR) 1: Management Frame Protection Required 0: Management Frame Protection Optional Default setting is PMF not capable. mfpc = 0, mfpr = 1 is an invalid combination UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 88 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Set MFP capability: # wlan-set-pmfcfg 1 1 PMF configuration successful Get MFP Capability: # wlan-get-pmfcfg Management Frame Protection Capability: Yes Management Frame Protection: Required 3.5.1.8 Set/Get Antenna Diversity Configuration The following commands are used to set and get antenna diversity configuration: NOTE: Make sure second antenna is connected before performing antenna configurations. Command Usage: # wlan-set-antcfg Usage: wlan-set-antcfg <ant mode> [evaluate_time] <ant mode>: Bit 0 -- Tx/Rx antenna 1 Bit 1 -- Tx/Rx antenna 2 0xFFFF -- Tx/Rx antenna diversity [evaluate_time]: if ant mode = 0xFFFF, SAD evaluate time interval, default value is 6s(0x1770) 3.5.1.9 Set/Get ED MAC Feature This feature enables the European Union (EU) adaptivity test as per the compliance requirements in the ETSI standard. Depending on the device and front-end loss, the Energy Detection (ED) threshold offset (ed_ctrl_2g.offset and ed_ctrl_5g.offset) needs to be adjusted. The ED threshold offset can be adjusted in steps of 1 dB. This section includes definitions of the commands and examples which shows how to adjust ED MAC. Below are the get and set commands for ED-MAC adjustment. # wlan-get-ed-mac-mode <interface> #wlan-set-ed-mac-mode <ed_ctrl_2g> <ed_offset_2g> <ed_ctrl_5g> <ed_offset_5g> Where: Table 16: ED MAC Parameters Parameter interface 0 = STA 1 = uAP Description ed_ctrl_2_g 0 = disable ED MAC threshold for 2.4GHz band 1 = enable ED MAC threshold for 2.4GHz band ed_offset_2_g ED MAC threshold for 2.4 GHz band. Hexadecimal value in units of dB Range: 0x80 to 0x7F, (-128 to 127), 0 = default offset value ed_ctrl_5_g 0 = disable ED MAC threshold for 5GHz band 1 = enable ED MAC threshold for 5GHz band ed_offset_5_g ED MAC threshold for 5 GHz band. Hexadecimal value in units of dB Range: 0x80 to 0x7F, (-128 to 127), 0 = default offset value UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 89 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms For 2.4GHz band: In this example, the 2.4 GHz ED-MAC threshold is lowered by 1 dB. Table 17: ED MAC 2.4 GHz Command Operations Step Operation Command 1 Get ED-MAC status #wlan-get-ed-mac-mode 0 EU adaptivity for 2.4GHz band : Enabled Energy Detect threshold offset : 0X9 2 Set ED-MAC threshold #wlan-set-ed-mac-mode 0 1 0x8 ED MAC MODE settings configuration successful For 5GHz band: In this example, the 5 GHz ED-MAC threshold is lowered by 2 dB. Table 18: ED MAC 5 GHz Command Operations Step Operation Command 1 Get ED-MAC status #wlan-get-ed-mac-mode 0 EU adaptivity for 2.4GHz band : Enabled Energy Detect threshold offset : 0X9 EU adaptivity for 5GHz band : Enabled Energy Detect threshold offset : 0Xc 2 Set ED-MAC threshold #wlan-set-ed-mac-mode 0 1 0x9 1 0x3 ED MAC MODE settings configuration successful UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 90 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 3.6 wifi_ipv4_ipv6_echo Sample Application The wifi_ipv4_ipv6_echo application demonstrates a TCP and UDP echo on the lwIP TCP/IP stack with FreeRTOS. The demo can use both TCP or UDP protocol over IPv4 or IPv6 and acts as an echo server. The application sends back the packets received from the PC, which can be used to test whether a TCP or UDP connection is available. The demo generates a IPv6 link-local address (the one from range FE80::/10) after the start. To send something to this (demo) address from the remote computer need to specify the interface over which the demo is reachable by appending % followed by zone index. Please refer to section 2.4 for more details about zone index. 3.6.1 wifi_ipv4_ipv6_echo Application Execution Please refer to the previous sections 3.1.1-3.1.4 for instructions on importing a project, building an application, running an application in debug mode and flashing an application program for a few IDEs. Please refer to section 2.1 for information about the serial console setup and section 2.4 for ipv4/6 tool setup. 3.6.1.1 Run the application This section describes the available Wi-Fi commands. The application starts with the welcome message, press Enter for the command prompt. ======================================== Initialize WLAN Driver ======================================== MAC Address: 48:E7:DA:9A:CE:39 Initialize CLI ======================================== Copyright 2020 NXP 3.6.1.2 Help command SHELL>> help "help": List all the registered commands "exit": Exit program "echo_tcp_client ip_addr port": Connects to specified server and sends back every received data. Usage: ip_addr: IPv6 or IPv4 server address port: TCP port number "echo_tcp_server port": Listens for incoming connection and sends back every received data. Usage: port: TCP port number "echo_udp port": Waits for datagrams and sends them back. Usage: port: UDP port number "end": Ends echo_* command. "print_ip_cfg": Prints IP configuration. UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 91 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms "wlan_scan": Scans networks. "wlan_connect ssid": Connects to the specified network without password. Usage: ssid: network SSID or BSSID "wlan_connect_with_password ssid password": Connects to the specified network with password. Usage: ssid: network SSID or BSSID password: password SHELL>> 3.6.1.3 Scan command The scan command is used to scan the visible access points. SHELL>> wlan_scan Scanning SHELL>> Initiating scan... NXP_V10 BSSID : 5C:DF:89:0F:32:78 RSSI : -67dBm Channel : 1 nxp BSSID : 8E:36:15:52:42:0C RSSI : -51dBm Channel : 11 ... 3.6.1.4 Connect to available access point Connect to the network using one of the following commands: wlan_connect <(b)ssid> wlan_connect_with_password <(b)ssid> <password> NOTE: SSID (the name of the network) or BSSID (it's mac) wlan_connect_with_password nxp 12345678 Joining: nxp Network joined 3.6.1.5 Print IP Configuration This command will print IPv4 and IPv6 address of the board received from the external access point SHELL>> print_ip_cfg ************************************************ IPv4 Address : 192.168.148.150 IPv4 Subnet mask : 255.255.255.0 IPv4 Gateway : 192.168.148.93 IPv6 Address0 : FE80::224E:F6FF:FEEC:1F27 IPv6 Address1 : 2409:40C1:4E:7AFA:224E:F6FF:FEEC:1F27 IPv6 Address2 : - ************************************************ NOTE: It is necessary to have installed tools capable of sending and receiving data over TCP or UDP to interact with the demo. Please refer to the section 2.4 for tool setup. 3.6.1.6 TCP client echo Run ncat on Remote host computer. C:\Users\nxp>ncat -v -l -p 10001 Ncat: Version 7.92 ( https://nmap.org/ncat ) UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 92 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Ncat: Listening on :::10001 Ncat: Listening on 0.0.0.0:10001 IPv4 Run the command echo_tcp_client <Remote host PC IPv4 addr> 10001 in demo shell. SHELL>> echo_tcp_client 192.168.148.80 10001 Creating new socket. Connecting... Connected. Verify connection from Remote host console. Type some text and hit enter, the demo will send line back. C:\Users\nxp> Ncat: Connection from 192.168.148.150. Ncat: Connection from 192.168.148.150:49153. hello hello Check console logs which shows number of bytes sent back to Remote Host PC Echoing data. Use end command to return... ECHO_TCP_CLIENT>> 6B sent back. IPv6 Run the command echo_tcp_client <Remote host PC IPv6 addr> 10001 in demo shell. SHELL>> echo_tcp_client fe80::8f3d:b4b4:b64f:764d 10001 Creating new socket. Connecting... Connected. Echoing data. Use end command to return... ECHO_TCP_CLIENT>> Verify connection from Remote host console. Type some text and hit enter, the demo will send line back. C:\Users\nxp> Ncat: Connection from fe80::224e:f6ff:feec:1f27. Ncat: Connection from fe80::224e:f6ff:feec:1f27:49153. hello hello Check console logs which shows number of bytes sent back to Remote Host PC Echoing data. Use end command to return... ECHO_TCP_CLIENT>> 6B sent back. Terminate remote host connection by pressing ctrl+c and for demo shell type end. 3.6.1.7 TCP server echo Run the command echo_tcp_server 10001 in demo shell. SHELL>> echo_tcp_server 10001 Creating new socket. Waiting for incoming connection. Use end command to return... IPv4 Run the command ncat -v <Demo IPv4 addr> 10001 on Remote host PC to connect with TCP server C:\Users\nxp>ncat -v 192.168.148.150 10001 Ncat: Version 7.92 ( https://nmap.org/ncat ) UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 93 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Verify connection from Remote host console. Type some text and hit enter, the demo will send line back. C:\Users\nxp> Ncat: Connected to 192.168.148.150:10001. hello Check console logs which shows number of bytes sent back to Remote Host PC ECHO_TCP_SERVER>> Accepted connection Echoing data. Use end command to return... ECHO_TCP_SERVER>> 6B sent back. IPv6 Run the command ncat -v <Demo IPv6 addr FE80::*** >> 10001 on Remote host PC to connect with TCP server C:\Users\nxp>ncat -v FE80::224E:F6FF:FEEC:1F27 10001 Ncat: Version 7.92 ( https://nmap.org/ncat ) Ncat: Connected to FE80::224E:F6FF:FEEC:1F27:10001. Verify connection from Remote host console. Type some text and hit enter, the demo will send line back. C:\Users\nxp> Ncat: Version 7.92 ( https://nmap.org/ncat ) Ncat: Connected to FE80::224E:F6FF:FEEC:1F27:10001. hello Check console logs which shows number of bytes sent back to Remote Host PC ECHO_TCP_SERVER>> Accepted connection Echoing data. Use end command to return... ECHO_TCP_SERVER>> 6B sent back. Terminate remote host connection by pressing ctrl+c and for demo shell type end. 3.6.1.8 UDP echo Run the command echo_udp 10001 in demo shell. SHELL>> echo_udp 10001 Creating new socket. Waiting for datagrams Use end command to return... IPV4 Run the command ncat -v -u <Demo IPv4 addr> 10001 on Remote host PC to connect with UDP server C:\Users\nxp>ncat -v -u 192.168.148.150 10001 Ncat: Version 7.92 ( https://nmap.org/ncat ) Verify connection from Remote host console. Type some text and hit enter, the demo will send line back. Ncat: Connected to 192.168.148.150:10001. hello Check console logs which shows number of bytes sent back to Remote Host PC ECHO_UDP>> Datagram carrying 6B sent back. IPV6 Run the command ncat -v -u <Demo IPv6 addr FE80::*** >> 10001 on Remote host PC to connect with UDP server UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 94 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms C:\Users\nxp>ncat -v -u FE80::224E:F6FF:FEEC:1F27 10001 Ncat: Version 7.92 ( https://nmap.org/ncat ) Verify connection from Remote host console. Type some text and hit enter, the demo will send line back. Ncat: Connected to FE80::224E:F6FF:FEEC:1F27:10001. hello Check console logs which shows number of bytes sent back to Remote Host PC ECHO_UDP>> Datagram carrying 6B sent back. Terminate remote host connection by pressing ctrl+c and for demo shell type end. UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 95 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 3.7 uart_wifi_bridge Sample Application This section describes the application to demonstrate bridging between Labtool and UART communication for i.MX RT 1170 EVKB host using NXP Wireless module IW611/612. The following block diagram represents the application setup. 3.7.1 Figure 41: RT1170 EVKB Labtool setup uart_wifi_bridge Application Execution Please refer to the previous sections 3.1.1-3.1.4 for instructions on importing a project, building an application, running an application in debug mode and flashing an application program for a few IDEs. Please refer to section 2.1 for information about the serial console tool setup. 3.7.1.1 Run the application Labtool Setup on Windows PC Step 1: Download the latest MFG Labtool release for IW612 from nxp.com (for 8987 from nxp.com and for IW416 from nxp.com) Step 2: Terminate all COM terminal programs connected to the UART port of the target. Step 3: Connect the UART cable with target and get the UART COM port from Device Manager. Step 4: Update the <MFG-IW61X-MF-RTOS-BRG-WIN-X86>\bin\labtool\SetUp.ini to reflect the COM port settings [COMSET] ComNo = 3 BaudRate = 115200 byParity = 0 byStopBits = 1 byByteSize = 8 Step 5: Launch <MFG-IW61X-MF-RTOS-BRG-WIN-X86>\bin\labtool\DutApiSisoApApp_W9177Uart.exe and interact with DUT UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 96 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Demo Execution Step 1: Provide option 1 to check Labtool connection with DUT Date: Jul 20 2023 (02:39:35) NOTE: 1. =========WiFi tool============= 2. =========BT tool============= 3. =========15_4 tool============= Enter CMD 99 to Exit Enter option: 1 Name: DutApiClass Interface: EtherNet Version: 1.0.0.45.5 Date: Jul 20 2023 (02:39:20) NOTE: DutIf_InitConnection: 0 -------------------------------------------------------- W9177 (802.11a/g/b/n/ac/ax) TEST MENU -------------------------------------------------------Enter option: NOTE: In above output, W9177 represents IW612 Step 2: Get FW version with option 88 Enter option: 88 DLL Version : 1.0.0.45.5 LabTool Version: 1.0.0.45.5 FW Version: 18.80.2.49 Mfg Version: 2.0.0.63 SFW Version: 0.0.0.09 SHAL Version: 0.0.0.0 SOC OR Version: 1.2 Customer ID: 0 RF OR Version: 1.2 Customer ID: 0 Enter option: Important Option values for all Wi-Fi feature related to labtool. (This is for quick reference) In case of option not working refer step 1 for updated list. Command Number 5 6 9 10 11 12 13 22 29 31 32 35 44 45 46 53 54 UM11442 User manual Description Get Radio mode Set Radio mode Get Antenna Set Antenna Get RF Channel Set RF Channel Get RF Data Rate Load Calibration Data File Get RF Band Clear received packet Count Get received packet Count Duty cycle Tx with SIFS gap Get/Set Storage Type Read MAC Address From OTP Write MAC Address in OTP Write calibration data from text files to OTP/.conf file Get Calibration from OTP/.conf file into text files All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 97 NXP Semiconductors 88 95 96 99 111 112 120 122 123 198 199 225 231 235 UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Get Firmware and Labtool version Get RF Crystal calibration offset Set RF Crystal calibration offset Exit Get Channel BW Set Channel BW Get Thermal Sensor Reading Enable IMD3 Calibration Get IMD3 Calibration Data Start RSSI Data Collection Stop RSSI Data Collection and Report Result HE rate Tx command (to enable sending trigger frame) Configure HE TB (trigger-based) Tx Generate Trigger frame using configuration file UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 98 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 3.8 wifi_wpa_supplicant Sample Application The wifi_wpa_supplicant application demonstrates CLI support usage using wpa supplicant (host based). This application includes similar commands to wifi_cli application, some new commands/features which related to host based supplicant are covered in this section i.e WPA Enterprise, WPS. Note: Please define macro CONFIG_WPA_SUPP_CRYPTO_ENTERPRISE in wifi_config.h to enable enterprise security support. Wi-Fi and iPerf Features: Table 19: Sample Application Features Features Details Wi-Fi Wi-Fi Host based supplicant Wi-Fi Soft AP mode Wi-Fi Station mode Wi-Fi Scan Wi-Fi IEEEPS power saving mode Wi-Fi deep-sleep power saving mode Wi-Fi host sleep/wowlan Wi-Fi RF Calibration Wi-Fi coexistence with external radios (for 88W8801) WPA Enterprise WPS Wi-Fi 11r roaming Wi-Fi Cloud keep alive Wi-Fi Turbo mode TCP Client and Server TCP Client dual mode (Tx and Rx in simultaneous) TCP Client trade-off mode (Tx and Rx individual) IPerf UDP Client and Server UDP Client dual mode (Tx and Rx in simultaneous) UDP Client trade-off mode (Tx and Rx individual) 3.8.1 wifi_wpa_supplicant Application Execution Please refer to the previous sections 3.1.1-3.1.4 for instructions on importing a project, building an application, running an application in debug mode and flashing an application program for a few IDEs. Please refer to section 2.1 for information about the serial console tool setup. 3.8.1.1 Start-up logs The following logs can be observed on the console once the devices (i.MX RT1060 EVK board and NXPbased Wireless module) are up and running and it shows that Wi-Fi module is ready for the operations. This section describes the available Wi-Fi commands, press Enter for the command prompt. ======================================== wifi wpa supplicant demo ======================================== Initialize CLI ======================================== Initialize WLAN Driver ======================================== Setting up new cal data MAC Address: 20:4E:F6:EC:1F:27 Info: supplicant_main_task: 241 Starting wpa_supplicant thread with debug level: 3 UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 99 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Info: Successfully initialized wpa_supplicant Info: iface_cb: iface ml1 ifindex 2 20:4e:f6:ec:1f:27 Info: Using interface ml1 Info: Initializing interface 0: ml1 ======================================== app_cb: WLAN: received event 11 ======================================== app_cb: WLAN initialized ======================================== WLAN CLIs are initialized ======================================== CLIs Available: ======================================== help clear wlan-version wlan-mac wlan-thread-info wlan-net-stats wlan-set-mac <MAC_Address> wlan-scan wlan-scan-opt ssid <ssid> bssid ... wlan-add <profile_name> ssid <ssid> bssid... wlan-remove <profile_name> wlan-list wlan-connect <profile_name> wlan-connect-opt <profile_name> ... wlan-reassociate wlan-start-network <profile_name> wlan-stop-network wlan-disconnect wlan-stat wlan-info wlan-address wlan-uap-disconnect-sta <mac address> wlan-get-uap-channel wlan-get-uap-sta-list wlan-ieee-ps <0/1> wlan-set-ps-cfg <null_pkt_interval> wlan-deep-sleep-ps <0/1> wlan-get-beacon-interval wlan-set-max-clients-count <max clients count> wlan-rts <sta/uap> <rts threshold> wlan-host-11k-enable <0/1> wlan-host-11k-neighbor-req [ssid <ssid>] wlan-host-11v-bss-trans-query <0..16> wlan-mbo-nonprefer-ch "<oper_class>:<chan>:<preference>:<reason> <oper_class>:<chan>:<preference>:<reason>" wlan-mbo-set-cell-capa <cell capa: 1/2/3(default)> wlan-mbo-set-oce <oce: 1(default)/2> wlan-set-okc <okc: 0(default)/1> wlan-pmksa-list wlan-pmksa-flush wlan-set-scan-interval <scan_int: in seconds> wlan-roaming <0/1> <rssi_threshold> wlan-multi-mef <ping/arp/multicast/del> [<action>] wlan-send-hostcmd wlan-ext-coex-uwb wlan-set-uap-bandwidth <1/2/3> 1:20 MHz 2:40MHz 3:80MHz UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 100 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms wlan-set-uap-hidden-ssid <0/1/2> wlan-eu-crypto-rc4 <EncDec> wlan-eu-crypto-aes-wrap <EncDec> wlan-eu-crypto-aes-ecb <EncDec> wlan-eu-crypto-ccmp-128 <EncDec> wlan-eu-crypto-ccmp-256 <EncDec> wlan-eu-crypto-gcmp-128 <EncDec> wlan-eu-crypto-gcmp-256 <EncDec> wlan-ft-roam <bssid> <channel> wlan-set-antcfg <ant mode> [evaluate_time] wlan-get-antcfg wlan-scan-channel-gap <channel_gap_value> wlan-wmm-stat <bss_type> wlan-reset wlan-set-regioncode <region-code> wlan-get-regioncode wlan-11d-enable <sta/uap> <0/1> wlan-rssi-low-threshold <threshold_value> wlan-generate-wps-pin wlan-start-wps-pbc wlan-start-wps-pin <8 digit pin> wlan-wps-cancel wlan-start-ap-wps-pbc wlan-start-ap-wps-pin <8 digit pin> wlan-wps-ap-cancel wlan-get-signal wlan-set-bandcfg wlan-get-bandcfg wlan-enable-disable-htc <option> wlan-set-su <0/1> wlan-get-turbo-mode <STA/UAP> wlan-set-turbo-mode <STA/UAP> <mode> wlan-set-multiple-dtim <value> wlan-cloud-keep-alive <start/stop/reset> wlan_tcp_client dst_ip <dst_ip> src_port <src_port> dst_port <dst_port> wlan-set-country <country_code_str> wlan-set-country-ie-ignore <0/1> wlan-get-txpwrlimit <subband> wlan-set-chanlist wlan-get-chanlist wlan-set-txratecfg <sta/uap> <format> <index> <nss> <rate_setting> <autoTx_set> wlan-get-txratecfg <sta/uap> wlan-get-data-rate <sta/uap> wlan-get-pmfcfg wlan-uap-get-pmfcfg wlan-set-ed-mac-mode <interface> <ed_ctrl_2g> <ed_offset_2g> <ed_ctrl_5g> <ed_offset_5g> wlan-get-ed-mac-mode <interface> wlan-set-tx-omi <interface> <tx-omi> <tx-option> <num_data_pkts> wlan-set-toltime <value> wlan-set-rutxpwrlimit wlan-11ax-cfg <11ax_cfg> wlan-11ax-bcast-twt <dump/set/done> [<param_id> <param_data>] wlan-11ax-twt-setup <dump/set/done> [<param_id> <param_data>] wlan-11ax-twt-teardown <dump/set/done> [<param_id> <param_data>] wlan-11ax-twt-report ping [-s <packet_size>] [-c <packet_count>] [-W <timeout in sec>] <ipv4/ipv6 address> iperf [-s|-c <host>|-a|-h] [options] dhcp-stat wlan-hlr-cli <standard hlr cli options> wlan-read-gsm-triplets <imsi> <kc> <sres> <rand> UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 101 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms wlan-read-milenage <imsi> <ki> <opc> <amf> <sqn> ======================================== 3.8.1.2 Add network profile Before adding a network profile for Soft AP and Station mode, please check command usage for different EAP methods. # wlan-add Usage: For Station interface For DHCP IP Address assignment: wlan-add <profile_name> ssid <ssid> [wpa2 <psk/psk-sha256/ft-psk> <secret>] [mfpc <1> mfpr <0>] If using WPA2 security, set the PMF configuration as mentioned above. If using proactive key caching set pkc as 1, to disable set to 0(default), if okc is set this is not used. If using specific ciphers, set the group, pairwise and group mgmt using gc, pc and gmc options. supported ciphers: ccmp=0x10 supported group mgmt ciphers: aes_128_cmac=0x20 wlan-add <profile_name> ssid <ssid> <owe_only> mfpc 1 mfpr 1 If using OWE only security, always set the PMF configuration. NOTE: [og <"19 20 21">] is only supported in Micro-AP mode . wlan-add <profile_name> ssid <ssid> [wpa3 sae/ft-sae <secret> [sg <"19 20 21">] [pwe <0/1/2>] mfpc <1> mfpr <0/1>] If using WPA3 SAE security, always set the PMF configuration. wlan-add <profile_name> ssid <ssid> [wpa2 psk psk-sha256 <secret> wpa3 sae <secret>] [mfpc <1> mfpr <0>] If using WPA2/WPA3 Mixed security, set the PMF configuration as mentioned above. For static IP address assignment: wlan-add <profile_name> ssid <ssid> ip:<ip_addr>,<gateway_ip>,<netmask> [bssid <bssid>] [channel <channel number>] [wpa2 <psk/psk-sha256/ft-psk> <secret>] [owe_only] [wpa3 sae/ft-sae <secret>] [mfpc <0/1> mfpr <0/1>] For Micro-AP interface wlan-add <profile_name> ssid <ssid> ip:<ip_addr>,<gateway_ip>,<netmask> role uap [bssid <bssid>] [channel <channelnumber>] [wpa2 <psk/psk-sha256> <secret>] [wpa3 sae <secret> [sg <"19 20 21">] [pwe <0/1/2>] [tr <0/1/2/4/8>]] [ft-psk <secret>] [wpa3 ft-sae <secret>] [owe_only [og <"19 20 21">]] [mfpc <0/1>] [mfpr <0/1>] Note: Setting the channel value greater than or equal to 36 is mandatory, if UAP bandwidth is set to 80MHz. [capa <11ax/11ac/11n/legacy>] If Set channel to 0, set acs_band to 0 1. 0: 2.4GHz channel 1: 5GHz channel Not support to select dual band automatically. Error: invalid number of arguments UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 102 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 3.8.1.3 Station mode (connect to External AP) WPA3 Security NOTE: For WPA3 default mode is set to pwe 2 (both hunting-and-pecking loop and hash-to-element enabled) Usage for pwe and tr SAE mechanism for PWE derivation # 0 = hunting-and-pecking loop only (default without password identifier) # 1 = hash-to-element only (default with password identifier) # 2 = both hunting-and-pecking loop and hash-to-element enabled WPA3 SAE (R1) # wlan-add nxp_test_1 ssid WPA3_AP wpa3 sae 12345678 pwe 0 mfpc 1 mfpr 1 Added "nxp_test_1" WPA3 SAE (R3) # wlan-add nxp_test_1 ssid WPA3_AP wpa3 sae 12345678 pwe 1 mfpc 1 mfpr 1 Added "nxp_test_1" WPA3 SAE (R3), with SAE group 20,21 # wlan-add nxp_test_1 ssid WPA3_AP wpa3 sae 12345678 sg "19 20 21" pwe 1 mfpc 1 mfpr 1 Added "nxp_test_1" This section demonstrate how to connect to External AP with Enterprise security. NOTE: Here we make another RT as an External AP on which radius server is running. To generate own certificates please refer to the section 3.7.1.5. WPA2 Enterprise Security Use the following command to add the network profile to configure the device in station mode using EAPTLS method. Provide any profile name, external AP's SSID, User ID and Password to authenticate with the server in argument shown below: # wlan-add EapNet ssid EapNet_AP eap-tls id client1 key_passwd whatever Added "abc" Connect to the AP network using the saved network profile: # wlan-connect EapNet Connecting to network... Use 'wlan-stat' for current connection status. # app_cb: WLAN: authenticated to network app_cb: WLAN: connected to network Connected to following BSS: SSID = [EapNet_AP] IPv4 Address: [192.168.10.2] NOTE: Once connected to the AP the console output will show Client successfully connected to AP with ssid "EapNet_AP" and got ip address "192.168.10.2" from AP. Get signal information of connected External AP # wlan-get-signal BeaconLast RSSI -32 Beacon Average Data Last -32 -33 Data Average -33 SNR 58 58 57 57 NF -90 -90 -90 -90 Get PMKSA list # wlan-pmksa-list PMKSA list Index / AA / PMKID / expiration (in seconds) / opportunistic 1 d8:c0:a6:0f:d6:89 9ca541d20dcc1cbc3ae0834d54c816b4 43187 0 UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 103 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms To flush the PMKSA entries # wlan-pmksa-flush Flushed PMKSA cache WPA2 Station disconnection (from AP) Disconnect from the AP network profile: # wlan-disconnect ======================================== app_cb: WLAN: received event 9 ======================================== app_cb: disconnected Remove the saved network profile: # wlan-remove EapNet Removed "EapNet" 3.8.1.3.1 Channel State Information (CSI) The CSI feature provides a method to send information about channel properties from Wi-Fi firmware to Host periodically. Once the CSI information is generated by the firmware, it will forward the CSI record (CSI header + CSI data) on a separate path from the actual packet received by the firmware. The header for the CSI record is extracted from the actual packet received. NOTE: Define CONFIG_CSI macro in wifi_config.h to enable the feature. Set CSI config info Usage: # wlan-set-csi-param-header Error: invalid number of arguments Usage: wlan-set-csi-param-header <sta/uap> <csi_enable> <head_id> <tail_id> <chip_id> <band_config> <channel> <csi_monitor_enable> <ra4us> [csi_enable] :1/2 to Enable/Disable CSI [head_id, head_id, chip_id] are used to seperate CSI event records received from FW [Bandcfg] defined as below: Band Info - (00)=2.4GHz, (01)=5GHz t_u8 chanBand : 2; Channel Width - (00)=20MHz, (10)=40MHz, (11)=80MHz t_u8 chanWidth : 2; Secondary Channel Offset - (00)=None, (01)=Above, (11)=Below t_u8 chan2Offset : 2; Channel Selection Mode - (00)=manual, (01)=ACS, (02)=Adoption mode t_u8 scanMode : 2; [channel] : monitor channel number [csi_monitor_enable] : 1-csi_monitor enable, 0-MAC filter enable [ra4us] : 1/0 to Enable/DisEnable CSI data received in cfg channel with mac addr filter, not only RA is us or other # wlan-set-csi-param-header 1 66051 66051 170 0 6 1 1 The current csi_param is: csi_enable : 1 head_id : 66051 tail_id : 66051 csi_filter_cnt: 0 chip_id : 170 band_config : 0 channel : 6 csi_monitor_enable : 1 ra4us : 1 UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 104 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Set CSI filter Usage: # wlan-set-csi-filter Error: invalid number of arguments Usage : wlan-set-csi-filter <opt> <macaddr> <pkt_type> <type> <flag> opt : add/delete/clear/dump add : All options need to be filled in delete: Delete recent filter information clear : Clear all filter information dump : Dump csi cfg information Usage example : wlan-set-csi-filter add 00:18:E7:ED:2D:C1 255 255 0 wlan-set-csi-filter delete wlan-set-csi-filter clear wlan-set-csi-filter dump Issues the CSI command to Wi-Fi firmware wlan-csi-cfg Wi-Fi firmware receives the CSI packet, convert the CSI header based on the software definition, and passes it to the Host driver through the CSI event. The driver broadcasts the events with CSI header and data. # CSI user callback: Event CSI data **** Dump @ 2020F504 Len: 156 **** 27 00 cd ab 03 02 01 00 00 00 94 00 7c 05 32 6d 00 00 00 00 70 66 55 26 8a 6b 26 18 1d 56 65 0a cb 01 a3 d9 28 06 02 aa 00 00 00 00 1b 00 00 00 00 00 00 00 10 eb f8 e8 ea f8 ee 0a fc 11 07 03 03 00 02 04 07 07 0f 01 11 f5 07 e8 f4 e5 e2 f2 de 08 eb 1d 02 24 17 19 14 f2 05 ee fa f6 fb 02 06 06 12 f9 fc da e0 e8 d8 02 e2 1c fa 28 15 22 1d f3 0a e8 f8 ed f2 fb f9 07 05 06 09 fc 02 f2 f3 f3 ea 01 f0 13 03 1b 16 10 0b e8 f5 ea eb fd f5 0e 06 0b 00 00 00 00 03 02 01 00 ******** End Dump ******* Steps to get CSI data in STA mode Configure Ex-AP in 2.4GHz/5GHz with wpa2 psk security. Connect STAUT to Ex-AP. Enable CSI on STA: (bold 36 is the channel on which AP is present) #wlan-set-csi-param-header sta 1 66051 66051 170 1 36 0 1 Set CSI filter via below command: #wlan-set-csi-filter add <ext-AP's MAC address> 255 255 0 Start CSI #wlan-csi-cfg Disable CSI on STA #wlan-set-csi-param-header sta 2 66051 66051 170 1 36 0 1 Stop CSI #wlan-csi-cfg Steps to get CSI data in Soft AP mode Configure DUT in 2.4Ghz/5GHz with wpa2 psk security. Connect ext-STA to UAP. Enable CSI on UAP: (bold 36 is the channel on which AP is configured) UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 105 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms #wlan-set-csi-param-header uap 1 66051 66051 170 1 36 0 1 Set CSI filter #wlan-set-csi-filter add <ext-STA's MAC address> 255 255 0 Start CSI #wlan-csi-cfg Disable CSI: #wlan-set-csi-param-header uap 2 66051 66051 170 1 36 0 1 Stop CSI #wlan-csi-cfg 3.8.1.3.2 WPA3- Enterprise To use WPA3 Suite B or Suite B 192 bit enterprise security, add wpa3-sb or wpa3-sb-192 before EAP security type. Applicable for all EAP securities. WPA3 EAP TLS (Suite B) wlan-add EapNet ssid EapNet_AP wpa3-sb eap-tls id client2 key_passwd whatever mfpc 1 mfpr 1 WPA3 EAP (Suite B 192 bit) TLS wlan-add EapNet ssid EapNet_AP wpa3-sb-192 eap-tls id client4 key_passwd whatever mfpc 1 mfpr 1 TTLS wlan-add EapNet ssid EapNet_AP wpa3-sb-192 eap-ttls-mschapv2 aid Client id Client pass whatever key_passwd whatever mfpc 1 mfpr 1 gc 0x100 pc 0x100 gmc 0x1000 PEAP-v0-mschapv2 wlan-add EapNet ssid EapNet_AP wpa3-sb-192 eap-peap-mschapv2 ver 0 aid Client id Client pass whatever key_passwd whatever mfpc 1 mfpr 1 PEAP-v1-mschapv2 wlan-add EapNet ssid EapNet_AP wpa3-sb-192 eap-peap-mschapv2 ver 1 aid Client id Client pass whatever key_passwd whatever mfpc 1 mfpr 1 PEAP-v1-gtc wlan-add EapNet ssid EapNet_AP wpa3-sb-192 eap-peap-gtc ver 1 aid Client id Client pass whatever key_passwd whatever mfpc 1 mfpr 1 Connection Establish time Asymmetric crypto is supported for i.MX RT117x platforms while it is not supported for i.MX RT10xx platforms, so the initial connection time for WPA3 Enterprise RT10xx is high compared to RT117x. 3.8.1.3.3 Other Security options: OWE Always set mfpc and mfpr to 1 wlan-add oweNet ssid oweNet_AP owe_only mfpc 1 mfpr 1 WPS-PIN # wlan-start-wps-pin 96288863 Start WPS PIN session with 96288863 pin Info: ml1: WPS-PIN-ACTIVE WPS-PBC UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 106 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms # wlan-start-wps-pbc Info: ml1: WPS-PBC-ACTIVE # Info: ml1: SME: Trying to authenticate with d8:c0:a6:0f:d6:89 (SSID='NXPAP' freq=2437 MHz) Info: ml1: Trying to associate with d8:c0:a6:0f:d6:89 (SSID='NXPAP' freq=2437 MHz) Info: ml1: Associated with d8:c0:a6:0f:d6:89 AKA_PRIME_WPA2: wlan-add 2 ssid RR1 eap-aka-prime id 6555444333222111 pass 5122250214c33e723a5dd523fc145fc0:981d464c7c52eb6e5036234984ad0bcf:000000000123 EAP_SIM_WPA2: wlan-add abc ssid EAP eap-sim id 1232010000000000 pass 90dca4eda45b53cf0f12d7c9c3bc6a89:cb9cccc4b9258e6dca4760379fb82581:000000000123 EAP_AKA_WPA2: wlan-add 1 ssid EAP eap-aka id 0232010000000000 pass 90dca4eda45b53cf0f12d7c9c3bc6a89:cb9cccc4b9258e6dca4760379fb82581:000000000123 EAP_AKA_WPA3: wlan-add abc ssid Suite-B-192 wpa3-sb-192 eap-aka id 0232010000000000 pass 90dca4eda45b53cf0f12d7c9c3bc6a89:cb9cccc4b9258e6dca4760379fb82581:000000000123 mfpc 1 mfpr 1 gc 0x100 pc 0x100 gmc 0x1000 AKA_PRIME_WPA3: wlan-add 2 ssid Suite-B-192 wpa3-sb-192 eap-aka-prime id 6555444333222111 pass 5122250214c33e723a5dd523fc145fc0:981d464c7c52eb6e5036234984ad0bcf:000000000123 mfpc 1 mfpr 1 gc 0x100 pc 0x100 gmc 0x1000 EAP_SIM_WPA3: wlan-add abc ssid Suite-B-192 wpa3-sb-192 eap-sim id 1232010000000000 pass 90dca4eda45b53cf0f12d7c9c3bc6a89:cb9cccc4b9258e6dca4760379fb82581:000000000123 mfpc 1 mfpr 1 gc 0x100 pc 0x100 gmc 0x1000 FAST-GTC: wlan-add EapNet ssid EapNet_AP eap-fast-gtc aid client1 id user2 pass password2 key_passwd whatever mfpc 1 mfpr 0 FAST-mschapv2: wlan-add EapNet ssid EapNet_AP eap-fast-mschapv2 aid client1 id user2 pass password2 key_passwd whatever mfpc 1 mfpr 0 3.8.1.4 Soft AP mode Use the following command to add the network profile to configure the device in Enterprise AP mode. Use your AP's SSID, IP details, role, channel, security, user id and password in argument shown below. NOTE: To generate own certificates please refer to the section 3.7.1.5. WPA2 EAP-TLS # wlan-add EapNet ssid EapNet_AP ip:192.168.10.1,192.168.10.1,255.255.255.0 role uap channel 6 eap-tls id client1 id client2 id client3 id client4 key_passwd whatever Added "EapNet" Set ACS mode The Automatic Channel Selection (ACS) mode can be enabled while adding the profile using wlan-add command. When channel parameter is set as 0 then it enables ACS mode. UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 107 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Default value for ACS band is 0. <acs_band> usage # 0 = 2.4GHz # 1 = 5GHz AP with wpa2 psk security configured with 5 GHz ACS mode # wlan-add xyz ssid NXPAP ip:192.168.10.1,192.168.10.1,255.255.255.0 role uap channel 0 acs_band 1 wpa2 psk 12345678 AP with wpa2 psk security configured with 2.4 GHz ACS mode # wlan-add xyz ssid NXPAP ip:192.168.10.1,192.168.10.1,255.255.255.0 role uap channel 0 acs_band 0 wpa2 psk 12345678 Set Wi-Fi bandwidth The following command is used to set Wi-Fi bandwidth (20MHz or 40MHz): NOTE: Default bandwidth is set to 40MHz if not set by following command. NOTE: For 88W8801, default bandwidth is set to 20MHz and following command is not available. Command Usage: # wlan-set-uap-bandwidth Usage: wlan-set-uap-bandwidth <1/2/3> Error: Specify 1 to set bandwidth 20MHz or 2 for 40MHz or 3 for 80MHz Set bandwidth: # wlan-set-uap-bandwidth 1 bandwidth set successfully Start the AP using saved network profile: # wlan-start-network EapNet [wlcm] Warn: NOTE: uAP will automatically switch to the channel that station is on. Info: ua2: interface state UNINITIALIZED->COUNTRY_UPDATE ======================================== app_cb: WLAN: received event 15 ======================================== app_cb: WLAN: UAP Started ======================================== Soft AP "EapNet_AP" started successfully ======================================== DHCP Server started successfully ======================================== Check created network details # wlan-info Station not connected uAP started as: "EapNet" SSID: EapNet_AP BSSID: D8:C0:A6:0F:D6:89 mode: 802.11AC channel: 6 role: uAP security: WPA2 Enterprise EAP-TLS wifi capability: 11ac user configure: 11ac UM11442 User manual IPv4 Address address: STATIC IP: gateway: netmask: 192.168.10.1 192.168.10.1 255.255.255.0 All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 108 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms dns1: dns2: 0.0.0.0 0.0.0.0 IPv6 Addresses Link-Local : FE80::DAC0:A6FF:FE0F:D689 (Tentative) Connect the wireless client to the AP just created, EapNet_AP. The logs below can be observed once the Client is associated successfully: # app_cb: WLAN: UAP a Client Connected ======================================== Client => 50:26:EF:A2:F1:26 Connected with Soft AP ======================================== Get the associated clients list: # wlan-get-uap-sta-list Number of STA = 1 STA 1 information: ===================== MAC Address: 20:4E:F6:EC:1F:27 Power mfg status: active Rssi : -69 dBm Get the IP and MAC information for the associated clients: # dhcp-stat DHCP Server Lease Duration : 86400 seconds Client IP Client MAC 192.168.10.2 20:4E:F6:EC:1F:27 SSID broadcast configuration: User can control SSID IE configuration using this command. It has 3 modes: 0: When user wants to enable SSID broadcast (default) 1: When user wants to disable SSID name(ASCII 0) and SSID length (Length = 0) 2: When user wants to disable only the SSID name (ASCII 0) Command usage: # wlan-set-uap-hidden-ssid Usage: wlan-set-uap-hidden-ssid <0/1/2> Error: 0: broadcast SSID in beacons. 1: send empty SSID (length=0) in beacons. 2: clear SSID (ACSII 0), but keep the original length Set SSID broadcast control # wlan-set-uap-hidden-ssid 1 SSID broadcast control set successfully 3.8.1.4.1 Other Security options WPA3 Security Note: Default value of pwe is 0 for Soft AP Default value of tr is 0 for Soft AP WPA3 SAE (R1) wlan-add xyz ssid NXPAP ip:192.168.10.1,192.168.10.1,255.255.255.0 role uap channel 6 wpa3 sae 12345678 pwe 0 mfpc 1 mfpr 1 WPA3 SAE (R3) wlan-add xyz ssid NXPAP ip:192.168.10.1,192.168.10.1,255.255.255.0 role uap channel 6 wpa3 sae 12345678 pwe 1 mfpc 1 mfpr 1 UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 109 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms WPA3 SAE (R3), with capability set to 11AX wlan-add xyz ssid NXPAP ip:192.168.10.1,192.168.10.1,255.255.255.0 role uap channel 6 wpa3 sae 12345678 pwe 1 mfpc 1 mfpr 1 capa 11ax WPA3 SAE (R3), Transition Disable set wlan-add xyz ssid NXPAP ip:192.168.10.1,192.168.10.1,255.255.255.0 role uap channel 6 wpa3 sae 12345678 pwe 1 tr 1 mfpc 1 mfpr 1 WPA3 SAE (R3), SAE group 20, 21 wlan-add xyz ssid NXPAP ip:192.168.10.1,192.168.10.1,255.255.255.0 role uap channel 6 wpa3 sae 12345678 sg "19 20 21" pwe 1 mfpc 1 mfpr 1 OWE Always set mfpc and mfpr to 1. wlan-add oweNet ssid oweNet_AP ip:192.168.10.1,192.168.10.1,255.255.255.0 role uap channel 36 owe_only mfpc 1 mfpr 1 WPA3 Enterprise To use WPA3 Suite B or Suite B 192 bit enterprise security, add wpa3-sb or wpa3-sb-192 before EAP security type. Applicable for all EAP securities. WPA3 EAP TLS (Suite B) wlan-add EapNet ssid EapNet_AP ip:192.168.10.1,192.168.10.1,255.255.255.0 role uap wpa3-sb eap-tls id client1 id client2 id client3 id client4 key_passwd whatever mfpc 1 mfpr 1 WPA3 EAP (Suite B 192 bit) TLS wlan-add EapNet ssid EapNet_AP ip:192.168.10.1,192.168.10.1,255.255.255.0 role uap wpa3-sb-192 eap-tls id client1 id client2 id client3 id client4 key_passwd whatever mfpc 1 mfpr 1 TTLS wlan-add EapNet ssid EapNet_AP ip:192.168.10.1,192.168.10.1,255.255.255.0 role uap channel 36 wpa3-sb-192 eap-ttls-mschapv2 aid Client id Client pass whatever key_passwd whatever mfpc 1 mfpr 1 gc 0x100 pc 0x100 gmc 0x1000 PEAP-v0-mschapv2 wlan-add EapNet ssid EapNet_AP ip:192.168.10.1,192.168.10.1,255.255.255.0 role uap channel 36 wpa3-sb-192 eap-peap-mschapv2 ver 0 aid Client id Client pass whatever key_passwd whatever mfpc 1 mfpr 1 PEAP-v1-mschapv2 wlan-add EapNet ssid EapNet_AP ip:192.168.10.1,192.168.10.1,255.255.255.0 role uap channel 36 wpa3-sb-192 eap-peap-mschapv2 ver 1 aid Client id Client pass whatever key_passwd whatever mfpc 1 mfpr 1 PEAP-v1-gtc wlan-add EapNet ssid EapNet_AP ip:192.168.10.1,192.168.10.1,255.255.255.0 role uap channel 36 wpa3-sb-192 eap-peap-gtc ver 1 aid Client id Client pass whatever key_passwd whatever mfpc 1 mfpr 1 WPS (Wi-Fi Protected Setup) There are two primary approaches to network setup within Wi-Fi Protected Setup: push-button and PIN entry. WPS-PIN UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 110 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms # wlan-add abc ssid NXPAP ip:192.168.81.100,192.168.81.100,255.255.255.0 role uap channel 6 wpa2 psk 12345678 Added "abc" # wlan-start-network abc [wlcm] Warn: NOTE: uAP will automatically switch to the channel that station is on. Info: ua2: interface state UNINITIALIZED->COUNTRY_UPDATE # ======================================== app_cb: WLAN: received event 15 ======================================== app_cb: WLAN: UAP Started ======================================== Soft AP "NXPAP" started successfully ======================================== DHCP Server started successfully ======================================== Info: ua2: interface state COUNTRY_UPDATE->ENABLED Info: : AP-ENABLED # wlan-generate-wps-pin WPS PIN is: 96288863 # wlan-start-ap-wps-pin 96288863 Start AP WPS PIN session with 96288863 pin [uap] Warn: Overwriting previous configuration WPS-PBC wlan-add abc ssid NXPAP ip:192.168.81.100,192.168.81.100,255.255.255.0 role uap channel 6 wpa2 12345678 # wlan-start-network abc # wlan-start-ap-wps-pbc add [uap] Warn: Overwriting previous configuration Info: : WPS-PBC-ACTIVE EAP-Sim, AKA and AKA-prime For eap-sim/eap-aka/eap-aka-prime use command read_gsm_triplets to add GSM authentication triplets and read_milenage to add Milenage keys and hlr_cli to start hlr_auc_gw Usage: wlan-read-gsm-triplets <imsi> <kc> <sres> <rand> read_milenage <imsi> <ki> <opc> <amf> <sqn> hlr_cli <standard hlr cli options> Example: # wlan-read-gsm-triplets 234567898765432 A0A1A2A3A4A5A6A7 D1D2D3D4 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # wlan-read-gsm-triplets 234567898765432 B0B1B2B3B4B5B6B7 E1E2E3E4 BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB # wlan-read-gsm-triplets 234567898765432 C0C1C2C3C4C5C6C7 F1F2F3F4 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 111 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms # read_milenage 232010000000000 90dca4eda45b53cf0f12d7c9c3bc6a89 cb9cccc4b9258e6dca4760379fb82581 61df 000000000000 # read_milenage 555444333222111 5122250214c33e723a5dd523fc145fc0 981d464c7c52eb6e5036234984ad0bcf c3ab 16f3b3f70fc1 # wlan-hlr-cli Listening for requests on /tmp/hlr_auc_gw.sock SIM_WPA2: wlan-add abc ssid EAP ip:192.168.10.1,192.168.10.1,255.255.255.0 role uap channel 36 eap-sim AKA_WPA2: wlan-add abc ssid EAP ip:192.168.10.1,192.168.10.1,255.255.255.0 role uap channel 36 eap-aka AKA_prime_WPA2: wlan-add abc ssid EAP ip:192.168.10.1,192.168.10.1,255.255.255.0 role uap channel 36 eap-aka-prime EAP_AKA_WPA3: wlan-add abc ssid EAP wpa3-sb-192 ip:192.168.10.1,192.168.10.1,255.255.255.0 role uap channel 36 eap-aka mfpc 1 mfpr 1 gc 0x100 pc 0x100 gmc 0x1000 AKA_PRIME_WPA3: wlan-add abc ssid EAP wpa3-sb-192 ip:192.168.10.1,192.168.10.1,255.255.255.0 role uap channel 36 eap-aka-prime mfpc 1 mfpr 1 gc 0x100 pc 0x100 gmc 0x1000 EAP_SIM_WPA3: wlan-add abc ssid EAP wpa3-sb-192 ip:192.168.10.1,192.168.10.1,255.255.255.0 role uap channel 36 eap-sim mfpc 1 mfpr 1 gc 0x100 pc 0x100 gmc 0x1000 FAST-GTC: wlan-add EapNet ssid EapNet_AP ip:192.168.10.1,192.168.10.1,255.255.255.0 role uap eap-fast-gtc client1 id user1 pass password1 id user2 pass password2 id user3 pass password3 id user4 pass password4 key_passwd whatever pac_opa_enc_key 000102030405060708090a0b0c0d0e0f a_id 0123456789abcd01 fast_prov 2 mfpc 1 mfpr 0 FAST-mschapv2: wlan-add EapNet ssid EapNet_AP ip:192.168.10.1,192.168.10.1,255.255.255.0 role uap eap-fast-mschapv2 aid client1 id user1 pass password1 id user2 pass password2 id user3 pass password3 id user4 pass password4 key_passwd whatever pac_opa_enc_key 000102030405060708090a0b0c0d0e0f a_id 0123456789abcd01 fast_prov 2 mfpc 1 mfpr 0 Stop Soft AP # wlan-stop-network ======================================== app_cb: WLAN: received event 19 ======================================== app_cb: WLAN: UAP Stopped ======================================== Soft AP "EapNet_AP" stopped successfully ======================================== DHCP Server stopped successfully UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 112 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms ======================================== 3.8.1.5 Certificates/Key configurations for WPA2/3 Enterprise For enterprise security it is mandatory to have a radius server (hostapd radius server) and server/client certificates. This section describes how user can configure their own CA certificate, Client/Server certificate, Client/Server private key for WPA2/3 Enterprise. RT SDK supports certificates in .h format and already configured server and client certificates available at the location <SDK_PATH>/middleware/wifi_nxp/certs. User need to replace ca-cert.h, client-cert.h and client-key.h files with newly created files. Follow below steps for certificate conversion. NOTE: Below commands should be executed from any Linux host where openssl and xxd are installed. Convert PEM certificate to DER certificate: openssl x509 -inform pem -in ca.pem -outform der -out ca-cert.der openssl x509 -inform pem -in client.pem -outform der -out client-cert.der openssl x509 -inform pem -in server.pem -outform der -out server-cert.der convert a PEM private key to a DER private key: openssl rsa -inform pem -in client.key -outform der -out client-key.der openssl rsa -inform pem -in server.key -outform der -out server-key.der UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 113 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Convert DER certificates and privet key to Header files: ca-cert xxd -i ca-cert.der ca-cert.h change array name and size inside .h as below: const unsigned char ca_der[] unsigned int ca_der_len client-cert xxd -i client-cert.der client-cert.h change array name and size inside .h as below: const unsigned char client_der[] unsigned int client_der_len client-key xxd -i client-key.der client-key.h change array name and size inside .h as below: const unsigned char client_key_der[] unsigned int client_key_der_len 3.8.1.6 Independent Reset (IR) The IR feature intended to be used to reset Wi-Fi and Bluetooth firmware, when it encounters a firmware fatal error. The following commands are used to trigger firmware fatal error manually to verify the feature. NOTE: Define CONFIG_WIFI_IND_DNLD and CONFIG_WIFI_IND_RESET macros in wifi_config.h to enable the feature. This feature is only enabled for i.MX RT1060 EVKC and RT1170 EVKB Following commands are used to reset Wi-Fi and Bluetooth firmware over SDIO interface. Default mode set to in-band. Usage : # wlan-set-indrstcfg Usage : wlan-set-indrstcfg <ir_mode> [gpio_pin] ir_mode : 0 -- Disable 1 -- Enable out band reset, disable in band 2 -- Enable in band, disable out band gpio_pin : 255 -- Default pin for reset any other number for changing the gpio for reset. Example : wlan-set-indrstcfg 1 255 : Set default pin as reset pin wlan-set-indrstcfg 0 : Disable the independent reset wlan-set-indrstcfg 2 : Enable in band reset mode Set via In-band In-Band Independent Reset(IB-IR) sends FW module reset signal over SDIO interface itself. wlan-set-indrstcfg 2 Get current mode # wlan-get-indrstcfg Independent Reset Mode = In Band Trigger manual FW crash using independent reset command # wlan-independent-reset [wifi] Warn: Command response timed out. command 0x8b, len 12, seqno 0x0 Independent reset success UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 114 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Set via Out-of-band Out of Band Independent Reset(OoB-IR) feature allows user to reset FW module over external signal(GPIO) rather than the default SDIO interface. Note: For 1XK and 1ZM M.2 module connect Fly-Wire between J16.1 and J108.4 of i.MX RT1060EVKC, J108 is routed on M2.P48 which internally routed on IR GPIO[15] of Controller 1XK/1ZM. For 2EL-M2, No flywire connection required. GPIO for 2EL is 1 and for 1XK/1ZM it is 14 wlan-set-indrstcfg 1 1 Trigger manual FW crash using independent reset command # wlan-independent-reset UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 115 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 3.8.1.7 Wi-Fi easy connect (DPP) The Wi-Fi easy connect feature provides a simple and secure method to provision and connect Wi-Fi devices to a network without entering a password. NOTE: This feature is only supported on IW612. Define macro CONFIG_WPA_SUPP_DPP in wifi_config.h to enable this feature This section describes: · The test procedure of Wi-Fi easy connect (DPP) using CLI commands supported in wifi_wpa_supplicant sample app · Configuration of Wi-Fi devices in STA and AP modes · Connection of STA and AP devices using DPP DPP QR code test setup: · DUT (STA) act as Enrollee, Initiator(Authentication) · Device1 (External STA) act as configurator · Device2 (External AP) acts as responder and enrollee Step 1: Start the Soft AP on Device2 Verify mac # wlan-mac MAC address STA MAC Address: 00:50:43:02:11:01 uAP MAC Address: 02:50:43:02:12:01 Set soft AP mac # wlan-set-mac 00:50:43:02:12:01 # wlan-add testAP ssid DPPNET01 ip:192.168.10.1,192.168.10.1,255.255.255.0 role uap channel 11 wpa2 psk ThisIsDppPassphrase Added "testAP" # wlan-start-network testAP [wlcm] Warn: NOTE: uAP will automatically switch to the channel that station is on. ua2: interface state UNINITIALIZED->COUNTRY_UPDATE ml1: CTRL-EVENT-REGDOM-CHANGE init=USER type=COUNTRY alpha2=WW # ua2: interface state COUNTRY_UPDATE->ENABLED : AP-ENABLED ======================================== app_cb: WLAN: received event 16 ======================================== app_cb: WLAN: UAP Started ======================================== Soft AP "DPPNET01" started successfully ======================================== DHCP Server started successfully ======================================== Step 2: Generate QR code on Device2 # wlan-dpp-bootstrap-gen "type=qrcode chan=81/11 mac= 00:50:43:02:12:01" UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 116 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms bootstrap generate id = 1 NOTE: MAC address of Device2 should input in above command and returned value "1" is bootstrap info id which require to get QR code string Get QR code URI # wlan-dpp-bootstrap-get-uri 1 Bootstrapping QR Code URI: DPP:C:81/11;M:a0cdf377e71c;V:3;K:MDkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDIgADMgoJ7zgcGN PpoWKZtaapts0wBjJLUFTL9dgxqj3nb68=;; NOTE: This QR code will be use on Device1 with command wlan-dpp-qr-code. Step 3: Configure Device1 as configurator Set MAC address # wlan-set-mac 00:50:43:02:11:03 Add as a configurator # wlan-dpp-configurator-add conf_id = 1 Step 4: Authenticate Device1 with Device2 wlan-dpp-qr-code DPP:C:81/11;M:a0cdf377e71c;V:3;K:M... DPP qr code id = 1 NOTE: On successfully adding QR Code, a bootstrapping info id is returned as shown 1 in above command and should input in below command DPP_AUTH_INIT # wlan-dpp-auth-init " peer=1 conf=ap-dpp ssid=4450504e45543031 configurator=1" [wlcm] Warn: ieee ps not enabled yet: 0 [wlcm] Warn: deep sleep ps not enabled yet: 0 ml1: DPP-TX dst=a0:cd:f3:77:e7:1c freq=2462 type=0 DPP Auth Init OK! # ml1: DPP-TX-STATUS dst=a0:cd:f3:77:e7:1c freq=2462 result=SUCCESS ml1: DPP-RX src=a0:cd:f3:77:e7:1c freq=2462 type=1 ml1: DPP-AUTH-DIRECTION mutual=0 ml1: DPP-TX dst=a0:cd:f3:77:e7:1c freq=2462 type=2 ml1: DPP-TX-STATUS dst=a0:cd:f3:77:e7:1c freq=2462 result=SUCCESS ml1: DPP-AUTH-SUCCESS init=1 ml1: DPP-CONF-REQ-RX src=a0:cd:f3:77:e7:1c ml1: DPP-RX src=a0:cd:f3:77:e7:1c freq=2462 type=11 ml1: DPP-CONF-SENT NOTE: ssid should be hex string, here ssid=4450504e45543031 is hex string of DPPNET01 Output on Device2 : DPP-RX src=a0:cd:f3:77:e4:36 freq=2462 type=0 : DPP-TX dst=a0:cd:f3:77:e4:36 freq=2462 type=1 : DPP-TX-STATUS dst=a0:cd:f3:77:e4:36 result=SUCCESS : DPP-RX src=a0:cd:f3:77:e4:36 freq=2462 type=2 : DPP-AUTH-SUCCESS init=0 : GAS-QUERY-START addr=a0:cd:f3:77:e4:36 dialog_token=0 freq=2462 : GAS-QUERY-DONE addr=a0:cd:f3:77:e4:36 dialog_token=0 freq=2462 status_code=0 result=SUCCESS UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 117 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms : DPP-CONF-RECEIVED : DPP-CONFOBJ-AKM dpp : DPP-CONFOBJ-SSID DPPNET01 : DPP-CONNECTOR eyJ0eXAiOiJkcHBDb24iLCJraWQiOiJ5dXhXNEFEVzdEcEowazhDbUVtenVmZzN5ZldtTW5lS1pVamF rWXRXTjFJIiwiYWxnIjoiRVMyNTYifQ.eyJncm91cHMiOlt7Imdyb3VwSWQiOiIqIiwibmV0Um9sz : DPP-C-SIGN-KEY 3039301306072a8648ce3d020106082a8648ce3d03010703220002939ea2def528cf4556c737f36 8bfb4346aa3ef4a86c836c301d036c5394e3925 : DPP-NET-ACCESS-KEY 307702010104205d7f4e0e0723ae7d4998115b73a00b5ed31e3da542ef8da3ab735698884a7f46a 00a06082a8648ce3d030107a14403420004341b65763b3fafb301587fd383cdd8f2fa862 : DPP-TX dst=a0:cd:f3:77:e4:36 freq=2462 type=11 : DPP-TX-STATUS dst=a0:cd:f3:77:e4:36 result=SUCCESS Step 5: Generate QR code on Device1 (configurator) # wlan-dpp-configurator-params " conf=sta-dpp ssid=<hex_ascii> configurator=1" NOTE: space character exists between " and conf. # wlan-dpp-bootstrap-gen "type=qrcode chan=81/11 mac=A0:CD:F3:77:E4:36" bootstrap generate id = 2 # wlan-dpp-bootstrap-get-uri 2 Bootstrapping QR Code URI: DPP:C:81/11;M:a0cdf377e436;V:3;K:MDkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDIgACHsnUedxM3b Gf6rXR0hETPAebTy8hHvKR1CRb1D6QqfA=;; NOTE: This QR code will be use on DUT with command DPP_QR_CODE. Step 6: Put Device1 in listening mode on specified channel # wlan-dpp-listen "2462 role=configurator" [wlcm] Warn: ieee ps not enabled yet: 0 [wlcm] Warn: deep sleep ps not enabled yet: 0 DPP Listen OK! Step 7: Authenticate DUT(STA) on Device1(STA) # wlan-set-mac 00:50:43:02:11:02 # wlan-dpp-qr-code DPP:C:81/11;M:a0cdf377e436;V:3;K:... DPP qr code id = 1 NOTE: On successfully adding QR Code, a bootstrapping info id is returned as shown 1 in above command and should input in below command DPP_AUTH_INIT # wlan-dpp-auth-init " peer=1 role=enrollee" Successful connection between DUT (STA) and Device2 (AP) can be verify using ping command. 3.8.1.8 wlan-cloud-keep-alive The cloud keep alive feature provides a method to send keep-alive packets from Wi-Fi to cloud server periodically. In Host suspend state, Wi-Fi firmware will send keep-alive packets to cloud server periodically. For every keep-alive packet sent, firmware will receive the ACK from cloud server, if no ACK from server on 3 packets continuously, it indicates keep alive failure. UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 118 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms This section describes: · The test procedure of cloud keep alive (TCP keep alive) using CLI commands on IW612 with i.MX RT1170 EVKB board · Configuration of keep-alive parameters (TCP/IP header info. etc.) in Wi-Fi firmware for WoWLAN. Test Setup: · DUT act as STA · Configure external AP with open security · Cloud server running in AP backend · Connect probe between pin 2 of J9 port (on RT1170 EVKB) with HD3 GPIO 17 (on Murata uSD M.2) using probe. Step 1: Configure DUT in STA mode # wlan-add abc ssid ASUS_2G Added "abc" Step 2: Connect to External AP # wlan-connect abc Connecting to network... Use 'wlan-stat' for current connection status. # ml1: SME: Trying to authenticate with 7c:10:c9:02:da:48 (SSID='ASUS_2G' freq=2412 MHz) ml1: Trying to associate with 7c:10:c9:02:da:48 (SSID='ASUS_2G' freq=2412 MHz) ml1: Associated with 7c:10:c9:02:da:48 ======================================== app_cb: WLAN: received event 1 ======================================== app_cb: WLAN: authenticated to network ml1: CTRL-EVENT-CONNECTED - Connection to 7c:10:c9:02:da:48 completed [id=0 id_str=] ml1: CTRL-EVENT-SUBNET-STATUS-UPDATE status=0 ======================================== app_cb: WLAN: received event 0 ======================================== app_cb: WLAN: connected to network Connected to following BSS: SSID = [ASUS_2G] IPv4 Address: [192.168.0.123] Step 3: Start server in AP backend Step 4: Run cloud keep alive command on DUT Command Usage: # wlan-cloud-keep-alive start dst_mac <dst_mac> dst_ip <dst_ip> dst_port <dst_port> Table 20: cloud keep alive command usage Command Parameters Description <dst_mac> Destination MAC address <dst_ip> Destination IP <dst_port> Destination port # wlan-cloud-keep-alive start id 0 dst_mac a4:fc:77:49:81:e7 dst_ip 192.168.0.174 dst_port 9526 UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 119 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Step 5: Make TCP connection # wlan_tcp_client dst_ip 192.168.0.174 src_port 54236 dst_port 9526 Step 6: Verify the TCP-connection on sniffer Step 7: Add arp entry on AP backend. arp -s <STAUT ip address> <STAUT mac address> Step 8: Run host-sleep command (16 is for all ARP Broadcast Condition wherein DUT should only wakeup on Broadcast ping) # wlan-host-sleep 1 wowlan 16 Step 9: Put HOST on suspend state # mcu-suspend Once the DUT entered into sleep state, following packets can be observed on sniffer Step 10: Stop or reset cloud keep-alive connection #wlan-cloud-keep-alive stop OR #wlan-cloud-keep-alive reset 3.8.1.9 Wireless Location Service (WLS) using IEEE 802.11mc and IEEE 802.11az WLS used to measure distance between two devices using Round Trip time of Flight(TOF) of RF signals. It meant to operate within Wi-Fi infrastructure to deliver precise location determination up to 1 to 2 meter ranging accuracy. This feature is based on the Fine Timing Measurement (FTM) protocol and enables a WiFi station (STA) to estimate its distance relative to one or more fixed position Wi-Fi access points (APs) in the network. This section explains the steps for a STA to use Wi-Fi LocationTM to measure the distance from a single fixed position AP using the IEEE 802.11mc or 802.11az standard. In addition, both 802.11mc and 802.11az support the following two modes: Unassociated: Initiator (STA) and Responder (AP) are not connected. Both take measurements given the MAC address and channel. Associated: Initiator (STA) and Responder (AP) are connected and take measurements. NOTE: Define CONFIG_11MC, CONFIG_11AZ, CONFIG_CSI, and CONFIG_WLS_CSI_PROC to enable the feature. UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 120 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 3.8.1.9.1 IEEE 802.11mc This is known as enhanced distributed channel access (EDCA) ranging. The distance is measured during the FTM session. NOTE: EDCA 802.11mc ranging is supported as a legacy mode. Configuration commands and usage: # wlan-civ-cfg This command used to set CIVC information configuration, which means user's civil information i.e address, country etc.. Usage: wlan-civ-cfg civ_req <civ_req> loc_type <loc_type> country_code <country_code> addr_type <addr_type> civ_req: 0 or 1 loc_type: 1 country_code: 0 for USA addr_type: 22 Example: wlan-civ-cfg civ_req 1 loc_type 1 country_code 0 addr_type 22 # wlan-loc-cfg This command used to set global user location Usage: wlan-loc-cfg lci_req <lci request> latit <latitude> longi <longitude> altit <altitude> lat_uncert <latitude uncertainity> lon_uncert <longitude uncertainity> alt_uncert <altitude uncertainity> lci_req: 0 or 1 latitude: -180.0 to 180.0 longitude: -180.0 to 180.0 altitude: -180.0 to 180.0 latitude uncertainity: 0 to 255 longitude uncertainity: 0 to 255 altitude uncertainity: 0 to 255 Example: wlan-loc-cfg lci_req 1 latit -111.111 longi 222.222 altit 33.333 lat_uncert 1 lon_uncert 2 alt_uncert 3 # wlan-11mc-nego-cfg This command used to configure 11mc negotiation parameters. Usage: wlan-11mc-nego-cfg burst_dur <burst_dur> min_delta <min_delta> asap <asap> ftm_per_burst <ftm_per_burst> BW <bw> burst_period <burst_period> burst_dur: 2 to 11 min_delta: 1 to 63 asap: 0 or 1 ftm_per_burst: 2 to 10 BW: 9 to 13 burst_period: 1 to 10 Example: wlan-11mc-nego-cfg burst_dur 11 min_delta 60 asap 1 ftm_per_burst 5 BW 13 burst_period 10 # wlan-ftm-ctrl This command used to start and stop FTM session UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 121 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Usage: wlan-ftm-ctrl <action> loop_cnt <count> channel <channel> mac <peer_mac> action: 1: Start non-secure 11mc/11az FTM with associated Peer AP 2: Stop FTM session 3: Start secure 11az FTM with associated Peer AP 4: Start non-secure 11az/11mc FTM with unassoc Peer 5: Start secure 11az FTM with unassociated & pre-authenticated Peer loop_cnt: number of ftm sessions to run repeatedly (default:1, 0:non-stop, n:times>) channel: Channel on which FTM must be started mac: Mac address of the peer with whom FTM session is required Example: Run non-secure FTM session: wlan-ftm-ctrl 1 loop_cnt 1 channel 36 mac 00:50:43:20:bc:44 Runs secure 11az FTM session: wlan-ftm-ctrl 3 loop_cnt 1 channel 36 mac 00:50:43:20:bc:44 Runs non-secure FTM session with unassoc peer until user terminate: wlan-ftm-ctrl 4 loop_cnt 1 channel 36 mac 00:50:43:20:bc:44 Runs Secure FTM session with unassociated Peer AP: wlan-ftm-ctrl 5 loop_cnt 1 channel 36 mac 00:50:43:20:bc:44 Stop the FTM session: wlan-ftm-ctrl 2 Output: # wlan-civ-cfg civ_req 1 loc_type 1 country_code 0 addr_type 22 # wlan-loc-cfg lci_req 1 latit -111.111 longi 222.222 altit 33.333 lat_uncert 1 lon_uncert 2 alt_uncert 3 # wlan-11mc-nego-cfg burst_dur 11 min_delta 60 asap 1 ftm_per_burst 5 BW 13 burst_period 10 # wlan-ftm-ctrl 1 loop_cnt 1 channel 44 mac A2:CD:F3:77:E5:70 FTM Session Complete: ===================== Average RTT: 63633431 ns Average Clockoffset:34484 ns Distance: 5.172600 meters 3.8.1.9.2 IEEE 802.11az This is known as Next Generation Positioning. Configuration commands and usage: # wlan-11az-rang-cfg Usage: wlan-11az-rang-cfg <protocol> format_bw <format_bw> num_measurements <num_measurements> measurement_freq <measurement_freq> i2r_sts <i2r_sts> r2i_sts <r2i_sts> i2r_lmr <i2r_lmr> protocol: 1 format_bw: 0 to 2 num_measurements: 1 to 10 measurement_freq: 1 to 10 i2r_sts: 0/1 - Num of antennas: 0=>1 antenna and 1=>2 antennas r2i_sts: 0/1 - Num of antennas: 0=>1 antenna and 1=>2 antennas i2r_lmr: 0 never, 1 always, 2 up to RSTA Example: wlan-11az-rang-cfg 1 format_bw 2 num_measurements 5 measurement_freq 4 i2r_sts 0 r2i_sts 0 i2r_lmr 0 UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 122 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms # wlan-ftm-ctrl Usage: wlan-ftm-ctrl <action> loop_cnt <count> channel <channel> mac <peer_mac> action: 1: Start non-secure 11mc/11az FTM with associated Peer AP 2: Stop FTM session 3: Start secure 11az FTM with associated Peer AP 4: Start non-secure 11az/11mc FTM with unassoc Peer 5: Start secure 11az FTM with unassociated & pre-authenticated Peer loop_cnt: number of ftm sessions to run repeatedly (default:1, 0:non-stop, n:times>) channel: Channel on which FTM must be started mac: Mac address of the peer with whom FTM session is required Example: Run non-secure FTM session: wlan-ftm-ctrl 1 loop_cnt 1 channel 36 mac 00:50:43:20:bc:44 Runs secure 11az FTM session: wlan-ftm-ctrl 3 loop_cnt 1 channel 36 mac 00:50:43:20:bc:44 Runs non-secure FTM session with unassoc peer until user terminate: wlan-ftm-ctrl 4 loop_cnt 1 channel 36 mac 00:50:43:20:bc:44 Runs Secure FTM session with unassociated Peer AP: wlan-ftm-ctrl 5 loop_cnt 1 channel 36 mac 00:50:43:20:bc:44 Stop the FTM session: wlan-ftm-ctrl 2 Output: # wlan-11az-rang-cfg 1 format_bw 2 num_measurements 5 measurement_freq 4 i2r_sts 0 r2i_sts 0 i2r_lmr 0 # wlan-ftm-ctrl 3 loop_cnt 1 channel 44 mac A2:CD:F3:77:E5:70 On giving the above commands, following output should be displayed on console: FTM Session Complete: ===================== Average RTT: 63633431 ns Average Clockoffset:34484 ns Distance: 5.172600 meters 3.8.1.10 WLAN offload feature In this feature host can go in low power mode and FW will handle the reply (without waking up the host) to the configured frames like ARP, NS frame, TCP keepalive frames. 3.8.1.10.1 ARP Offload For ARP offload, steps are as follows: Step 1: Configure DUT in STA mode # wlan-add abc ssid ASUS_2G Added "abc" Step 2: Connect to External AP # wlan-connect abc Connecting to network... Use 'wlan-stat' for current connection status. # ml1: SME: Trying to authenticate with 7c:10:c9:02:da:48 (SSID='ASUS_2G' freq=2412 MHz) ml1: Trying to associate with 7c:10:c9:02:da:48 (SSID='ASUS_2G' freq=2412 MHz) UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 123 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms ml1: Associated with 7c:10:c9:02:da:48 ======================================== app_cb: WLAN: received event 1 ======================================== app_cb: WLAN: authenticated to network ml1: CTRL-EVENT-CONNECTED - Connection to 7c:10:c9:02:da:48 completed [id=0 id_str=] ml1: CTRL-EVENT-SUBNET-STATUS-UPDATE status=0 ======================================== app_cb: WLAN: received event 0 ======================================== app_cb: WLAN: connected to network Connected to following BSS: SSID = [ASUS_2G] IPv4 Address: [192.168.0.123] Step 3: Configure auto arp offload feature on DUT using below command # wlan-auto-arp Step 4: Configure host-sleep params on DUT using below command (For wlan-host-sleep option please refer section 3.1.5.10) # wlan-host-sleep 1 wowlan 1 Step 5: Put HOST on suspend state # mcu-suspend Step 6: Run arping to DUT from AP backend. One or more than one arp response should be seen from DUT after sending broadcast arping. DUT should not wakeup. 3.8.1.10.2 ARP Offload For NS(Neighbor Solicitation) offload, steps are as follows: Step 1: Configure DUT in STA mode # wlan-add abc ssid ASUS_2G Added "abc" Step 2: Connect to External AP # wlan-connect abc Connecting to network... Use 'wlan-stat' for current connection status. # ml1: SME: Trying to authenticate with 7c:10:c9:02:da:48 (SSID='ASUS_2G' freq=2412 MHz) ml1: Trying to associate with 7c:10:c9:02:da:48 (SSID='ASUS_2G' freq=2412 MHz) ml1: Associated with 7c:10:c9:02:da:48 ======================================== app_cb: WLAN: received event 1 ======================================== app_cb: WLAN: authenticated to network ml1: CTRL-EVENT-CONNECTED - Connection to 7c:10:c9:02:da:48 completed [id=0 id_str=] ml1: CTRL-EVENT-SUBNET-STATUS-UPDATE status=0 ======================================== app_cb: WLAN: received event 0 ======================================== app_cb: WLAN: connected to network Connected to following BSS: SSID = [ASUS_2G] IPv4 Address: [192.168.0.123] Step 3: Configure NS offload feature on DUT using below command # enable-ns-offload UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 124 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Step 4: From AP's backend server run ipv6 ping command. ipv6 ping request should come from AP and ipv6 ping reply should come from DUT. Step 5: Configure mef params for NS using below command: # wlan-multi-mef ns 0 Step 6: Configure host sleep and parameters using below command: # wlan-host-sleep 1 mef Step 7: Put HOST on suspend state # mcu-suspend Step 8: Only ping request from AP is observed due to DUT's suspend state. AP should send NS (Neighbor Solicitation) packet when DUT is in suspend state and DUT should respond to NS packet with NA (Neighbor Advertisement) packet. DUT should not wakeup. UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 125 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 4 Useful Wi-Fi APIs This section describes a few Wi-Fi driver APIs with their usage. These driver APIs can be called from the user application directly with the appropriate arguments to implement the required changes in the driver/firmware. NOTE: Please refer to wifi_cert demo from section 3.5, which has support for these APIs. Please refer to MCUXSDKGSUG for more details about the Wi-Fi driver APIs. 4.1 Set/Get ED MAC Feature This feature enables the European Union (EU) adaptivity test as per the compliance requirements in the ETSI standard. Depending on the device and front-end loss, the Energy Detection (ED) threshold offset (ed_ctrl_2g.offset and ed_ctrl_5g.offset) needs to be adjusted. The ED threshold offset can be adjusted in steps of 1 dB. 4.1.1 wlan_set_ed_mac_mode() This API is used to configure ED MAC mode in the Wireless Firmware. Syntax: int wlan_set_ed_mac_mode(wlan_ed_mac_ctrl_t wlan_ed_mac_ctrl) Where Table 21: Set ED MAC API argument Parameter Description [In] wlan_ed_mac_ctrl A structure with parameters mentioned in section 4.1.3 to enable EU adaptivity. Return Value: WM_SUCCESS if the call is successful, -WM_FAIL if the call failed 4.1.2 wlan_get_ed_mac_mode() This API can be used to get current ED MAC mode configuration. Syntax: int wlan_get_ed_mac_mode(wlan_ed_mac_ctrl_t * wlan_ed_mac_ctrl) Where Table 22: Get ED MAC API argument Parameter Description A pointer to a structure with parameters mentioned in section 4.1.3 to get ED [Out] wlan_ed_mac_ctrl MAC mode configuration. Return Value: WM_SUCCESS if the call is successful, -WM_FAIL if the call failed UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 126 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 4.1.3 Usage and Output This section includes the output console logs and code snippets for the reference and it can be used to add the feature-related commands in the user application. To add new CLI command in the existing wifi_cli sample application, please refer to section 0. Usage: To add set command to the command list, #ifdef CONFIG_5GHz_SUPPORT {"wlan-set-ed-mac-mode", "<ed_ctrl_2g> <ed_offset_2g> <ed_ctrl_5g> <ed_offset_5g>", wlan_ed_mac_mode_set}, #else {"wlan-set-ed-mac-mode", "<ed_ctrl_2g> <ed_offset_2g>",wlan_ed_mac_mode_set}, #endif To print the usage regarding set-ed-mac static void dump_wlan_set_ed_mac_mode_usage() { PRINTF("Usage:\r\n"); #ifdef CONFIG_5GHz_SUPPORT PRINTF("wlan-set-ed-mac-mode <ed_ctrl_2g> <ed_offset_2g> <ed_ctrl_5g> <ed_offset_5g>\r\n"); #else PRINTF("wlan-set-ed-mac-mode <ed_ctrl_2g> <ed_offset_2g>\r\n"); #endif PRINTF("\r\n"); PRINTF("\ted_ctrl_2g \r\n"); PRINTF("\t # 0 - disable EU adaptivity for 2.4GHz band\r\n"); PRINTF("\t # 1 - enable EU adaptivity for 2.4GHz band\r\n"); PRINTF("\ted_offset_2g \r\n"); PRINTF("\t # 0 - Default Energy Detect threshold\r\n"); PRINTF("\t #offset value range: 0x80 to 0x7F\r\n"); #ifdef CONFIG_5GHz_SUPPORT PRINTF("\ted_ctrl_5g \r\n"); PRINTF("\t # 0 - disable EU adaptivity for 5GHz band\r\n"); PRINTF("\t # 1 - enable EU adaptivity for 5GHz band\r\n"); PRINTF("\ted_offset_2g \r\n"); PRINTF("\t # 0 - Default Energy Detect threshold\r\n"); PRINTF("\t #offset value range: 0x80 to 0x7F\r\n"); #endif } UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 127 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms To set ed mac mode using the structure parameter in driver (set) API: static void wlan_ed_mac_mode_set(int argc, char *argv[]) { int ret; wlan_ed_mac_ctrl_t wlan_ed_mac_ctrl; #ifdef CONFIG_5GHz_SUPPORT if (argc != 5) #else if (argc != 3) #endif { dump_wlan_set_ed_mac_mode_usage(); return; } wlan_ed_mac_ctrl.ed_ctrl_2g = strtol(argv[1], NULL, 16); wlan_ed_mac_ctrl.ed_offset_2g = strtol(argv[2], NULL, 16); #ifdef CONFIG_5GHz_SUPPORT wlan_ed_mac_ctrl.ed_ctrl_5g = strtol(argv[3], NULL, 16); wlan_ed_mac_ctrl.ed_offset_5g = strtol(argv[4], NULL, 16); #endif if (wlan_ed_mac_ctrl.ed_ctrl_2g != 0 && wlan_ed_mac_ctrl.ed_ctrl_2g != 1) { dump_wlan_set_ed_mac_mode_usage(); return; } #ifdef CONFIG_5GHz_SUPPORT if (wlan_ed_mac_ctrl.ed_ctrl_5g != 0 && wlan_ed_mac_ctrl.ed_ctrl_5g != 1) { dump_wlan_set_ed_mac_mode_usage(); return; } #endif ret = wlan_set_ed_mac_mode(wlan_ed_mac_ctrl); if (ret == WM_SUCCESS) { PRINTF("ED MAC MODE settings configuration successful\r\n"); } else { PRINTF("ED MAC MODE settings configuration failed\r\n"); dump_wlan_set_ed_mac_mode_usage(); } } UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 128 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms To add get command to the command list, {"wlan-get-ed-mac-mode", NULL, wlan_ed_mac_mode_get}, To print the usage regarding get-ed-mac static void dump_wlan_get_ed_mac_mode_usage() { PRINTF("Usage:\r\n"); PRINTF("wlan-get-ed-mac-mode \r\n"); } To get ed mac mode values filled address of wlan_ed_mac_ctrl structure passed as a parameter to the driver (get) API, static void wlan_ed_mac_mode_get(int argc, char *argv[]) { int ret; wlan_ed_mac_ctrl_t wlan_ed_mac_ctrl; if (argc != 1) { dump_wlan_get_ed_mac_mode_usage(); return; } ret = wlan_get_ed_mac_mode(&wlan_ed_mac_ctrl); if (ret == WM_SUCCESS) { PRINTF("EU adaptivity for 2.4GHz band : %s\r\n", wlan_ed_mac_ctrl.ed_ctrl_2g == 1 ? "Enabled" : "Disabled"); if (wlan_ed_mac_ctrl.ed_ctrl_2g) PRINTF("Energy Detect threshold offset : 0X%x\r\n", wlan_ed_mac_ctrl.ed_offset_2g); #ifdef CONFIG_5GHz_SUPPORT PRINTF("EU adaptivity for 5GHz band : %s\r\n", wlan_ed_mac_ctrl.ed_ctrl_5g == 1 ? "Enabled" : "Disabled"); if (wlan_ed_mac_ctrl.ed_ctrl_5g) PRINTF("Energy Detect threshold offset : 0X%x\r\n", wlan_ed_mac_ctrl.ed_offset_5g); #endif } else { PRINTF("ED MAC MODE read failed\r\n"); dump_wlan_get_ed_mac_mode_usage(); } } Console Output # wlan-set-ed-mac-mode 1 0x9 ED MAC MODE settings configuration successful # wlan-get-ed-mac-mode EU adaptivity for 2.4GHz band : Enabled Energy Detect threshold offset : 0X9 EU adaptivity for 5GHz band : Enabled Energy Detect threshold offset : 0Xc UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 129 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 4.2 Enable Host based WPA supplicant Feature for Wi-Fi application This section describes changes required to enable host based wpa supplicant for Wi-Fi applications on i.MX RT1060 + IW416/88W8987/IW612 NXP-based wireless modules. Host based supplicant is an open source software which requires increase in memory, mainly, HEAP (90~180 KB) and Increase number of clients store data in netif (LWIP). To enable and support host based wpa supplicant Following files need updates. NOTE: The file paths given in this section refers to application wifi_setup. <SDK_PATH>/ boards/evkmimxrt1060/wifi_examples/wifi_setup/FreeRTOSConfig.h <SDK_PATH>/ boards/evkmimxrt1060/wifi_examples/wifi_setup/lwipopts.h <SDK_PATH>/ boards/evkmimxrt1060/wifi_examples/wifi_setup/wifi_config.h 4.2.1 FreeRTOSConfig.h Increase Stack size: In the following example stack is increased from 128 to 160 bytes. - #define configMINIMAL_STACK_SIZE ((unsigned short)128) + #define configMINIMAL_STACK_SIZE ((unsigned short)160) Increase heap size: In following example, heap is increased from 60K to 120K bytes. 120KB is minimum required heap. If you enable CONFIG_WPA_SUPP_CRYPTO_ENTERPRISE, then 180 KB of heap is required. - #define configTOTAL_HEAP_SIZE + #define configTOTAL_HEAP_SIZE ((size_t)(60 * 1024)) ((size_t)(120 * 1024)) Increase stack for software timer task Following example is increasing stack and making it twice the earlier size. - #define configTIMER_TASK_STACK_DEPTH (configMINIMAL_STACK_SIZE) + #define configTIMER_TASK_STACK_DEPTH (configMINIMAL_STACK_SIZE * 2U) 4.2.2 lwipopts.h Add following definitions at the end of file before "#endif /* __LWIPOPTS_H__ */" /** * LWIP_CHECKSUM_ON_COPY==1: Calculate checksum when copying data from * application buffers to pbufs. */ #define LWIP_CHECKSUM_ON_COPY 1 /** * LWIP_CHKSUM_ALGORITHM==3: Use the optimised checksum algorithm. */ #define LWIP_CHKSUM_ALGORITHM 3 #if (LWIP_DNS || LWIP_IGMP || LWIP_IPV6) && !defined(LWIP_RAND) /* When using IGMP or IPv6, LWIP_RAND() needs to be defined to a randomfunction returning an u32_t random value*/ #include "lwip/arch.h" u32_t lwip_rand(void); #define LWIP_RAND() lwip_rand() #endif #define LWIP_NETIF_TX_SINGLE_PBUF 1 #if (LWIP_NETIF_TX_SINGLE_PBUF) #define PBUF_LINK_ENCAPSULATION_HLEN 26 #endif #define LWIP_NUM_NETIF_CLIENT_DATA 2 UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 130 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 4.2.3 /* ---------- Core locking ---------- */ wifi_config.h Add following definitions to enable various WPA modes. NOTE that Enterprise mode is enabled only if needed. /* * Config options for wpa supplicant */ #define CONFIG_WPA_SUPP 1 4.2.4 #ifdef CONFIG_WPA_SUPP #define CONFIG_WPA_SUPP_WPS 1 #define CONFIG_WPA_SUPP_WPA3 1 //#define CONFIG_WPA_SUPP_CRYPTO_ENTERPRISE 1 #endif #endif/* * wpa supplicant debug options */ #define CONFIG_WPA_SUPP_DEBUG_LEVEL 3 Adding components For those users who are using zip package, following files need to be updated at board_MIMXRT1060EVK/boards/evkbmimxrt1060/wifi_examples/wifi_<app name>/armgcc Add dependent component needed for wpa supplicant, mbedtls and hardware drivers. Update config.cmake and append following set(CONFIG_USE_middleware_mbedtls true) set(CONFIG_USE_middleware_wireless_wpa_supplicant_rtos true) set(CONFIG_USE_middleware_mbedtls_port_ksdk true) set(CONFIG_USE_middleware_mbedtls_template true) set(CONFIG_USE_driver_dcp true) set(CONFIG_USE_driver_trng true) Update CMakeLists.txt and add following if(CMAKE_BUILD_TYPE STREQUAL flexspi_nor_debug) target_compile_definitions(${MCUX_SDK_PROJECT_NAME} MBEDTLS_CONFIG_FILE="wpa_supp_mbedtls_config.h") endif(CMAKE_BUILD_TYPE STREQUAL flexspi_nor_debug) PRIVATE if(CMAKE_BUILD_TYPE STREQUAL flexspi_nor_release) target_compile_definitions(${MCUX_SDK_PROJECT_NAME} MBEDTLS_CONFIG_FILE="wpa_supp_mbedtls_config.h") endif(CMAKE_BUILD_TYPE STREQUAL flexspi_nor_release) PRIVATE 4.2.5 Memory Overflow Issue Handling It is observed that for certain RT boards such as RT1020, RT1040 and RT1050 with lower memory footprint, the memory overflow error occurs during compiling with certain compiler tool. Following is the solution to such issues. Linker file update can help if we get memory overflow during linking stage for low end platforms on certain compilers. For mcuxpresso projects create bss.ldt file at location evkbmimxrt1060/wifi_examples/common/linkscripts/bss.ldt and add following in bss.ldt <#if memory.name=="SRAM_OC"> *(.bss*) </#if> For armgcc, iar and mdk, we need to move bss to m_data2. To do this update following files. /wifi_examples/common/linker/MIMXRT1062xxxxx_flexspi_nor.icf UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 131 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms -place in DATA_region +place in DATA2_region { block ZI }; { block ZI }; evkbmimxrt1060/wifi_examples/common/linker/MIMXRT1062xxxxx_flexspi_nor.ld In the .bss block, update `> m_data' to `> m_data2'. Do not change rest of the .bss block. /* Uninitialized data section */ .bss : { /* This is used by the startup in order to initialize the .bss section */ . = ALIGN(4); __START_BSS = .; __bss_start__ = .; *(m_usb_dma_noninit_data) *(.bss) *(.bss*) *(COMMON) . = ALIGN(4); __bss_end__ = .; __END_BSS = .; -} > m_data +} > m_data2 evkbmimxrt1060/wifi_examples/common/linker/MIMXRT1062xxxxx_flexspi_nor.scf - RW_m_ncache m_data2_start EMPTY 0 { + RW_m_data2 m_data2_start m_data2_size { ; RW data2 + .ANY (+RW +ZI) + } + RW_m_ncache +0 EMPTY 0 { } - RW_m_ncache_unused +0 EMPTY m_data2_size-ImageLength(RW_m_ncache) { ; Empty region added for MPU configuration + RW_m_ncache_unused +0 EMPTY m_data2_size-ImageLength(RW_m_data2)ImageLength(RW_m_ncache) { ; Empty region added for MPU configuration UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 132 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 5 Bluetooth Classic/Low Energy Applications This chapter describes the Bluetooth Classic/Low Energy example applications that are available in the SDK, and the steps to configure, compile, debug, flash, and execute these examples. The communication between the Host stack and the Link Layer (LL) is implemented via the standard HCI UART interface and PCM interface for voice. Please refer to "Hardware Rework Guide for EdgeFast BT PAL.pdf" guide referenced in the Section 1.3 "References" for details to enable the UART and PCM interfaces. The setup is done between the single i.MX RT+ IW612 NXP-based wireless module and remote Bluetooth devices. The instructions in this guide use an i.MXRT1060 EVKC board. Yet the same steps apply to the other i.MX RT products. The table lists the Bluetooth module specific preprocessor macro that is common to all Bluetooth examples. Table 23: Preprocessor Macros for Bluetooth Modules Module Chipset Macro Murata Type 1XK IW416 WIFI_IW416_BOARD_MURATA_1XK_USD WIFI_IW416_BOARD_MURATA_1XK_M2 Murata Type 1ZM 88W8987 WIFI_88W8987_BOARD_MURATA_1ZM_USD WIFI_88W8987_BOARD_MURATA_1ZM_M2 Murata Type 2EL Murata Type 2LL IW612 IW610 WIFI_IW612_BOARD_MURATA_2EL_USD WIFI_ IW612 _BOARD_MURATA_2EL_M2 WIFI_IW610_BOARD_MURATA_2LL_M2 USD = microSD interface M2 = M.2 interface UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 133 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 5.1 a2dp_sink Sample Application This section describes the steps to configure the i.MX RT1060 EVKC board and IW612 wireless module as an A2DP Sink device. 5.1.1 a2dp_sink Application Execution Please refer to the previous section 3.1.1 to run the demo using MCUXpresso IDE. Refer below image for selection of Bluetooth example. Refer to Table 23 for the list of macros of different wireless modules. The default application works on Murata 2EL module using the macro "WIFI_IW612_BOARD_MURATA_2EL_M2". To enable the support for other modules: · Import the project. · Go to project properties > C/C++ Build > Settings > Preprocessor. · Select another macro. UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 134 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Please refer to the previous sections 3.1.1-3.1.4 for instructions on importing a project, building an application, running an application in debug mode and flashing an application program for a few IDEs. Please refer to section 2.1 for serial console tool setup. 5.1.1.1 Run the Application Press the power reset button on i.MX RT1060 EVKC board to run the demo application downloaded on the board. When the demo starts, the following message about the demo would appear on the console. Bluetooth A2dp Sink demo start... Bluetooth initialized BR/EDR set connectable and discoverable done Wait for connection Discover the device "a2dp sink" from peer mobile phone and connect to it. The following logs should be displayed on the console. Connected Security changed: 7E:5A:23:AE:9E:C3 level 2 a2dp connected success a2dp configure sample rate 44100Hz Now, user can play music from the cell phone connected and listen on the audio jack of the i.MX RT 1060 EVKC board. Following logs will appear on the console: a2dp start playing Stop playing music from the cell phone. Following logs will appear on the console a2dp stop playing Disconnect the device from peer cell phone. a2dp deconfigure Disconnected (reason 0x13) UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 135 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 5.2 a2dp_source Sample Application This section describes the steps to configure the i.MX RT1060 EVKC board and IW416 wireless module as an A2DP Source device. 5.2.1 a2dp_source Application Execution Please refer to the previous sections 3.1.1-3.1.4 and 5.1.1 for instructions on importing a project, building an application, running an application in debug mode and flashing an application program for a few IDEs. Please refer to section 2.1 for serial console tool setup. 5.2.1.1 Run the application Press the power reset button on i.MX RT1060 EVKC board to run the demo application downloaded on the board. When the demo starts, the following message about the demo would appear on the console. Bluetooth initialized BR/EDR set connectable and discoverable done Copyright 2024 NXP >>help "help": List all the registered commands "exit": Exit program "bt": BT related function USAGE: bt [discover|connect|disconnect|delete] discover start to find BT devices connect connect to the device that is found, for example: bt connectdevice n (from 1) disconnect disconnect current connection. delete delete all devices. Ensure to disconnect the HCI link connection with the peer device before attempting to delete the bonding information. >> Input "bt discover" to scan connectable nearby Bluetooth devices. Discovery started. Please wait ... >> BR/EDR discovery complete [1]: 90:9C:4A:D8:65:68, RSSI -24 AirPods Max [2]: 48:74:12:C2:F2:82, RSSI -85 OnePlus Nord CE 2 Lite 5G [3]: C0:95:DA:00:F1:1F, RSSI -91 [4]: 40:23:43:7E:C4:9A, RSSI -60 FJ9SQK3-Desk [5]: D0:17:69:EE:7E:9D, RSSI -72 BLE_Peripheral Input "bt connect [index]" to create Bluetooth connection with the discovered device. The music starts playing on successful connection with the Bluetooth device. >> bt connect 1 Connection pending >> SDP discovery started Connected sdp success callback A2DP Service found. Connecting ... Security changed: 90:9C:4A:D8:65:68 level 2 a2dp connected success a2dp start playing Input "bt disconnect" to disconnect the current connection. >> bt disconnect >> a2dp disconnected Disconnected (reason 0x16) Input "bt delete" to delete the bonding information of all the devices. NOTE: Disconnect the HCI link connection with the peer device before attempting to delete the bonding information. >> bt delete UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 136 NXP Semiconductors success >> UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 5.3 handsfree Sample Application This section describes the steps to configure the i.MX RT1060 EVKC board and IW416 wireless module as an HF Unit. 5.3.1 handsfree Application Execution Please refer to the previous sections 3.1.1-3.1.4 and 5.1.1 for instructions on importing a project, building an application, running an application in debug mode and flashing an application program for a few IDEs. Please refer to section 2.1 for serial console tool setup. 5.3.1.1 Run the application Press the power reset button on i.MX RT1060 EVK board to run the demo application downloaded on the board. When the demo starts, the following message about the demo would appear on the console. Bluetooth Handsfree demo start... Bluetooth initialized Copyright 2024 NXP >> BR/EDR set connectable and discoverable done Wait for connection Discover the device "edgefast hfp" from peer mobile phone and connect to it. The following logs should be displayed on the console. Connected Security changed: AC:C0:48:9F:82:5A level 2 HFP HF Connected! Wideband Config at Controller: Disabled Sending Vendor command 0028 Sending Vendor command 0007 now Sending Vendor command 0029 now Sending Vendor command 001d now Sending Vendor command 0070 now Sending Vendor command 0073 with WBS disabled Signal indicator value: 5 Make an incoming call to the mobile phone which is connected to the setup: Call Setup indicator value: 1 Incoming Call... Init Audio CODEC for RingTone Type help command to check all calling options. "help": List all the registered commands "exit": Exit program "bt": BT related function USAGE: bt [dial|aincall|eincall] dial dial out call. aincall accept the incoming call. eincall end an incoming call. svr start voice recognition. evr stop voice recognition. clip enable CLIP notification. disclip disable CLIP notification. ccwa enable call waiting notification. disccwa disable call waiting notification. UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 137 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms micVolume Update mic Volume. speakerVolume Update Speaker Volume. lastdial call the last dial number. voicetag Get Voice-tag Phone Number (BINP). multipcall multiple call option. triggercodec trigger codec connection. getIndicatorStatus Get peer's indicators' status. When the call will come below output will be seen: Call Setup indicator value: 1 Incoming Call... Init Audio CODEC for RingTone Phone call number: +919104539859 Setup for SCO audio: Success Sending Vendor command 006f now Input "bt aincall" to answer the incoming call: Call indicator value: 1 Call Setup indicator value: 0 Init Audio SCO SAI and CODEC samplingRate :8000 bitWidth:16 Input "bt eincall" to end the incoming call: Call indicator value: 0 sco_audio_stop_pl: Sending Vendor command 0073 with WBS disabled 5.4 handsfree_ag Sample Application This application demonstrates the HFP audio gateway basic functionality. Currently, the support simulates an incoming call, and the call could be answered and ended. The HFP audio gateway can be connected to a HFP HF device like headphone or device running HFP HF device. 5.4.1 handsfree_ag Application Execution Please refer to the previous sections 3.1.1-3.1.4 and 5.1.1 for instructions on importing a project, building an application, running an application in debug mode and flashing an application program for a few IDEs. Please refer to section 2.1 for serial console tool setup. 5.4.1.1 Run the application Press the power reset button on i.MX RT1060 EVKC board to run the demo application downloaded on the board. When the demo starts, the following message about the demo would appear on the console. Bluetooth Handsfree AG demo start... Bluetooth initialized BR/EDR set connectable and discoverable done Copyright 2024 NXP Input "help" to show the available list of commands: >>help "help": List all the registered commands "exit": Exit program "bt": BT related function USAGE: bt [discover|connect|disconnect|delete] discover start to find BT devices UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 138 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms connect openaudio closeaudio sincall aincall eincall set_tag select_codec set_mic_volume set_speaker_volume stwcincall disconnect delete connect to the device that is found, for example: bt connect n (from 1) open audio connection without calls close audio connection without calls start an incoming call accept the call. end an call. set phone num tag, for example: bt set_tag 123456789 codec select for codec Negotiation, for example: bt select_codec 2, it will select the codec 2 as codec. update mic Volume, for example: bt set_mic_volume 14 update Speaker Volume, for example: bt set_speaker_volume 14 start multiple an incoming call disconnect current connection delete all devices. Ensure to disconnect the HCI link connection with the peer device before attempting to delete the bonding information. Input "bt discover" to scan the nearby Bluetooth devices: >> bt discover Discovery started. Please wait ... >> BR/EDR discovery complete [1]: 28:11:A8:CB:93:D6, RSSI -83 SMW006887 [2]: AC:67:5D:07:FA:CF, RSSI -66 8PLD823-Desktop [3]: 48:01:C5:27:E6:80, RSSI -77 NXP_BT_MD [4]: 48:74:12:C2:F2:82, RSSI -82 OnePlus Nord CE 2 Lite 5G [5]: 74:45:CE:42:3C:11, RSSI -51 WH-CH510 >> Input "bt connect <number>" to connect to the peer device. >> >> bt connect 5 Connection pending >> SDP discovery started Connected Security changed: 74:45:CE:42:3C:11 level 2 HFP AG Connected! Wideband Config at Controller: Disabled Sending Vendor command 0028 Sending Vendor command 0007 now Sending Vendor command 0029 now Sending Vendor command 001d now Sending Vendor command 0070 now Sending Vendor command 0073 with WBS disabledHFP AG Connected! Input "bt sincall " to simulate incoming call from the DUT >> bt sincall Simulate a incoming call an incoming calling!! Input "bt aincall" to accept the call once the ringtone is heard on the connected peer device >> bt aincall HFP AG have accepted the incoming call Wideband Config at Controller: Disabled Sending Vendor command 0028 Sending Vendor command 0007 now Sending Vendor command 0029 now Sending Vendor command 001d now Sending Vendor command 0070 now Sending Vendor command 0073 with WBS disabled Init Audio SCO SAI and CODEC samplingRate :8000 bitWidth:16 Setup for SCO audio: Success Sending Vendor command 006f now UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 139 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Input "bt eincall" to disconnect the Call >> >> bt eincall HFP AG have ended the call >> sco_audio_stop_pl: Sending Vendor command 0073 with WBS disabled Input "bt disconnect" to disconnect from the peer device. >> bt disconnect >> HFP AG Disconnected! Disconnected (reason 0x16) Input "bt delete" to delete the bonding information of all the devices. NOTE: Disconnect the HCI link connection with the peer device before attempting to delete the bonding information. >> bt delete success 5.5 spp Sample Application This application demonstrates the Serial Port Profile on i.MX RT1060 EVKC board and IW416 wireless module. 5.5.1 spp Application Execution Please refer to the previous sections 3.1.1-3.1.4 and 5.1.1 for instructions on importing a project, building an application, running an application in debug mode and flashing an application program for a few IDEs. Please refer to section 2.1 for serial console tool setup. 5.5.1.1 Run the application Press the power reset button on i.MX RT1060 EVKC board to run the demo application downloaded on the board. When the demo starts, the following message about the demo would appear on the console. Bluetooth initialized BR/EDR set connectable and discoverable done Copyright 2024 NXP Input "help" to display the available options: >> help "help": List all the registered commands "exit": Exit program "bt": BT related function USAGE: bt <discover|connect|disconnect|delete> bt conns print all active bt connection bt switch <index> switch a bt connection bt discover start to find BT devices bt connect connect to the device that is found, for example: bt connect) bt disconnect disconnect current connection. bt delete delete all devices. Ensure to disconnect the HCI link connec. "spp": SPP related function USAGE: spp handle spp switch <hanlde> spp register <cid> spp discover spp connect <cid> spp disconnect display active spp handle list switch spp handle register a spp server channel(cid) discover spp server channel on peer device create spp connection disconnect current spp connection. UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 140 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms spp send <1|2|3|4|5> spp get_port <s|c> <cid> channel(cid). spp set_port <s|c> <cid> channel(cid). spp set_pn <s|c> <cid> spp get_pn <s|c> <cid> spp send_rls spp send_msc >> send data over spp connection. get spp port setting of server/client set spp port setting of server/client set pn of server/client channel(cid). get local pn of server/client channel(cid). send rls. send msc. 5.5.1.2 Serial Port Profile Server Configuration This section describes the steps to configure the i.MX RT1060 EVKC board and IW612 wireless module as an SPP Server. Register a SPP server channel. >> spp register 5 SPP channel 5 register successfully, waiting for connected callback! >> Connect to the device "edgefast spp" from the smartphone Bluetooth pairing settings and enable the pairing. Following logs will appear on console: >> BR connection with A0:CD:F3:77:E6:1D is created successfully! Security changed: A0:CD:F3:77:E6:1D level 2 Now, open the "Serial Bluetooth Terminal" smartphone application and go to settings > devices. Select the device "edgefast spp". The connection will be established and following logs will appear on console: spp handle 0: server, channel = 5, connected with device 1D:E6:77:F3:CD:A0. SPP appl handle 0 is connected successfully and becomes current spp appl handle! Write data in the smartphone application and send: >> SPP appl handle 0 received 11 data callback, dumped here: ----------------CHAR DUMP----------------------A T + C I N D = ? ---------------------------------------------------- ----------------HEX DUMP-----------------------41 54 2B 43 49 4E 44 3D 3F 0D 0A ---------------------------------------------------- Input "spp send [n]" to send data to peer device. >> spp send 1 SPP appl handle 0 send string successfully, waiting for data sent callback. >> SPP appl handle 0 sent 11 data callback, dumped here: ----------------CHAR DUMP----------------------A T + C I N D = ? \ r ----------------------------------------------------- Input "spp disconnect" to disconnect with peer device. >> spp disconnect SPP appl handle 0 disconnect successfully, waiting for disconnected callback. SPP appl handle 0 is disconnected successfully. BR connection with : A0:CD:F3:77:E6:1D is disconnected (reason 0x13) UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 141 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 5.5.1.3 Serial Port Profile Client Configuration This section describes the steps to configure the i.MX RT1060 EVKC board and IW612 wireless module as an SPP Client. Here, another setup of i.MX RT1060 EVKC board and IW612 wireless module is used as SPP Server. Start SPP server first then follow the steps to configure SPP client. Input "bt discover" to start find the nearby Bluetooth devices. >> bt discover Discovery started. Please wait ... >> BR/EDR discovery complete [1]: 48:01:C5:27:E6:80, RSSI -78 NXP_BT_MD [2]: AC:67:5D:07:FA:CF, RSSI -71 8PLD823-Desktop [3]: A0:CD:F3:77:E5:01, RSSI -69 edgefast_spp [4]: 28:11:A8:CB:93:D6, RSSI -84 SMW006887 >> Input "bt connect <n>" to connect to the device that is found. >> bt connect 3 Connection pending >> BR connection with A0:CD:F3:77:E5:01 is created successfully! Input "spp discover" to discover the registered SPP server channel in peer device. >> spp discover >> Discover 1 SPP server channel from device 01:E5:77:F3:CD:A0! 0x0005 Input "spp connect [channel]" to create SPP connection with peer SPP server channel. >> spp connect 5 Connect SPP Successful! >> Security changed: A0:CD:F3:77:E5:01 (0xef) level 2 SPP connection is created successfully! >> Input "spp send [1|2|3|4]" to send data over SPP. >> spp send 1 >> Status of SPP data sent callback: 0x0000. Sent 11 data, dumped here: ----------------CHAR DUMP----------------------A T + C I N D = ? \ r ----------------------------------------------->> Input "spp disconnect" to disconnect with peer device. >>>> spp disconnect SPP appl handle 0 disconnect successfully, waiting for disconnected callback. UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 142 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 5.6 PBAP-PCE Sample Application This application demonstrates the Phone Book Access Profile (PBAP) on i.MX RT1060 EVK board as a Phone Book Client Equipment (PCE). The Phone Book Access Profile (PBAP) defines the procedures and protocols to exchange Phone Book objects between devices. The Phone Book Client Equipment (PCE) is the device that retrieves phone book objects from the Phone Book Server Equipment (PSE) device. 5.6.1 Pbap-pce Application Execution Please refer to the previous sections 3.1.1-3.1.4 and 5.1.1 for instructions on importing a project, building an application, running an application in debug mode and flashing an application program for a few IDEs. Please refer to section 2.1 for serial console tool setup. 5.6.1.1 Run the application Press the power reset button on i.MX RT1060 EVKC board to run the demo application downloaded on the board. When the demo starts, the following message about the demo would appear on the console. Bluetooth PBAP PCE demo start... Bluetooth initialized BR/EDR set connectable and discoverable done The demo does not require user interaction. The application will automatically starts the BR/EDR discovery. The user needs to place the PSE device that wants to be connected as close as possible to the PCE. This demo application will automatically connects to the PSE device which has strongest RSSI (more Nearby) and has Class of device (COD) of computer or Phone. Discovery started. Please wait ... BR/EDR discovery complete [1]: 48:74:12:C2:F2:82, RSSI -82 OnePlus Nord CE 2 Lite 5G [2]: AC:67:5D:07:FA:CF, RSSI -62 8PLD823-Desktop [3]: 40:23:43:7E:C4:9A, RSSI -74 FJ9SQK3-Desk [4]: 48:01:C5:27:E6:80, RSSI -76 NXP_BT_MD [5]: A0:CD:F3:77:E5:01, RSSI -52 BLE_Peripheral [6]: D0:17:69:EE:7E:9D, RSSI -87 BLE_Peripheral [7]: AC:50:DE:CA:83:7E, RSSI -96 4CE241B3D2-Desk Connect 5 Connection pending bt_connected SDP discovery started sdp success callback pbap version is 102 pbap pse supported repositories is f supported feature = 3ff l2cap_psm found. Connecting ... Successfully START PBAP PCE entities Security changed: A0:CD:F3:77:E5:01 level 2 PABP connect successfully pull phonebook result - 0x90 Primary Floder Version - 05000000000000000000000000000001 Secondary Floder Version - 06000000000000000000000000000002 Database Identifier - 07000000000000000000000000000003 ============== BODY ============== BEGIN:VCARD VERSION:2.1 FN;CHARSET=UTF-8:descvs N;CHARSET=UTF-8:descvs END:VCARD UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 143 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms BEGIN:VCARD VERSION:2.1 N:;cc;;; FN:cc TEL;CELL:154555845 END:VCARD BEGIN:VCARD VERSION:2.1 N:;qwe;;; FN:qwe X-ANDROID-CUSTOM:vnd.android.cursor.item/nickname;147; TEL;CELL:151865216 TEL;CELL:153464856 EMAIL;HOME:[email protected] ADR;HOME:;;123456789;;;; NOTE:old BDAY:1904-05-24 X-AIM:@qq.com END:VCARD BEGIN:VCARD VERSION:2.1 FN;CHARSET=UTF-8:descvs N;CHARSET=UTF-8:descvs END:VCARD BEGIN:VCARD VERSION:2.1 N:;cc;;; FN:cc TEL;CELL:15455584 ============ END BODY ============ pull phonebook result - 0x90 Primary Floder Version - 05000000000000000000000000000001 Secondary Floder Version - 06000000000000000000000000000002 Database Identifier - 07000000000000000000000000000003 ============== BODY ============== 5 END:VCARD BEGIN:VCARD VERSION:2.1 N:;qwe;;; FN:qwe X-ANDROID-CUSTOM:vnd.android.cursor.item/nickname;147; TEL;CELL:151865216 TEL;CELL:153464856 EMAIL;HOME:[email protected] ADR;HOME:;;123456789;;;; NOTE:old BDAY:1904-05-24 X-AIM:@qq.com END:VCARD BEGIN:VCARD VERSION:2.1 FN;CHARSET=UTF-8:descvs N;CHARSET=UTF-8:descvs END:VCARD BEGIN:VCARD VERSION:2.1 N:;cc;;; FN:cc TEL;CELL:154555845 END:VCARD BEGIN:VCARD UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 144 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms VERSION:2.1 N:;qwe;;; FN:qwe X-ANDROID-CUSTOM:vnd.android.cursor.item/nickname;147; TEL;CELL:151865216 TEL;CELL:1 ============ END BODY ============ pull phonebook result - 0xA0 Primary Floder Version - 05000000000000000000000000000001 Secondary Floder Version - 06000000000000000000000000000002 Database Identifier - 07000000000000000000000000000003 ============== BODY ============== 53464856 EMAIL;HOME:[email protected] ADR;HOME:;;123456789;;;; NOTE:old BDAY:1904-05-24 X-AIM:@qq.com END:VCARD BEGIN:VCARD VERSION:2.1 FN;CHARSET=UTF-8:descvs N;CHARSET=UTF-8:descvs END:VCARD BEGIN:VCARD VERSION:2.1 N:;cc;;; FN:cc TEL;CELL:154555845 END:VCARD BEGIN:VCARD VERSION:2.1 N:;qwe;;; FN:qwe X-ANDROID-CUSTOM:vnd.android.cursor.item/nickname;147; TEL;CELL:151865216 TEL;CELL:153464856 EMAIL;HOME:[email protected] ADR;HOME:;;123456789;;;; NOTE:old BDAY:1904-05-24 X-AIM:@qq.com END:VCARD ============ END BODY ============ pbap pse path set success pull vcard listing result - 0xA0 Primary Floder Version - 05000000000000000000000000000001 Secondary Floder Version - 06000000000000000000000000000002 Database Identifier - 07000000000000000000000000000003 ============== BODY ============== <?xml version="1.0"?><!DOCTYPE vcard-listing SYSTEM "vcard-listing.dtd"><vCardlis> ============ END BODY ============ pbap pse path set success pull vcard listing result - 0xA0 Database Identifier - 07000000000000000000000000000003 ============== BODY ============== BEGIN:VCARD VERSION:2.1 FN: N: TEL;X-0:1155 UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 145 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms X-IRMC-CALL-DATETIME;DIALED:20220913T110607 END:VCARD ============ END BODY ============ pbap pse path set success PABP disconnect successfully: a0 Disconnected (reason 0x13) 5.7 PBAP-PSE Sample Application This application demonstrates the Phone Book Access Profile (PBAP) on i.MX RT1060 EVKC board as a Phone Book Server Equipment (PSE). The Phone Book Access Profile (PBAP) defines the procedures and protocols to exchange Phone Book objects between devices. The Phone Book Server Equipment (PSE) is the device that contains the source phone book objects. 5.7.1 Pbap-pse Application Execution Please refer to the previous sections 3.1.1-3.1.4 and 5.1.1 for instructions on importing a project, building an application, running an application in debug mode and flashing an application program for a few IDEs. Please refer to section 2.1 for serial console tool setup. 5.7.1.1 Run the application Press the power reset button on i.MX RT1060 EVK board to run the demo application downloaded on the board. When the demo starts, the following message about the demo would appear on the console. Bluetooth PBAP PSE demo start... Bluetooth initialized BR/EDR set connectable and discoverable done The demo does not require user interaction. The application will automatically start the Bluetooth discovery. Now prepare the Phone Book Client Equipment (PCE) device and connect with this PSE device. Then initiate PBAP profile level connection from PCE device. bt_connected Security changed: A0:CD:F3:77:E4:37 level 2 PABP connect successfully appl params max list count : 65535 send response : 90 send response : 90 send response : a0 Refer section "PBAP-PCE Sample Application" if you want to setup a IMX RT1060 EVK as a PCE device. After a successful PBAP connection, following commands can be sent from the PCE device which will be responded by PSE device. · pull phonebook - This example command will send phonebook object but not parse/send all application parameters from/to PCE. appl params max list count : 65535 send response : 90 send response : 90 send response : a0 pse current path is root UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 146 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms · set phonebook path - This example command will set phonebook path correctly. set path to child telecom pse set current path is root/telecom · pull vcard listing - This example command will send vcard listing object but not parse/send all application parameters from/to PCE. appl params max list count : 65535 send response : a0 pse current path is root/telecom · get vcard entry - This example command will send vcard entry object but not parse/send all application parameters from/to PCE. set path to child cch pse set current path is root/telecom/cch send response : a0 pse current path is root/telecom/cch set path to root pse set current path is root PABP disconnect successfully : 0 5.7.1.2 Limitations · This example only supports one PBAP connection. · This example doesn't supports all application parameters and only supports to parse/send the part of application parameters from/to PCE. 5.8 MAP-MCE Sample Application This application demonstrates the Message Access Profile (MAP) on i.MX RT1060 EVKC board as a Messaging Client Equipment (MCE). The Message Access Profile (MAP) defines a set of features and procedures to exchange messages between devices. The Messaging Client Equipment (MCE) is the device that uses the message repository engine of the Messaging Server Equipment (MSE) for browsing and displaying existing messages and to upload messages created on the MCE to the MSE. 5.8.1 Map-mce Application Execution Please refer to the previous sections 3.1.1-3.1.4 and 5.1.1 for instructions on importing a project, building an application, running an application in debug mode and flashing an application program for a few IDEs. Please refer to section 2.1 for serial console tool setup. 5.8.1.1 Run the application Press the power reset button on i.MX RT1060 EVKC board to run the demo application downloaded on the board. When the demo starts, the following message about the demo would appear on the console. Bluetooth MAP MCE demo start... Bluetooth initialized BR/EDR set connectable and discoverable done UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 147 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms The demo does not require user interaction. The application will automatically starts the BR/EDR discovery. The user needs to place the MSE device that wants to be connected as close as possible to the MCE. This demo application will automatically connects to the MSE device which has strongest RSSI (more Nearby) and has Class of device (COD) of computer or Phone. Discovery started. Please wait ... BR/EDR discovery complete [1]: 40:23:43:7E:C4:9A, RSSI -73 FJ9SQK3-Desk [2]: 48:01:C5:27:E6:80, RSSI -87 NXP_BT_MD [3]: 48:74:12:C2:F2:82, RSSI -81 OnePlus Nord CE 2 Lite 5G [4]: AC:67:5D:07:FA:CF, RSSI -73 8PLD823-Desktop [5]: A0:CD:F3:77:E5:01, RSSI -63 BLE_Peripheral [6]: FC:01:7C:7F:BD:BA, RSSI -87 3mpx7q2-Desk Connect 5 Connection pending SDP discovery started Connected sdp success callback REFCOMM channel number 21 L2CAP PSM 0x1003 MAP version 0x0104 MAP supported features 0x0077FFFF MAS instance ID 0 Supported message type 0x00 Service name MAP MAS-name Message Access Server found. Connecting ... Security changed: A0:CD:F3:77:E5:01 level 2 MCE MAS connection MAX Packet Length - 512 [1]: GET_FOLDER_LISTING_ROOT MAP Get Folder Listing MAP Get Folder Listing CNF - 0xA0 ============== BODY ============== <?xml version='1.0' encoding='utf-8' standalone='yes' ?> <folder-listing version="1.0"> <folder name = "telecom"/> </folder-listing> ============ END BODY ============ [2]: GET_FOLDER_LISTING_ROOT Complete [3]: SET_FOLDER_TELECOM MAP Set Folder Name - telecom MAP Set Folder CNF - 0xA0 [4]: SET_FOLDER_TELECOM Complete [5]: SET_FOLDER_MSG MAP Set Folder Name - msg MAP Set Folder CNF - 0xA0 [6]: SET_FOLDER_MSG Complete [7]: SET_FOLDER_INBOX MAP Set Folder Name - inbox MAP Set Folder CNF - 0xA0 [8]: SET_FOLDER_INBOX Complete [9]: UPDATE_INBOX MAP Update Inbox UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 148 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms MAP Update Inbox CNF - 0xA0 [10]: UPDATE_INBOX Complete [11]: GET_MSG_LISTING MAP Get MSG Listing MAX List Count - 10 SRMP Wait Count - 0 MAP Get MSG Listing CNF - 0x90 New Message - 1 Listing Size - 1 MSE Time - 20180101T000000+0000 ============== BODY ============== <?xml version='1.0' encoding='utf-8' standalone='yes' ?> <MAP-msg-listing version="1.0"> <msg handle = "0000000000000000" subject = "1. Bluetooth MAP Test!" datetime => </MAP-msg-listing ============ END BODY ============ MAP Get MSG Listing CNF - 0xA0 ============== BODY ============== > ============ END BODY ============ [12]: GET_MSG_LISTING Complete [13]: GET_MSG MAP Get MSG Name - 0000000000000000 Attachment - 0 Charset - 0 SRMP Wait Count - 0 MAP Get MSG CNF - 0x90 ============== BODY ============== BEGIN:BMSG VERSION:1.0 STATUS:UNREAD TYPE:SMS_GSM FOLDER: BEGIN:VCARD VERSION:2.1 N;CHARSET=UTF-8: TEL;CHARSET=UTF-8: END:VCARD BEGIN:BENV BEGIN:VCARD VERSION:2.1 FN;CHARSET=UTF-8:+0000000000000 N;CHARSET=UTF-8:+0000000000000 TEL:+0000000000000 END:VCARD BEGIN:BBODY CHARSET:UTF-8 LANGUAGE:UNKNOWN LENGTH:492 BEGIN:MSG 1. Bluetooth MAP Test! 2. Bluetooth MAP Test! 3. Bluetooth MAP Test! 4. Bluetooth MAP Test! 5. Bluetooth MAP Test! 6. Bluetooth MAP Test! 7. Bluetooth MAP Test! ============ END BODY ============ MAP Get MSG CNF - 0xA0 UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 149 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms ============== BODY ============== 8. Bluetooth MAP Test! 9. Bluetooth MAP Test! 10. Bluetooth MAP Test! 11. Bluetooth MAP Test! 12. Bluetooth MAP Test! 13. Bluetooth MAP Test! 14. Bluetooth MAP Test! 15. Bluetooth MAP Test! 16. Bluetooth MAP Test! 17. Bluetooth MAP Test! 18. Bluetooth MAP Test! 19. Bluetooth MAP Test! 20. Bluetooth MAP Test! END:MSG END:BBODY END:BENV END:BMSG ============ END BODY ============ [14]: GET_MSG Complete [15]: SET_MSG_STATUS MAP Set MSG Status Name - 0000000000000000 Status Indicator - 0 Status Value - 0 MAP Set MSG Status CNF - 0xA0 [16]: SET_MSG_STATUS Complete [17]: GET_CONVO_LISTING MAP Get Conversation Listing MAX List Count - 10 SRMP Wait Count - 0 MAP Get Conversation Listing CNF - 0x90 ============== BODY ============== <MAP-convo-listing version = "1.0"> <conversation id="E1E2E3E4F1F2F3F4A1A2A3A4B1B2B3B4" name="Beergarden Connectio> <participant uci="[email protected]" display_name="Tien" chat_s> <participant uci="[email protected]" display_name="Jonas" chat_> <pa ============ END BODY ============ MAP Get Conversation Listing CNF - 0x90 ============== BODY ============== rticipant uci="[email protected]" display_name="Max" chat_state="2" las> <participant uci="[email protected]" display_name="Nils" chat_s> <participant uci="[email protected]" display_name="Alex" chat_s> </conversation> <conversation id="C1C2C3C4D1D2D3D4E1E2E3E4F1F2F3F4" name="" last_activity="201" ============ END BODY ============ MAP Get Conversation Listing CNF - 0x90 ============== BODY ============== read_status="yes" version_counter="0A0A1B1B2C2C3D3D4E4E5F5F6A6A7B7B"> <participant uci="[email protected]" display_name="Mari" chat_state="2" last_a> </conversation> <conversation id="F1F2F3F4E1E2E3E4D1D2D3D4C1C2C3C4" name="family" last_activit> UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 150 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms <participant uci="[email protected]" display_name="Mari" chat_stat ============ END BODY ============ MAP Get Conversation Listing CNF - 0xA0 ============== BODY ============== e="2" last_activity="20140801T012900+0100" x_bt_uid=" A1A2A3A4B1B2C1C2D1D2E1E2E3E4> <participant uci="[email protected]" display_name="Lil Al" chat_state="1" > </conversation> </MAP-convo-listing> ============ END BODY ============ [18]: GET_CONVO_LISTING Complete [19]: GET_MAS_INST_INFO MAP Get MAS Instance Info MAS Instance ID - 0 SRMP Wait Count - 0 MAP Get MAS Instance Info CNF - 0xA0 ============== BODY ============== SMS/MMS ============ END BODY ============ [20]: GET_MAS_INST_INFO Complete [21]: SET_NTF_FILTER MAP Set Notification Filter Notification Filter Mask - 0 MAP Set NTF Filter CNF - 0xA0 [22]: SET_NTF_FILTER Complete [23]: SET_NTF_REG_ON MAP Set Notification Registration Notification Status - 1 MAP Set Notification Registration CNF - 0xA0 MCE MNS connection MAX Packet Length - 512 [24]: SET_NTF_REG_ON Complete [25]: SET_NTF_REG_OFF MAP Set Notification Registration Notification Status - 0 MAP Set Notification Registration CNF - 0xA0 MCE MNS disconnection - 0xA0 [26]: SET_NTF_REG_OFF Complete [27]: GET_OWNER_STATUS MAP Get Owner Status SRMP Wait Count - 0 MAP Get Owner Status CNF - 0xA0 Presence Availability - 0 ============== Presence Text ============== ============ END Presence Text ============ Last Activity Chat State - 0 [28]: GET_OWNER_STATUS Complete [29]: SET_OWNER_STATUS MAP Set Owner Status Chat State - 0 MAP Set Owner Status CNF - 0xA0 [30]: SET_OWNER_STATUS Complete [31]: SET_FOLDER_PARENT MAP Set Folder Name - ../ MAP Set Folder CNF - 0xA0 [32]: SET_FOLDER_PARENT Complete [33]: SET_FOLDER_OUTBOX MAP Set Folder UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 151 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Name - outbox MAP Set Folder CNF - 0xA0 [34]: SET_FOLDER_OUTBOX Complete [35]: PUSH_MSG MAP Push MSG Charset - 0 MAP Push MSG CNF - 0x90 MAP Push MSG CNF - 0x90 MAP Push MSG CNF - 0xA0 Name - 0000000000000001 [36]: PUSH_MSG Complete [37]: MCE_MAS_DISCONNECT MAP MCE MAS Disconnect MCE MAS disconnection - 0xA0 5.9 MAP-MSE Sample Application This application demonstrates the Message Access Profile (MAP) on i.MX RT1060 EVKC board as a Messaging Server Equipment (MSE). The Message Access Profile (MAP) defines a set of features and procedures to exchange messages between devices. The Messaging Server Equipment (MSE) is the device that provides the message repository engine i.e. has the ability to provide a client unit with messages that are stored in this device and notifications of changes in its message repository. 5.9.1 map-mse Application Execution Please refer to the previous sections 3.1.1-3.1.4 and 5.1.1 for instructions on importing a project, building an application, running an application in debug mode and flashing an application program for a few IDEs. Please refer to section 2.1 for serial console tool setup. 5.9.1.1 Run the application Press the power reset button on i.MX RT1060 EVKC board to run the demo application downloaded on the board. When the demo starts, the following message about the demo would appear on the console. Bluetooth MAP MSE demo start... Bluetooth initialized BR/EDR set connectable and discoverable done The demo does not require user interaction. The application will automatically start the Bluetooth discovery. Now prepare the Phone Messaging Equipment (MCE) device and connect with this MSE device. Then initiate MAP profile level connection from MCE device. Connected Security changed: A0:CD:F3:77:E5:01 level 2 File system mounted Total drive space - 48128B Free drive space - 43008B MSE MAS connection MAX Packet Length - 509 Refer section "MAP-MCE Sample Application" if you want to setup a IMX RT1060 EVKC as a MCE device. After a successful MAP connection, following commands can be sent from the MCE device which will be responded by MSE device. UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 152 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms · get folder listing - This example will send Folder-listing object but not parse/send application parameters from/to MCE. · set folder - This example will set folder correctly. · get message listing - This example will send Messages-listing object with NewMessage, MSETime and ListingSize but not parse application parameters from MCE. · get message - This example will send bMessage object but not parse/send application parameters from/to MCE. · set message status - This example will set the read status and the deleted status correctly and save the extended data to the local buffer. · push message - This example will save the message and return a message handle but not parse application parameters from MCE. · set notification registration - When Notification Status is ON, this example will initiates a MNS OBEX connection. · update inbox - This example always send success when receiving update inbox request. · get mas instance information - This example will send MAS Instance Information but not send application parameters to MCE. · set owner status - This example will save the application parameters to the local buffer that is used to respond to get owner status. · get owner status - This example will respond to get owner status with the application parameters saved in set owner status. · get conversation listing - This example will send Conversation-Listing object but not parse/send application parameters from/to MCE. · set notification filter - This example always send success when receiving set notification filter request Below is the example output of the all mentioned command MAP Get Folder Listing IND - UNSEG MAP Set Folder IND Name - telecom MAP Set Folder IND Name - msg MAP Set Folder IND Name - inbox MAP Update Inbox IND MAP Get MSG Listing IND - UNSEG Name - NULL Max List Count - 10 MAP Get MSG Listing IND - UNSEG Name - NULL MAP Get MSG IND -UNSEG Name - 0000000000000000 Attachment - 0 Charset - 0 MAP Get MSG IND -UNSEG Name - NULL MAP Set MSG Status IND - UNSEG Name - 0000000000000000 Status Indicator - 0 Status Value - 0 MAP Get Conversation Listing IND - UNSEG Max List Count - 10 MAP Get Conversation Listing IND - UNSEG MAP Get Conversation Listing IND - UNSEG MAP Get Conversation Listing IND - UNSEG MAP Get MAS Instance Info IND - UNSEG UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 153 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms MAS Instance ID - 0 MAP Set Notification Filter IND - UNSEG Notification Filter Mask - 00000000 MAP Set Notification Registration IND - UNSEG Notification Status - 1 SDP discovery started sdp success callback REFCOMM channel number 22 L2CAP PSM 0x1007 MAP version 0x0104 MAP supported features 0x0077FFFF Service name MAP MNS-name Message Notification Server found. Connecting ... MSE MNS connection MAX Packet Length - 512 MAP Set Notification Registration IND - UNSEG Notification Status - 0 MSE MNS disconnection - 0xA0 MAP Get Owner Status IND - UNSEG MAP Set Owner Status IND - UNSEG Chat State - 0 MAP Set Folder IND Name - ../ MAP Set Folder IND Name - outbox MAP PUSH MSG IND - START Name - NULL Charset - 0 ============== BODY ============== BEGIN:BMSG VERSION:1.0 STATUS:READ TYPE:SMS_GSM FOLDER: BEGIN:BENV BEGIN:VCARD VERSION:3.0 FN:+0000000000000 N:+0000000000000 TEL:+0000000000000 END:VCARD BEGIN:BBODY ENCODING:G-7BIT LENGTH:1080 BEGIN:MSG 0041000d91000000000000f00000a0050003080401622e90905d2fd3df6f3a1ad40c4241d4f29c1 e52e ============ END BODY ============ MAP PUSH MSG IND - CONTINUE Name - NULL ============== BODY ============== b65fafb4d47839a4128885a9ed3438a9b0b2464d7cbf4f79b8e063583 END:MSG BEGIN:MSG 0041000d91000000000000f00000a0050003080402a0206a794e0f29702e90905d2fd3df6f3a1ad 40cc END:MSG BEGIN:MSG 0041000d91000000000000f00000a0050003080403404276bd4c7fbfe9685033080551cb737a481 1ab6 ============ END BODY ============ MAP PUSH MSG IND - END UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 154 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Name - NULL ============== BODY ============== bd4c7fbfe9685033080551cb737a4811b3b9404276bd4c7fbfe9685033080551cb737a4811bbb94 0429 END:MSG BEGIN:MSG 0041000d91000000000000f0000012050003080404d0a066100aa296e7f410 END:MSG END:BBODY END:BENV END:BMSG ============ END BODY ============ MSE MAS disconnection - 0xA0 5.9.1.2 Limitations · This example only supports one MAS and MNS OBEX connection. · This example doesn't supports all application parameters and only supports to parse/send the part of application parameters from/to MCE. · This example is based on Fatfs RAM disk. There is a limited memory to store the incoming message from MCE. UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 155 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 5.10 peripheral_hps Sample Application This application demonstrates the Bluetooth LE Peripheral role, except that this application specifically exposes the HTTP Proxy GATT Service. 5.10.1 peripheral_hps Application Execution Please refer to the previous sections 3.1.1-3.1.4 and 5.1.1 for instructions on importing a project, building an application, running an application in debug mode and flashing an application program for a few IDEs. Please refer to section 2.1 for serial console tool setup. 5.10.1.1 Run the application Press the power reset button on i.MX RT1060 EVKC board to run the demo application downloaded on the board. When the demo starts, the following message about the demo would appear on the console. BLE Peripheral HPS demo start... Bluetooth initialized Advertising successfully started The demo does not require user interaction. The application will automatically start advertising the HTTP Proxy Service and it will accept the first connection request it receives. The application is then ready to process HTTP requests from the peer. The application simulates processing of the HTTP request. It will always return HTTP Status Code 500 and preset values for HTTP Headers and HTTP Body. Connected to peer: A0:CD:F3:77:E5:01 (public) Security changed: A0:CD:F3:77:E5:01 (public) level 2 (error 0) Processing request.. Request processed. 5.11 central_hpc Sample Application This application demonstrates very basic Bluetooth LE Central role functionality on i.MX RT1060 EVKC board and IW416 wireless module by scanning for other Bluetooth LE devices and establishing a connection to the first one with a strong enough signal. Except that this application specifically looks for HPS Server and programs a set of characteristics that configures a Hyper Text Transfer Protocol (HTTP) request, initiate this request, and then read the response once connected. Here, another setup of i.MX RT1060 EVK board and IW416 wireless module is used as peripheral_hps. 5.11.1 central_hpc Application Execution Please refer to the previous sections 3.1.1-3.1.4 and 5.1.1 for instructions on importing a project, building an application, running an application in debug mode and flashing an application program for a few IDEs. Please refer to section 2.1 for serial console tool setup. 5.11.1.1 Run the application Press the power reset button on i.MX RT1060 EVKC board to run the demo application downloaded on the board. When the demo starts, the following message about the demo would appear on the console. BLE Central HPC demo start... Bluetooth initialized Scanning started [DEVICE]: 54:CC:62:43:42:83 (random), AD evt type 2, AD data len 31, RSSI -92 [DEVICE]: A0:CD:F3:77:E6:1D (public), AD evt type 0, AD data len 7, RSSI -103 Found device: A0:CD:F3:77:E6:1D (public)Connected to peer: A0:CD:F3:77:E6:1D The demo does not require user interaction. The application will automatically start scanning and will connect to the first advertiser who is advertising the HTTP Proxy Service. UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 156 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms If the connection is successful, the application performs service discovery to find the characteristics of the HTTP Proxy Service. If discovery is successful, the application will perform a GET for the URI http://nxp.com by writing the URI and the Control Point characteristics of the HTTP Proxy Service. The application will display the received response in the console after it gets notified through the HTTP Status Code characteristic. Starting service discovery GATT Write successful Security changed: A0:CD:F3:77:E6:1D (public) level 2 (error 0) Subscribed to HTTP Status Code GATT Write successful Received HTTP Status 500 Reading Headers.. HTTP Headers: HTTPHEADER Reading Body... Unsubscribed HTTP Body: HTTPBODY 5.12 peripheral_pxr Sample Application This application demonstrates the BLE Peripheral role on i.MX RT1060 EVKC board and IW612 wireless module. Except that this application specifically exposes the Proximity Reporter (including LLS, IAS, and TPS) GATT Service. 5.12.1 peripheral_pxr Application Execution Please refer to the previous sections 3.1.1-3.1.4 and 5.1.1 for instructions on importing a project, building an application, running an application in debug mode and flashing an application program for a few IDEs. Please refer to section 2.1 for serial console tool setup. 5.12.1.1 Run the application Press the power reset button on i.MX RT1060 EVKC board to run the demo application downloaded on the board. When the demo starts, the following message about the demo would appear on the console. BLE Peripheral PXR demo start... Bluetooth initialized Advertising successfully started The demo does not require user interaction. The application will automatically start advertising the Link Loss Service and it will accept the first connection request it receives. The application is then ready to process operations from the peer. The application will initially set the default levels for the Link Loss Alert and the Immediate Alert. Connected to peer: A0:CD:F3:77:E6:1D (public) Locally setting Link Loss Alert Level to OFF Locally setting Immediate Alert... The Proximity Monitor peer will trigger or stop the Immediate Alert on the application depending on the connection RSSI. Monitor is setting Link Loss Alert Level to HIGH Security changed: A0:CD:F3:77:E6:1D (public) level 2 (error 0) Monitor is setting Immediate Alert... If the connection with the Proximity Monitor is timed out, the Link Loss Alert will be triggered with the level previously set by the Monitor. ALERT: OFF Monitor is setting Immediate Alert... ALERT: HIGH Disconnected (reason 0x08) Link Loss Alert Triggered... ALERT: HIGH UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 157 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 5.13 central_pxm Sample Application This application demonstrates very basic Bluetooth LE Central role functionality on i.MX RT1060 EVKC board and IW416 wireless module by scanning for other Bluetooth LE devices and establishing a connection to the first one with a strong enough signal. Except that this application specifically looks for Proximity Reporter. Here, another setup of i.MX RT1060 EVKC board and IW612 wireless module is used as peripheral_pxr. 5.13.1 central_pxm Application Execution Please refer to the previous sections 3.1.1-3.1.4 and 5.1.1 for instructions on importing a project, building an application, running an application in debug mode and flashing an application program for a few IDEs. Please refer to section 2.1 for serial console tool setup. 5.13.1.1 Run the application Press the power reset button on i.MX RT1060 EVKC board to run the demo application downloaded on the board. When the demo starts, the following message about the demo would appear on the console. BLE Central PXM demo start... Bluetooth initialized Scanning started The application will automatically start scanning and will connect to the first advertiser who is advertising the Link Loss Service. If the connection is successful, the application performs service discovery to find the characteristics of the Link Loss Service, as well as additional services and characteristics specified by the Proximity Profile, such as Immediate Alert and Tx Power services. [DEVICE]: A0:CD:F3:77:E5:01 (public), AD evt type 0, AD data len 11, RSSI -85 Found device: A0:CD:F3:77:E5:01 (public)Connected to peer: A0:CD:F3:77:E5:01 (publ) Starting service discovery GATT Write successful Security changed: A0:CD:F3:77:E5:01 (public) level 2 (error 0) If the Tx Power service and its characteristics have been discovered, the application will read the peer's Tx power and display it. Read successful - Tx Power Level: 0 If the Immediate Alert service and its characteristics have been discovered, the application will continuously monitor the connection RSSI and will trigger or stop the Immediate Alert on the peer when the value is crossing a preset threshold in either direction. Connection RSSI: -55 Connection RSSI: -53 Connection RSSI: -55 Connection RSSI: -55 Connection RSSI: -59 Connection RSSI: -58 Connection RSSI: -60 Connection RSSI: -58 Connection RSSI: -66 GATT Write successful Connection RSSI: -66 Connection RSSI: -81 Connection RSSI: -56 GATT Write successful Connection RSSI: -56 After the mandatory Link Loss service is discovered, the application will write the Link Loss Alert Level on the peer as HIGH_ALERT. UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 158 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms To trigger the Link Loss Alert on the peer, the connection will have to be timed out. The user can trigger this by simply resetting the board (press the RST button). 5.14 peripheral_ht Sample Application This application demonstrates the BLE Peripheral role on i.MX RT1060 EVKC board and IW612 wireless module. Except that this application specifically exposes the HT (Health Thermometer) GATT Service. Once a device connects it will generate dummy temperature values. 5.14.1 peripheral_ht Application Execution Please refer to the previous sections 3.1.1-3.1.4 and 5.1.1 for instructions on importing a project, building an application, running an application in debug mode and flashing an application program for a few IDEs. Please refer to section 2.1 for serial console tool setup. 5.14.1.1 Run the application Press the power reset button on i.MX RT1060 EVKC board to run the demo application downloaded on the board. When the demo starts, the following message about the demo would appear on the console. BLE Peripheral HT demo start... Bluetooth initialized Advertising successfully started The application does not require user interaction. The application will automatically start advertising the Health Thermometer Service and it will accept the first connection request it receives. If the peer subscribes to receive temperature indications, these will be sent every 1 second. The temperature readings are simulated with values between 20 and 25 degrees Celsius. Connected to peer: 6D:0F:0A:BF:A6:4B (random) Passkey for 6D:0F:0A:BF:A6:4B (random): 974583 Security changed: AC:C0:48:9F:82:5A (public) level 4 (error 0) temperature is 20C Indication success temperature is 21C Indication success temperature is 22C Indication success temperature is 23C 5.15 central_ht Sample Application This application demonstrates very basic Bluetooth LE Central role functionality on i.MX RT1060 EVKC board and IW612 wireless module by scanning for other Bluetooth LE devices and establishing a connection to the first one with a strong enough signal. Except that this application specifically looks for health thermometer sensor and reports the temperature readings once connected. Here, another setup of i.MX RT1060 EVKC board and IW612 wireless module is used as peripheral_ht. 5.15.1 central_ht Application Execution Please refer to the previous sections 3.1.1-3.1.4 and 5.1.1 for instructions on importing a project, building an application, running an application in debug mode and flashing an application program for a few IDEs. Please refer to section 2.1 for serial console tool setup. UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 159 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 5.15.1.1 Run the application Press the power reset button on i.MX RT1060 EVKC board to run the demo application downloaded on the board. When the demo starts, the following message about the demo would appear on the console. BLE Central HT demo start... Bluetooth initialized Scanning started The demo does not require user interaction. The application will automatically start scanning and will connect to the first advertiser who is advertising the Health Thermometer Service. If the connection is successful, the application performs service discovery to find the characteristics of the Health Thermometer Service. If discovery is successful, the application will subscribe to receive temperature indications from the peer. The application will display the received indications in the console. [DEVICE]: A0:CD:F3:77:E6:1D (public), AD evt type 0, AD data len 9, RSSI -74 Found device: A0:CD:F3:77:E6:1D (public)Connected to peer: A0:CD:F3:77:E6:1D (publ) Starting service discovery Subscribed to HTS Security changed: A0:CD:F3:77:E6:1D (public) level 2 (error 0) Temperature 20 degrees Celsius Temperature 21 degrees Celsius Temperature 22 degrees Celsius 5.16 peripheral_ipsp Sample Application This application demonstrates the BLE Peripheral role on i.MX RT1060 EVKC board and IW612 wireless module. Except that this application specifically exposes the Internet Protocol Support GATT Service. 5.16.1 peripheral_ipsp Application Execution Please refer to the previous sections 3.1.1-3.1.4 and 5.1.1 for instructions on importing a project, building an application, running an application in debug mode and flashing an application program for a few IDEs. Please refer to section 2.1 for serial console tool setup. 5.16.1.1 Run the application Press the power reset button on i.MX RT1060 EVKC board to run the demo application downloaded on the board. When the demo starts, the following message about the demo would appear on the console. BLE Peripheral IPSP demo start... Bluetooth initialized Advertising successfully started IPSS Service ready The demo does not require user interaction. The application will automatically start advertising the IPSP Service and it will accept the first connection request it receives. The application will perform the required setup for the L2CAP credit-based channel specified by the IPSP Profile. The application will display in console any message it receives from the peer through the L2CAP channel. Connected to peer: A0:CD:F3:77:E6:1D (public) Security changed: A0:CD:F3:77:E6:1D (public) level 2 (error 0) Received message: hello Received message: hello Received message: hello UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 160 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 5.17 central_ipsp Sample Application This application demonstrates very basic BLE Central role functionality by scanning for other BLE devices and establishing a connection to the first one with a strong enough signal. Except that this application specifically looks for IPSP Service and communicates between the devices that support IPSP is done using IPv6 packets over the Bluetooth Low Energy transport once connected. Here, another setup of i.MX RT1060 EVKC board and IW612wireless module is used as peripheral_ipsp. 5.17.1 central_ipsp Application Execution Please refer to the previous sections 3.1.1-3.1.4 and 5.1.1 for instructions on importing a project, building an application, running an application in debug mode and flashing an application program for a few IDEs. Please refer to section 2.1 for serial console tool setup. 5.17.1.1 Run the application Press the power reset button on i.MX RT1060 EVKC board to run the demo application downloaded on the board. When the demo starts, the following message about the demo would appear on the console. BLE Central IPSP demo start... Bluetooth initialized Scanning started The demo does not require user interaction. The application will automatically start scanning and will connect to the first advertiser who is advertising the IPSP Service. After the L2CAP cre dit-based channel specified by the IPSP Profile is established, the application will send a predefined test message every 5 seconds through the channel. [DEVICE]: A0:CD:F3:77:E5:01 (public), AD evt type 0, AD data len 7, RSSI -93 Found device: A0:CD:F3:77:E5:01 (public)Connected Starting service discovery Security changed: A0:CD:F3:77:E5:01 (public) level 2 (error 0) Sending message... Sending message... Sending message... 5.18 Broadcast media sender This section describes the application to demonstrate on how to use the broadcast media sender example of the LE audio feature. The Broadcast Media Sender (BMS) role is defined for LE devices that send media audio content to any number of receiving devices. Typical devices implementing the BMS role include smartphones, media players, TVs, laptops, tablets, and PCs. Run and connect the Broadcast media receiver (BMR) with the this BMS device to verify the BMS audio. NOTE: This sample application is only supported on IW612 with i.MX RT1060 EVKC board. 5.18.1 Prepare the setup for Application demo This section describes the steps to prepare the setup for application demo execution. Step 1: Build and flash the Application Please refer to the previous sections 3.1.1-3.1.4 and 5.1.1 for instructions on importing a project, building an application, running an application in debug mode and flashing an application program for a few IDEs. Step 2: Save a wav music file to a USB drive and name it as "<music_file_name.wav" Step 3: Connect the same USB drive to USB OTG1 port of the i.MX RT EVK board Step 4: Apply a power reset on i.MX RT EVK board UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 161 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Step 5: Check the console on the connected computer screen to see the application start-up logs 5.18.2 Application execution This section describes the steps for application execution. Step 1: Press RESET button and restart the i.MX RT EVK board When the demo starts, the media broadcast starts automatically and following message about the demo would appear on the console. Copyright 2024 NXP BMS>> Broadcast Media Sender. Bluetooth initialized wav file list: 1, 1:/Demo_song.wav wav file list complete! Please open the wav file you want use "wav_open <path>" command. Step 2: Input "help" command to get the list of commands BMR>> help "help": List all the registered commands "exit": Exit program wav_open<path> lc3_preset_list lc3_preset<name> play :resume broadcast. pause :stop broadcast. sync_info config_rtn <rtn> config_pd <pd> config_phy [1,2,4] - 1: 1M, 2: 2M, 4: Coded config_packing [0,1] - 0: sequentially, 1: interleaved set_broadcast_code [str,hex] [data] BMS>> Step 3: Input wav_open " command to open the listed wav file BNS>> wav_open 1:/Demo_song.wav wav file info: BMS>> sample_rate: 48000 channels: 2 bits: 16 size: 37168276 samples: 9292069 Step 4: Input " lc3_preset_list: " command to check the available preset BMS>> lc3_preset_list lc3 preset list: 48_1_1: codec_cfg - sample_rate: 48000, duration: 7500, len: 75 qos - interval: 7500, framing: 0, phy: 2, sdu: 75, rtn: 4, pd: 40000 UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 162 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 48_2_1: codec_cfg - sample_rate: 48000, duration: 10000, len: 100 qos - interval: 10000, framing: 0, phy: 2, sdu: 100, rtn: 4, pd: 40000 48_3_1: codec_cfg - sample_rate: 48000, duration: 7500, len: 90 qos - interval: 7500, framing: 0, phy: 2, sdu: 90, rtn: 4, pd: 40000 48_4_1: codec_cfg - sample_rate: 48000, duration: 10000, len: 120 qos - interval: 10000, framing: 0, phy: 2, sdu: 120, rtn: 4, pd: 40000 48_5_1: codec_cfg - sample_rate: 48000, duration: 7500, len: 117 qos - interval: 7500, framing: 0, phy: 2, sdu: 117, rtn: 4, pd: 40000 48_6_1: codec_cfg - sample_rate: 48000, duration: 10000, len: 155 qos - interval: 10000, framing: 0, phy: 2, sdu: 155, rtn: 4, pd: 40000 48_1_2: codec_cfg - sample_rate: 48000, duration: 7500, len: 75 qos - interval: 7500, framing: 0, phy: 2, sdu: 75, rtn: 4, pd: 40000 48_2_2: codec_cfg - sample_rate: 48000, duration: 10000, len: 100 qos - interval: 10000, framing: 0, phy: 2, sdu: 100, rtn: 4, pd: 40000 48_3_2: codec_cfg - sample_rate: 48000, duration: 7500, len: 90 qos - interval: 7500, framing: 0, phy: 2, sdu: 90, rtn: 4, pd: 40000 48_4_2: codec_cfg - sample_rate: 48000, duration: 10000, len: 120 qos - interval: 10000, framing: 0, phy: 2, sdu: 120, rtn: 4, pd: 40000 48_5_2: codec_cfg - sample_rate: 48000, duration: 7500, len: 117 qos - interval: 7500, framing: 0, phy: 2, sdu: 117, rtn: 4, pd: 40000 48_6_2: codec_cfg - sample_rate: 48000, duration: 10000, len: 155 qos - interval: 10000, framing: 0, phy: 2, sdu: 155, rtn: 4, pd: 40000 Please select lc3 preset use "lc3_preset <name>" command. Step 5: Input " lc3_preset <name>: " command to select the preset, after that the broadcast will start BMS>> lc3_preset 48_1_1 48_1_1: BMS>> codec_cfg - sample_rate: 48000, duration: 7500, len: 75 qos - interval: 7500, framing: 0, phy: 2, sdu: 75, rtn: 4, pd: 40000 LC3 encoder setup done! Creating broadcast source Creating broadcast source with 1 subgroups with 2 streams Starting broadcast source Broadcast source started Step 5: Input " play | pause " command to start and stop the broadcast. BMS>> pause BMS>> Broadcast source stopped BMS>> play BMS>> Broadcast source started 5.19 Broadcast media receiver This section describes the application to demonstrate on how to use the broadcast media receiver example of the LE audio feature. The Broadcast Media Receiver (BMR) role is defined for devices that receive media audio content from a source device in a broadcast Audio Stream. Typical devices implementing the BMR role include headphones, UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 163 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms earbuds, and speakers. A smartphone may also support this role to receive broadcast Audio Streams from a BMS. NOTE: This sample application is only supported on IW612 with i.MX RT1060 EVKC board. 5.19.1 Prepare the setup for Application demo This section describes the steps to prepare the setup for application demo execution. Step 1: Build and flash the example project Please refer to the previous sections 3.1.1-3.1.4 and 5.1.1 for instructions on importing a project, building an application, running an application in debug mode and flashing an application program for a few IDEs. Step 2: Connect a speaker/headphone to the 3.5mm audio jack of i.MX RT EVK board Step 3: Apply a power reset on i.MX RT EVK board Step 4: Check the console on the connected computer screen to see the application start-up logs 5.19.2 Application execution This section describes the steps for application execution. Step 1: Press RESET button and restart the i.MX RT EVK board When the demo starts, following message about the demo would appear on the console. Copyright 2024 NXP BMR>> Broadcast Media Receiver. Please select sink role "left"|"right" use "init" command. Step 2: Select the sink role Once the sink role is selected, the application automatically start receiving media samples and following type of message would appear on the console. BMR>> init left BMR@left>> BMR@left>> Bluetooth initialized Scanning for broadcast sources [device name]:broadcast_media_sender connect... Broadcast source found, waiting for PA sync Attempting to PA sync to the broadcaster with id 0xAF64DE Waiting for PA synced [device name]:broadcast_media_sender connect... [device name]:broadcast_media_sender connect... PA synced for sync 2023A0BC with sid 0x00 Broadcast source PA synced, creating Broadcast Sink Broadcast Sink created, waiting for BASE Received BASE with 1 subgroups from broadcast sink 2023A87C codec_qos - interval: 7500, framing: 0, phy: 2, sdu: 75, rtn: 0, pd: 40000 BASE received, waiting for syncable Codec: freq 48000, channel count 1, duration 7500, channel alloc 0x00000001 Audio codec configed, waiting for syncable Syncing to broadcast Stream 20213368 started Step 3: Input "pause" command to stop playing UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 164 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms BMR@left>> pause pause BMR@left>> Stream 20213368 stopped Broadcast sink stoped! Step 4: Input "play" command to start playing BMR@left>> play play BMR@left>> Syncing to broadcast Stream 20213368 started Step 5: Input "vol_set 100" to set the volume to level 100 BMR@left>> vol_set 100 vol_set 100 BMR@left>> Step 6: Input "vol_up" command and increase the volume BMR@left>> vol_up vol_up vol: 124 BMR@left>> Step 7: Input "vol_down" command and decrease the volume BMR@left>> vol_down vol_down vol: 99 BMR@left>> Step 8: Input "vol_mute" command and mute the volume BMR@left>> vol_mute vol_mute BMR@left>> Step 9: Input "vol_unmute" command and unmute the volume BMR@left>> vol_unmute vol_unmute vol: 99 BMR@left>> 5.20 Broadcast media sender 4 BIS This section describes the application to demonstrate on how to use the broadcast media sender 4 BIS example of the LE audio feature. The Broadcast Media Sender (BMS) role is defined for LE devices that send media audio content to any number of receiving devices. Typical devices implementing the BMS role include smartphones, media players, TVs, laptops, tablets, and PCs. With this BMS 4 BIS device, connect the two Broadcast media receiver 4BIS devices (i.e. 1BMR front and 1BMR back) to verify the BMS audio. Other two i.MX RT1170 EVKB boards running BMR 4 BIS examples can be connected as BMR peer devices. Refer section 5.21. UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 165 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms NOTE: This sample application is only supported on IW612 with i.MX RT1170 EVKB board. 5.20.1 Prepare the setup for Application demo This section describes the steps to prepare the setup for application demo execution. Step 1: Build and flash the Application Please refer to the previous sections 3.1.1-3.1.4 and 5.1.1 for instructions on importing a project, building an application, running an application in debug mode and flashing an application program for a few IDEs. Step 2: Save a wav music file to a USB drive and name it as "<music_file_name.wav>" Step 3: Connect the same USB drive to USB OTG1 port of the i.MX RT EVK board Step 4: Apply a power reset on i.MX RT EVK board Step 5: Check the console on the connected computer screen to see the application start-up logs 5.20.2 Application execution This section describes the steps for application execution. Step 1: Press RESET button and restart the i.MX RT EVK board When the demo starts, the media broadcast starts automatically and following message about the demo would appear on the console. Copyright 2024 NXP BMS>> Broadcast Media Sender 4BIS. Bluetooth initialized wav file list: 1, 1:/trangle_44100_2ch_16bits.wav 2, 1:/chrip_48000_2ch_16bits_0_80.wav 3, 1:/music_16_2.wav 4, 1:/music_8000_2ch_16bits.wav 5, 1:/music_16000_2ch_16bits.wav 6, 1:/music_24000_2ch_16bits.wav 7, 1:/music_32000_2ch_16bits.wav 8, 1:/music_44100_2ch_16bits.wav 9, 1:/music_48000_2ch_16bits.wav 10, 1:/play_1ksin_8k_16b.wav 11, 1:/play_1ksin_32k_16b.wav 12, 1:/play_1ksin_48k_16b.wav 13, 1:/sine_16_2.wav 14, 1:/sine_8000_2ch_16bits.wav 15, 1:/sine_8000_2ch_16bits_0_75.wav 16, 1:/sine_16000_2ch_16bits.wav 17, 1:/sine_16000_2ch_16bits_0_75.wav 18, 1:/sine_16000_2ch_24bits.wav 19, 1:/sine_16000_2ch_32bits.wav 20, 1:/sine_24000_2ch_16bits.wav 21, 1:/sine_32000_2ch_16bits.wav 22, 1:/sine_32000_2ch_16bits_0_75.wav 23, 1:/sine_44100_2ch_16bits.wav 24, 1:/sine_48000_2ch_16bits.wav 25, 1:/sine_48000_2ch_16bits_0_75.wav 26, 1:/sine_48000_2ch_16bits_100ms_sine_900ms_silence.wav wav file list complete! Please open the wav file you want use "wav_open <path>" command. Step 2: Input wav_open " command to open the listed wav file BMS>> wav_open 1:/music_16000_2ch_16bits.wav wav file info: BMS>> sample_rate: 16000 channels: 2 bits: 16 UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 166 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms size: 1163600 samples: 290900 Step 3: Input " lc3_preset_list: " command to check the available preset BMS>> lc3 preset list: 16_2_1: codec_cfg - sample_rate: 16000, duration: 10000, len: 40 qos - interval: 10000, framing: 0, phy: 2, sdu: 40, rtn: 2, pd: 40000 Please select lc3 preset use "lc3_preset <name>" command. Step 4: Input " lc3_preset <name>: " command to select the preset, after that the broadcast will start BMS>> lc3_preset 16_2_1 16_2_1: BMS>> codec_cfg - sample_rate: 16000, duration: 10000, len: 40 qos - interval: 10000, framing: 0, phy: 2, sdu: 40, rtn: 2, pd: 40000 new_preset: codec_cfg - sample_rate: 16000, duration: 10000, len: 40 qos - interval: 10000, framing: 0, phy: 2, sdu: 40, rtn: 1, pd: 40000 LC3 encoder setup done! Creating broadcast source Creating broadcast source with 1 subgroups with 4 streams Starting broadcast source Broadcast source started Step 5: Input " play | pause " command to start and stop the broadcast. BMS>> pause BMS>> Broadcast source stopped BMS>> play BMS>> Broadcast source started 5.21 Broadcast media receiver 4 BIS This section describes the application to demonstrate on how to use the broadcast media receiver 4 BIS example of the LE audio feature. The Broadcast Media Receiver (BMR) role is defined for devices that receive media audio content from a source device in a broadcast Audio Stream. Typical devices implementing the BMR role include headphones, earbuds, and speakers. A smartphone may also support this role to receive broadcast Audio Streams from a BMS. With this BMR 4 BIS device, connect the Broadcast media sender 4 BIS device to verify the BMS audio. Other i.MX RT1170 EVKB board running BMS 4BIS examples can be connected as BMS peer devices. Refer section 5.20. NOTE: This sample application is only supported on IW612 with i.MX RT1170 EVKB board. 5.21.1 Prepare the setup for Application demo This section describes the steps to prepare the setup for application demo execution. Step 1: Build and flash the example project Please refer to the previous sections 3.1.1-3.1.4 and 5.1.1 for instructions on importing a project, building an application, running an application in debug mode and flashing an application program for a few IDEs. Step 2: Connect a speaker/headphone to the 3.5mm audio jack of i.MX RT EVK board Step 3: Apply a power reset on i.MX RT EVK board Step 4: Check the console on the connected computer screen to see the application start-up logs 5.21.2 Application execution This section describes the steps for application execution. UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 167 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Step 1: Press RESET button and restart the i.MX RT EVK board When the demo starts, following message about the demo would appear on the console. Copyright 2024 NXP BMR>> Broadcast Media Receiver 4BIS. Please select sink role "front"|"back" use "init" command. Step 2: Select the sink role Once the sink role is selected, the application automatically start receiving media samples and following type of message would appear on the console. BMR>> init front BMR@front>> BMR@front>> Bluetooth initialized Scanning for broadcast sources [device name]:bms_4bis connect... Broadcast source found, waiting for PA sync Attempting to PA sync to the broadcaster with id 0x8D1379 Waiting for PA synced [device name]:bms_4bis connect... [device name]:bms_4bis connect... PA synced for sync 202F2AB0 with sid 0x00 Broadcast source PA synced, creating Broadcast Sink Broadcast Sink created, waiting for BASE Received BASE with 1 subgroups from broadcast sink 202F45C0 codec_qos - interval: 10000, framing: 0, phy: 2, sdu: 40, rtn: 0, pd: 40000 BASE received, waiting for syncable Codec: freq 16000, channel count 2, duration 10000, channel alloc 0x00000003, frame len 40, frame blocks per sdu 1 Audio codec configed, waiting for syncable Syncing to broadcast Stream 20304788 started Stream 203047A8 started Step 3: Input "pause" command to stop playing BMR@left>> pause pause BMR@left>> Stream 20213368 stopped Broadcast sink stopped! Step 4: Input "play" command to start playing BMR@left>> play play BMR@left>> Syncing to broadcast Stream 20213368 started Step 5: Input "vol_set 100" to set the volume to level 100 BMR@left>> vol_set 100 vol_set 100 UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 168 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms BMR@left>> Step 6: Input "vol_up" command and increase the volume BMR@left>> vol_up vol_up vol: 124 BMR@left>> Step 7: Input "vol_down" command and decrease the volume BMR@left>> vol_down vol_down vol: 99 BMR@left>> Step 8: Input "vol_mute" command and mute the volume BMR@left>> vol_mute vol_mute BMR@left>> Step 9: Input "vol_unmute" command and unmute the volume BMR@left>> vol_unmute vol_unmute vol: 99 BMR@left>> 5.22 Telephony and Media Audio Profile (TMAP) Peripheral Application This section describes the application to demonstrate how to use the Media Audio Profile (TMAP) on the peripheral device. The Telephony and Media Audio Service (TMAS) defines a characteristic to enable discovery of supported TMAP profile roles. NOTE: This sample application is only supported on IW612 with i.MX RT1060 EVKC board. 5.22.1 Prepare the setup for Application demo This section describes the steps to prepare the setup for application demo execution. Step 1: Build and flash the example project Please refer to the previous sections 3.1.1-3.1.4 and 5.1.1 for instructions on importing a project, building an application, running an application in debug mode and flashing an application program for a few IDEs. Step 2: Apply a power reset on i.MX RT EVK board Step 3: Check the console on the connected computer screen to see the application start-up logs 5.22.2 Application execution When demo application starts, It automatically connects with TMAP central devices which scan it. Bluetooth initialized Initializing TMAP and setting role VCP initialized BAP initialized Advertising successfully started Connected: A0:CD:F3:77:E5:01 (public) Security changed: 0, level 2 TMAP discovery done UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 169 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms VCS volume 100, mute 1 CCP: Discovered GTBS CCP: Discovered remote URI: skype CCP initialized ASE Codec Config: conn 20221840 ep 20223784 dir 1 codec_cfg 0x06 cid 0x0000 vid 0x0000 count 16 data: type 0x01 value_len 1 08 data: type 0x02 value_len 1 01 data: type 0x03 value_len 4 01000000 data: type 0x04 value_len 2 6400 Frequency: 48000 Hz Frame Duration: 10000 us Channel allocation: 0x1 Octets per frame: 100 (negative means value not pressent) Frames per SDU: 1 ASE Codec Config stream 20202C94 QoS: stream 20202C94 qos 2021CF90 QoS: interval 10000 framing 0x00 phy 0x02 sdu 100 rtn 5 latency 20 pd 40000 Enable: stream 20202C94 meta_len 4 MCP: Discovered MCS MCP initialized CCP: Call originate successful MCP: Successfully sent command (0) - opcode: 1, param: 0 Incoming audio on stream 20202C94 len 100 Incoming audio on stream 20202C94 len 100 CCP: Call with id 1 terminated MCP: Successfully sent command (0) - opcode: 2, param: 0 Incoming audio on stream 20202C94 len 100 Incoming audio on stream 20202C94 len 100 Incoming audio on stream 20202C94 len 100 Incoming audio on stream 20202C94 len 100 Incoming audio on stream 20202C94 len 100 Incoming audio on stream 20202C94 len 100 Incoming audio on stream 20202C94 len 100 UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 170 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 5.23 Telephony and Media Audio Profile (TMAP) Central Application This section describes the application to demonstrate how to use the Media Audio Profile (TMAP) on the central device. The Telephony and Media Audio Service (TMAS) defines a characteristic to enable discovery of supported TMAP profile roles. NOTE: This sample application is only supported on IW612 with i.MX RT1060 EVKC board. 5.23.1 Prepare the setup for Application demo This section describes the steps to prepare the setup for application demo execution. Step 1: Build and flash the example project Please refer to the previous sections 3.1.1-3.1.4 and 5.1.1 for instructions on importing a project, building an application, running an application in debug mode and flashing an application program for a few IDEs. Step 2: Apply a power reset on i.MX RT EVK board Step 3: Check the console on the connected computer screen to see the application start-up logs 5.23.2 Application execution When demo application starts, It automatically scan for the TMAP peripheral device and connects with it. Bluetooth initialized Initializing TMAP and setting role CAP initialized VCP initialized MCP initialized CCP initialized Scanning successfully started [DEVICE]: 61:ED:43:72:13:AB (random), [AD]: 1 data_len 1 [AD]: 25 data_len 2 [AD]: 2 data_len 6 [AD]: 22 data_len 4 Found TMAS in peer adv data! Attempt to connect! MTU exchanged: 23/23 Connected: 61:ED:43:72:13:AB (random) MTU exchanged: 65/65 Security changed: 0, level 2 TMAS discovery done VCS volume 100, mute 1 Found CAS codec id 0x06 cid 0x0000 vid 0x0000 count 19 data: type 0x01 value_len 2 a400 data: type 0x02 value_len 1 03 data: type 0x03 value_len 1 02 data: type 0x04 value_len 4 1e009b00 data: type 0x05 value_len 1 01 meta: type 0x01 value_len 2 1f00 Sink #0: ep 20226D1C Sink discover complete codec id 0x06 cid 0x0000 vid 0x0000 count 19 data: type 0x01 value_len 2 a400 data: type 0x02 value_len 1 03 UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 171 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms data: type 0x03 value_len 1 02 data: type 0x04 value_len 4 1e009b00 data: type 0x05 value_len 1 01 meta: type 0x01 value_len 2 1f00 Source #0: ep 20226EAC Discover sources complete: err 0 Created group Configured stream 202044E8 QoS set stream 202044E8 Enabled stream 202044E8 CCP: Placing call to remote with id 1 to skype:friend Started stream 202044E8 Sending mock data with len 100 Sending mock data with len 100 CCP: Call terminated for id 1 with reason 6 Sending mock data with len 100 Sending mock data with len 100 Sending mock data with len 100 Sending mock data with len 100 Sending mock data with len 100 Sending mock data with len 100 Sending mock data with len 100 Sending mock data with len 100 5.24 Unicast media sender This section describes the application to demonstrate on how to use the unicast media sender example of the LE audio feature. The Unicast Media Sender (UMS) role is defined for devices that send media audio content in one or more Unicast Audio Streams. Typical devices implementing the UMS role include smartphones, media players, TVs, laptops, tablets, and PCs. NOTE: This sample application is only supported on IW612 with i.MX RT1060 EVKC board. 5.24.1 Prepare the setup for Application demo This section describes the steps to prepare the setup for application demo execution. Step 1: Build and flash the Application Please refer to the previous sections 3.1.1-3.1.4 and 5.1.1 for instructions on importing a project, building an application, running an application in debug mode and flashing an application program for a few IDEs. Step 2: Save a wav music file to a USB drive and name it as "<music_name>.wav" Step 3: Connect the same USB drive to USB OTG port of the i.MX RT EVK board Step 4: Apply a power reset on i.MX RT EVK board Step 5: Check the console on the connected computer screen to see the application start-up logs 5.24.2 Application execution This section describes the steps for application execution. Step 1: Press RESET button and restart the i.MX RT EVK board When the demo starts, it automatically starts scanning for the left and right profiles and following message about the demo would appear on the console. Copyright 2024 NXP Unicast Media Sender. Initializing UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 172 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Initialized wav file list: 1, 1:/Demo_song.wav wav file list complete! Please open the wav file you want use "wav_open <path>" command. UMS>> help "help": List all the registered commands "exit": Exit program wav_open <path> lc3_preset_list lc3_preset <name> scan connect [index] vol_set [0-255] vol_up vol_down vol_mute vol_unmute play pause sync_info config_rtn <rtn> config_pd <pd> config_phy [1,2,4] - 1: 1M, 2: 2M, 4: Coded config_packing [0,1] - 0: sequentially, 1: interleaved config_conn_param [interval_min] [interval_max] [latency] [timeout] - interval: N s UMS>> Step 2: Input "waw_open" command to select song file wav_open UMS>> wav_open 1:/Demo_song.wav wav file info: UMS>> sample_rate: 48000 channels: 2 bits: 16 size: 37168276 samples: 9292069 lc3 preset list: 48_1_1: codec_cfg - sample_rate: 48000, duration: 7500, len: 75 qos - interval: 7500, framing: 0, phy: 2, sdu: 75, rtn: 5, pd: 40000 48_2_1: codec_cfg - sample_rate: 48000, duration: 10000, len: 100 qos - interval: 10000, framing: 0, phy: 2, sdu: 100, rtn: 5, pd: 40000 48_3_1: codec_cfg - sample_rate: 48000, duration: 7500, len: 90 qos - interval: 7500, framing: 0, phy: 2, sdu: 90, rtn: 5, pd: 40000 48_4_1: codec_cfg - sample_rate: 48000, duration: 10000, len: 120 qos - interval: 10000, framing: 0, phy: 2, sdu: 120, rtn: 5, pd: 40000 48_5_1: codec_cfg - sample_rate: 48000, duration: 7500, len: 117 qos - interval: 7500, framing: 0, phy: 2, sdu: 117, rtn: 5, pd: 40000 48_6_1: codec_cfg - sample_rate: 48000, duration: 10000, len: 155 UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 173 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms qos - interval: 10000, framing: 0, phy: 2, sdu: 155, rtn: 5, pd: 40000 48_1_2: codec_cfg - sample_rate: 48000, duration: 7500, len: 75 qos - interval: 7500, framing: 0, phy: 2, sdu: 75, rtn: 13, pd: 40000 48_2_2: codec_cfg - sample_rate: 48000, duration: 10000, len: 100 qos - interval: 10000, framing: 0, phy: 2, sdu: 100, rtn: 13, pd: 40000 48_3_2: codec_cfg - sample_rate: 48000, duration: 7500, len: 90 qos - interval: 7500, framing: 0, phy: 2, sdu: 90, rtn: 13, pd: 40000 48_4_2: codec_cfg - sample_rate: 48000, duration: 10000, len: 120 qos - interval: 10000, framing: 0, phy: 2, sdu: 120, rtn: 13, pd: 40000 48_5_2: codec_cfg - sample_rate: 48000, duration: 7500, len: 117 qos - interval: 7500, framing: 0, phy: 2, sdu: 117, rtn: 13, pd: 40000 48_6_2: codec_cfg - sample_rate: 48000, duration: 10000, len: 155 qos - interval: 10000, framing: 0, phy: 2, sdu: 155, rtn: 13, pd: 40000 Step 3: Input "lc3_precet" command to select the available preset UMS>> lc3_preset 48_1_1 48_1_1: UMS>> codec_cfg - sample_rate: 48000, duration: 7500, len: 75 qos - interval: 7500, framing: 0, phy: 2, sdu: 75, rtn: 5, pd: 40000 LC3 encoder setup done! Creating unicast group Unicast group created Please scan and connect the devices you want! MS>> Scanning successfully started [0]: A0:CD:F3:77:E5:01 (public), rssi -46, unicast_media_receiver [1]: A0:CD:F3:77:E6:1D (public), rssi -45, unicast_media_receiver Step 4: Input "connect <index>" command to set initiate connection UMS>> connect 0 UMS>> device selected! Connecting Connect first device MTU exchanged: 23/23 LE Connected: A0:CD:F3:77:E5:01 (public) MTU exchanged: 65/196 Connected CSIP discover CSIP conn 2022BC30 discovered set count 1 set 1/1 info: sirk: 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 set_size: 2 rank: 1 lockable: 1 CSIP discovered Scan another member member: A0:CD:F3:77:E6:1D (public), rssi -45, unicast_media_receiver Member discovered Connecting Connect second device MTU exchanged: 23/23 LE Connected: A0:CD:F3:77:E6:1D (public) MTU exchanged: 65/196 Connected CSIP discover CSIP conn 2022BDF4 discovered set count 1 UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 174 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms set 1/1 info: sirk: 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 set_size: 2 rank: 2 lockable: 1 CSIP discovered Discover VCS VCS discover finished Discover VCS complete. Discovering sinks VCS inst 0, volume 229, mute 0 codec_cap 202256A8 dir 0x01 codec id 0x06 cid 0x0000 vid 0x0000 count 19 data: type 0x01 value_len 2 ff1f data: type 0x02 value_len 1 02 data: type 0x03 value_len 1 01 data: type 0x04 value_len 4 28007800 data: type 0x05 value_len 1 01 meta: type 0x01 value_len 2 0600 dir 1 loc 1 snk ctx 31 src ctx 0 Sink #0: ep 20230CC8 Discover sinks complete: err 0 Sinks discovered Configuring streams Audio Stream 202186A8 configured Configured sink stream[0] Stream configured Setting stream QoS QoS: waiting for 0 streams Audio Stream 202186A8 QoS set Stream QoS Set Enabling streams Audio Stream 202186A8 enabled Streams enabled Connecting streams Audio Stream 202186A8 started Streams connected Starting streams Audio Stream 202186A8 started Streams started Discover VCS VCS discover finished Discover VCS complete. Discovering sinks VCS inst 1, volume 229, mute 0 codec_cap 202256A8 dir 0x01 codec id 0x06 cid 0x0000 vid 0x0000 count 19 data: type 0x01 value_len 2 ff1f data: type 0x02 value_len 1 02 UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 175 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms data: type 0x03 value_len 1 01 data: type 0x04 value_len 4 28007800 data: type 0x05 value_len 1 01 meta: type 0x01 value_len 2 0600 dir 1 loc 2 snk ctx 31 src ctx 0 Sink #1: ep 20231130 Discover sinks complete: err 0 Sinks discovered Configuring streams Audio Stream 202186CC configured Configured sink stream[1] Stream configured Setting stream QoS QoS: waiting for 1 streams Audio Stream 202186CC QoS set Stream QoS Set Enabling streams Audio Stream 202186CC enabled Streams enabled Connecting streams Audio Stream 202186CC started Streams connected Starting streams Audio Stream 202186CC started Streams started Step 5: Input "vol_up" command and increase the volume UMS>> vol_up VCS inst 0, volume 100, mute 0 Step 6: Input "vol_down" command and decrease the volume UMS>> vol_down VCS inst 1, volume 75, mute 0 Step 7: Input "vol_mute" command and mute the volume UMS>> vol_mute VCS inst 0, volume 75, mute 1 Step 8: Input "vol_unmute" command and unmute the volume UMS>> vol_mute VCS inst 0, volume 75, mute 0 5.25 Unicast media receiver This section describes the application to demonstrate on how to use the unicast media receiver example of the LE audio feature. The Unicast Media Receiver (UMR) role is defined for devices that receive media audio content from a source device in one or more Unicast Audio Streams. Typical devices implementing the UMR role include headphones, earbuds, and wireless speakers. NOTE: This sample application is only supported on IW612 with i.MX RT1060 EVKC board. 5.25.1 Prepare the setup for Application demo This section describes the steps to prepare the setup for application demo execution. Step 1: Build and flash the example project UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 176 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Please refer to the previous sections 3.1.1-3.1.4 and 5.1.1 for instructions on importing a project, building an application, running an application in debug mode and flashing an application program for a few IDEs. Step 2: Connect a speaker/headphone to the 3.5mm audio jack of i.MX RT EVK board Step 3: Apply a power reset on i.MX RT EVK board Step 4: Check the console on the connected computer screen to see the application start-up logs 5.25.2 Application execution This section describes the steps for application execution. Step 1: Press RESET button and restart the i.MX RT EVK board When the demo starts, following message about the demo would appear on the console. Copyright 2024 NXP UMR>> Unicast Media Receiver. Please select sink role "left"|"right" use "init" command. Step 2: Select the sink role Once the sink role is selected, the application automatically start receiving the media samples and the following message would appear on the console. UMR>> help "exit": Exit program init left|right vol_set [0-255] vol_up vol_down vol_mute vol_unmute play pause sync_info sync_test_mode [0-2] - 0: disable; 1: 500hz sine; 2: 10ms 500hz sine + 20ms mute set_sirk [str,hex] [data] - Note: this command should be used before "init" UMR>> Step 3: Input "init left | right" command to set the role UMR@left>> UMR@left>> Bluetooth initialized Set info: sirk: 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 set_size: 2 rank: 1 lockable: 1 Location successfully set Supported contexts successfully set Available contexts successfully set Advertising successfully started Connected: 50:26:EF:A2:F1:27 (public) Security changed: 50:26:EF:A2:F1:27 (public) level 2 (error 0) MCS server discover: MCS server discovered. ASE Codec Config: conn 202395CC ep 2023AB84 dir 1 codec_cfg 0x06 cid 0x0000 vid 0x0000 count 16 data: type 0x01 value_len 1 08 data: type 0x02 value_len 1 UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 177 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 00 data: type 0x03 value_len 4 01000000 data: type 0x04 value_len 2 4b00 Frequency: 48000 Hz Frame Duration: 7500 us Channel allocation: 0x1 Octets per frame: 75 (negative means value not pressent) Frames per SDU: 1 ASE Codec Config stream 20216460 QoS: stream 20216460 qos 20235740 QoS: interval 7500 framing 0x00 phy 0x02 sdu 75 rtn 5 latency 15 pd 40000 Enable: stream 20216460 meta_len 4 Codec: freq 48000, channel count 1, duration 7500, channel alloc 0x00000001 Unicast stream started Stream 20216460 started VCS Volume = 254, mute state = 0 Disable: stream 202563E0 Audio Stream 202563E0 stopped with reason 0x13 Enable: stream 202563E0 meta_len 4 Codec: freq 48000, channel count 1, duration 7500, channel alloc 0x0000001 Stream 202563E0 started Step 5: Input "vol_set 100" to set the volume to level 100 UMR@right>> vol_set 100 VCS Volume = 100, mute state = 0 Step 6: Input "vol_down" command and increase the volume UMR@right>> vol_down VCS Volume = 75, mute state = 0 Step 7: Input "vol_up" command and decrease the volume UMR@right>> vol_up VCS Volume = 100, mute state = 0 Step 8: Input "vol_mute" command and mute the volume UMR@right>> vol_mute VCS Volume = 100, mute state = 1 Step 9: Input "vol_unmute" command and unmute the volume UMR@right>> vol_mute VCS Volume = 100, mute state = 0 5.26 Unicast media sender 4 CIS This section describes the application to demonstrate on how to use the unicast media sender 4 CIS example of the LE audio feature. The Unicast Media Sender (UMS) role is defined for devices that send media audio content in one or more Unicast Audio Streams. Typical devices implementing the UMS role include smartphones, media players, TVs, laptops, tablets, and PCs. With this UMS 4CIS device, connect the two unicast media receiver 4 CIS devices (i.e. 1UMR front and 1UMR back) to verify the UMS audio. UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 178 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Other two i.MX RT1170 EVKB boards running UMR 4CIS examples can be connected as UMR peer devices. Refer section 5.26. NOTE: This sample application is only supported on IW612 with i.MX RT1170 EVKB board. 5.26.1 Prepare the setup for Application demo This section describes the steps to prepare the setup for application demo execution. Step 1: Build and flash the Application Please refer to the previous sections 3.1.1-3.1.4 and 5.1.1 for instructions on importing a project, building an application, running an application in debug mode and flashing an application program for a few IDEs. Step 2: Save a wav music file to a USB drive and name it as "<music_name>.wav" Step 3: Connect the same USB drive to USB OTG port of the i.MX RT EVK board Step 4: Apply a power reset on i.MX RT EVK board Step 5: Check the console on the connected computer screen to see the application start-up logs 5.26.2 Application execution This section describes the steps for application execution. Step 1: Press RESET button and restart the i.MX RT EVK board When the demo starts, it automatically starts scanning for the left and right profiles and following message about the demo would appear on the console. Copyright 2024 NXP UMS>> Unicast Media Sender 4CIS. Initializing Initialized wav file list: 1, 1:/trangle_44100_2ch_16bits.wav 2, 1:/chrip_48000_2ch_16bits_0_80.wav 3, 1:/music_16_2.wav 4, 1:/music_8000_2ch_16bits.wav 5, 1:/music_16000_2ch_16bits.wav 6, 1:/music_24000_2ch_16bits.wav 7, 1:/music_32000_2ch_16bits.wav 8, 1:/music_44100_2ch_16bits.wav 9, 1:/music_48000_2ch_16bits.wav 10, 1:/play_1ksin_8k_16b.wav 11, 1:/play_1ksin_32k_16b.wav 12, 1:/play_1ksin_48k_16b.wav 13, 1:/sine_16_2.wav 14, 1:/sine_8000_2ch_16bits.wav 15, 1:/sine_8000_2ch_16bits_0_75.wav 16, 1:/sine_16000_2ch_16bits.wav 17, 1:/sine_16000_2ch_16bits_0_75.wav 18, 1:/sine_16000_2ch_24bits.wav 19, 1:/sine_16000_2ch_32bits.wav 20, 1:/sine_24000_2ch_16bits.wav 21, 1:/sine_32000_2ch_16bits.wav 22, 1:/sine_32000_2ch_16bits_0_75.wav 23, 1:/sine_44100_2ch_16bits.wav 24, 1:/sine_48000_2ch_16bits.wav 25, 1:/sine_48000_2ch_16bits_0_75.wav 26, 1:/sine_48000_2ch_16bits_100ms_sine_900ms_silence.wav wav file list complete! Please open the wav file you want use "wav_open <path>" command. UMS>> UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 179 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Step 2: Input "waw_open" command to select song file UMS>> wav_open 1:/music_16000_2ch_16bits.wav wav file info: UMS>> sample_rate: 16000 channels: 2 bits: 16 size: 1163600 samples: 290900 lc3 preset list: 16_2_1: codec_cfg - sample_rate: 16000, duration: 10000, len: 40 qos - interval: 10000, framing: 0, phy: 2, sdu: 40, rtn: 2, pd: 40000 Please select lc3 preset use "lc3_preset <name>" command. Step 3: Input "lc3_precet" command to select the available preset UMS>> lc3_preset 16_2_1 16_2_1: UMS>> codec_cfg - sample_rate: 16000, duration: 10000, len: 40 qos - interval: 10000, framing: 0, phy: 2, sdu: 40, rtn: 2, pd: 40000 LC3 encoder setup done! new_preset: codec_cfg - sample_rate: 16000, duration: 10000, len: 40 qos - interval: 10000, framing: 0, phy: 2, sdu: 40, rtn: 1, pd: 40000 Creating unicast group Unicast group created Please scan and connect the devices you want! scan UMS>> Scanning successfully started [0]: A0:CD:F3:77:E4:11 (public), rssi -38, umr_4cis [1]: A0:CD:F3:77:E6:D7 (public), rssi -55, umr_4cis Step 4: Input "connect <index>" command to set initiate connection UMS>> connect 0 UMS>> device selected! Connecting Connect first device MTU exchanged: 23/23 LE Connected: A0:CD:F3:77:E4:11 (public) MTU exchanged: 65/65 Connected CSIP discover CSIP conn 202DB824 discovered set count 1 set 1/1 info: sirk: 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 set_size: 2 rank: 1 lockable: 1 CSIP discovered Scan another member member: A0:CD:F3:77:E6:D7 (public), rssi -51, umr_4cis Member discovered Connecting Connect second device MTU exchanged: 23/23 LE Connected: A0:CD:F3:77:E6:D7 (public) MTU exchanged: 65/65 Connected CSIP discover CSIP conn 202DB9B4 discovered set count 1 UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 180 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms set 1/1 info: sirk: 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 set_size: 2 rank: 2 lockable: 1 CSIP discovered Discover VCS VCS discover finished Discover VCS complete. Discovering sinks VCS inst 0, volume 229, mute 0 codec_cap 202E6C7C dir 0x01 codec id 0x06 cid 0x0000 vid 0x0000 count 19 data: type 0x01 value_len 2 ff1f data: type 0x02 value_len 1 02 data: type 0x03 value_len 1 02 data: type 0x04 value_len 4 28007800 data: type 0x05 value_len 1 01 meta: type 0x01 value_len 2 0600 dir 1 loc 3 snk ctx 31 src ctx 0 Sink #0: ep 202E40B0 Sink #0: ep 202E4178 Discover sinks complete: err 0 Sinks discovered Configuring streams Audio Stream 20304AE0 configured Configured sink stream[0] Audio Stream 20304B04 configured Configured sink stream[1] Stream configured Setting stream QoS QoS: waiting for 0 streams Audio Stream 20304AE0 QoS set Audio Stream 20304B04 QoS set Stream QoS Set Enabling streams Audio Stream 20304AE0 enabled Audio Stream 20304B04 enabled Streams enabled Connecting streams Audio Stream 20304AE0 connected Audio Stream 20304AE0 started Audio Stream 20304B04 connected Streams connected Starting streams Audio Stream 20304B04 started Streams started Discover VCS VCS discover finished Discover VCS complete. Discovering sinks UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 181 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms VCS inst 1, volume 229, mute 0 codec_cap 202E6C7C dir 0x01 codec id 0x06 cid 0x0000 vid 0x0000 count 19 data: type 0x01 value_len 2 ff1f data: type 0x02 value_len 1 02 data: type 0x03 value_len 1 02 data: type 0x04 value_len 4 28007800 data: type 0x05 value_len 1 01 meta: type 0x01 value_len 2 0600 dir 1 loc 30 snk ctx 31 src ctx 0 Sink #1: ep 202E46A8 Sink #1: ep 202E4770 Discover sinks complete: err 0 Sinks discovered Configuring streams Audio Stream 20304B28 configured Configured sink stream[2] Audio Stream 20304B4C configured Configured sink stream[3] Stream configured Setting stream QoS QoS: waiting for 1 streams Audio Stream 20304B28 QoS set Audio Stream 20304B4C QoS set Stream QoS Set Enabling streams Audio Stream 20304B28 enabled Audio Stream 20304B4C enabled Streams enabled Connecting streams Audio Stream 20304B28 connected Audio Stream 20304B28 started Audio Stream 20304B4C connected Streams connected Starting streams Audio Stream 20304B4C started Streams started Step 5: Input "vol_up" command and increase the volume UMS>> vol_up VCS inst 0, volume 100, mute 0 Step 6: Input "vol_down" command and decrease the volume UMS>> vol_down VCS inst 1, volume 75, mute 0 Step 7: Input "vol_mute" command and mute the volume UMS>> vol_mute VCS inst 0, volume 75, mute 1 Step 8: Input "vol_unmute" command and unmute the volume UMS>> vol_mute VCS inst 0, volume 75, mute 0 UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 182 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 5.27 Unicast media receiver 4 CIS This section describes the application to demonstrate on how to use the unicast media receiver 4 CIS example of the LE audio feature. The Unicast Media Receiver (UMR) role is defined for devices that receive media audio content from a source device in one or more Unicast Audio Streams. Typical devices implementing the UMR role include headphones, earbuds, and wireless speakers. With this UMR 4 CIS device, connect the Unicast media sender 4 CIS device to verify the UMS audio. Other two i.MX RT1170 EVKB boards running UMS 4CIS examples can be connected as UMS peer devices. Refer section 5.25. NOTE: This sample application is only supported on IW612 with i.MX RT1170 EVKB board. 5.27.1 Prepare the setup for Application demo This section describes the steps to prepare the setup for application demo execution. Step 1: Build and flash the example project Please refer to the previous sections 3.1.1-3.1.4 and 5.1.1 for instructions on importing a project, building an application, running an application in debug mode and flashing an application program for a few IDEs. Step 2: Connect a speaker/headphone to the 3.5mm audio jack of i.MX RT EVK board Step 3: Apply a power reset on i.MX RT EVK board Step 4: Check the console on the connected computer screen to see the application start-up logs 5.27.2 Application execution This section describes the steps for application execution. Step 1: Press RESET button and restart the i.MX RT EVK board When the demo starts, following message about the demo would appear on the console. Copyright 2024 NXP UMR>> Unicast Media Receiver 4CIS. Please select sink role "front"|"back" use "init" command. Step 2: Select the sink role Input "init front" or "init back" command to set the role Once the sink role is selected, the application automatically start receiving the media samples and the following message would appear on the console. UMR>> init front UMR@front>> UMR@front>> Bluetooth initialized Set info: sirk: 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 set_size: 2 rank: 1 lockable: 1 Location successfully set Supported contexts successfully set Available contexts successfully set Advertising successfully started Connected: A0:CD:F3:77:E5:8D (public) Security changed: A0:CD:F3:77:E5:8D (public) level 2 (error 0) MCS server discover: MCS server discovered. ASE Codec Config: conn 202EE80C ep 202F10CC dir 1 codec_cfg 0x06 cid 0x0000 vid 0x0000 count 16 data: type 0x01 value_len 1 UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 183 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 03 data: type 0x02 value_len 1 01 data: type 0x03 value_len 4 01000000 data: type 0x04 value_len 2 2800 Frequency: 16000 Hz Frame Duration: 10000 us Channel allocation: 0x1 Octets per frame: 40 (negative means value not pressent) Frames per SDU: 1 ASE Codec Config stream 202FD480 ASE Codec Config: conn 202EE80C ep 202F1178 dir 1 codec_cfg 0x06 cid 0x0000 vid 0x0000 count 16 data: type 0x01 value_len 1 03 data: type 0x02 value_len 1 01 data: type 0x03 value_len 4 02000000 data: type 0x04 value_len 2 2800 Frequency: 16000 Hz Frame Duration: 10000 us Channel allocation: 0x2 Octets per frame: 40 (negative means value not pressent) Frames per SDU: 1 ASE Codec Config stream 202FD4A0 QoS: stream 202FD480 qos 202F2478 QoS: interval 10000 framing 0x00 phy 0x02 sdu 40 rtn 1 latency 10 pd 40000 QoS: stream 202FD4A0 qos 202F2478 QoS: interval 10000 framing 0x00 phy 0x02 sdu 40 rtn 1 latency 10 pd 40000 Enable: stream 202FD480 meta_len 4 Codec: freq 16000, channel count 1, duration 10000, channel alloc 0x00000001, frame len 40, frame blocks per sdu 1 Enable: stream 202FD4A0 meta_len 4 Codec: freq 16000, channel count 1, duration 10000, channel alloc 0x00000002, frame len 40, frame blocks per sdu 1 Unicast stream started Stream 202FD480 started Stream 202FD4A0 started Step 3: Input "vol_set 100" to set the volume to level 100 UMR@right>> vol_set 100 VCS Volume = 100, mute state = 0 Step 4: Input "vol_down" command and increase the volume UMR@right>> vol_down VCS Volume = 75, mute state = 0 Step 5: Input "vol_up" command and decrease the volume UMR@right>> vol_up VCS Volume = 100, mute state = 0 Step 6: Input "vol_mute" command and mute the volume UMR@right>> vol_mute UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 184 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms VCS Volume = 100, mute state = 1 Step 7: Input "vol_unmute" command and unmute the volume UMR@right>> vol_mute VCS Volume = 100, mute state = 0 5.28 Unicast media sender Microphone This section describes the application to demonstrate on how to use the unicast media sender Microphone example of the LE audio feature. Using this sample example, device configure as UMS Microphone i.e. the stream source of UMS is from microphone. RT1170 EVKB's inbuilt microphone (P2) used to create microphone audio. The UMS microphone device, connects with "umr2bms" bridge device. Then "umr2bms" bridge device connects with two Broadcast media receiver devices (i.e. 1BMR left and 1BMR right) to verify the UMS microphone audio. Refer section 5.28. This "ums_microphone" example supports 2 unicast stereo audio CIS streams. So, user need to use the umr2bms example (Section 5.28) only in peer device. UMR example (section 5.24) doesn't support 2 CIS stream. NOTE: This sample application is only supported on IW612 with i.MX RT1170 EVKB board. 5.28.1 Prepare the setup for Application demo This section describes the steps to prepare the setup for application demo execution. Step 1: Build and flash the Application Please refer to the previous sections 3.1.1-3.1.4 and 5.1.1 for instructions on importing a project, building an application, running an application in debug mode and flashing an application program for a few IDEs. Step 2: Apply a power reset on i.MX RT EVK board. Step 3: Check the console on the connected computer screen to see the application start-up logs. 5.28.2 Application execution This section describes the steps for application execution. Step 1: Press RESET button and restart the i.MX RT EVK board When the demo starts, following message about the demo would appear on the console. Copyright 2024 NXP UMS>> Unicast Media Sender. Initializing Initialized Please select lc3 preset use "lc3_preset <name>" command. lc3_ lc3_preset_list lc3_preset Step 2: Input "lc3_precet" command to select the available preset UMS>> lc3_preset 48_2_2 48_2_2: UMS>> codec_cfg - sample_rate: 48000, duration: 10000, len: 100 qos - interval: 10000, framing: 0, phy: 2, sdu: 100, rtn: 13, pd: 40000 LC3 encoder setup done! Creating unicast group Unicast group created Please scan and connect the devices you want! Step 3: Input "scan" command to start scan all sink devices UMS>> scan UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 185 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms UMS>> Scanning successfully started [0]: 68:AB:BC:8E:99:FD (public), rssi -66, [1]: A0:CD:F3:77:E6:15 (public), rssi -33, umr2bms [2]: 43:72:65:69:B4:0A (random), rssi -44, c[3]: 7A:6B:86:3A:6F:AC (random), rssi -55 Step 4: Input "connect <index>" command to initiate connection and start the stream UMS>> connect 1 UMS>> device selected! Connecting Connect first device MTU exchanged: 23/23 LE Connected: A0:CD:F3:77:E6:15 (public) MTU exchanged: 65/196 Connected Discover VCS VCS discover finished Discover VCS complete. Discovering sinks VCS inst 0, volume 229, mute 0 codec_cap 202F624C dir 0x01 codec id 0x06 cid 0x0000 vid 0x0000 count 19 data: type 0x01 value_len 2 ff1f data: type 0x02 value_len 1 02 data: type 0x03 value_len 1 02 data: type 0x04 value_len 4 28007800 data: type 0x05 value_len 1 01 meta: type 0x01 value_len 2 0600 dir 1 loc 3 snk ctx 31 src ctx 0 Sink: ep 202D76F4 Sink: ep 202D77BC Discover sinks complete: err 0 Sinks discovered Configuring streams Audio Stream 202ECE54 configured Configured sink sinks[0] Audio Stream 202ECEE4 configured Configured sink sinks[1] Stream configured Setting stream QoS QoS: waiting for 0 sink Audio Stream 202ECE54 QoS set Audio Stream 202ECEE4 QoS set QOS Set sink sinks[0] QoS: waiting for 1 sink QOS Set sink sinks[1] Stream QoS Set Enabling streams Audio Stream 202ECE54 enabled Init Audio SAI and CODEC, samplingRate :48000 Set default headphone volume 70 Enabled sink sinks[0] Audio Stream 202ECEE4 enabled bitWidth:16 UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 186 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Enabled sink sinks[1] Streams enabled Connecting streams Audio Stream 202ECE54 connected Connect sink sinks[0] Audio Stream 202ECE54 started Audio Stream 202ECEE4 connected Connect sink sinks[1] Streams connected Starting streams Audio Stream 202ECEE4 started Streams started 5.29 Unicast media receiver to BMS This section describes the application to demonstrate bridge that relay the (Unicast Media Sender)UMS stream to (Broadcast Media Receiver)BMR devices. The UMR to BMS bridge device, connects with unicast stereo audio CIS source device "UMS Microphone". Refer section 5.27. Also this "umr2bms" bridge device connects with two Broadcast media receiver devices (i.e. 1BMR left and 1BMR right) to verify the UMS microphone audio. User should only use "ums_microphone" example (Section 5.27) as a peer UMS device, as this example supports 2 channel streams in one CIS. NOTE: This sample application is only supported on IW612 with i.MX RT1170 EVKB board. 5.29.1 Prepare the setup for Application demo This section describes the steps to prepare the setup for application demo execution. Step 1: Build and flash the Application Please refer to the previous sections 3.1.1-3.1.4 and 5.1.1 for instructions on importing a project, building an application, running an application in debug mode and flashing an application program for a few IDEs. Step 2: Apply a power reset on i.MX RT EVK board Step 3: Check the console on the connected computer screen to see the application start-up logs. 5.29.2 Application execution This section describes the steps for application execution. Step 1: Press RESET button and restart the i.MX RT EVK board When the demo starts, following message about the demo would appear on the console. Example automatically starts advertising. Bluetooth initialized Copyright 2024 NXP UMR2BMS>> UMR To BMS. UMR: Location successfully set UMR: Supported contexts successfully set UMR: Available contexts successfully set UMR: Advertising successfully started Step 2: Scan and connect the device from UMS microphone peer device. Step 3: Application automatically starts broadcasting the audio data received from UMS microphone device. UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 187 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 5.30 Telephone call gateway Application This section describes the application to demonstrate on how to use the telephone call gateway example of the LE audio feature. The Call Gateway (CG) role is defined for telephony or VoIP applications. The CG device has the connection to the call network infrastructure. Typical devices implementing the CG role include smartphones, laptops, tablets, and PCs. NOTE: This sample application is only supported on IW612 with i.MX RT1060 EVKC board. 5.30.1 Prepare the setup for Application demo This section describes the steps to prepare the setup for application demo execution. Step 1: Build and flash the example project Please refer to the previous sections 3.1.1-3.1.4 and 5.1.1 for instructions on importing a project, building an application, running an application in debug mode and flashing an application program for a few IDEs. Step 2: Apply a power reset on i.MX RT EVK board Step 3: Check the console on the connected computer screen to see the application start-up logs 5.30.2 Application execution NOTE: This sample example works with "telephone call terminal" example. Refer the section "Telephone call terminal Application". This section describes the steps for application execution. Step 1: Press RESET button and restart the i.MX RT EVK board When the demo starts, following message about the demo would appear on the console. The scanning of the device is started automatically. It starts to scanning the telephony call terminal device. After the connection is established, following logs would appear on the console. After the message "Discover sources complete: err 0" is printed on telephone call terminal side console, all features are ready for the TMAP. Copyright 2024 NXP call_gateway>> Bluetooth initialized Scanning started [DEVICE]: D4:5A:97:23:52:F5 (random), AD evt type 0, AD data len 30, RSSI -84 [DEVICE]: E5:4C:79:C9:74:FA (random), AD evt type 0, AD data len 30, RSSI -100 [DEVICE]: 00:05:C2:DC:34:46 (public), AD evt type 0, AD data len 31, RSSI -101 [DEVICE]: 40:72:18:19:67:82 (public), AD evt type 0, AD data len 27, RSSI -78 [DEVICE]: D8:97:45:8A:E2:F6 (random), AD evt type 0, AD data len 16, RSSI -99 [DEVICE]: A0:CD:F3:77:E5:01 (public), AD evt type 5, AD data len 36, RSSI -47 Found device: A0:CD:F3:77:E5:01 (public) MTU exchanged: 23/23 Connected to peer: A0:CD:F3:77:E5:01 (public) Get required Source Capability from codec. Codec configurations: Frequency 16000 Duration 10000 Frame bytes 40 Frame blocks per SDU 1 Location 3, channel count 2. Get required Sink Capability from codec. Codec configurations: Frequency 16000 Duration 10000 Frame bytes 40 Frame blocks per SDU 1 Location 3, channel count 2. MTU exchanged: 65/65 UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 188 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Security changed: A0:CD:F3:77:E5:01 (public) level 2 (error 0) Start member discover codec capabilities on conn 2027CA6C dir 1 codec 20271A70. Codec configurations: Frequency 8000, 11000, 16000, 22000, 24000, 32000, 44100, 48000, Duration 10000, Channel count 2. Frame length min 40, max 120 Frame blocks per SDU 1 Pref context 0x206 set coordinator discover conn 2027CA6C member 20285704 count 0 (err 0) Cannot save the set coordinator err 0 conn 2027CA6C dir 1 loc 3 conn 2027CA6C snk ctx 519 src ctx 3 conn 2027CA6C dir 1 ep 20284A6C Added snk stream 2022DB30, ep 20284A6C to conn 2027CA6C Discover (conn 2027CA6C) sinks complete: err 0 codec capabilities on conn 2027CA6C dir 2 codec 20271A70. Codec configurations: Frequency 8000, 11000, 16000, 22000, 24000, 32000, 44100, 48000, Duration 10000, Channel count 2. Frame length min 40, max 120 Frame blocks per SDU 1 Pref context 0x206 conn 2027CA6C dir 2 loc 3 conn 2027CA6C snk ctx 519 src ctx 3 conn 2027CA6C dir 2 ep 20284BFC Added src stream 2022DB64, ep 20284BFC to conn 2027CA6C Discover (conn 2027CA6C) sources complete: err 0 Step 2: Input "help" command to get the available command list call_gateway>> help "help": List all the registered commands "exit": Exit program scanning <on>/<off> passkey <6 digital number> passkey_confirm <yes>/<no> unpair vol_set [0-100] vol_up vol_down vol_mute vol_unmute call_accept <callIndex>: Accept a incoming call call_outgoing <telephone bearer index> <callee_URI>: Originate a call call_hold <callIndex>: Hold a active call call_retrieve <callIndex>: Retrieve a active call call_term <callIndex>: Terminate a call call_join <callIndex1> [<callIndex2> <callIndex3> ...]: Join the calls remote_call_incoming <telephone bearer index> <callee_URI> <caller_URI> <caller_nal remote_call_term <callIndex>: Terminate a call remote_call_answer <callIndex>: Simulate the outgoing has been accepted by the reme remote_call_hold <callIndex>: Hold a active call remote_call_retrieve <callIndex>: Retrieve a active call call_gateway>> Step 3: Initiate the local outgoing call Input below command on the call gateway side to initiate the call. UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 189 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms call_outgoing 0 <XX>:<YY> Following message would appear on the console. call_gateway>> call_outgoing 0 tel:qq outgoing call: callee uri tel:qq Config stream 2022DB64, ep 20284BFC Audio Stream 2022DB64 configured Config stream 2022DB30, ep 20284A6C Audio Stream 2022DB30 configured Audio Stream 2022DB64 QoS set Audio Stream 2022DB30 QoS set Audio Stream 2022DB64 enabled Init Audio SAI and CODEC, samplingRate :16000 Set default headphone volume 70 Audio Stream 2022DB30 enabled Audio Stream 2022DB64 connected Audio Stream 2022DB30 connected Audio Stream 2022DB30 started Audio Stream 2022DB64 started call_gateway>> bitWidth:16 Note: In this example callee uri is set as "tel:qq". It can be any other uri (Other example "telephone:nxp"). But user have to make sure that it is in <XX>:<YY> format. Step 4: Accept the call Input below command on the call gateway side to accept the call call_accept <call_index> OR Input below command on the call terminal side to accept the call call_accept 0 <call_index> Following message would appear on the console. call_gateway>> Accept a call, call index 1 Audio Stream 2025A624 disabled Audio Stream 2025A624 QoS set Audio Stream 2025A5EC disabled Fail to stop stream (err -77) Audio Stream 2025A5EC QoS set Audio Stream 2025A624 stopped with reason 0x13 Audio Stream 2025A5EC stopped with reason 0x13 Audio Stream 2025A624 enabled Init Audio SAI and CODEC, samplingRate :16000 bitWidth:16 Set default headphone volume 70 Audio Stream 2025A5EC enabled Audio Stream 2025A5EC started Audio Stream 2025A624 started Step 5: Reject/End the call Input below command on the call gateway side to reject/end the call call_term <call_index> UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 190 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms OR Input below command on the call terminal side to reject/end the call the call call_term 0 <call_index> Following type of message would appear on the console. call_gateway>> call_term 1 terminate the call: call index 1 Audio Stream 2022DB64 stopped with reason 0x13 Audio Stream 2022DB64 disabled Audio Stream 2022DB64 stopped with reason 0x13 Audio Stream 2022DB64 QoS set Audio Stream 2022DB30 stopped with reason 0x13 Audio Stream 2022DB30 disabled Fail to stop stream (err -77) Audio Stream 2022DB30 QoS set Audio Stream 2022DB64 released Audio Stream 2022DB30 released Return code 0 call_gateway>> Step 6: Initiate a call by remote. Input below command to start the remote incoming call. remote_call_incoming 0 <AA>:<BB> <CC>:<DD> <EE> Following type of message would appear on the console. call_gateway>> remote_call_incoming 0 tel:qq tel:qq qq incoming call: callee uri tel:qq, caller uri tel:qq Config stream 2022DB64, ep 20284BFC Audio Stream 2022DB64 configured Config stream 2022DB30, ep 20284A6C Audio Stream 2022DB30 configured Audio Stream 2022DB64 QoS set Audio Stream 2022DB30 QoS set Audio Stream 2022DB64 enabled Init Audio SAI and CODEC, samplingRate :16000 bitWidth:16 Set default headphone volume 70 Audio Stream 2022DB30 enabled Audio Stream 2022DB64 connected Audio Stream 2022DB30 connected Audio Stream 2022DB30 started Audio Stream 2022DB64 started done, call index is 2 call_gateway>> Note: In this example callee and caller both uri is set as "tel:qq". It can be any other uri (Other examples "telephone:nxp_caller" and "telephone:nxp_callee"). But user have to make sure that uri is in <XX>:<YY> format. Caller name is set as "qq", which can be any other name (For example nxp_caller). Step 7: Accept the call by remote Input below command to accept the remote incoming call. remote_call_answer <call_index> Following type of message would appear on the console. Remove answer the call: call index 1 Audio Stream 202F0688 disabled Audio Stream 202F0688 QoS set UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 191 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Audio Stream 202F0650 disabled Fail to stop stream (err -77) Audio Stream 202F0650 QoS set Audio Stream 202F0688 stopped with reason 0x13 Audio Stream 202F0650 stopped with reason 0x13 Audio Stream 202F0688 enabled Init Audio SAI and CODEC, samplingRate :16000 bitWidth:16 Set default headphone volume 70 Audio Stream 202F0650 enabled Audio Stream 202F0650 started Audio Stream 202F0688 started Return code 0 UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 192 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 5.31 Telephone call terminal Application This section describes the application to demonstrate on how to use the telephone call terminal example of the LE audio feature. The Call Terminal (CT) role is defined for headset type devices in telephony or VoIP applications. Typical devices implementing the CT role include wireless headsets, speakers, and microphones that participate in conversational audio. NOTE: This sample application is only supported on IW612 with i.MX RT1060 EVKC board. 5.31.1 Prepare the setup for Application demo This section describes the steps to prepare the setup for application demo execution. Step 1: Build and flash the example project Please refer to the previous sections 3.1.1-3.1.4 and 5.1.1 for instructions on importing a project, building an application, running an application in debug mode and flashing an application program for a few IDEs. Step 2: Apply a power reset on i.MX RT EVK board Step 3: Check the console on the connected computer screen to see the application start-up logs. 5.31.2 Application execution NOTE: This sample example works with "telephone call gateway" example. Refer the section "Telephone call gateway Application". This section describes the steps for application execution. Step 1: Press RESET button and restart the i.MX RT EVK board When the demo starts, following message about the demo would appear on the console. Copyright 2024 NXP call_terminal>> Bluetooth initialized Advertising successfully started MTU exchanged: 23/23 Connected to peer: 50:26:EF:A2:F1:27 (public) Starting TBS server discover MTU exchanged: 65/65 Security changed: 50:26:EF:A2:F1:27 (public) level 2 (error 0) Discover complete (err 0)! TBS count 1, GTBS found? Yes After the message "Discover complete (err 0)! TBS count 1, GTBS found? Yes" is printed on telephone call terminal side console, all features are ready. Step 2: Input "help" command to get the available command list call_terminal>> help "help": List all the registered commands "exit": Exit program vol_set [0-100] vol_up vol_down vol_mute vol_unmute call_discover <subscribe flag>: Discover the TBS server features call_accept <tbs index> <callIndex>: Accept a incoming call call_outgoing <tbs index> <callee_URI>: Originate a call call_hold <tbs index> <callIndex>: Hold a active call call_retrieve <tbs index> <callIndex>: Retrieve a active call call_term <tbs index> <callIndex>: Terminate a call call_join <tbs index> <callIndex1> [<callIndex2> <callIndex3> ...]: Join the calls advertising <on>/<off> UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 193 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms passkey <6 digital number> passkey_confirm <yes>/<no> unpair call_terminal>> Step 3: Initiate the local outgoing call Input below command on the call terminal side to initiate the call. call_outgoing 0 <XX>:<YY> Following type of message would appear on the console. >>call_outgoing 0 tel:qq outgoing call: callee uri tel:qq, TBS index 0 Return code 0 call_terminal>> List current state of current calls (err 0). TBS Index 255, call c, call index 1, state 1, flags 1. List current calls (err 0). TBS Index 255, call count 1, call list, call index 1, state 1, flags 1, remote uri tel:qq List current state of current calls (err 0). TBS Index 0, call count 1, call state, call index 1, state 1, flags 1. List current calls (err 0). TBS Index 0, call count 1, call list, call index 1, state 1, flags 1, remote uri tel:qq List current state of current calls (err 0). TBS Index 255, call count 1, call sta, call index 1, state 2, flags 1. List current calls (err 0). TBS Index 255, call count 1, call list, call index 1, state 2, flags 1, remote uri tel:qq List current state of current calls (err 0). TBS Index 0, call count 1, call state, call index 1, state 2, flags 1. List current calls (err 0). TBS Index 0, call count 1, call list, call index 1, state 2, flags 1, remote uri tel:qq Control Point status update. A call outgoing (err 0). TBS Index 0, call index 1 List current state of current calls (err 0). TBS Index 255, call count 1, call sta, call index 1, state 2, flags 1. List current calls (err 0). TBS Index 255, call count 1, call list, call index 1, state 2, flags 1, remote uri tel:qq List current state of current calls (err 0). TBS Index 0, call count 1, call state, call index 1, state 2, flags 1. List current calls (err 0). TBS Index 0, call count 1, call list, call index 1, state 2, flags 1, remote uri tel:qq List current state of current calls (err 0). TBS Index 255, call count 1, call sta, call index 1, state 2, flags 1. List current calls (err 0). TBS Index 255, call count 1, call list, call index 1, state 2, flags 1, remote uri tel:qq List current state of current calls (err 0). TBS Index 0, call count 1, call state, call index 1, state 2, flags 1. List current calls (err 0). TBS Index 0, call count 1, call list, call index 1, state 2, flags 1, remote uri tel:qq ASE Codec Config: conn 202581F8 ep 2025D2E8 dir 2 Codec configurations: Frequency 16000 Duration 10000 Frame bytes 40 Frame blocks per SDU 1 Location is invalid UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 194 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Channel count 2.ASE Codec Config: conn 202581F8 ep 2025D394 dir 1 Codec configurations: Frequency 16000 Duration 10000 Frame bytes 40 Frame blocks per SDU 1 Location is invalid Channel count 2.QoS: stream 2021A400 qos 2024D2D8 interval 10000 framing 0x00 phy 0x02 sdu 80 rtn 2 latency 10 pd 40000 QoS: stream 20222818 qos 2024D2D8 interval 10000 framing 0x00 phy 0x02 sdu 80 rtn 2 latency 10 pd 40000 Enable: stream 2021A400 meta_len 4 Enable: stream 20222818 meta_len 4 Init Audio SAI and CODEC, samplingRate :16000 bitWidth:16 Set default headphone volume 70 Start: stream 20222818 Stream 20222818 started Start: stream 2021A400 Stream 2021A400 started Note: In this example callee uri is set as "tel:qq". It can be any other uri (Other example "telephone:nxp"). But user have to make sure that it is in <XX>:<YY> format. Step 4: Accept the call Input below command on the call gateway side to accept the call call_accept <call_index> OR Input below command on the call terminal side to accept the call call_accept 0 <call_index> Following type of message would appear on the console. call_terminal>> call_accept 0 3 call_accept 0 3 accept call: TBS index , call index 3 Return code 0 call_terminal>> Control Point status update. A call has been accepted (err 0). TBS Index 0, call index 3 List current state of current calls (err 0). TBS Index 255, call count 2, call state list, call index 1, state 0, flags 0. call index 3, state 3, flags 0. List current calls (err 0). TBS Index 255, call count 2, call list, call index 1, state 0, flags 0, remote uri tel:qq call index 3, state 3, flags 0, remote uri tel:qq UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 195 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms List current state of current calls (err 0). TBS Index 0, call count 2, call state list, call index 1, state 0, flags 0. call index 3, state 3, flags 0. Step 5: Reject/End the call Input below command on the call gateway side to reject/end the call call_term <call_index> OR Input below command on the call terminal side to reject/end the call the call call_term 0 <call_index> Following message would appear on the console. call_terminal>> call_term 0 4 Terminate call: TBS index 0, call index 4 Return code 0 call_terminal>> Invalid Frame Call terminated(err 0). TBS Index 0, call index 4, reason 6. Speaker mute Call terminated(err 0). TBS Index 255, call index 4, reason 6. Control Point status update. A call has been terminated (err 0). TBS Index 0, call4 List current state of current calls (err 0). TBS Index 255, call count 0, call sta, List current calls (err 0). TBS Index 255, call count 0, call list, List current state of current calls (err 0). TBS Index 0, call count 0, call state, List current calls (err 0). TBS Index 0, call count 0, call list, Disable: stream 2021A400 Audio Stream 2021A400 stopped with reason 0x13 Stop: stream 2021A400 Disable: stream 20222818 Audio Stream 20222818 stopped with reason 0x13 Release: stream 2021A400 Release: stream 20222818 Step 6: Initiate a call by remote. Input below command to start the remote incoming call. remote_call_incoming 0 <AA>:<BB> <CC>:<DD> <EE> Following type of message would appear on the console. Read incoming call URI tel:qq (err 0). TBS Index 0. incoming call inst_index 0, call_index = 1, uri tel:qq Read Friendly name qq (err 0). TBS Index 0. Read incoming call URI tel:qq (err 0). TBS Index 255. UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 196 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms incoming call inst_index 255, call_index = 1, uri tel:qq Read Friendly name (err 0). TBS Index 255. List current state of current calls (err 0). TBS Index 255, call count 1, call state list, call index 1, state 0, flags 0. List current calls (err 0). TBS Index 255, call count 1, call list, call index 1, state 0, flags 0, remote uri tel:qq List current state of current calls (err 0). TBS Index 0, call count 1, call state list, call index 1, state 0, flags 0. ASE Codec Config: conn 202DE340 ep 202D9214 dir 2 Codec configurations: Frequency 16000 Duration 10000 Frame bytes 40 Frame blocks per SDU 1 Location 3, channel count 2. ASE Codec Config: conn 202DE340 ep 202D92DC dir 1 Codec configurations: Frequency 16000 Duration 10000 Frame bytes 40 Frame blocks per SDU 1 Location 3, channel count 2. QoS: stream 202EFF80 qos 202D9284 interval 10000 framing 0x00 phy 0x02 sdu 80 rtn 2 latency 10 pd 40000 QoS: stream 202F6350 qos 202D934C interval 10000 framing 0x00 phy 0x02 sdu 80 rtn 2 latency 10 pd 40000 Enable: stream 202EFF80 meta_count 1 Enable: stream 202F6350 meta_count 1 Init Audio SAI and CODEC, samplingRate :16000 bitWidth:16 Set default headphone volume 70 Start: stream 202F6350 Start: stream 202EFF80 Note: In this example callee and caller both uri is set as "tel:qq". It can be any other uri (Other examples "telephone:nxp_caller" and "telephone:nxp_callee"). But user have to make sure that uri is in <XX>:<YY> format. Caller name is set as "qq", which can be any other name (For example nxp_caller). Step 7: Accept the call by remote Input below command to accept the remote incoming call. remote_call_answer <call_index> Following type of message would appear on the console. List current state of current calls (err 0). TBS Index 255, call count 1, call state list, call index 1, state 3, flags 1. List current calls (err 0). TBS Index 255, call count 1, call list, call index 1, state 3, flags 1, remote uri tel:qq List current state of current calls (err 0). TBS Index 0, call count 1, call state list, call index 1, state 3, flags 1. Disable: stream 202EFF80 Fail to send stream (error -77) Fail to send stream (error -77) Fail to send stream (error -77) Fail to send stream (error -77) Fail to send stream (error -77) Fail to send stream (error -77) UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 197 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Fail to send stream (error -77) Fail to send stream (error -77) Fail to send stream (error -77) Fail to send stream (error -77) Fail to send stream (error -77) Fail to send stream (error -77) Fail to send stream (error -77) Fail to send stream (error -77) Fail to send stream (error -77) Fail to send stream (error -77) Fail to send stream (error -77) Fail to send stream (error -77) Fail to send stream (error -77) Fail to send stream (error -77) Fail to send stream (error -77) Fail to send stream (error -77) Fail to send stream (error -77) Fail to send stream (error -77) Stop: stream 202EFF80 Disable: stream 202F6350 Audio Stream 202F6350 stopped with reason 0x13 Audio Stream 202EFF80 stopped with reason 0x13 Enable: stream 202EFF80 meta_count 1 Enable: stream 202F6350 meta_count 1 Init Audio SAI and CODEC, samplingRate :16000 bitWidth:16 Set default headphone volume 70 Start: stream 202F6350 Start: stream 202EFF80 5.32 Wireless UART Sample Application The application implements a custom GATT based Wireless UART Profile that emulates UART over BLE. Central and peripheral role can be switched by user button (SW8). To test the service/profile the "IoT Toolbox" application can be used which is available for both Android and iOS. IoT Toolbox can be found on Apple App Store or Google Play Store. 5.32.1 wireless_uart Application Execution Please refer to the previous sections 3.1.1-3.1.4 and 5.1.1 for instructions on importing a project, building an application, running an application in debug mode, and flashing an application program for a few IDEs. Please refer to section 2.1 for serial console tool setup. 5.32.1.1 Run the application Press the power reset button on i.MX RT1060 EVKC board to run the demo application downloaded on the board. When the demo starts, the following message about the demo would appear on the console. BLE Wireless Uart demo start... Bluetooth initialized Advertising successfully started The demo requires user interaction. The application will automatically start advertising the wireless uart Service after reset, the application can only accept 1 connection when configured as a peripheral. The application will start scanning and connect to the wireless uart Service automatically. Pressing the Button will switch from Peripheral mode to central mode and now it can connect to 8 devices. We can use "IoT Toolbox" or another wireless_uart example (use B to refer to) to test the current device. peripheral role test: Open "IoT Toolbox" application on an Android or iOS smartphone, select the "Wireless UART" option. A device named "NXP_WU" should appear. Connect to "NXP_WU" by selecting the device from the scan list. The Android/iOS device should receive a prompt for a Bluetooth Pairing Request. Please complete the UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 198 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms pairing process by entering the passkey that is displayed on the debug terminal. Once pairing is completed, we can now transmit and receive data over the emulated UART interface. BLE Wireless Uart demo start... Bluetooth initialized Advertising successfully started Connected to 4B:6B:F0:B6:7C:F8 (random) GATT MTU exchanged: 65 [ATTRIBUTE] handle 40 [ATTRIBUTE] handle 41 Passkey for 4B:6B:F0:B6:7C:F8 (random): 994660 Security changed: 20:39:56:C6:6C:6C (public) level 4 (error 0) Data received (length 5): hello central role test: let B work as default state after reset. short press the user button(SW8), the example will work as central can automatically connect to any discovered wireless uart example. Each time short press, the example will scan and connect to wireless uart service if new device is found. BLE Wireless Uart demo start... Bluetooth initialized Advertising successfully started Scanning successfully started [DEVICE]: 24:FC:E5:9F:EE:EB (public), AD evt type 3, AD data len 28, RSSI -92 [DEVICE]: 64:86:7F:5A:7C:7F (random), AD evt type 0, AD data len 23, RSSI -81 [DEVICE]: 64:86:7F:5A:7C:7F (random), AD evt type 4, AD data len 0, RSSI -80 [DEVICE]: 65:F2:7E:9A:AF:C7 (random), AD evt type 0, AD data len 19, RSSI -89 [DEVICE]: 65:F2:7E:9A:AF:C7 (random), AD evt type 4, AD data len 0, RSSI -89 [DEVICE]: 63:F2:B1:6A:FC:3D (random), AD evt type 0, AD data len 18, RSSI -80 [DEVICE]: 63:F2:B1:6A:FC:3D (random), AD evt type 4, AD data len 0, RSSI -80 [DEVICE]: 78:B3:AA:89:78:3B (random), AD evt type 0, AD data len 18, RSSI -80 [DEVICE]: 78:B3:AA:89:78:3B (random), AD evt type 4, AD data len 0, RSSI -79 [DEVICE]: 80:D2:1D:E8:2B:7E (public), AD evt type 0, AD data len 21, RSSI -43 Connected to 80:D2:1D:E8:2B:7E (public) GATT MTU exchanged: 65 [ATTRIBUTE] handle 25 [ATTRIBUTE] handle 26 Security changed: 80:D2:1D:E8:2B:7E (public) level 2 (error 0) NOTE: The device address, AD event type data len, and RSSI are variable, it depends on all the Bluetooth device in test environment. Send data 12345 in B device's Serial port terminal, then current device will print the following log. Data received (length 5): 12345 Send data 123 in current device's Serial port terminal, then B device will print the following log. Data received (length 5): 123 5.33 Wi-Fi CLI over Wireless UART Sample Application This section describes the application to demonstrate on how a wireless function based on "wifi_cli" demo and "wireless_uart" demo, enable users to use Wi-Fi command-line interface(CLI) over BLE wireless UART. The "IoT Toolbox" application can be used to test LE operations which is available for Android on Google Play Store and iOS on Apple App Store. NOTE: This sample application is only supported on IW612 with i.MX RT1060 EVKB board. UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 199 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 5.33.1 Wi-Fi CLI over Wireless UART Application Execution Please refer to the previous sections 3.1.1-3.1.4 and 5.1.1 for instructions on importing a project, building an application, running an application in debug mode, and flashing an application program for a few IDEs. Please refer to section 2.1 for serial console tool setup. 5.33.1.1 Run the application Press the power reset button on i.MX RT1060 EVKC board to run the demo application downloaded on the board. The application will automatically start advertising the wireless UART Service after reset. The demo require user interaction. · Open "IoT Toolbox" app on mobile and select the "Wireless UART" option. · Search for the "NXP_WU" named device in the scan results of "IoT Toolbox" app. · Click on the "NXP_WU" device to pair with i.MX RT EVK board. · Accept the Pair request on "IoT Toolbox" app or else connection may fail. · The following message of the demo would appear on the "IoT Toolbox" mobile app console. · After successful pairing, "IoT Toolbox" app can send/receive the data to the i.MX RT EVK board. · "IoT Toolbox" app is not adding `\n' character on "Enter" key press. To avoid this limitation, change the default macro " #define END_CHAR '\n' " to any other uncommonly used character, such as " #define END_CHAR '@' " on the source code of the i.MX RT EVK board on this SDK path " <SDK_2_XX_X_MIMXRT1170-EVKB>\boards\ evkbmimxrt1170\evkbmimxrt1170_wifi_cli_over_ble_wu\wifi\cli.c". UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 200 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms · Send the command ending with special character, example for "wlan-mac@" or "help@". UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 201 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 5.34 Shell Sample Application Application Demonstrating the Interactive Shell Mode of Bluetooth Commands and APIs. It provides users full control over the Bluetooth Interface. User can control the basic Bluetooth operations such as advertising/scanning , device discovery , connection and pairing as well as direct access to the HCI command interface. 5.34.1 Shell Application Execution Please refer to the previous sections 3.1.1-3.1.4 and 5.1.1 for instructions on importing a project, building an application, running an application in debug mode, and flashing an application program for a few IDEs. Please refer to section 2.1 for serial console tool setup. 5.34.1.1 Shell Run the application Press the power reset button on i.MX RT1060 EVKC board to run the demo application downloaded on the board. When the demo starts, the following message about the demo would appear on the console. Edgefast Bluetooth PAL shell demo start... SHELL build: Feb 12 2025 NOTE: The shell information "SHELL build: Feb 12 2025" may be different, which depends on the compile date. The shell command list can be accessed by typing "help" in serial terminal. The demo can be configured to either "central" or "peripheral" by shell commands. Here is an example of scan devices (the BLE host must be initialized before executing the scan command): @bt> bt.init download starts(404692) ............................................................................... ............................................................................... .......... download success! @bt> Bluetooth initialized Settings Loaded @bt> @bt> bt.scan on Bluetooth active scan enabled @bt> [DEVICE]: 44:6D:F5:85:DC:5F (random), AD evt type 0, RSSI -64 C:1 S:1 D:0 SR:0 E:0 Prim: LE 1M, Secn: No packets, Interval: 0x0000 (0 ms), SID: 0xff [DEVICE]: 44:6D:F5:85:DC:5F (random), AD evt type 4, RSSI -63 C:0 S:1 D:0 SR:1 E:0 Prim: LE 1M, Secn: No packets, Interval: 0x0000 (0 ms), SID: 0xff [DEVICE]: 6D:B3:D3:8E:ED:A2 (random), AD evt type 0, RSSI -77 C:1 S:1 D:0 SR:0 E:0 Prim: LE 1M, Secn: No packets, Interval: 0x0000 (0 ms), SID: 0xff [DEVICE]: 6D:B3:D3:8E:ED:A2 (random), AD evt type 4, RSSI -76 C:0 S:1 D:0 SR:1 E:0 Prim: LE 1M, Secn: No packets, Interval: 0x0000 (0 ms), SID: 0xff [DEVICE]: 3F:FB:95:F7:F9:14 (random), AD evt type 3, RSSI -75 C:0 S:0 D:0 SR:0 E:0 Prim: LE 1M, Secn: No packets, Interval: 0x0000 (0 ms), SID: 0xff [DEVICE]: 49:A3:4E:86:63:0C (random), AD evt type 0, RSSI -76 C:1 S:1 D:0 SR:0 E:0 Prim: LE 1M, Secn: No packets, Interval: 0x0000 (0 ms), SID: 0xff [DEVICE]: 49:A3:4E:86:63:0C (random), AD evt type 4, RSSI -75 C:0 S:1 D:0 SR:1 E:0 Prim: LE 1M, Secn: No packets, Interval: 0x0000 (0 ms), SID: 0xff [DEVICE]: 5C:28:50:F9:DD:57 (random), AD evt type 0, RSSI -82 C:1 S:1 D:0 SR:0 E:0 Prim: LE 1M, Secn: No packets, Interval: 0x0000 (0 ms), SID: 0xff [DEVICE]: 3B:95:00:4D:F3:EB (random), AD evt type 3, RSSI -82 C:0 S:0 D:0 SR:0 E:0 Prim: LE 1M, Secn: No packets, Interval: 0x0000 (0 ms), SID: 0xff [DEVICE]: 47:9D:D0:CB:5F:0D (random), AD evt type 0, RSSI -86 C:1 S:1 D:0 SR:0 E:0 Prim: LE 1M, Secn: No packets, Interval: 0x0000 (0 ms), SID: 0xff UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 202 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms @bt> bt.scan off Scan successfully stopped @bt> Here is an example of advertising (the BLE host must be initialized before): @bt> bt.advertise on Advertising started @bt> bt.advertise off Advertising stopped @bt> RF Test Mode Operations This section describes the commands to perform the RF test for Bluetooth Classic and Bluetooth Low Energy NOTE : The mentioned "command complete event" can be found in HCI log, U-DISK should be connected to usb port to get HCI log capture. CONFIG_BT_SNOOP macro is used to enable stack to capture the HCI log. Here is the log of rf_test_mode application: >> help @bt> help +---"help": List all the registered commands +---"exit": Exit program +---"echo": Set echo(0 - disable, 1 - enable) +---"bt": bt Bluetooth shell commands +---"init": init [no-settings-load], [sync] +---"disable": disable [none] +---"settings-load": settings-load [none] +---"id-create": id-create <address: XX:XX:XX:XX:XX:XX> +---"id-reset": id-reset <id> <address: XX:XX:XX:XX:XX:XX> +---"id-delete": id-delete <id> +---"id-show": id-show [none] +---"id-select": id-select <id> +---"name": name [name] +---"appearance": appearance [none] +---"scan": scan <value: on, passive, off> [filter: dups, nodups] [fal] +---"scan-filter-set": scan-filter-set Scan filter set commands +---"name": name <name> +---"addr": addr <address: XX:XX:XX:XX:XX:XX> +---"rssi": rssi <rssi> +---"pa_interval": pa_interval <pa_interval> +---"scan-filter-clear": scan-filter-clear Scan filter clear commands +---"all": all +---"name": name +---"addr": addr +---"scan-verbose-output": scan-verbose-output <value: on, off> +---"advertise": advertise <type: off, on, nconn> [mode: discov, non_discov] [filter-accept-list: fal, fal-scan, fal-conn] [identity] [no-name] [one-time] [name-ad] +---"directed-adv": directed-adv <address: XX:XX:XX:XX:XX:XX> <type: (public|random)> [mode: low] [identity] [dir-rpa] +---"connect": connect <address: XX:XX:XX:XX:XX:XX> <type: (public|random)> +---"connect-name": connect-name <name filter> +---"disconnect": disconnect <address: XX:XX:XX:XX:XX:XX> <type: (public|random)> UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 203 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms +---"select": select <address: XX:XX:XX:XX:XX:XX> <type: (public|random)> +---"info": info <address: XX:XX:XX:XX:XX:XX> <type: (public|random)> +---"conn-update": conn-update <min> <max> <latency> <timeout> +---"data-len-update": data-len-update <tx_max_len> [tx_max_time] +---"phy-update": phy-update <tx_phy> [rx_phy] [s2] [s8] +---"channel-map": channel-map <channel-map: XXXXXXXXXX> (36-0) +---"oob": oob [none] +---"clear": clear [all] [<address: XX:XX:XX:XX:XX:XX> <type: (public|random)>] +---"security": security <security level BR/EDR: 0 - 3, LE: 1 - 4> [forcepair] +---"bondable": bondable <on, off> +---"bonds": bonds [none] +---"connections": connections [none] +---"auth": auth <method: all, input, display, yesno, confirm, oob, status, none> +---"auth-cancel": auth-cancel [none] +---"auth-passkey": auth-passkey <passkey> +---"auth-passkey-confirm": auth-passkey-confirm [none] +---"auth-pairing-confirm": auth-pairing-confirm [none] +---"auth-oob-tk": auth-oob-tk <tk> +---"oob-remote": oob-remote <address: XX:XX:XX:XX:XX:XX> <type: (public|random)> <oob rand> <oob confirm> +---"oob-clear": oob-clear [none] +---"fal-add": fal-add <address: XX:XX:XX:XX:XX:XX> <type: (public|random)> +---"fal-rem": fal-rem <address: XX:XX:XX:XX:XX:XX> <type: (public|random)> +---"fal-clear": fal-clear [none] +---"fal-connect": fal-connect <on, off> +---"ind_reset": ind_reset [none] +---"gatt": gatt Bluetooth GATT shell commands +---"discover": discover [UUID] [start handle] [end handle] +---"discover-characteristic": discover-characteristic [UUID] [start handle] [end handle] +---"discover-descriptor": discover-descriptor [UUID] [start handle] [end handle] +---"discover-include": discover-include [UUID] [start handle] [end handle] +---"discover-primary": discover-primary [UUID] [start handle] [end handle] +---"discover-secondary": discover-secondary [UUID] [start handle] [end handle] +---"exchange-mtu": exchange-mtu [none] +---"read": read <handle> [offset] +---"read-uuid": read-uuid <UUID> [start handle] [end handle] +---"read-multiple": read-multiple <handle 1> <handle 2> ... +---"signed-write": signed-write <handle> <data> [length] [repeat] +---"subscribe": subscribe <CCC handle> <value handle> [ind] +---"resubscribe": resubscribe <address: XX:XX:XX:XX:XX:XX> <type: (public|random)> <CCC handle> <value handle> [ind] +---"write": write <handle> <offset> <data> +---"write-without-response": write-without-response <handle> <data> [length] [repeat] +---"write-without-response-cb": write-without-response-cb <handle> <data> [length] [repeat] +---"unsubscribe": unsubscribe [none] +---"get": get <start handle> [end handle] +---"set": set <handle> [data...] +---"show-db": show-db [uuid] [num_matches] +---"att_mtu": att_mtu Output ATT MTU size +---"metrics": metrics [value: on, off] +---"register": register register pre-predefined test service +---"unregister": unregister unregister pre-predefined test service +---"notify": notify <handle> <data> +---"notify-mult": notify-mult count [data] UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 204 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms +---"l2cap": l2cap Bluetooth L2CAP shell commands +---"connect": connect <psm> [sec_level] +---"disconnect": disconnect [none] +---"metrics": metrics <value on, off> +---"recv": recv [delay (in milliseconds) +---"register": register <psm> [sec_level] [policy: allowlist, 16byte_key] +---"send": send [number of packets] [length of packet(s)] +---"allowlist": allowlist [none] +---"add": add [none] +---"remove": remove [none] +---"br": br Bluetooth BR/EDR shell commands +---"auth-pincode": auth-pincode <pincode> +---"connect": connect <address> +---"discovery": discovery <value: on, off> [length: 1-48] [mode: limited] +---"iscan": iscan <value: on, off> +---"l2cap-register": l2cap-register <psm> +---"l2cap-register-mode": l2cap-register-mode <psm> <mode: 3. Enhanced Retransmission mode 4. Streaming mode> +---"l2cap-connect": l2cap-connect <psm> +---"l2cap-disconnect": l2cap-disconnect [none] +---"l2cap-send": l2cap-send <number of packets> +---"oob": oob [none] +---"pscan": pscan <value: on, off> +---"sdp-find": sdp-find <HFPAG/A2SRC/PBAP_PCE> +---"discovery-cb-register": discovery-cb-register <value: on, off> +---"rfcomm": rfcomm Bluetooth RFCOMM shell commands +---"register": register <channel> +---"connect": connect <channel> +---"disconnect": disconnect [none] +---"send": send <number of packets> +---"a2dp": a2dp Bluetooth A2DP shell commands +---"register_sink_ep": register_sink_ep <select codec. 1:SBC 2:MPEG-1,2 3:MPEG-2,4 4:vendor 5:sbc with delay report and content protection services 6:sbc with all other services(don't support data transfer yet)> +---"register_source_ep": register_source_ep <select codec. 1:SBC 2:MPEG-1,2 3:MPEG-2,4 4:vendor 5:sbc with delay report and content protection services 6:sbc with all other services(don't support data transfer yet)> +---"connect": connect [none] +---"disconnect": disconnect [none] +---"configure": configure [none] +---"discover_peer_eps": discover_peer_eps [none] +---"get_registered_eps": get_registered_eps [none] +---"set_default_ep": set_default_ep <select endpoint> +---"configure_ep": configure_ep "configure the default selected ep" +---"deconfigure": deconfigure "de-configure the default selected ep" +---"start": start "start the default selected ep" +---"stop": stop "stop the default selected ep" +---"send_media": send_media <second> "send media data to the default selected ep" +---"send_delay_report": send_delay_report <delay> "a2dp sink send delay report to default selected ep" UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 205 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms +---"avrcp": avrcp Bluetooth AVRCP shell commands +---"init_ct": init_ct [none] +---"init_tg": init_tg [none] +---"ctl_connect": ctl_connect "create control connection" +---"brow_connect": brow_connect "create browsing connection" +---"ct_list_all_cases": ct_list_all_cases "display all the test cases" +---"ct_test_case": ct_test_case <select one case to test> +---"ct_test_all": ct_test_all "test all cases" +---"ct_reg_ntf": ct_reg_ntf <Register Notification. select event: 1. EVENT_PLAYBACK_STATUS_CHANGED 2. EVENT_TRACK_CHANGED 3. EVENT_TRACK_REACHED_END 4. EVENT_TRACK_REACHED_START 5. EVENT_PLAYBACK_POS_CHANGED 6. EVENT_BATT_STATUS_CHANGED 7. EVENT_SYSTEM_STATUS_CHANGED 8. EVENT_PLAYER_APPLICATION_SETTING_CHANGED 9. EVENT_NOW_PLAYING_CONTENT_CHANGED a. EVENT_AVAILABLE_PLAYERS_CHANGED b. EVENT_ADDRESSED_PLAYER_CHANGED c. EVENT_UIDS_CHANGED d. EVENT_VOLUME_CHANGED> +---"tg_notify": tg_notify <Notify event. select event: 1. EVENT_PLAYBACK_STATUS_CHANGED 2. EVENT_TRACK_CHANGED 3. EVENT_TRACK_REACHED_END 4. EVENT_TRACK_REACHED_START 5. EVENT_PLAYBACK_POS_CHANGED 6. EVENT_BATT_STATUS_CHANGED 7. EVENT_SYSTEM_STATUS_CHANGED 8. EVENT_PLAYER_APPLICATION_SETTING_CHANGED 9. EVENT_NOW_PLAYING_CONTENT_CHANGED a. EVENT_AVAILABLE_PLAYERS_CHANGED b. EVENT_ADDRESSED_PLAYER_CHANGED c. EVENT_UIDS_CHANGED d. EVENT_VOLUME_CHANGED> +---"ca_init_i": ca_init_i "Init cover art initiator" +---"ca_init_r": ca_init_r "Init cover art responder" +---"ca_connect": ca_connect "create cover art connection" +---"ca_test": ca_test "cover art test all cases" +---"sdp_get": sdp_get <tg|ct|both> Get the peer sdp for tg, ct or both +---"hfp": hfp Bluetooth pbap shell commands +---"init": init [none] +---"pbap": pbap Bluetooth pbap shell commands +---"pce": pce [none] +---"register": register [none] +---"connect": connect SDP first, then connect. -psm(optional). obex auth params(optional) -uid : [userid]. -pwd : [password]. +---"disconnect": disconnect [none] +---"abort": abort [none] +---"pull_phonebook": pull_phonebook -name(mandatory) : [name]. -srmp(optional) : [Single Response Mode Param(>=0)]. input application parameters(optional). 1: -ps : [Property Selector (64-bit)]. 2: -f : [Format(0: vcard 2.1 | 1 : vcard 3.0)]. 3: -mlc : [MaxListCount (0 - 0xFFFF)]. UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 206 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 4: -lso : [ListStartOffset (0 - 0xFFFF)]. 5: -rnmc: [RestNewMissedCalls(0/1)]. 6: -cs : [vCardSelector(64-bit)]. 7: -cso : [vCardSelecorOperator(0 : or | 1 : and)] +---"set_path": set_path [path_name] +---"pull_vcardlist": pull_vcardlist -name(optional) : [name]. -srmp(optional) : [Single Response Mode Param(>=0)]. input application parameters(optional). 1: -o : [order(0 : Indexed | 1 : Alphanumeric | 2 : Phonetical)]. 2: -sp : [SearchProperty(0 : name | 1 : number | 2 : sound)]. 3: -sv : [SearchValue(string)]. 4: -mlc : [MaxListCount (0 - 0xFFFF)]. 5: -lso : [ListStartOffset (0 - 0xFFFF)]. 6: -rnmc: [ResetNewMissedCalls(0/1)]. 7: -cs : [vCardSelector (64-bit)]. 8: -cso : [vCardSelecorOperator(0 : or | 1 : and)]. +---"pull_vcardentry": pull_vcardentry -name(mandatory) : [name]. -srmp(optional) : [Single Response Mode Param(>=0)]. input application parameters(optional). 1: -ps : [Property Selector (64-bit)]. 2: -f : [Format(0: vcard 2.1 | 1 : vcard 3.0)]. +---"pse": pse [none] +---"register": register [none] +---"disconnect": disconnect [none] +---"map": map Bluetooth MAP shell commands +---"mce": mce [none] +---"register": register [none] +---"unregister": unregister [none] +---"mns_register": mns_register [none] +---"mns_unregister": mns_unregister [none] +---"connect": connect SDP first, then connect +---"disconnect": disconnect [none] +---"mns_disconnect": mns_disconnect [none] +---"abort": abort [none] +---"get_folder_list": get_folder_list -srmp(optional) : [Single Response Mode Param (>=0)]. input application parameters(optional). 1: -mlc : [MaxListCount (0 - 0xFFFF)]. 2: -lso : [ListStartOffset (0 - 0xFFFF)]. +---"set_folder": set_folder -name(mandatory) : [name ("/" : root | "../" : parent | "child" : child | "../child" : parent then child)]. +---"get_msg_list": get_msg_list -name(mandatory if getting child folder, or optional) : [name (string)]. -srmp(optional) : [Single Response Mode Param (>=0)]. input application parameters(optional). 1: -mlc : [MaxListCount (0 - 0xFFFF)]. 2: -lso : [ListStartOffset (0 - 0xFFFF)]. 3: -sl : [SubjectLength (1 - 255)]. 4: -pm : [ParameterMask (0 - 0x1FFFFF)]. 5: -fmt : [FilterMessageType (0 - 0x1F)]. UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 207 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 6: -fpb : [FilterPeriodBegin (string of timestamp)]. 7: -fpe : [FilterPeriodEnd (string of timestamp)]. 8: -frs : [FilterReadStatus (0 : no-filter | 1: unread | 2 : read)]. 9: -fr : [FilterRecipient (string)]. 10: -fo : [FilterOriginator (string)]. 11: -fp : [FilterPriority (0 : no-filter | 1: high priority msg | 2 : non-high priority msg)]. 12: -ci : [ConversationID (128-bit value in hex string format)]. 13: -fmh : [FilterMessageHandle (64-bit value in hex string format)]. +---"get_msg": get_msg -name(mandatory) : [MessageHandle (string)]. -srmp(optional) : [Single Response Mode Param (>=0)]. input application parameters. 1: -a(mandatory) : [Attachment (0 : OFF | 1 : ON)]. 2: -c(mandatory) : [Charset (0 : native | 1 : UTF-8)]. 3: -fr(optional) : [FractionRequest (0 : first | 1 : next)]. +---"set_msg_status": set_msg_status -name(mandatory) : [Message Handle (string)]. input application parameters. 1: -si(mandatory) : [StatusIndicator (0 : readStatus | 1 : deletedStatus | 2 : setExtendedData)]. 2: -sv(mandatory) : [StatusValue (0 : no | 1 : yes)]. 3: -ed(optional) : [ExtendedData (string)]. +---"push_msg": push_msg -name(mandatory if pushing child folder, or optional) : [name (string)]. input application parameters. 1: -t(optional) : [Transparent (0 : OFF | 1 : ON)]. 2: -r(optional) : [Retry (0 : OFF | 1 : ON)]. 3: -c(mandatory) : [Charset (0 : native | 1 : UTF-8)]. 4: -ci(optional) : [ConversationID (128-bit value in hex string format)]. 5: -mh(optional if Message Forwarding is supported or excluded) : [MessageHandle (string)]. 6: -a(mandatory if MessageHandle present in request or excluded) : [Attachment (0 : OFF | 1 : ON)]. 7: -mt(mandatory if MessageHandle present in request or excluded) : [ModifyText (0 : REPLACE | 1 : PREPEND)]. +---"set_ntf_reg": set_ntf_reg input application parameters(mandatory). 1: -ns : [NotificationStatus (0 : OFF | 1 : ON)]. +---"update_inbox": update_inbox [none] +---"get_mas_inst_info": get_mas_inst_info -srmp(optional) : [Single Response Mode Param (>=0)]. input application parameters(mandatory). 1: -mii : [MASInstanceID (0 - 255)]. +---"set_owner_status": set_owner_status input application parameters(at least one parameter present). 1: -pa : [PresenceAvailability (0 - 255)]. 2: -pt : [PresenceText (string)]. 3: -la : [LastActivity (string of timestamp)]. 4: -cs : [ChatState (0 - 255)]. 5: -ci : [ConversationID (128-bit value in hex string format)]. +---"get_owner_status": get_owner_status -srmp(optional) : [Single Response Mode Param (>=0)]. input application parameters(optional). 1: -ci : [ConversationID (128-bit value in hex string format)]. +---"get_convo_list": get_convo_list -srmp(optional) : [Single Response Mode Param (>=0)]. input application parameters(optional). UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 208 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 1: -mlc : [MaxListCount (0 - 0xFFFF)]. 2: -lso : [ListStartOffset (0 - 0xFFFF)]. 3: -flab : [FilterLastActivityBegin (string)]. 4: -flae : [FilterLastActivityEnd (string)]. 5: -frs : [FilterReadStatus (0 : no-filter | 1: unread | 2 : read)]. 6: -fr : [FilterRecipient (string)]. 7. -ci : [ConversationID (128-bit value in hex string format)]. 8: -cpm : [ConvParameterMask (0 - 0x7FFF)]. +---"set_ntf_filter": set_ntf_filter input application parameters(mandatory). 1: -nfm : [NotificationFilterMask (0 - 0x7FFF)]. +---"mse": mse [none] +---"register": register [none] +---"unregister": unregister [none] +---"mns_register": mns_register [none] +---"mns_unregister": mns_unregister [none] +---"disconnect": disconnect [none] +---"mns_disconnect": mns_disconnect [none] +---"send_event": send_event input application parameters(mandatory). 1: -mii : [MASInstanceID (0 - 255)]. +---"bt_test": bt_test Bluetooth BR/EDR test mode commands +---"enter_test_mode": enter_test_mode Enable device under test mode +---"tx_test": tx_test test_scenario[1] hopping_mode[1] tx_channel[1] rx_channel[1] tx_test_interval[1] pkt_type[1] data_length[2] whitening[1] num_pkt[4] tx_pwr[1] +---"rx_test": rx_test test_scenario[1] tx_channel[1] rx_channel[1] pkt_type[1] num_pkt[4] data_length[2] tx_addr[6] report_err_pkt[1] +---"reset": reset Reset the HCI interface +---"le_test": le_test Bluetooth BLE test mode commands +---"set_tx_power": set_tx_power tx_power[1] +---"tx_test": tx_test tx_channel[1] data_length[1] payload[1] phy[1] +---"rx_test": rx_test rc_channel[1] phy[1] modulation[1] +---"end_test": end_test end the le test +---"hci": hci Bluetooth HCI Command interface +---"generic_command": generic_command ogf[1] ocf[1] params....@bt> >> Enable the device under test mode This command performs HCI reset @bt> hci.generic_command 0x03 0x0003 Command output: hci.generic_command 0x03 0x0003 HCI Command Response : @bt> 00 This command enables perform HCI reset @bt> hci.generic_command 0x03 0x001a 0x3 Command output: hci.generic_command 0x03 0x001a 0x3 HCI Command Response : @bt> 00 This command sets event filter @bt> hci.generic_command 0x03 0x0005 0x02 0x00 0x02 Command output: hci.generic_command 0x03 0x0005 0x02 0x00 0x02 HCI Command Response : @bt> 00 UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 209 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms This command puts the controller into the test mode @bt> bt_test.enter_test_mode Enable device under test mode @bt> HCI Command Response : 00 Set the transmit test parameters for Bluetooth Classic This command sets the transmit test parameters. An HCI reset command is required after this test to resume normal Bluetooth operation. @bt> bt_test.tx_test 01 00 01 01 0D 03 0F 00 00 00 00 00 00 04 Command output example: rx_on_start default set to=80 synt_on_start default set to=80 tx_on_start default set to=80 phd_off_start default set to=80 test_scenario= 1 hopping_mode= 0 tx_channel= 1 rx_channel= 1 tx_test_interval= d pkt_type= 3 data_length= f 0 whitening= 0 num_pkt= 0 0 0 0 tx_pwr= 4 @bt> HCI Command Response : 00 Command Parameters : Name RxOnStart SyntOnStart TxOnStart PhdOffStart Length 1 1 1 1 Description These 4 parameters should be set to 0x80. NOTE : bt_test.tx_test command includes these 4 parameters with the default value set to 0x80 UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 210 NXP Semiconductors TestScenario HoppingMode TxChannel RxChannel TxTestInterval PacketType Length Whitening Number of Test Packets Tx Power UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 1 0x01 = PATTERN_00 (data pattern: 0x00) 0x02 = PATTERN_FF (data pattern: 0xFF) 0x03 = PATTERN_55 (data pattern: 0x55) 0x04 = PATTERN_PRBS (data pattern: 0xFE) 0x09 = PATTERN_0F (data pattern: 0x0F) 0xFF = exit test 1 0x00 = fix frequency 0x01 = hopping set 1 Transmit Frequency = (2402+k) MHz, where k is the value of TxChannel 1 Receive Frequency = (2402+k) MHz, where k is the value of RxChannel 1 Poll interval in frames for the link (units, 1.25 ms) 1 Transmit Packet Type 0x03 = DM1 0x04 = DH1 0x0A = DM3 0x0B = DH3 0x0E = DM5 0x0F = DH5 0x14 = 2-DH1 0x18 = 3-DH1 0x1A = 2-DH3 0x1B = 3-DH3 0x1E = 2-DH5 0x1F = 3-DH5 2 Length of Test Data 1 0x00 = disabled 0x01 = enabled 4 0 = infinite (default) 1 Signed value of Tx power (dBm) Range = -20 dBm to 12 dBm (default = 4 dBm) End transmitter test for Bluetooth Classic: @bt> bt_test.tx_test FF 00 01 01 0D 03 0F 00 00 00 00 00 00 04 Observe the packet count in vendor-specific command complete event in HCI logs (Refer to the table below for Event details). Event Name Event Code Event ID Tx Test Result 0xFF 0x19 Status Name Total Packets Parameters Length 1 4 Value 0x00 = completed 0x01 = aborted (in hexadecimal) Set the Receive Test parameters for Bluetooth Classic This command sets the receive test parameters. An HCI reset command is required after this test to resume normal Bluetooth operation. UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 211 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms @bt> bt_test.rx_test 01 01 01 03 10 00 00 00 0F 00 20 4E F6 EC 1F 26 00 Command output example : test_scenario= 1 tx_channel= 1 rx_channel= 1 pkt_type= 3 num_pkt= 10 0 0 0 data_length= f 0 tx_am_addr default set to= 1 tx_addr: 20 4e f6 ec 1f 26 report_err_pkt= 0 @bt> HCI Command Response : 00 Command Parameters : Name TestScenario TxFrequency RxFrequency Length 1 1 Description Test Scenario 0x01 = receiver test, 0pattern 0x02 = receiver test, 1pattern 0x03 = receiver test, 1010pattern 0x04 = receiver test, PRBSpattern 0x09 = receiver test, 1111 0000pattern 0xFF = abort test mode Transmit Frequency f = (2402+k) MHz 1 Receive Frequency f = (2402+k) MHz UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 212 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms TestPacketType Expected Number of Packets Length of Test Data 1 Test Packet Type 0x03 = DM1 0x04 = DH1 0x0A = DM3 0x0B = DH3 0x0E = DM5 0x0F = DH5 0x14 = 2-DH1 0x18 = 3-DH1 0x1A = 2-DH3 0x1B = 3-DH3 0x1E = 2-DH5 0x1F = 3-DH5 4 -2 Should not be bigger than the maximum size of the specified test packet type Tx AM Address 1 Default = 0x01 Transmitter BD Address 6 This is used to derive the access code Report Error Packets 1 Report Error Packets 0x00 = none (default) 0x01 to 0xFE = number of packets to report End receiving test for Bluetooth Classic: @bt> bt_test.rx_test FF 01 01 03 10 00 00 00 0F 00 20 4E F6 EC 1F 26 00 Observe the packet count in vendor-specific command complete event in HCI logs (Refer to the table below for Event details). Event Name EventCode Event ID Parameters UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 213 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Receive Test 0xFF Result 0x01 Name Length Value Status 1 0x00 = completed 0x01 = aborted Total Packets (Expected) 4 (in hexadecimal) No Rx Count 4 (in hexadecimal) Successful Correlation Count 4 (in hexadecimal) HEC Match Count 4 (in hexadecimal) HEC Match CRC Packets Count 4 (in hexadecimal) Payload Hdr Error Count 4 (in hexadecimal) CRC Error Count 4 (in hexadecimal) Total Packet Received 4 (in hexadecimal) Packet OK Count 4 (in hexadecimal) Drop Packet Count 4 (in hexadecimal) Packet Error Rate (%) 4 (in hexadecimal) Total Number of Bits (Expected) 4 (in hexadecimal) Total Number of Bit Errors (Lost+Drop) 4 (in hexadecimal) Bit Error Rate 4 (in hexadecimal) Total Number of Bytes (Received) 4 (in hexadecimal) Total Number of Bit Errors (Received) 4 (in hexadecimal) Average RSSI 4 (in decimal) Perform HCI reset An HCI Reset command is required after this test to resume normal Bluetooth operations. @bt> bt_test.reset API returned success... Bluetooth LE Set TX Power This command sets the Bluetooth LE transmit power level. bt> le_test.set_tx_power 4 tx_power= 4 @bt> HCI Command Response : 00 Parameter TX_POWER Length 1 Definition Min value : 0xE2 ( -30 dBm ) Max value : 0x14 ( 20 dBm ) Default value = 0x00 Bluetooth LE Transmitter test To start a test where the DUT generates test reference packets at a fixed interval, use LE Transmitter Test[V2] command. For more details on the command please refer to Section 7.8.29 in Bluetooth Core Specification v5.3 Vol 0 Part A. UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 214 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms @bt> le_test.tx_test 01 FF 00 01 Command output example : tx_channel= 1 test_data_len= ff pkt_payload= 0 phy= 1 @bt> HCI Command Response : 00 Observe the transmitter test packets over the air logs. Bluetooth LE receiver test : To start a test where the DUT receives test reference packets at a fixed interval, use LE Receiver Test[V2] command. For more details on the command please refer to Section 7.8.28 Bluetooth Core Specification v5.3 Vol 0 Part A. @bt> le_test.rx_test 01 01 00 Command output example : rx_channel= 1 phy= 1 modulation_index= 0 @bt> HCI Command Response : 00 End Test for Bluetooth LE: To end any test for Bluetooth LE use the below command @bt> le_test.end_test API returned success... >> Running a2dp The commands are as follows: +---"a2dp": a2dp Bluetooth A2DP shell commands +---"register_sink_ep": register_sink_ep <select codec. 1:SBC 2:MPEG-1,2 3:MPEG-2,4 4:vendor 5:sbc with delay report and content protection services 6:sbc with all other services(don't support data transfer yet)> +---"register_source_ep": register_source_ep <select codec. 1:SBC 2:MPEG-1,2 3:MPEG-2,4 4:vendor 5:sbc with delay report and content protection services 6:sbc with all other services(don't support data transfer yet)> +---"connect": connect [none] +---"disconnect": disconnect [none] UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 215 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms +---"configure": configure [none] +---"discover_peer_eps": discover_peer_eps [none] +---"get_registered_eps": get_registered_eps [none] +---"set_default_ep": set_default_ep <select endpoint> +---"configure_ep": configure_ep "configure the default selected ep" +---"deconfigure": deconfigure "de-configure the default selected ep" +---"start": start "start the default selected ep" +---"stop": stop "stop the default selected ep" +---"send_media": send_media <second> "send media data to the default selected ep" Test flow: 1. Create ACL connection between two devices (A and B). 2. In device B, input "a2dp.register_sink_ep x" to initialize sink endpoint. 3. In device A, input "a2dp.register_source_ep x" to initialize source endpoint. 4. In device A, input "a2dp.connect" to create a2dp connection with the default ACL connection. 5. In device A, input "a2dp.configure" to configure the a2dp connection. 6. In device A, input "a2dp.start" to start the a2dp media. 7. In device A, input "a2dp.send_media x" to send media data for x seconds. 8. For other commands: i. "a2dp.disconnect" is used to disconnect the a2dp. ii. "a2dp.discover_peer_eps" is used to discover peer device's endpoints. iii. "a2dp.get_registered_eps" is used to get the local registered endpoints. iv. "a2dp.set_default_ep" is used to set the default selected endpoint. v. "a2dp.deconfigure" de-configure the endpoint, then it can be configured again. vi. "a2dp.stop" stops media. vii. "a2dp.send_delay_report" send delay report. Running avrcp The commands are as follows: +---"avrcp": avrcp Bluetooth AVRCP shell commands +---"init_ct": init_ct [none] +---"init_tg": init_tg [none] +---"ctl_connect": ctl_connect "create control connection" +---"brow_connect": brow_connect "create browsing connection" +---"ct_list_all_cases": ct_list_all_cases "display all the test cases" +---"ct_test_case": ct_test_case <select one case to test> +---"ct_test_all": ct_test_all "test all cases" +---"ct_reg_ntf": ct_reg_ntf <Register Notification. select event: 1. EVENT_PLAYBACK_STATUS_CHANGED 2. EVENT_TRACK_CHANGED 3. EVENT_TRACK_REACHED_END 4. EVENT_TRACK_REACHED_START 5. EVENT_PLAYBACK_POS_CHANGED 6. EVENT_BATT_STATUS_CHANGED 7. EVENT_SYSTEM_STATUS_CHANGED 8. EVENT_PLAYER_APPLICATION_SETTING_CHANGED 9. EVENT_NOW_PLAYING_CONTENT_CHANGED a. EVENT_AVAILABLE_PLAYERS_CHANGED b. EVENT_ADDRESSED_PLAYER_CHANGED c. EVENT_UIDS_CHANGED d. EVENT_VOLUME_CHANGED> +---"tg_notify": tg_notify <Notify event. select event: 1. EVENT_PLAYBACK_STATUS_CHANGED 2. EVENT_TRACK_CHANGED UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 216 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 3. EVENT_TRACK_REACHED_END 4. EVENT_TRACK_REACHED_START 5. EVENT_PLAYBACK_POS_CHANGED 6. EVENT_BATT_STATUS_CHANGED 7. EVENT_SYSTEM_STATUS_CHANGED 8. EVENT_PLAYER_APPLICATION_SETTING_CHANGED 9. EVENT_NOW_PLAYING_CONTENT_CHANGED a. EVENT_AVAILABLE_PLAYERS_CHANGED b. EVENT_ADDRESSED_PLAYER_CHANGED c. EVENT_UIDS_CHANGED d. EVENT_VOLUME_CHANGED> +---"ca_init_i": ca_init_i "Init cover art initiator" +---"ca_init_r": ca_init_r "Init cover art responder" +---"ca_connect": ca_connect "create cover art connection" +---"ca_test": ca_test "cover art test all cases" Test flow: 1. Create ACL connection between two devices (A and B). 2. In device B, input "avrcp.init_tg" to initialize Target. 3. In device A, input "avrcp.init_ct" to initialize Controller. 4. In device B, input "avrcp.ca_init_r" to initialize Cover Art responder. 5. In device A, input "avrcp.ca_init_i" to initialize Cover Art Initiator. 6. In device A, input "avrcp.ctl_connect" to create AVRCP Control connection. 7. In device A, input "avrcp.brow_connect" to create AVRCP Browsing connection. 8. In device A, input "avrcp.ct_test_all" to test all the cases. 9. In device A, input "avrcp.ct_reg_ntf" to register notification. 10. In device B, input "avrcp.tg_notify" to notify. 11. In device A, input "avrcp.ca_test" to test all the cover art commands. 12. For other commands: i. In device A, input "avrcp.ct_list_all_cases" to list all the test cases. ii. In device A, input "avrcp.ct_test_case x" to test one selected case. Running BR/EDR L2CAP 1. Create ACL connection between two devices (A and B). 2. In device A and B, input "br.l2cap-register <psm>" to register one psm (for example: br.l2cap- register 1001). 3. In device A, input "br.l2cap-connect <psm>" to create l2cap connection (for example: br.l2cap- connect 1001). 4. In device A, input "br.l2cap-send x" to send data. 5. In device A, input "br.l2cap-disconnect" to disconnect the l2cap connection. 6. In device A and B, input "br.l2cap-register-mode <psm>" to register one psm (for example: br.l2cap-register 1003). 7. In device A, input "br.l2cap-connect <psm>" to create l2cap connection (for example: br.l2cap- connect 1003). 8. In device A, input "br.l2cap-send x" to send data. 9. In device A, input "br.l2cap-disconnect" to disconnect the l2cap connection. Example of BLE pairing and bonding UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 217 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms GATT peripheral role side Initialize the Host. @bt> bt.init Start Advertising @bt> bt.advertise on After the connection is established, perform the pairing sequence, it could be started from peripheral side by "bt.security <level>", such as @bt> bt.security 2 If the bondable is unsupported by peripheral role then enter the command below and repeat step 3. @bt> bt.bondable off GATT central role side Initialize the Host @bt> bt.init Scan for Advertising Packets @bt> bt.scan on Stop the Scanning after few seconds @bt> bt.scan off Select the target board and create a new connection. If the target is not listed, repeat "scan on" and "scan off" then enter "bt.connect <remote address: XX:XX:XX:XX:XX:XX> <type: (public|random)>" , @bt> bt.connect 11:22:33:44:55:66 public After the connection is established, perform the pairing sequence, it could be started from central side by "bt.security <level>", such as @bt> bt.security 2 If the bondable is unsupported by central role then enter the command below and repeat the previous step @bt> bt.bondable off After all the operations are performed , we can initiate a disconnection from the central device @bt> bt.disconnect Example of GATT data signing GATT peripheral role side Initialize the Host @bt> bt.init Enable Advertising @bt> bt.advertise on After the connection is established, perform the pairing sequence, it could be started from peripheral side by "bt.security <level>" @bt> bt.security 2 After the authentication is successfully, disconnect the connection, it could be started from peripheral side by @bt> bt.disconnect Reinitiate the advertising and wait for new connection. After the connection is established (LL encryption should be disabled), add new service "" @bt> gatt.register GATT central role side UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 218 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Initialize the Host @bt> bt.init Scanning advertising packets @bt> bt.scan on A few seconds later, stop the scanning @bt> bt.scan off Select the target board and create a new connection. If the target is not listed, then scan for the devices @bt> "bt.connect <address: XX:XX:XX:XX:XX:XX> <type: (public|random)>" After the connection is established, perform the pairing sequence, it could be started from central side by "bt.security <level> @bt> bt.security 2 After the authentication is successfully, disconnect the connection, it could be started from central side by @bt> bt.disconnect Repeat the previous steps to start and stop scanning for few more seconds and Reinitiate the connection. After the connection is established (LL encryption should be disabled), perform the GATT data signing sequence , i.e., "gatt.signed-write <handle> <data> [length] [repeat]" @bt> gatt.signed-write 22 AA 1 After all the operations are performed , we can initiate a disconnection from the central device @bt> bt.disconnect Example of GATT Service Changed Indication, GATT peripheral role side, Initialize the Host @bt> bt.init Advertising @bt> bt.advertise on After the connection is established. and waiting for the service changed indication is subscribed Add new service @bt> "gatt.register" Wait for the Central device to finish performing the operations. After that Remove the added service @bt> "gatt.unregister". GATT central role side, Initialize the Host @bt> "bt.init" Scanning advertising packets @bt> "bt.scan on" A few seconds later, stop the scanning @bt> "bt.scan off" Select the target board and create a new connection. If the target is not listed, repeat the previous steps to start and stop scanning for few more seconds @bt> "bt.connect <address: XX:XX:XX:XX:XX:XX> <type: (public|random)>" UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 219 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms After the connection is established, subscribe the GATT service changed indicator. i.e. : "bt.subscribe <CCC handle> <value handle> [ind]" @bt> gatt.subscribe f e ind After all the operations are performed , we can initiate a disconnection from the central device @bt> bt.disconnect Example of GATT Service Dynamic Database Hash GATT peripheral role side, Initialize the Host @bt> bt.init Advertising @bt> bt.advertise on After the connection is established. and waiting for the service changed indication is subscribed, Add new service @bt> gatt.register Wait for the Central device to perform the operations and then remove the added service @bt> gatt.unregister GATT central role side, Initialize the Host @bt> bt.init Scanning advertising packets @bt> bt.scan on A few seconds later, stop the scanning @bt> bt.scan off Select the target board and create a new connection. If the target is not listed, repeat the previous steps to start and stop scanning for few more seconds @bt> bt.connect <address: XX:XX:XX:XX:XX:XX> <type: (public|random)> After the connection is established, subscribe the GATT service changed indicator @bt> bt.subscribe <CCC handle> <value handle> [ind] i.e : gatt.subscribe f e ind If the indication is indicated, read DB hash, i.e. : "gatt.read <handle> [offset]" or "gatt.read-uuid <UUID> [start handle] [end handle]" @bt> gatt.read 13 Or @bt> gatt.read-uuid 2b2a After all the operations are performed , we can initiate a disconnection from the central device @bt> bt.disconnect Example of PHY 1M/2M update. GATT peripheral role side, Initialize the Host @bt> bt.init Enable Advertising @bt> bt.advertise on UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 220 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms After the connection is established. Send PHY update command such as "bt.phy-update <tx_phy> <rx_phy> ". tx_phy/rx_phy could be 1(1M) or 2(2M). @bt> bt.phy-update 2 2 The message "LE PHY updated: TX PHY LE 2M, RX PHY LE 2M" would be printed if the PHY is updated. NOTE: If peer don't support PHY update, then this message will not be printed. GATT central role side, Initialize the Host @bt> bt.init start scan @bt> bt.scan on Bluetooth devices around your current Bluetooth will be list, for example, stop scan @bt> bt.scan off [DEVICE]: 72:78:C1:B5:0F:DA (random), AD evt type 4, RSSI -32 BLE Peripheral C:0 S:1 D:0 SR:1 E:0 Prim: LE 1M, Secn: No packets, Interval: 0x0000 (0 ms), SID: 0xff [DEVICE]: C4:0D:02:55:5E:AD (random), AD evt type 0, RSSI -83 C:1 S:1 D:0 SR:0 E:0 Prim: LE 1M, Secn: No packets, Interval: 0x0000 (0 ms), SID: 0xff [DEVICE]: 66:8F:26:27:1F:52 (random), AD evt type 0, RSSI -82 C:1 S:1 D:0 SR:0 E:0 Prim: LE 1M, Secn: No packets, Interval: 0x0000 (0 ms), SID: 0xff connect target device bt.connect <address: XX:XX:XX:XX:XX:XX> <type: (public|random)> @bt> bt.connect 72:78:C1:B5:0F:DA random Send PHY update command bt.phy-update <tx_phy> [rx_phy] [s2] [s8]", tx_phy/rx_phy could be 1(1M) or 2(2M). such as "bt.phy-update 2 2/bt.phy-update 1 2". NOTE, the "s2" and "s8" are unsupported. @bt> After all the operations are performed , we can initiate a disconnection from the central device @bt> bt.disconnect NOTE :The message "LE PHY updated: TX PHY LE 2M, RX PHY LE 2M" would be printed if the phy is updated. NOTE, if peer don't support phy update, then this message will not be printed. Example of Filter Accept List. GATT peripheral role side Initialize the Host @bt> bt.init Adding device to Filter Accept List bt.fal-add <address: XX:XX:XX:XX:XX:XX> <type: (public|random)> @bt> bt.fal-add 11:22:33:44:55:66 public Enable Advertising @bt> bt.advertise on fal-conn Only the device in Filter Accept List can connect to the current device or else no log will be printed. UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 221 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms NOTE: if device address is added after command bt.advertise on, then Filter Accept List will take effect after re-star advertise. the bt.advertise off and bt.advertise on can be used to re-start the advertise. GATT central role side Initialize the Host @bt> bt.init Adding device to Filter Accept List "bt.fal-add <address: XX:XX:XX:XX:XX:XX> <type: (public|random)>" @bt> bt.fal-add 80:D2:1D:E8:2B:7E public Initiate connection with the Filter Accept Listed device with the command "bt.fal-connect on". The device will be connected with the following log. @bt> Connected: 80:D2:1D:E8:2B:7E (public) Initiate disconnection with the Filter Accept Listed "bt.disconnect". device will be disconnect. @bt> Disconnected: 80:D2:1D:E8:2B:7E (public) (reason 0x16) Remove the device from the Filter Accept List @bt> bt.fal-rem 80:D2:1D:E8:2B:7E public Running BR/EDR RFCOMM NOTE: Only 1 rfcomm connection is supported in shell project. RFCOMM Server Side Initialize Bluetooth @bt> bt.init Turn on pscan @bt> br.pscan on Turn on iscan @bt> br.iscan on Register rfcomm server channel 5 @bt> rfcomm.register 5 After rfcomm connection is created, To send data @bt> rfcomm.send <count of sending> After rfcomm connection is created, To disconnect with peer device @bt> rfcomm.disconnect RFCOMM Client Side Initialize Bluetooth @bt> bt.init Enable Discovery @bt> br.discovery on Create Connection , i.e "br.connect <remote device address>" @bt> br.connect 80:D2:1D:E8:2B:7E Create RFCOMM connection on channel 5 @bt> rfcomm.connect 5 UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 222 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms After connection, Send Data , i.e : "rfcomm.send <count of sending>" @bt> rfcomm.send 3 After finishing the test , disconnect the RFCOMM connection @bt> rfcomm.disconnect Running Generic HCI Commands This functionality allows execution of arbitrary command to the wireless controller. The command format is as given below hci.generic_command <ogf> <ocf> <n parameters>.. i.e. : Checking the firmware version with the vendor specific command @bt> hci.generic_command 3f 0f We get the command response HCI Command Response : @bt> 00 15 5B 10 40 00 00 02 04 Independent reset The independent reset feature allows the host to reset the Bluetooth controller and re download the Bluetooth only firmware through UART without powering OFF the Bluetooth controller. Where the host resets the controller and re downloads the firmware: · To initialize new operations · When the host detects unresponsiveness of the Bluetooth controller In addition, IR feature allows the Wi-Fi driver or the Bluetooth driver to reset and re download their own firmware without depending on each other. For example if the Wi-Fi and Bluetooth combo firmware has been downloaded initially, and the Bluetooth firmware is not responding to host, the host uses the independent reset feature to reset and re download the Bluetooth only firmware without affecting the Wi-Fi operations. In-band independent reset This command is given as below: @bt> bt.ind_reset inband Command output response: IR configured successfully for mode 2, ir_state = 3 EtherMind: Bluetooth OFF ... Sending Inband IR Trigger download starts(384072) ..................... download success! IR exit with state = 0 Out-of-band independent reset This command is given as below: UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 223 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms @bt> bt.ind_reset oob Command output: IR configured successfully for mode 1, ir_state = 3 EtherMind: Bluetooth OFF ... Sending Out of Band IR Trigger download starts(384072) ..................... download success! IR exit with state = 0 UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 224 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 5.35 peripheral_beacon Sample Application Application demonstrating the BLE Peripheral role, This application implements types of beacon applications. Beacon: A simple application demonstrating the BLE Broadcaster role functionality by advertising Company Identifier, Beacon Identifier, UUID, A, B, C, RSSI. Eddystone : The Eddystone Configuration Service runs as a GATT service on the beacon while it is connectable and allows configuration of the advertised data, the broadcast power levels, and the advertising intervals. iBeacon: This simple application demonstrates the BLE Broadcaster role functionality by advertising an Apple iBeacon. 5.35.1 peripheral_beacon Application Execution Please refer to the previous sections 3.1.1-3.1.4 and 5.1.1 for instructions on importing a project, building an application, running an application in debug mode, and flashing an application program for a few IDEs. Please refer to section 2.1 for serial console tool setup. 5.35.1.1 peripheral_beacon Run the application This application contains 3 Different type of Beacons configurations. Beacon : A simple Application demonstrating the BLE Broadcaster role functionality To configure the sample application, go to edgefast_bluetooth_app.h and do the following changes to the macros. Here we are enabling the Beacon app and disabling the other beacon configurations. /* Select witch beacon application to start */ #define BEACON_APP 1 #define IBEACON_APP 0 #define EDDYSTONE 0 After changing the macros , recompile the example and flash the application onto the board. After the example is flashed successfully you will be able to see the following initialization logs on the terminal BLE Beacon demo start... Bluetooth initialized Beacon started, advertising as A0:CD:F3:77:E6:1D (public) On the BLE Scanner side our device should be visible as an advertiser. Eddystone : The Eddystone Configuration Service runs as a GATT service on the beacon while it is connectable and allows configuration of the advertised data, the broadcast power levels, and the advertising intervals. It also forms part of the definition of how Eddystone-EID beacons are configured and registered with a trusted resolver. To configure the sample application, go to edgefast_bluetooth_app.h and do the following changes to the macros. Here we are enabling the Eddystone and disabling the other beacon configurations. /* Select witch beacon application to start */ #define BEACON_APP 0 UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 225 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms #define IBEACON_APP 0 #define EDDYSTONE 1 After changing the macros , recompile the example and flash the application onto the board. After the example is flashed successfully you will be able to see the following initialization logs on the terminal Bluetooth initialized Initial advertising as 00:E9:3A:B9:E0:24 (public) Configuration mode: waiting connections... On the BLE Scanner side our device should be visible as an advertiser. iBeacon : This is a simple application demonstrates the BLE Broadcaster role functionality by advertising an Apple iBeacon. The calibrated RSSI @ 1 meter distance can be set using an IBEACON_RSSI build variable (e.g., IBEACON_RSSI=0xc8 for -56 dBm RSSI), or by manually editing the default value in the ibeacon.c file. To configure the sample application, go to edgefast_bluetooth_app.h and do the following changes to the macros. Here we are enabling the Eddystone and disabling the other beacon configurations. /* Select witch beacon application to start */ #define BEACON_APP 0 #define IBEACON_APP 1 #define EDDYSTONE 0 After changing the macros , recompile the example and flash the application onto the board. After the example is flashed successfully you will be able to see the following initialization logs on the terminal. BLE iBeacon demo start... Bluetooth initialized iBeacon started On the BLE Scanner side our device should be visible as an advertiser UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 226 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 5.36 audio_profile Sample Application There are five parts working in the demo: AWS cloud, Android app, audio demo (running on i.MX RT1060 EVK board), U-disk and Bluetooth headset. · With an app running on the smart phone (Android phone), the end users can connect to AWS cloud and control the audio demo running on the i.MX RT1060 EVK board through AWS cloud. Some operations like play, play next, pause, etc. can be used to control the media play functionalities. · Audio demo running on the RT1060 EVK board connects to the AWS through Wi-Fi, also a connection can be established between the i.MX RT1060 EVK board and a Bluetooth headset. · To get the media resource (mp3 files) from the U-disk, an HS USB host is enabled, and a U-disk with mp3 files should be connected to i.MX RT1060 EVK board via the USB port. · After that, the audio demo will search the root directory of U-disk for the audio files and upload the audio file list to AWS, then the list would be shown in the app running on the smart phone. · Finally, the music can be played out via the Bluetooth headset once end user controls the app to play the mp3 file. Prerequisites and Important details about this Demo : · This demo can NOT function with the default setting provided in SDK package · AWS Account is mandatory to run this demo. User must create their own AWS account and configure the IoT Thing. · WiFi SSID , WiFi Password etc. must be updated. · The music files names in U-disk need to be English. · The volume of audio adjustment is not supported. 5.36.1 User Configurations Some of the AWS Client Credentials related macros that user need to configure based on requirement are listed in below table along with source file name. The aws_clientcredential.h file is available in the SDK source; path is given in section 1.3 "References". Table 24: audio_profile Application Configurations Feature Macro definition Value set for Example clientcredentialMQTT_BR OKER_ENDPOINT "a2qkq65ssjggf7ats.iot.us-east1.amazonaws.com" AWS Client Credential clientcredentialIOT_THIN G_NAME clientcredentialWIFI_SSID "MusicPlayer" "NXP_Demo" s clientcredentialWIFI_PAS "123456789" SWORD clientcredentialMQTT_BR "8883" OKER_PORT File name Details aws_clientcredential.h These credentials are required to connect the correct end point of AWS IoT Thing. 5.36.2 audio_profile Application Execution Please refer to the previous section 3.1.1 to run the demo using MCUXpresso IDE. Refer below figures for importing Bluetooth example and selection of Bluetooth module. UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 227 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Figure 42 : Selection of audio_profile application in MCUXpresso IDE Please refer to the previous sections 3.1.2-3.1.4 for instructions on importing a project, building an application, running an application in debug mode and flashing an application program for a few IDEs. Please refer to section 2.1 for information about the serial console setup. 5.36.2.1 Create and configure AWS Account Follow the link to create a new AWS account: https://console.aws.amazon.com/console/home Follow the instructions to create a new AWS account: https://aws.amazon.com/premiumsupport/knowledge-center/create-and-activate-awsaccount/ 5.36.2.2 Create an AWS IoT Policy This section describes the steps to create a policy for AWS IoT. Browse to the AWS IoT console https://console.aws.amazon.com/iotv2/ Click "Policies" inside the "Secure" tab: UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 228 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Figure 42: Creating a new policy Create a new policy: Enter a name to identify a policy. For example, the policy name is "MusicPlayerPolicy". UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 229 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Figure 43: Policy Name In the "Policy statements" section, click "JSON". Figure 44: Policy statements Add the JSON into the Policy editor window and create a policy. { "Version": "2012-10-17", UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 230 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms "Statement": [ { "Effect": "Allow", "Action": "iot:*", "Resource": "*" } ] } Figure 45: Adding the required JSON into the policy editor window Go back to the "Builder" and click on "Create" UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 231 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Figure 43: Create a policy with required JSON Upon successful creation of Policy following screen will appear: Figure 44: Showing the success of policy creation UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 232 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 5.36.2.3 Create IoT thing, private key, and certificate for device Open the "AWS IoT console" https://console.aws.amazon.com/iot/ From the navigation pane, click "Things" inside "All devices" tab. Figure 45: Selection of Things from AWS IoT tab Click on "Create". Figure 46: Creating a new Thing UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 233 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Click "Create a single thing" Figure 47: Creating a new Thing Enter a name for your device, and then choose "Next". For example, the thing name is "MusicPlayer". Figure 48: Giving name to a new thing UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 234 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Figure 49: Click next to proceed for creating a new thing Click "Create certificate" Figure 50: Selecting Device Certificate configuration for a new Thing UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 235 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Select a policy to attach to your certificate that grants your device access to AWS IoT operations and click "Create Thing". Figure 51: Attach a policy and create a Thing Download the thing's certificate, public key, and private key. UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 236 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Figure 52: Downloading the certificate, public and private keys Click the thing that you just created from the list. UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 237 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Figure 53: Selecting the policy and Register Thing Click "Interact" from your thing's page and open "View Settings". Figure 54: Selecting Interact and opening View Settings to get Endpoint UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 238 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Make a NOTE of the AWS IoT REST API endpoint to use it for next sections. Figure 55: Copy the AWS Iot REST API endpoint 5.36.2.4 Configure the AWS IoT Certificate and Private Keys FreeRTOS needs the AWS IoT certificate and private keys associated with your registered thing and its permissions policies to successfully communicate with AWS IoT on behalf of your device. FreeRTOS is a C language project, and the certificate and private key must be specially formatted to be added to the project. Get the PEM-to-C-stringp.py file from SDK (<MCUXpresso SDK>\middleware\aws_iot\amazonfreertos\tools\certificate_configuration) Usage: PEM-to-C-string.py [-h] [--private-key-file PRIVATE_KEY_FILE] [--cert-file CERT_FILE] [--root-ca-file ROOT_CA_FILE] [--pem-file PEM_FILE] Execute this script with private-key.pem and certificate.pem file. This Python script will arrange the key in a format which is required for the project and print it on console. For example: PEM-to-C-string.py -h --private-key-file PRIVATE_KEY_FILE.key.pem --cert-file CERT_FILE.pem UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 239 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Figure 56: Certificates printed on console logs Open aws_clientcredential_keys.h from the below mentioned SDK path. SDK/boards/<board>/edgefast_bluetooth_examples/audio_profile. Find keyCLIENT_CERTIFICATE_PEM and paste formatted certificate as a value. Figure 57: Adding client certificate Then find keyCLIENT_PRIVATE_KEY_PEM and paste formatted private-key as value. UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 240 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Figure 58: Adding private key NOTE: The certificate and private key are hard-coded for demonstration purposes only. Production-level applications should store these files in a secure location. 5.36.2.5 Configure the AWS IoT endpoint User need to update FreeRTOS with your AWS IoT endpoint so the application running on the board can send requests to the correct endpoint. Open "aws_clientcredential.h" file. Set the "clientcredentialMQTT_BROKER_ENDPOINT" as per the Rest API Endpoint. #define clientcredentialMQTT_BROKER_ENDPOINT "a2qkq65ssjggf7- ats.iot.us-east-1.amazonaws.com" Set the "clientcredentialIOT_THING_NAME" as per the name of IoT Thing #define clientcredentialIOT_THING_NAME "MusicPlayer" Set the "clientcredentialWIFI_SSID" as the connected Wi-Fi SSID #define clientcredentialWIFI_SSID "NXP_Demo" Set the "clientcredentialWIFI_PASSWORD" as the connected Wi-Fi Password. #define clientcredentialWIFI_PASSWORD "123456789" Set the "clientcredentialMQTT_BROKER_PORT" as 443 #define clientcredentialMQTT_BROKER_PORT 8883 Rebuild the application and flash it on the target board. Either press the reset button on your board or launch the debugger in your IDE to begin running the demo. Prepare the Android application Open the Amazon Cognito console, https://console.aws.amazon.com/cognito/home Choose "Manage Identity Pools" UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 241 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Figure 59: Manage Identity Pools Click "Create new identity pool". Figure 60: Create new identity pool Enter a name for your identity pool. Such as the pool name is "MusicPlayerIdentity", enable unauthenticated access. Figure 61: Identity pool name Click "Create Pool". UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 242 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Figure 62: Create pool Click "Allow" to create a pool Figure 63: Allow to create a pool Click "Services" Figure 64: Open services menu Click "IAM" inside "All Services" UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 243 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Figure 65: Open IAM Click "Roles" from "IAM dashboard". Figure 66: Open available roles Click "Cognito_MusicPlayerIdentityUnauth_Role". UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 244 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Figure 67: Selecting un-authentication role Click the arrow as shown to edit the policy. Figure 68: Open policy content Click "Edit". Figure 69: Edit the policy UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 245 NXP Semiconductors Click "JSON" UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Figure 70: Open JSON tab Fill the below content to the policy. { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Connect" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "iot:Subscribe", "iot:Receive" ], "Resource": [ "*" ] } ] } UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 246 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Click "Review Policy" Figure 71: Review policy Click "Save changes" Figure 72: Save changes for the role selected The pool is created successfully. UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 247 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Click "Trust relationships" Figure 73: Open Trust relationships tab Make a copy of the Identity pool ID to use for next section. Figure 74: copy Identity pool ID 5.36.2.6 Prepare Configuration File for the Android Application Prepare "AwsMusicControlPreferences.properties" file with yours AWS credentials. Its structure looks like this: customer_specific_endpoint=<REST API ENDPOINT> cognito_pool_id=<COGNITO POOL ID> thing_name=<THING NAME> region=<REGION> Where: customer_specific_endpoint is the endpoint that is configured in aws_clientcredential.h cognito_pool_id is the copied pool id in above step. thing_name is the created Thing name. region is the front part of the cognito pool id. For Example: customer_specific_endpoint=a2qkq65ssjggf7-ats.iot.us-east-1.amazonaws.com cognito_pool_id=us-east-1:408bb2c1-0728-4afd-97ce-c0f13c268a21 thing_name=MusicPlayer region=us-east-1 To run Android application, Install and run pre-build AwsRemoteControl.apk on Android device, file path is referenced in section 1.3 "References". UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 248 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Then in both cases when asked to select AwsMusicControlPreferences.properties file with AWS IoT preferences. Then control the music. NOTE: Application requires at least Android version 5.1 (Android SDK 22). 5.36.2.7 Run the application The log below shows the output of the demo in the console window. The log can be different based on your Wi-Fi network configuration and based on the actions, which you have done in the Android application. After the log "Use mobile application to control the remote device.", the shell command can be used to connect to Bluetooth headset. usb host init done mass storage device attached:pid=0x6387vid=0x58f address=1 usb msd device is ready Available audio files: demo-1-109869.mp3 demo-4-109870.mp3 ruling-planet-biab-demo-song-remix-117443.mp3 trance-eye-biab-demo-song-remix-117445.mp3 vlog-hip-hop-18447.mp3 0 197 [main_task] Warning: could not clean-up old crypto objects. 6 1 197 [main_task] Initializing Wi-Fi... MAC Address: 00:E9:3A:B9:E0:35 2 3372 [main_task] Wi-Fi initialized successfully. 3 3374 [main_task] Connecting to: NXP_Demo 4 12982 [main_task] Wi-Fi connected 5 12983 [main_task] IP Address acquired: 192.168.131.241 6 12984 [MQTT] [INFO] Creating a TLS connection to a2nxzv2h17k05v.ats.iot.cnnorth-1.amazonaws.com.cn:8883. 7 23840 [MQTT] [INFO] (Network connection 0x20257550) TLS handshake successful. 8 23841 [MQTT] [INFO] (Network connection 0x20257550) Connection to a2nxzv2h17k05v.ats.iot.cn-north-1.amazonaws.com.cn established. 9 23841 [MQTT] [INFO] Creating an MQTT connection to the broker. 10 24744 [MQTT] [INFO] MQTT connection established with the broker. 11 24744 [MQTT] [INFO] Successfully connected to MQTT broker. 12 24745 [SHADOW_DEV] [INFO] MQTT Agent is connected. Initializing shadow device task. 13 24745 [SHADOW_DEV] [INFO] Sending subscribe request to agent for shadow topics. 14 24761 [SHADOW_APP] [INFO] MQTT Agent is connected. Initializing shadow update task. 15 24761 [SHADOW_APP] [INFO] Sending subscribe request to agent for shadow topics. 16 25620 [SHADOW_APP] [INFO] Received subscribe ack for shadow update topics. 17 25620 [SHADOW_DEV] [INFO] Successfully subscribed to shadow update topics. 18 25621 [SHADOW_DEV] [INFO] Publishing to /get message using client token 25621. 19 25621 [MQTT] [INFO] Publishing message to $aws/things/MarkWangMusicPlayer/shadow/get. 20 25627 [SHADOW_APP] [INFO] Publishing to /update with following client token 25626. UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 249 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 21 25627 [MQTT] [INFO] Publishing message to $aws/things/MarkWangMusicPlayer/shadow/update. 22 25634 [SHADOW_DEV] [INFO] Successfully sent a publish message to /get topic. Bluetooth initialized Copyright 2022 NXP >> 23 26418 [MQTT] [INFO] Ack packet deserialized with result: MQTTSuccess. 24 26419 [MQTT] [INFO] State record updated. New state=MQTTPublishDone. 25 26420 [MQTT] [INFO] Ack packet deserialized with result: MQTTSuccess. 26 26420 [MQTT] [INFO] State record updated. New state=MQTTPublishDone. 27 26478 [MQTT] [INFO] De-serialized incoming PUBLISH packet: DeserializerResult=MQTTSuccess. 28 26478 [MQTT] [INFO] State record updated. New state=MQTTPubAckSend. 29 26488 [MQTT] [INFO] De-serialized incoming PUBLISH packet: DeserializerResult=MQTTSuccess. 30 26489 [MQTT] [INFO] State record updated. New state=MQTTPubAckSend. 31 26490 [MQTT] [INFO] Received accepted response for update with token 25626. 32 26494 [SHADOW_DEV] [INFO] Received an accepted response for shadow GET request. Use command "help" to list the available options: >> help "help": List all the registered commands "exit": Exit program "bt": BT related function USAGE: bt [connectaddress|finddevice|connectdevice|disconnect|deletedevice] connectaddress connect to the device of the address parameter,for example: bt connectaddress xx:xx:xx:xx:xx:xx. Address format(LSB-MSB): xx:xx:xx:xx:xx:xx finddevice start to find BT devices connectdevice connect to the device that is found, for example: bt connectdevice n (from 1) disconnect current connection deletedevice delete all devices. Ensure to disconnect the HCI link connection with the peer device before attempting to delete the bonding information. >> Use command "bt finddevice" to scan nearby Bluetooth devices >> bt finddevice >> Discovery started. Please wait ... BR/EDR discovery complete [1]: 70:F0:87:C0:FC:0E, RSSI -65 iPhone [2]: BC:17:B8:74:2C:9F, RSSI -52 Galaxy [3]: 50:82:D5:78:31:DA, RSSI -78 iPhone 6 [4]: 00:00:AB:CD:87:D6, RSSI -38 Airdopes 441 [5]: 04:C8:07:25:29:73, RSSI -69 Mi A3 Use command "bt connectdevice <number>" to connect to remote Bluetooth device Here, "number" value can be found from the logs of "bt finddevice" command used above. >> bt connectdevice 4 >> Connection pending SDP discovery started Connected sdp success callback A2DP Service found. Connecting ... Security changed: 7E:5E:2B:2E:9A:C3 (0xed) level 2 UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 250 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 33 114978 [SHADOW_APP] [INFO] Publishing to /update with following client token 114977. 34 114978 [MQTT] [INFO] Publishing message to $aws/things/MarkWangMusicPlayer/shadow/update. 35 115685 [MQTT] [INFO] Ack packet deserialized with result: MQTTSuccess. 36 115685 [MQTT] [INFO] State record updated. New state=MQTTPublishDone. 37 115742 [MQTT] [INFO] De-serialized incoming PUBLISH packet: DeserializerResult=MQTTSuccess. 38 115743 [MQTT] [INFO] State record updated. New state=MQTTPubAckSend. 39 115745 [MQTT] [INFO] Received accepted response for update with token 114977. UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 251 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Open the android app and load the AwsRemoteControlPreferences.properties, wait for connection to get complete. Use the smartphone application to play the music. Figure 75: Play music using Android application Following logs will be appear on the i.MX RT1060 EVK board console: >> start play [STREAMER] Message Task started [STREAMER] start playback Starting playback 0 47 118031 [AWS-RemoteCtrl] [INFO ][MQTT][lu] (MQTT connection 0x20230c48) MQTT PUBLISH operation queued. 48 118045 [iot_thread] [WARN ][Shadow][lu] Received a Shadow UPDATE response with no client token. This is possibly a response to a bad JSON document: {"state":{"desired":{"playIndex":0,"playState":true}},"metadata":{"desired":{"p layIndex":{"timestamp":1649 118045 [iot_thread] [WARN ][Shadow][lu] Shadow UPDATE callback received an unknown operation. 50 118695 [iot_thread] [INFO ][Shadow][lu] Shadow UPDATE of MusicPlayer was ACCEPTED. 51 118695 [AWS-RemoteCtrl] Successfully performed update. STREAM_MSG_UPDATE_POSITION position: 1005 ms STREAM_MSG_UPDATE_POSITION position: 2011 ms STREAM_MSG_UPDATE_POSITION position: 3004 ms UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 252 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Use the smartphone application to pause the music. Figure 76: Pause music using Android application Following logs will be appear on the i.MX RT1060 EVK board console: stop play 52 214884 [AWS-RemoteCtrl] [INFO ][MQTT][lu] (MQTT connection 0x2022fdb0) MQTT PUBLISH operation queued. 53 214885 [iot_thread] [WARN ][Shadow][lu] Received a Shadow UPDATE response with no client token. This is possibly a response to a bad JSON document: {"state":{"desired":{"playIndex":0,"playState":false}},"metadata":{"desired":{" playIndex":{"timestamp":154 214885 [iot_thread] [WARN ][Shadow][lu] Shadow UPDATE callback received an unknown operation. 55 215504 [iot_thread] [INFO ][Shadow][lu] Shadow UPDATE of MusicPlayer was ACCEPTED. 56 215504 [AWS-RemoteCtrl] Successfully performed update. Use command "bt disconnect" to release the connection with Headset. >> bt disconnect >> 46 689546 [iot_thread] [ERROR][NET][lu] Error -27648 while sending data. 47 689547 [AWS-RemoteCtrl] [INFO ][MQTT][lu] (MQTT connection 0x20230c48) MQTT PUBLISH operation queued. Disconnected (reason 0x16) 58 249328 [iot_thread] [INFO ][Shadow][lu] Shadow UPDATE of MusicPlayer was ACCEPTED. 59 249329 [AWS-RemoteCtrl] Successfully performed update. Use command "bt deletedevice" to remove bound and authentication information of all the connected devices. >> bt deletedevice >> UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 253 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 5.37 Bluetooth Only firmware Download Test Procedure This section describes the steps to configure any Bluetooth / Bluetooth LE sample application for Bluetooth only firmware download mode. 5.37.1 Bluetooth only firmware download Application Execution Please refer to the previous sections 3.1.1-3.1.4 and 5.1.1 for instructions on importing a project. Select any of the Bluetooth / Bluetooth LE application from the list and import it as described. 5.37.1.1 Build the Application Enable the macro CONFIG_BT_IND_DNLD in the application config file and refer the previous sections 3.1.1.3 and 3.1.1.5 to build and flashing the project. 5.37.1.2 Run the Application Press the power reset button on i.MX RT board to run the demo application downloaded on the board. When the demo starts, it will download the Bluetooth only Firmware. The following message about the demo would appear on the console. BLE iBeacon demo start... download starts(404692) ............................................................................... .... download success! Bluetooth initialized iBeacon started UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 254 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 6 802.15.4 Sample Application This chapter describes the Thread example application that is available in the OpenThread repository, and the steps to configure, debug and execute this example. Thread is an IPv6-based networking protocol designed for low-power Internet of Things devices in an IEEE802.15.4-2006 wireless mesh network. OpenThread released by Google is an open-source implementation of Thread. The communication between the Open-thread RCP stack and the Link Layer (LL) is implemented via the SPI interface as shown on Figure 76. SPI_INT SPI Figure 76. 802.15.4 software architecture The setup is done between an i.MX RT+ IW612 NXP-based wireless module. The instructions in this guide use an i.MXRT1170 EVK board. Please check the UM11823 - Getting Started with IW612 Evaluation Board and i.MX RT1170 Running RTOS for details of how to build the OpenThread CLI demo. UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 255 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 6.1 CLI Sample Application This sample application section describes the steps to configure the i.MX RT1170 EVK board and IW612 wireless module to create/join a thread network and other useful commands using the command line. It is recommended to use a Linux PC to compile and debug this example. 6.1.1 Create debug session After following the steps from the Getting Started guide UM11441 section "Run a 802.15.4 demo application", a folder "build_rt1170" with the executable would be created. To create the debug session is needed to import to whole ot-nxp folder in MCUXpresso IDE as a "Makefile Project": Use none as Toolchain for Indexer Settings: UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 256 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Configure memory map to match the following picture. To open this window right click on the Project -> Properties -> C/C++ Build -> MCU Settings -> Select MIMXRT1170 -> Apply & Close: Configure the toolchain editor to NXP MCU Tools. To open this window right click on the Project -> C/C++ Build-> Tool Chain Editor -> NXP MCU Tools -> Apply & Close UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 257 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms To create the debug session, it's needed to duplicate a current debug session for the same chipset, in this case, it is used a Wi-Fi CLI debug session. In the drop-down menu on the "green bug" select the Debug configurations: Click on the duplicate icon and update the project to point to the ot-nxp workspace project. Update C/C++ Applications to point to the ot-nxp executable generated on path ot-nxp/build_rt1170/iwx12_spi/ot-clirt1170: After that, a debug session for the OpenThread project should be generated correctly. UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 258 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 6.1.2 ot-nxp Application Execution 6.1.2.1 Start-up logs The following character can be observed on the console once the devices (i.MX RT1170 EVK board and IW612 module) are up and running and it shows that 802.15.4 module is ready for the operations. > 6.1.2.2 Help Command The help command is used to get the list of commands available in the ot-nxp sample application. > help bbr bufferinfo ccathreshold ccm channel child childip childmax childsupervision childtimeout coap commissioner contextreusedelay counters dataset delaytimermin discover dns domainname eidcache eui64 extaddr extpanid factoryreset fake fem ifconfig ipaddr ipmaddr joiner joinerport keysequence leaderdata leaderweight log mac mliid mlr mode multiradio neighbor netdata netstat networkdiagnostic networkidtimeout networkkey networkname panid parent parentpriority partitionid UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 259 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms ping pollperiod preferrouterid prefix promiscuous pskc rcp region releaserouterid reset rloc16 route router routerdowngradethreshold routereligible routeridrange routerselectionjitter routerupgradethreshold scan service singleton state tcp thread tvcheck txpower udp unsecureport version Done 6.1.2.3 Factory Reset 15.4 module The factoryreset command is used to reset any change made on the current network and reset the device. > factoryreset Done 6.1.2.4 Scan command The scan command is used to scan the visible thread devices. > scan | PAN | MAC Address | Ch | dBm | LQI | +------+------------------+----+-----+-----+ | 2233 | 2a702820dd853ea7 | 11 | -44 | 136 | Done 6.1.2.5 Add leader network data Before creating a network, we need to define certain parameters as the network key, network channel, PAN ID and network name. > dataset init new Done > dataset channel 11 Done > dataset networkkey 00112233445566778899AABBCCDDEE00 Done > dataset panid 0x0123 Done > dataset networkname ot-example Done > dataset commit active Done UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 260 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 6.1.2.6 Start network Using the data previously set, a network would be created. > ifconfig up Done > thread start Done 6.1.2.7 Enable commissioner To enable other devices to join the network, it's needed to enable the commissioner role, this is used to authenticate a device onto the network. > commissioner start Commissioner: petitioning Done Commissioner: active > commissioner joiner add * NXP123(pskd/pskc) Done > ~ Discovery Request from 2a702820dd853ea7: version=2,joiner=1 Commissioner: Joiner start 2a702820dd853ea7 Commissioner: Joiner connect 2a702820dd853ea7 Commissioner: Joiner finalize 2a702820dd853ea7 Commissioner: Joiner end 2a702820dd853ea7 6.1.2.8 Join network For a device to be able to join it need to have the same network key and pskd/pskc. Also the device need to change to a joiner role to be able to send and receive the information to connect to the current network. > dataset networkkey 00112233445566778899AABBCCDDEE00 Done > dataset commit active Done > ifconfig up Done > joiner start NXP123 (pskd) Done Join success > thread start Done 6.1.2.9 Ping Devices For a device to be able to ping another, it's needed the IPv6 of the target device. Use the ipaddr command on the target device to obtain the IPv6 on the target device. > ipaddr fd70:e262:f738:8d2e:0:ff:fe00:9001 fd70:e262:f738:8d2e:6c0d:de9c:7602:20ab fe80:0:0:0:2cea:23a4:654:8c28 Done After obtaining the IPv6 of the target device. The following command can be used to ping other devices. > ping fe80:0:0:0:f4e7:f954:e813:7e4a 16 bytes from fe80:0:0:0:f4e7:f954:e813:7e4a: icmp_seq=1 hlim=64 time=35ms 1 packets transmitted, 1 packets received. Packet loss = 0.0%. Round-trip min/avg/max = 35/35.0/35 ms. Done UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 261 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 6.1.2.10 UDP Server/Client The sample application implements a UDP protocol communication To open a socket on the server: > udp open Done > udp bind :: 1234 Done To connect to the socket on the client side: > udp open Done > udp connect fe80:0:0:0:f4e7:f954:e813:7e4a 1234 Done Send a command from client to server: > udp send hello Output from server: > 5 bytes from fe80:0:0:0:2cea:23a4:654:8c28 49154 hello 6.1.2.11 Other useful commands Router Print all the routers on the network, depending of the parameter is the information Table > router table | ID | RLOC16 | Next Hop | Path Cost | LQ In | LQ Out | Age | Extended MAC | Link | +----+--------+----------+-----------+-------+--------+-----+------------------ +------+ | 24 | 0x6000 | 63 | 0 | 0 | 0 | 0 | 2eea23a406548c28 | 0| | 36 | 0x9000 | 63 | 0 | 3 | 3 | 18 | f6e7f954e8137e4a | 1| Done List: > router list 24 36 Done Router ID: > router 36 Alloc: 1 Router ID: 36 Rloc: 9000 Next Hop: fc00 Link: 0 Done EUI64 Get the factory-assigned IEEE EUI-64 > eui64 ffffffffffffffff Done Router eligible By default, the example sets the devices as a REED (Router Eligible Device). In case the devices needs to join the network only as an endpoint you can change this using the following command. Disable router role: UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 262 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms > routereligible disable Done Enable router role: > routereligible enable Done Get router role: > routereligible Enabled Done UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 263 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 7 Acronyms and abbreviations Table 25: Acronyms and Abbreviations Terms ACS Auto Channel Selection Definition AP API CLI CMSIS DFP Access Point Application Program Interface Command Line Interface Cortex® Microcontroller Software Interface Standard Device Family Pack DHCP DHCPD Dynamic Host Configuration Protocol DHCP daemon ED Energy Detection EU European Union EVK Ext AP Ext STA Evaluation Kit External Access Point External Station FW Firmware IDE Integrated Development Environment IP Internet Protocol lwIP Lightweight IP NAT Network Address Translation PS Power Save Rx Receive SD Secure Digital SDK Software Development Kit SSID Service Set Identifier STA Station/client SW Software TCP TRPC Transmission Control Protocol Transmit Rate-based Power Control Tx Transmit UDP User Datagram Protocol WLAN WPA MFP Wireless Local Area Network Wi-Fi Protected Access Management Frame Protection OTP One Time Programmable ETSI European Telecommunications Standards Institute A2DP HFP SPP BT Advanced Audio Distribution Profile Hands-Free Profile Serial Port Profile Bluetooth UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 264 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms BLE PXR PXM HTS IPSP HTTP ACL AWS HCI UART PCM HS USB EIP PRI PTA Bluetooth Low Energy Proximity Reporter Proximity Monitor Health Thermometer Service Internet Protocol Support Profile Hypertext Transfer Protocol Asynchronous Connection-Less Link Amazon Web Services Host Controller Interface Universal Asynchronous Receiver Transmitter Pulse-code Modulation High Speed Universal Serial Bus Event in progress Priority Packet Traffic Arbiter UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 265 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 8 Contact Us Please refer following links for more product details, queries and support. Home Page: nxp.com Web Support: nxp.com/support NXP Community: https://community.nxp.com/ UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 266 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 9 Legal Information 9.1 9.2 Definitions Draft -- A draft status on a document indicates that the content is still under internal review and subject to formal approval, which may result in modifications or additions. NXP Semiconductors does not give any representations or warranties as to the accuracy or completeness of information included in a draft version of a document and shall have no liability for the consequences of use of such information. Disclaimers Limited warranty and liability -- Information in this document is believed to be accurate and reliable. However, NXP Semiconductors does not give any representations or warranties, expressed or implied, as to the accuracy or completeness of such information and shall have no liability for the consequences of use of such information. NXP Semiconductors takes no responsibility for the content in this document if provided by an information source outside of NXP Semiconductors. In no event shall NXP Semiconductors be liable for any indirect, incidental, punitive, special or consequential damages (including - without limitation - lost profits, lost savings, business interruption, costs related to the removal or replacement of any products or rework charges) whether such damages are based on tort (including negligence), warranty, breach of contract or any other legal theory. Notwithstanding any damages that customer might incur for any reason whatsoever, NXP Semiconductors' aggregate and cumulative liability towards customer for the products described herein shall be limited in accordance with the Terms and conditions of commercial sale of NXP Semiconductors. Right to make changes -- NXP Semiconductors reserves the right to make changes to information published in this document, including without limitation specifications and product descriptions, at any time and without notice. This document supersedes and replaces all information supplied prior to the publication hereof. Suitability for use -- NXP Semiconductors products are not designed, authorized or warranted to be suitable for use in life support, life-critical or safety-critical systems or equipment, nor in applications where failure or malfunction of an NXP Semiconductors product can reasonably be expected to result in personal injury, death or severe property or environmental damage. NXP Semiconductors and its suppliers accept no liability for inclusion and/or use of NXP Semiconductors products in such equipment or applications and therefore such inclusion and/or use is at the customer's own risk. Applications -- Applications that are described herein for any of these products are for illustrative purposes only. NXP Semiconductors makes no representation or warranty that such applications will be suitable for the specified use without further testing or modification. Customers are responsible for the design and operation of their applications and products using NXP Semiconductors products, and NXP Semiconductors accepts no liability for any assistance with applications or customer product design. It is customer's sole responsibility to determine whether the NXP Semiconductors product is suitable and fit for the customer's applications and products planned, as well as for the planned application and use of customer's thirdparty customer(s). Customers should provide appropriate design and operating safeguards to minimize the risks associated with their applications and products. NXP Semiconductors does not accept any liability related to any default, damage, costs or problem which is based on any weakness or default in the customer's applications or products, or the application or use by customer's thirdparty customer(s). Customer is responsible for doing all necessary testing for the customer's applications and products using NXP Semiconductors products in order to avoid a default of the applications and the products or of the application or use by customer's third-party customer(s). NXP does not accept any liability in this respect. Export control -- This document as well as the item(s) described herein may be subject to export control regulations. Export might require a prior authorization from competent authorities. Evaluation products -- This product is provided on an "as is" and "with all faults" basis for evaluation purposes only. NXP Semiconductors, its affiliates and their suppliers expressly disclaim all warranties, whether express, implied or statutory, including but not limited to the implied warranties of non-infringement, merchantability and fitness for a particular purpose. The entire risk as to the quality, or arising out of the use or performance, of this product remains with customer. In no event shall NXP Semiconductors, its affiliates or their suppliers be liable to customer for any special, indirect, consequential, punitive or incidental damages (including without limitation damages for loss of business, business interruption, loss of use, loss of data or information, and the like) arising out the use of or inability to use the product, whether or not based on tort (including negligence), strict liability, breach of contract, breach of warranty or any other theory, even if advised of the possibility of such damages. Notwithstanding any damages that customer might incur for any reason whatsoever (including without limitation, all damages referenced above and all direct or general damages), the entire liability of NXP Semiconductors, its affiliates and their suppliers and customer's exclusive remedy for all of the foregoing shall be limited to actual damages incurred by customer based on reasonable reliance up to the greater of the amount actually paid by customer for the product or five dollars (US$5.00). The foregoing limitations, exclusions and disclaimers shall apply to the maximum extent permitted by applicable law, even if any remedy fails of its essential purpose. Translations -- A non-English (translated) version of a document is for reference only. The English version shall prevail in case of any discrepancy between the translated and English versions. Security -- Customer understands that all NXP products may be subject to unidentified or documented vulnerabilities. Customer is responsible for the design and operation of its applications and products throughout their lifecycles to reduce the effect of these vulnerabilities on customer's applications and products. Customer's responsibility also extends to other open and/or proprietary technologies supported by NXP products for use in customer's applications. NXP accepts no liability for any vulnerability. Customer should regularly check security updates from NXP and follow up appropriately. Customer shall select products with security features that best meet rules, regulations, and standards of the intended application and make the ultimate design decisions regarding its products and is solely responsible for compliance with all legal, regulatory, and security related requirements concerning its products, regardless of any information or support that may be provided by NXP. NXP has a Product Security Incident Response Team (PSIRT) (reachable at [email protected]) that manages the investigation, reporting, and solution release to security vulnerabilities of NXP products UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 267 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 9.3 Trademarks Notice: All referenced brands, product names, service names and trademarks are the property of their respective owners. NXP -- wordmark and logo are trademarks of NXP B.V. UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 268 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Tables Table 1: Reference Documents................................11 Table 2: iPerf Commands for Linux Remote Host....13 Table 3: iPerf Commands for Mobile Phone Remote Host ................................................................. 13 Table 4: Macros for Wi-Fi Modules .........................14 Table 5: Memory used by Wi-Fi sample application on RT1060 EVKC..............................................14 Table 6: Sample Application Features .....................16 Table 7: wifi_setup Application Features ................58 Table 8: wifi_webconfig Sample Application Features ........................................................................ 62 Table 9: wifi_webconfig Application Wi-Fi Configurations ................................................. 62 Table 10bgn: Data rate parameter ..........................73 Table 11: 11ac Data rate parameter........................73 Table 12: 11ax Data rate parameter........................74 Table 13: Tx power command sequences for 2.4GHz ........................................................................ 78 Table 14: Tx power command sequences for 5GHz 79 Table 15: wifi_cert Application Features .................81 Table 16: ED MAC Parameters.................................89 Table 17: ED MAC 2.4 GHz Command Operations ..90 Table 18: ED MAC 5 GHz Command Operations .....90 Table 19: Sample Application Features ...................99 Table 20: cloud keep alive command usage ..........119 Table 21: Set ED MAC API argument .....................126 Table 22: Get ED MAC API argument.....................126 Table 23: Preprocessor Macros for Bluetooth Modules ........................................................133 Table 24: audio_profile Application Configurations ...................................................................... 227 Table 25: Acronyms and Abbreviations .................264 UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 269 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Figures Figure 1: wifi_cli Sample Application Components .15 Figure 2: SDK Drag and Drop in MCUXpresso..........16 Figure 3: Device/EVK Selection in MCUXpresso ......17 Figure 4: Sample App Selection in MCUXpresso......18 Figure 5: Wi-Fi Module Selection in MCUXpresso ...19 Figure 6: Application Build in MCUXpresso .............20 Figure 7: Build Messages in MCUXpresso................21 Figure 8: Initiate Debug in MCUXpresso..................21 Figure 9: Emulator Probe Selection in MCUXpresso22 Figure 10: Application Debugging in MCUXpresso ..22 Figure 11: Binary Flashing in MCUXpresso ..............23 Figure 12: Open Project in IAR.................................26 Figure 13: Wi-Fi Module Selection in IAR ................26 Figure 14: Application Build in IAR ..........................27 Figure 15: Build Message in IAR...............................27 Figure 16: Debugger Selection in IAR ......................28 Figure 17: Initiate Debug in IAR ...............................28 Figure 18: Application Debugging in IAR .................28 Figure 19: Binary Flashing in IAR..............................29 Figure 20: Install Packages using Pack Installer in Keil ........................................................................ 30 Figure 21: DFP Verification in Pack Installer in Keil .30 Figure 22: Open Project in Keil ................................31 Figure 23: Wi-Fi Module Selection in Keil ................31 Figure 24: Application Build in Keil ..........................32 Figure 25: Build Message in Keil ..............................32 Figure 26: Debugger Selection in Keil ......................33 Figure 27: Load the application ...............................33 Figure 28: Initiate Debug in Keil...............................33 Figure 29: Application Debugging in Keil .................34 Figure 30: Application Debugging Features in Keil ..34 Figure 31: Binary Flashing in Keil .............................34 Figure 32: Hardware Setup for iPerf performance test with Soft AP Mode ...................................44 Figure 33: Hardware Setup for iPerf performance test with Station Mode ...................................44 Figure 34: wifi_webconfig flow diagram .................62 Figure 35: wifi_webconfig Website in AP Mode......63 Figure 36: Connection Attempt to AP using wifi_webconfig Application ............................64 Figure 37: wifi_webconfig Website in Client Mode.65 Figure 38: Clear Configurations saved in mflash using website (wifi_webconfig Application).............67 Figure 39: Clear Configuration Success Message in wifi_webconfig Application ............................67 Figure 40: TX Frame Packet Capture .......................77 Figure 41: RT1170 EVKB Labtool setup....................96 Figure 42 : Selection of audio_profile application in MCUXpresso IDE ...........................................228 Figure 43: Create a policy with required JSON ......232 Figure 44: Showing the success of policy creation 232 Figure 45: Selection of Things from AWS IoT tab ..233 Figure 46: Creating a new Thing ............................233 Figure 47: Creating a new Thing ............................234 Figure 48: Giving name to a new thing..................234 Figure 49: Click next to proceed for creating a new thing ..............................................................235 Figure 50: Selecting Device Certificate configuration for a new Thing .............................................235 Figure 51: Attach a policy and create a Thing........236 Figure 52: Downloading the certificate, public and private keys...................................................237 Figure 53: Selecting the policy and Register Thing 238 Figure 54: Selecting Interact and opening View Settings to get Endpoint ...............................238 Figure 55: Copy the AWS Iot REST API endpoint ...239 Figure 56: Certificates printed on console logs .....240 Figure 57: Adding client certificate........................240 Figure 58: Adding private key ................................241 Figure 59: Manage Identity Pools ..........................242 Figure 60: Create new identity pool ......................242 Figure 61: Identity pool name ...............................242 Figure 62: Create pool ...........................................243 Figure 63: Allow to create a pool...........................243 Figure 64: Open services menu .............................243 Figure 65: Open IAM..............................................244 Figure 66: Open available roles .............................244 Figure 67: Selecting un-authentication role ..........245 Figure 68: Open policy content .............................245 Figure 69: Edit the policy .......................................245 Figure 70: Open JSON tab......................................246 Figure 71: Review policy ........................................247 Figure 72: Save changes for the role selected .......247 Figure 73: Open Trust relationships tab ................248 Figure 74: copy Identity pool ID.............................248 Figure 75: Play music using Android application ...252 Figure 76: Pause music using Android application 253 UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 270 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms Contents 1 About this Document ......................................10 1.1 Purpose and Scope ....................................10 1.2 Considerations...........................................10 1.3 References.................................................11 2 Tool Setup .......................................................12 2.1 Serial Console Tool Setup ..........................12 2.2 Wireshark Tool Setup ................................12 2.3 IPerf Remote Host Setup ...........................12 2.4 iPV4/6 Tool Setup......................................13 3 Wi-Fi Sample Applications ..............................14 3.1 wifi_cli Sample Application .......................15 3.1.1 Run a Demo with MCUXpresso IDE 16 3.1.2 Run a demo using ARM® GCC ...24 3.1.3 Run a demo with IAR IDE ..........26 3.1.4 Run a demo using Keil MDK/µVision ..........................................30 3.1.5 wifi_cli Application Execution ...35 3.1.6 Add CLIs in wifi_cli Sample Application.............................................. 57 3.2 wifi_setup Sample Application ..................58 3.2.1 wifi_setup Application Execution 58 3.3 wifi_webconfig Sample Application ..........60 3.3.1 User Configurations ..................62 3.3.2 wifi_webconfig Application Execution ................................................62 4.1.3 Usage and Output ...................127 4.2 Enable Host based WPA supplicant Feature for Wi-Fi application ................................130 4.2.1 4.2.2 FreeRTOSConfig.h ...................130 lwipopts.h ...............................130 4.2.3 4.2.4 wifi_config.h ............................ 131 Adding components ................131 4.2.5 Memory Overflow Issue Handling 131 5 Bluetooth Classic/Low Energy Applications ..133 5.1 a2dp_sink Sample Application ................134 5.1.1 a2dp_sink Application Execution 134 5.2 a2dp_source Sample Application ............136 5.2.1 a2dp_source Application Execution ..............................................136 5.3 handsfree Sample Application ................137 5.3.1 handsfree Application Execution 137 5.4 handsfree_ag Sample Application...........138 5.4.1 handsfree_ag Application Execution ..............................................138 5.5 spp Sample Application ...........................140 5.5.1 spp Application Execution.......140 5.6 PBAP-PCE Sample Application .................143 5.6.1 Pbap-pce Application Execution 143 3.4 wifi_test_mode Sample Application .........68 3.4.1 wifi_test_mode Application Execution ................................................68 5.7 PBAP-PSE Sample Application .................146 5.7.1 Pbap-pse Application Execution 146 3.5 wifi_cert Sample Application.....................81 3.5.1 wifi_cert Application Execution 81 3.6 wifi_ipv4_ipv6_echo Sample Application .91 3.6.1 wifi_ipv4_ipv6_echo Application Execution ................................................91 3.7 uart_wifi_bridge Sample Application ........96 3.7.1 uart_wifi_bridge Application Execution ................................................96 3.8 wifi_wpa_supplicant Sample Application .99 3.8.1 wifi_wpa_supplicant Application Execution ................................................99 4 Useful Wi-Fi APIs ...........................................126 4.1 Set/Get ED MAC Feature .........................126 4.1.1 4.1.2 wlan_set_ed_mac_mode() .....126 wlan_get_ed_mac_mode() .....126 5.8 MAP-MCE Sample Application ................147 5.8.1 Map-mce Application Execution 147 5.9 MAP-MSE Sample Application.................152 5.9.1 map-mse Application Execution 152 5.10 peripheral_hps Sample Application.156 5.10.1 peripheral_hps Application Execution ..............................................156 5.11 central_hpc Sample Application ......156 5.11.1 central_hpc Application Execution 156 5.12 peripheral_pxr Sample Application .157 5.12.1 peripheral_pxr Application Execution ..............................................157 UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 271 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 5.13 central_pxm Sample Application .....158 5.13.1 central_pxm Application Execution ..............................................158 5.25.1 Prepare the setup for Application demo 176 5.25.2 Application execution .............177 5.14 peripheral_ht Sample Application ...159 5.14.1 peripheral_ht Application Execution ..............................................159 5.15 central_ht Sample Application.........159 5.15.1 central_ht Application Execution 159 5.16 peripheral_ipsp Sample Application 160 5.16.1 peripheral_ipsp Application Execution ..............................................160 5.17 central_ipsp Sample Application .....161 5.17.1 central_ipsp Application Execution ..............................................161 5.18 Broadcast media sender ..................161 5.18.1 Prepare the setup for Application demo 161 5.18.2 Application execution .............162 5.19 Broadcast media receiver ................163 5.19.1 Prepare the setup for Application demo 164 5.19.2 Application execution .............164 5.20 Broadcast media sender 4 BIS .........165 5.20.1 Prepare the setup for Application demo 166 5.20.2 Application execution .............166 5.21 Broadcast media receiver 4 BIS .......167 5.21.1 Prepare the setup for Application demo 167 5.21.2 Application execution .............167 5.22 Telephony and Media Audio Profile (TMAP) Peripheral Application................169 5.22.1 Prepare the setup for Application demo 169 5.22.2 Application execution .............169 5.26 Unicast media sender 4 CIS..............178 5.26.1 Prepare the setup for Application demo 179 5.26.2 Application execution .............179 5.27 Unicast media receiver 4 CIS ...........183 5.27.1 Prepare the setup for Application demo 183 5.27.2 Application execution .............183 5.28 Unicast media sender Microphone..185 5.28.1 Prepare the setup for Application demo 185 5.28.2 Application execution .............185 5.29 Unicast media receiver to BMS........187 5.29.1 Prepare the setup for Application demo 187 5.29.2 Application execution .............187 5.30 Telephone call gateway Application 188 5.30.1 Prepare the setup for Application demo 188 5.30.2 Application execution .............188 5.31 Telephone call terminal Application 193 5.31.1 Prepare the setup for Application demo 193 5.31.2 Application execution .............193 5.32 Wireless UART Sample Application..198 5.32.1 wireless_uart Application Execution ..............................................198 5.33 Wi-Fi CLI over Wireless UART Sample Application ..............................................199 5.33.1 Wi-Fi CLI over Wireless UART Application Execution...........................200 5.34 Shell Sample Application .................202 5.34.1 Shell Application Execution.....202 5.23 Telephony and Media Audio Profile (TMAP) Central Application .....................171 5.23.1 Prepare the setup for Application demo 171 5.23.2 Application execution .............171 5.24 Unicast media sender ......................172 5.24.1 Prepare the setup for Application demo 172 5.24.2 Application execution .............172 5.25 Unicast media receiver ....................176 5.35 peripheral_beacon Sample Application 225 5.35.1 peripheral_beacon Application Execution ..............................................225 5.36 audio_profile Sample Application....227 5.36.1 User Configurations ................227 5.36.2 audio_profile Application Execution ..............................................227 5.37 Bluetooth Only firmware Download Test Procedure ........................................254 UM11442 User manual All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 272 NXP Semiconductors UM11442 NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms 5.37.1 Bluetooth only firmware download Application Execution..........254 6 802.15.4 Sample Application ........................255 6.1 CLI Sample Application ............................256 6.1.1 Create debug session ..............256 6.1.2 ot-nxp Application Execution ..259 7 Acronyms and abbreviations ........................264 8 Contact Us.....................................................266 9 Legal Information ..........................................267 9.1 Definitions ...............................................267 9.2 Disclaimers ..............................................267 9.3 Trademarks..............................................268 Tables ..................................................................... 269 Figures ...................................................................270 UM11442 User manual Please be aware that important notices concerning this document and the product(s) described herein, have been included in section 'Legal information'. © NXP B.V. 2025. All rights reserved. For more information, please visit: http://www.nxp.com For sales office addresses, please send an email to: [email protected] Date of release: 26 Mar 2025 Document identifier: UM11442 All information provided in this document is subject to legal disclaimers Rev.19 26 Mar 2025 © NXP B.V. 2025. All rights reserved. 273Microsoft Word for Microsoft 365 Microsoft Word for Microsoft 365