Wi-Fi® + Bluetooth® + 802.15.4 Knowledge Base

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Wi-Fi® + Bluetooth® + 802.15.4 Knowledge Base

Discussions

Sort by:
Previously, we discussed how to compile the SDK_2.16 zigbee source code. The article is here: https://community.nxp.com/t5/Wi-Fi-Bluetooth-802-15-4/NXP-Wi-Fi-amp-Bluetooth-Product-Building-RW612-Zigbee-Source/ta-p/2097613 The latest SDK zigbee source code compilation method is different. The author conducted an experiment and recorded the relevant steps for users' reference. In the article, we will discuss the following contents.  1. Introduction 2. Preparation before compilation                 2.1 CMake                 2.2 Ninja                 2.3 ARM GCC tool chain                 2.4 Python3                 2.5 West                 2.6 MCUXPress SDK 3. Building Zibgee Source Code on ubuntu 20.04 host                 3.1 Setting up environment                 3.2 Building coordinator                 3.3 Building mcu bootloader                 3.4 Building router 4. Verified ARM GCC Version 5. Programing QSPI Nor Flash   NXP TIC Connectivity Team Weidong Sun June-09-2025  
View full article
In the context of TF-M(Trusted Firmware-M), BL2 refers to the second stage bootloader. When using TF-M, the BL2 is based on open-source MCUBoot. It is responsible for verifying and loading the secure and non-secure images.  Our MCUXpresso SDK takes the open-source MCUBoot and leverages the HW features available to the specific SoC that is being used. In addition, TF-M support for the SoC is also available in the SDK package. Current configuration of TF-M within the SDK does not support enabling BL2. The following steps demonstrate how to configure the TF-M project in the SDK, so that it can be linked directly with MCUBOOT from our SDK without enabling BL2.  Import MCUBOOT_OPENSOURCE example Select Import SDK Example and select the board you are working with. Browse the ota_examples to find the mcuboot_opensource example. Select this and press Next. The following window will contain the memory configuration of the example. It is important to change the Location address(0x18000000) to the secure alias and the Driver(*_S.cfx) to the secure version of the driver. Then press Finish.   Locate the flash_partioning.h header file within the project to determine the start address of where the TF-M secure image will be located. This will be represented by the BOOT_FLASH_ACT_APP macro. #define BOOT_FLASH_ACT_APP 0x18020000. In this example, I know that the secure image should be located in the offset 0x20000. Additionally, using MCUBoot means that we will have a header attached to the image when signed, this will add an addition 0x400. In total my offset will be 0x20400.  Open the preprocessor configurations in the project by right clicking the project and select Properties. With the window open navigate to the following location: C/C++ Build -> Settings -> MCU C Compiler -> Preprocessor Set BOOT_HEADER_ENABLE = 0 Press Apply and Close. Build mcuboot image. Import TFM_DEMO_S/NS example Select Import SDK Example and select the board you are working with. Browse the tfm_examples to find the tfm_demo_s/ns examples. Select these and import.  Open the preprocessor configurations in the project by right clicking the project and select Properties. With the window open navigate to the following location: C/C++ Build -> Settings -> MCU C Compiler -> Preprocessor Set BOOT_HEADER_ENABLE = 0 Open the flash_layout.h header file under the following folder in the tfm_demo_s project: tf-m/platform/ext/target/nxp/*board*/partition/ Edit the FLASH_IMAGE_HEADER_SIZE macro. Since we know that MCUBoot uses a header this will be equal to 0x400. #define FLASH_IMAGE_HEADER_SIZE (0x400) Open the region_defs.h header file under the following folder: tf-m/platform/ext/target/nxp/*board*/partition/ Edit the S_IMAGE_PRIMARY_PARTITION_OFFSET macro. Based on the calculated above, the offset used in this example of the primary image will be 0x20400. #define S_IMAGE_PRIMARY_PARTITION_OFFSET (0x20400) Edit the M_BOOT_FLASH_CONF_START macro. This should be the same as the base address being used in MCUBoot's BOOT_FLASH_ACT_APP. #define M_BOOT_FLASH_CONF_START (0x18020000) Open the startup_*board*.c source file under the following folder: tf-m/platform/ext/target/nxp/*board*/Device/Source Edit the void Reset_Handler(void) function. Add the VTOR configuration so that it points to the top of the vector table.  // Config VTOR & MSPLIM register __asm volatile ("LDR R0, =0xE000ED08 \n" "STR %0, [R0] \n" "LDR R1, [%0] \n" "MSR MSP, R1 \n" "MSR MSPLIM, %1 \n" : : "r"(__VECTOR_TABLE), "r"(__STACK_LIMIT) : "r0", "r1"); *Note: This step is only done on the secure image. Press Apply and Close. Build secure image. Repeat the same steps 2- 8 in this section for the non-secure image and build. Generate Binaries Under the Debug folder you will find the .axf file generated automatically by MCUXpresso IDE under the secure project. Right click on this and navigate to Binary Utilities -> Create Binary.  Repeat for non-secure image. Merge Binaries Note: This article does not show detailed steps of using the SPSDK command line tool. If detailed steps are needed please refer to spsdk.readthedocs.io.  Use the following command to generate the template to merge the binaries. nxpimage utils binary-image get-template -o binary_merge_template.yaml Edit the template. Calculate the offset of the location of the non-secure image using FLASH_S_PARTITION_SIZE from the flash_layout.h header file. In this example the value is 0x9FC00.   Use the following command to merge the binaries. nxpimage utils binary-image merge -c binary_merge_template.yaml -o merged_tfm_demo.bin   Use Secure Provisioning Tool to Sign Images Note: This article does not show detailed steps of using MCUXpresso Secure Provisioning Tool. If detailed steps are needed please refer to the its user guide available in the Help Menu of the tool.  Select the MCUBOOT_OPENSOURCE image as your source. Open the MCUBoot -> Sign Image tool.  Select the merged binary as your source. The output image should be filled automatically to the bootable_images folder of the secure provisioning workspace. Select the key used to authenticate the image. In mcuboot_opensource workspace there is a key folders that contain example keys used for development.   4. Press Sign, then make sure that the target address matches the based address defined in the mcuboot for the primary partition, then save & close.  5. Build and Write Image accordingly with the Secure Provisioning Tool.  Run Application  
View full article
This document shares how to porting specific mfg sdk to specific Linux version. Then this document introduce how to configure labtool.  mfg tool is used for wireless product rf test and calibration. The setup environment:  DUT: EVK: iw612 QFN-IPA V2 Driver version: Linux_5_15_32_IMX8_SD-UART-BT-IW612-18.99.1.p154.38-18.99.1.p154.38- MXM5X18364.p19_V1-MGPL Labtool Package: MFG-AW-IW61X-MF-BRG-U16-WIN-X86-1.0.0.39.1-18.80.1.p154.38 o Host: Host board: i.MX8mm-evk OS: i.MX8mm Linux 5.15.32 demo image
View full article
This article shares setup steps and test examples of mfg_tool. The mfg_tool is used for non-singling RF test and calibration.  The test environment as belows:  SW: J-Link: https://www.segger.com/downloads/jlink/JLink_Windows_x86_64.exe MFG Software Package: https://www.nxp.com/webapp/Download?colCode=MFG-RW61X-MF-BRG-U16-WIN-X86-200200-18806-p1&appType=license HW: Rd-RW612-BGA-IPA-2A/1A-V4 LitePoint MW7G Windows PC   For more cmd details and calibration steps, please refer to following document: AN13619; UM11801
View full article
SC16is752 is a I2C to dual UART bridge, it is often used to expand UART interface when SoC UART can't provide sufficient interfaces, some users also select the chip to connect Bluetooth UART, in the article, the following 4 contents will be described. 1. Hardware connections (1) i.MX8MP-EVK--->SC16IS752---->nxp  IW416-EVK UART (2)i.MX8MP-EVK--->SC16IS752 (CPU UART <--->SC16IS752 UART Channel A) 2. Software configurations (1) Kernel options (2) SC16IS752 device tree 3. UART Test  Transmitting data between CPU uart3 & SC16is752 UART_A 4. Bluetooth test UART_A of SC16IS752 is connected to IW416 BT UART, and make a file transmission between PC & IW416 using obexd & obexctl tool.   NXP TIC Connectivity Team Weidong Sun Oct-28-2024
View full article
This article gives detailed hands-on steps about how to do Bluetooth A2DP music playing and Wi-Fi 2.4G iperf throughout coexist test. The hands-on test is based on 88W8997 with I.MX8MQ which is based on Linux 5.15.71 host platform. Using driver is  Q1-2024 released Wi-Fi driver + Q1-2024 released FW version. You can refer to this article to do similar Bluetooth A2DP music playing and Wi-Fi 2.4G iperf throughout test on other Wi-Fi/Bluetooth chips based on other Linux platform. For detailed steps, please refer to attached pdf file.   Best regards, Christine.
View full article
Sometimes, we need to assign a static IP to Wi-Fi chip which is working in STA mode to do test based on Linux platform. In this article, shared the steps to assign a static IP address for 88W8997 which is working in STA mode based on Linux. And you can also refer this method to set static IP for other Wi-Fi chips.
View full article
Where to find Wi-Fi Software Drivers   NXP Recommends using Wi-Fi source code drivers available from GitHub based on the following decisions:     Software Drivers NXP Processor Linux software drivers on NXP host processor (i.MX6, 7, 8 or 9) Driver: GitHub - nxp-imx/mwifiex: WiFi extensions Radio firmware: GitHub - nxp-imx/imx-firmware Pre-built binary demo files for each quarterly BSP release are available here: Linux: Embedded Linux for i.MX Applications Processors | NXP Semiconductors Android: Android OS for i.MX Applications Processors | NXP Semiconductors Software Drivers NXP Microcontrollers RTOS software drivers on NXP host processor (MCX, MCU, or i.MX RT) Wi-Fi driver: GitHub - NXP/wifi_nxp: NXP Wi-Fi driver and networking utilities Bluetooth middleware: GitHub - nxp-mcuxpresso/mcux-sdk-middleware-edgefast-bluetooth: EdgeFast Bluetooth PAL Software Drivers Non-NXP Processor Non-nxp host processor with Linux or Android Driver: GitHub - nxp-imx/mwifiex: WiFi extensions Radio firmware: GitHub - nxp-imx/imx-firmware Software Drivers Non-NXP Microcontrollers Non-nxp host MCU RTOS Link: https://www.keil.arm.com/packs/wifi-nxp/versions In addition to GitHub, RTOS drivers are available on NXP web site and as an Open CMSIS Pack from ARM: SDK BUILDER mcuxpresso.nxp.com/en/welcome NXP Website Available in SDK Builder on nxp.com Distributed in .zip folder alongside entire SDK    OPEN-CMSIS-PACKS www.keil.arm.com/packs/wifi-nxp/versions/ ARM Open-CMSIS Pack NXP Wi-Fi driver CMSIS Pack Distributed as ARM CMSIS pack   Linux Drivers are available as a .ZIP folder from each of the Wi-Fi specific product pages.
View full article
CMSIS, the ARM Cortex Microcontroller Software Interface Standard, can be used to distribute software components in standard package format. CMSIS compliant software components allow: • Easy reuse of example applications or template code • Combination of SW components from multiple vendors CMSIS packages available here: https://www.keil.arm.com/packs/ NXP WiFi package available here: https://www.keil.arm.com/packs/wifi-nxp/versions/   Getting NXP WiFi/BT software   Please find the minimal setup required to download the NXP WiFi/BT software CMSIS packs: First, get cpackget binary from the Open CMSIS Pack toolbox binaries Then, install the NXP WiFi and Bluetooth packages and their dependencies using below commands cpackget add NXP::WIFI@2.0.0 cpackget add NXP::WIRELESS_WPA_SUPPLICANT@2.0.0 cpackget add NXP::EDGEFAST_BT_BLE@2.0.0   Please note that the CMSIS software packs are installed in below directory: ~/.cache/arm/packs/NXP/   Building NXP WiFi/Bluetooth software   Using combined WiFi+Bluetooth application on i.MXRT1060-revC board, as an example.   Prerequisite Follow below steps to install all the required tools to get CMSIS packages and build them . <(curl https://aka.ms/vcpkg-init.sh -L) . ~/.vcpkg/vcpkg-init vcpkg new --application vcpkg add artifact arm:cmsis-toolbox vcpkg add artifact microsoft:cmake vcpkg add artifact microsoft:ninja vcpkg add artifact arm:arm-none-eabi-gcc vcpkg activate Refer to CMSIS toolbox installation documentation    Activate required tools . ~/.vcpkg/vcpkg-init vcpkg activate Install the NXP i.MXRT1060-REVC Bluetooth examples and their dependencies cpackget add NXP::MIMXRT1060-EVKC_EDGEFAST_BLUETOOTH_Examples@1.0.0 Workaround: current NXP SW is aligned with ARM::CMSIS@5.8.0, and does not support latest ARM::CMSIS@6.0.0, so we need to use older version with below commands cpackget rm ARM::CMSIS@6.0.0 cpackget add ARM::CMSIS@5.8.0 List the installed packages cpackget list Building combined WiFi+BT example application Copy example application to local directory and provide write permissions mkdir -p ~/test cp -r ~/.cache/arm/packs/NXP/MIMXRT1060-EVKC_EDGEFAST_BLUETOOTH_Examples/1.0.0/boards/evkcmimxrt1060/edgefast_bluetooth_examples/wifi_cli_over_ble_wu/ ~/test/ cd ~/test/wifi_cli_over_ble_wu/ && chmod -R u+w .   Build the application csolution convert wifi_cli_over_ble_wu.csolution.yml cbuild wifi_cli_over_ble_wu.flexspi_nor_debug+armgcc.cprj Convert elf to bin for flashing cd armgcc/flexspi_nor_debug arm-none-eabi-objcopy wifi_cli_over_ble_wu.elf -O binary wifi_cli_over_ble_wu.bin
View full article
The document discusses how to enable MAYA_160(IW416) bluetooth on i.MX8MM UART2. 1. Hardware connections 2. how to change device tree 3. compiling mass market driver and getting firmware 4. starting bluetooth and setting bandrate to be 3Mbps More detailed information, see attachment, please!   NXP global CAS connectivity team weidong sun 12-29-2021
View full article
[Summary]        This article demonstrates two ways to compile the driver for x86 linux kernel: Compile the driver for 4.19.35 kernel. Compile the current kernel of the driver for ubuntu 16.04.        If setting CROSS_COMPILE and ARCH, the driver can be generated with make command, but the bin_sd8978 subdirectory will not be generated. The utility needs to be compiled separately. Only for x86 arch, when compiling the driver using make build, the bin_sd8978 directory will be generated. Users need to pay attention to this.     3. For USB drivers of IW416, The usb.h in the original ubuntu 16.04 kernel has no update, struct usb_interface structure, lack of pm_usage_cnt members, so we must update the ubuntu kernel. More detaled information, see attachment, please!
View full article
       The article describes how to integrate 88W8997 PCIE to Linux 5.4.24_2.1.0 based on i.MX8MM-EVK platform, and how to solve issues encountered during the integration. [Contents] Chapter 1 Connections & environments Connections Environments Hardware devices Software M.2 NGFF KEY E interface on i.MX8MM-EVK Chapter 2 Preparation For Software        2.1 Cross Compile Toolchain        2.2 Demo Image for iMX8MM-EVK        2.3 L5.4.21_2.1.0 kernel source code        2.4 88W8997 PCIe Driver source code        2.5 uuu manufacturing Tool Chapter 3 Steps For Integration        2.1 Cross compiling L5.4.21_2.1.0 kernel source code Copying Image to Demo Image directory On windows 2.2 Cross compiling 88W8997 PCIe driver Copying mlan.ko & pcie8xxx.ko to windows directory Copying Firmware to windows to windows directory 2.3 Burning Linux Images to iMX8MM-EVK board        2.4 Copying .ko and firmware files to iMX8MM-EVK board via MobaXterm        2.5 Loading 88W8997 driver Chapter 4 Troubleshooting        4.1 PCIe card can’t be found via lspci command        4.2 Errors on MSI interrupt when using PCIe Switch AW-CM276MA (88W8997 Inside)  
View full article
This article describes the detailed steps for integrating 88W8801 to i.MX6ULL-EVK and L5.4.70_2.3.0. If you are not proficient in compiling Linux BSP for I.MX platform, you can refer to this link: https://community.nxp.com/t5/Wireless-Connectivity-Knowledge/WiFi-BT-Integretion-Linux-BSP-compilation-for-iMX-platform/ta-p/1277199 For more detailed information, see attachment, please!  
View full article
      The article will describe how to configure Access Point Based On NXP platform and WIFI chipset step by step. Users can easily make her AP based on NXP WIFI module work normally by following steps in the article. 1. Environment for the validation - Hardware Platform     i.MX8MN-EVK - Software    Kernel version: L5.4.70_2.3.0    rootfs : imx-image-multimedia -WiFi module   AW-CM358SM: NXP 88W8987 chipset 2. Diagram for Connections   For More detailed information, See attached document, please!   NXP CAS-TIC Wireless MCU team Weidong sun 04-16-2021  
View full article