Skip to content

i.MX RT1170 EVK๐Ÿ”—

Introduction๐Ÿ”—

The PAN9028 requires a fairly powerful microcontroller that executes the low-level Wi-Fiยฎ and Bluetoothยฎ drivers as well as a network stack and a Bluetooth stack.

As an evaluation platform you can use the NXPยฎ i.MX RT1170 Evaluation Kit, which is based on the i.MX RT1170 Crossover MCU with an Armยฎ Cortexยฎ-M7 core and a Cortex-M4 core. It features 512 Mbit SDRAM, a 2 GB NAND Flash, Gigabit Ethernet and two Micro-USB OTG ports.

The i.MX RT1170 supports the SDIO 3.0 specification, which is required for operation of the PAN9028.

Getting Started

For an introduction to the i.MX RT1170 Evaluation Kit refer to the Getting Started with the i.MX RT1170 Evaluation Kit online guide.

The Wi-Fi driver and firmware for the PAN9028 are provided as part of the MCUXpresso SDK available for the i.MX RT Crossover MCUs.

Board Overview๐Ÿ”—

1 M.2 Key E Socket
You can insert the PAN9028 M.2 device into the M.2 Key E socket to connect the module to the host processor. Also see Mounting the Device

2 5 V DC power input jack
You can use the 5 V DC power input jack to supply power to the board.

3 Power switch
You can use the power switch to control the board power supply.

4 Debug LED - D5
You can observe the debug LED to verify activity on the debug port.

5 USB debug port
You can use the USB debug port to program the system and interact with it.

MCUXpresso for VS Code extension๐Ÿ”—

The MCUXpresso for VS Code extension provides an integrated development environment for the NXP i.MX RT1170 microcontroller based on the popular Visual Studio Code editor.

You can install the MCUXpresso for VS Code extension from the MCUXpresso for VS Code website by clicking the Install button and following the instructions.

MCUXpresso SDK๐Ÿ”—

The MCUXpresso SDK includes drivers, middleware and reference examples for the NXP i.MX RT1170 microcontroller to enable easy application development.

You can find it on the mcu-sdk GitHub webpage, but you can access it effortlessly using the MCUXpresso for VS Code extension.

Import the MCUXpresso SDK๐Ÿ”—

The following requirements must be met:

To import the MCUXpresso SDK execute the following instructions.

  1. Open the MCUXpresso for VS Code extension in Visual Studio Code.

  2. Click Import Repository 1 in the QUICKSTART PANEL.

    The Import Repository dialog opens.

  3. In the newly opened window, you have to choose the REMOTE 1 tab.

  4. Create a new folder for the MCUXpresso SDK at your preferred location 2.

  5. Select the MCUXpresso SDK 3 repository.

  6. Select the Revision MCUX_2.13.1 4.

Newer SDK Revisions

In newer versions of the MCUXpresso SDK certain Bluetooth example applications may be missing.

If you choose to use such a version of the MCUXpresso SDK, you may not be able to carry out the Bluetooth examples as shown here.

  1. Click Import 5 .

    An info dialog window appears and shows the progress cloning the MCUXpresso SDK.

  2. You have to wait for the import to finish.

    The MCUXpresso SDK Repository is added to the INSTALLED REPOSITORIES section of the MCUXpresso for VS Code extension.

Import an Example Application๐Ÿ”—

The MCUXpresso SDK comes with a set of example applications that you can use to evaluate the functionality and features of the Wi-Fi and Bluetooth drivers.

The following requirements must be met:

To import any example application from the MCUXpresso SDK you have to execute the following steps.

  1. Open the MCUXpresso for VS Code extension inside Visual Studio Code.

  2. Click Import an Example from Repository 1 .

    The Import an Example from Repository dialog opens.

  3. Pick the folder with the imported MCUXpresso SDK Repository 1.

  4. Choose an available toolchain 2.

  5. Choose the MIMXRT1170-EVK board 3.

  6. Choose your desired example 4.

  7. Choose a name for your application 5.

  8. Choose a location for your application 6.

  9. Click the Create 7 button.

    The application is imported and appears in the PROJECTS section of the MCUXpresso for VS Code extension.

Wi-Fi Operation๐Ÿ”—

Adding the Adapter Definition๐Ÿ”—

If you want to compile the Wi-Fi example applications for the PAN9028 M.2 device you have to add some board definitions to the source code.

This section explains these changes using the example of the Wi-Fi CLI demo application (wifi_cli_cm7) which is described in more detail in CLI Demo Application.

The following requirements must be met:

Note

You have to use different adapter definitions depending on where you are going to run this setup.

Energy Detection Feature

If you intend to use the PAN9028 module in the EU, you have to assure that the energy detection feature is enabled and you have to provide the correct configuration settings.

To add the adapter definition for the PAN9028 module that include these configuration settings, execute the following steps.

  1. In ../projects/mimxrt1170evk_wifi_cli_cm7/app_config.h add the following definitions under the /* Wi-Fi boards configuration list */ section. Make sure to place it inside the preprocessor #if block.

    ...
    /* Panasonic PAN9028 M.2 Device */
    #elif defined(WIFI_88W8987_BOARD_PAN9028_SDIO)
    #define WIFI_BT_TX_PWR_LIMITS "wlan_txpwrlimit_cfg_WW.h"
    #define SD8987
    #define SDMMCHOST_OPERATION_VOLTAGE_1V8
    #define SD_TIMING_MAX kSD_TimingSDR50Mode
    #define WIFI_BT_USE_M2_INTERFACE
    #define WLAN_ED_MAC_CTRL                                                               \
        {                                                                                  \
            .ed_ctrl_2g = 0x1, .ed_offset_2g = 0x6, .ed_ctrl_5g = 0x1, .ed_offset_5g = 0x6 \
        }
    ...
    

  2. Change the selected board to WIFI_88W8987_BOARD_PAN9028_SDIO.

    /* @TEST_ANCHOR */
    #define WIFI_88W8987_BOARD_PAN9028_SDIO
    /* @END_TEST_ANCHOR */
    
    You can now compile the project. See CLI Demo Application.

To add the adapter definition for the PAN9028 module execute the following steps.

  1. In ../projects/mimxrt1170evk_wifi_cli_cm7/app_config.h add the following definitions under the /* Wi-Fi boards configuration list */ section. Make sure to place it inside the preprocessor #if block.

    ...
    /* Panasonic PAN9028 M.2 Device */
    #elif defined(WIFI_88W8987_BOARD_PAN9028_SDIO)
    #define WIFI_BT_TX_PWR_LIMITS "wlan_txpwrlimit_cfg_WW.h"
    #define SD8987
    #define SDMMCHOST_OPERATION_VOLTAGE_1V8
    #define SD_TIMING_MAX kSD_TimingSDR50Mode
    #define WIFI_BT_USE_M2_INTERFACE
    #define WLAN_ED_MAC_CTRL                                                               \
        {                                                                                  \
            .ed_ctrl_2g = 0x0, .ed_offset_2g = 0x6, .ed_ctrl_5g = 0x0, .ed_offset_5g = 0x6 \
        }
    ...
    

  2. Change the selected board to WIFI_88W8987_BOARD_PAN9028_SDIO.

    /* @TEST_ANCHOR */
    #define WIFI_88W8987_BOARD_PAN9028_SDIO
    /* @END_TEST_ANCHOR */
    
    You can now compile the project. See CLI Demo Application.

Note

Please contact your local Panasonic Sales representative for details on additional product options and services.

If you intend to use the PAN9028 module in multiple regions, you have to use the same configuration as in the case for the EU.

This is mainly because the EU has some of the strictest regulatory standards, and if you use the appropriate configuration this ensures compliance with these requirements.

CLI Demo Application๐Ÿ”—

The Wi-Fi CLI demo application showcases the configuration and basic operation of the station and access point interfaces via a simple command line interface.

The following requirements must be met:

To compile the Wi-Fi CLI demo application and program the system execute the following steps.

  1. Insert the PAN9028 M.2 device into the M.2 Key E Socket 1.

  2. Connect the USB debug port 5 to your computer.

  3. Insert the power supply cable in the 5 V DC power input jack 2 and power up the i.MX RT1170 Evaluation Kit using the power switch 3.

  4. Click the Build selected button 1 inside the PROJECTS section of the MCUXpresso for VS Code extension to build the project.

    The Visual Studio Code terminal output window shows the build progress.

  5. Check if the debug probe DAPLink CMSIS-DAP was detected correctly by clicking the refresh debug probes icon 1 in the DEBUG PROBES section of the MCUXpresso for VS Code extension.

  6. Right click the mimxrt1170evk_wifi_cli_cm7 application and select Flash the Selected Target 1 in the PROJECTS section of the MCUXpresso for VS Code extension.

    As long as the programming is in progress the Debug LED D5 4 is blinking.

  7. Switch to the SERIAL MONITOR tab in the Visual Studio Code terminal window to observe the UART debug output of the application 1.

  8. Select the parameters like in the image above: MonitorMode: Serial, ViewMode: Text, Port: <Depends on your port>, Baud rate: 115200, Line ending: None 2.

  9. Take care that Terminal Mode is switched on 3.

  10. Click Start Monitoring 4 .

    You can observe the debug output of the application in the serial monitor window. You can control the application now using the command line interface.

  11. Enter help to list all available commands. For more detailed information on an individual command, enter the command without any parameters.

Station๐Ÿ”—

You can connect the PAN9028 to an access point. In this case the module acts as a so-called Wi-Fi station.

To connect the station interface to a Wi-Fi network execute the following steps.

  1. Enter the following command to scan for available Wi-Fi networks that are in range.

    # wlan-scan
    

  2. Add a new profile for the network that you want to connect to by entering the following command. You can freely choose the profile_name.

    # wlan-add <profile_name> ssid <ssid> wpa2 <password>
    

  3. Enter the following command and specify the previously added profile to establish the connection.

    # wlan-connect <profile_name>
    
    The system attempts to connect to the specified Wi-Fi network.

Access Point๐Ÿ”—

To configure and start up a Wi-Fi access point execute the following steps.

  1. Add a profile with the desired parameters for your access point by entering the following command. You can freely choose the profile_name.

    # wlan-add <profile_name> ssid <ssid> ip:<ip_address>,<gateway>,<netmask> \
          role uap channel <channel_number> wpa2 <password>
    

  2. Enter the following command with the previously added profile to bring up the access point.

    # wlan-start-network <profile_name>
    
    The access point starts up. Devices that connect to it are assigned an IP address using DHCP.

Note

For further information please refer to the user manual UM11442 - NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms.

This document is included in the wireless directory of the legacy MCUXpresso SDK ZIP file. Refer to Download Legacy MCUXpresso SDK for instructions how to get access to this file.

Bluetooth Operation๐Ÿ”—

Adjusting the Adapter Configuration๐Ÿ”—

If you want to compile the Bluetooth example applications for the PAN9028 M.2 device you have to modify some board definitions and make an adjustment to the UART configuration.

This section explains these changes using the example of the Bluetooth shell demo application (edgefast_bluetooth_shell) which is described in more detail in Shell Demo Application.

The following requirements must be met:

  • You have installed the MCUXpresso for VS Code extension in Visual Studio Code.

  • You have imported the MCUXpresso SDK in the MCUXpresso for VS Code extension as described in Import the MCUXpresso SDK.

  • You have imported the edgefast_bluetooth_shell example project from the MCUXpresso SDK in the MCUXpresso for VS Code extension like described for wifi_cli_cm7 in Import an Example Application.

Note

You have to use different adapter definitions depending on where you are going to run this setup.

To add the PAN9028 M.2 device to the example project execute the following steps.

  1. In ../projects/mimxrt1170evk_edgefast_bluetooth_shell/bt_module_config.h change the existing WIFI_88W8987_BOARD_MURATA_1ZM_M2 definition block in the /* Wi-Fi boards configuration list */ section to contain the following.

    ...
    #elif (defined(WIFI_88W8987_BOARD_MURATA_1ZM_M2))
    /* Panasonic PAN9028 M.2 Device */
    #define WIFI_BT_TX_PWR_LIMITS "wlan_txpwrlimit_cfg_WW.h"
    #define SD8987
    #define SDMMCHOST_OPERATION_VOLTAGE_1V8
    #define SD_TIMING_MAX kSD_TimingDDR50Mode
    #define WIFI_BT_USE_M2_INTERFACE
    #define WLAN_ED_MAC_CTRL                                                               \
        {                                                                                  \
            .ed_ctrl_2g = 0x1, .ed_offset_2g = 0x6, .ed_ctrl_5g = 0x1, .ed_offset_5g = 0x6 \
        }
    ...
    

  2. In ../projects/mimxrt1170evk_edgefast_bluetooth_shell/app_config.h change the selected board to WIFI_88W8987_BOARD_MURATA_1ZM_M2.

    /* @TEST_ANCHOR */
    #define WIFI_88W8987_BOARD_MURATA_1ZM_M2
    /* @END_TEST_ANCHOR */
    

  3. Locate the controller_hci_uart_get_configuration function in ../projects/mimxrt1170evk_edgefast_bluetooth_shell/main.c that is included by the preprocessor. Set config->defaultBaudrate to 3 Mbaud instead of 115200 baud. It should look as follows.

    ...
    #if (defined(WIFI_88W8987_BOARD_AW_CM358MA) || defined(WIFI_88W8987_BOARD_MURATA_1ZM_M2) || \
         defined(WIFI_IW416_BOARD_MURATA_1XK_M2))
    int controller_hci_uart_get_configuration(controller_hci_uart_config_t *config)
    {
        ...
        config->defaultBaudrate  = 3000000u;
        ...
    }
    ...
    
    You can now compile the project. See Shell Demo Application.

To add the PAN9028 M.2 device to the example project execute the following steps.

  1. In ../projects/mimxrt1170evk_edgefast_bluetooth_shell/bt_module_config.h change the existing WIFI_88W8987_BOARD_MURATA_1ZM_M2 definition block in the /* Wi-Fi boards configuration list */ section to contain the following.

    ...
    #elif (defined(WIFI_88W8987_BOARD_MURATA_1ZM_M2))
    /* Panasonic PAN9028 M.2 Device */
    #define WIFI_BT_TX_PWR_LIMITS "wlan_txpwrlimit_cfg_WW.h"
    #define SD8987
    #define SDMMCHOST_OPERATION_VOLTAGE_1V8
    #define SD_TIMING_MAX kSD_TimingDDR50Mode
    #define WIFI_BT_USE_M2_INTERFACE
    #define WLAN_ED_MAC_CTRL                                                               \
        {                                                                                  \
            .ed_ctrl_2g = 0x0, .ed_offset_2g = 0x6, .ed_ctrl_5g = 0x0, .ed_offset_5g = 0x6 \
        }
    ...
    

  2. In ../projects/mimxrt1170evk_edgefast_bluetooth_shell/app_config.h change the selected board to WIFI_88W8987_BOARD_MURATA_1ZM_M2.

    /* @TEST_ANCHOR */
    #define WIFI_88W8987_BOARD_MURATA_1ZM_M2
    /* @END_TEST_ANCHOR */
    

  3. Locate the controller_hci_uart_get_configuration function in ../projects/mimxrt1170evk_edgefast_bluetooth_shell/main.c that is included by the preprocessor. Set config->defaultBaudrate to 3 Mbaud instead of 115200 baud. It should look as follows.

    ...
    #if (defined(WIFI_88W8987_BOARD_AW_CM358MA) || defined(WIFI_88W8987_BOARD_MURATA_1ZM_M2) || \
         defined(WIFI_IW416_BOARD_MURATA_1XK_M2))
    int controller_hci_uart_get_configuration(controller_hci_uart_config_t *config)
    {
        ...
        config->defaultBaudrate  = 3000000u;
        ...
    }
    ...
    
    You can now compile the project. See Shell Demo Application.

Note

Please contact your local Panasonic Sales representative for details on additional product options and services.

If you intend to use the PAN9028 module in multiple regions, you have to use the same configuration as in the case for the EU.

This is mainly because the EU has some of the strictest regulatory standards, and if you use the appropriate configuration this ensures compliance with these requirements.

Shell Demo Application๐Ÿ”—

The Bluetooth shell demo application showcases the operation of Bluetooth Low Energy and BR/EDR functionality via a simple command line interface.

The following requirements must be met:

To compile the Bluetooth shell demo application and program the system execute the following steps.

  1. Insert the PAN9028 M.2 device into the M.2 Key E Socket 1.

  2. Connect the USB debug port 5 to your computer.

  3. Insert the power supply cable into the 5 V DC power input jack 2 and power up the i.MX RT1170 Evaluation Kit using the power switch 3.

  4. Click the Build selected button 1 inside the PROJECTS section of the MCUXpresso for VS Code extension to build the project.

    The Visual Studio Code terminal output window shows the build progress.

  5. Check if the debug probe DAPLink CMSIS-DAP was detected correctly by clicking the refresh debug probes icon 1 in the DEBUG PROBES section of the MCUXpresso for VS Code extension.

  6. Right click the mimxrt1170evk_edgefast_bluetooth_shell application and select Flash the Selected Target 1 in the PROJECTS section of the MCUXpresso for VS Code extension.

    As long as the programming is in progress the Debug LED D5 4 is blinking.

  7. Switch to the SERIAL MONITOR tab in the Visual Studio Code terminal window to observe the UART debug output of the application 1.

  8. Select the parameters like in the image above: MonitorMode: Serial, ViewMode: Text, Port: <Depends on your port>, Baud rate: 115200, Line ending: None 2.

  9. Take care that Terminal Mode is switched on 3.

  10. Click Start Monitoring 4 .

    You can observe the debug output of the application in the serial monitor window. You can control the application now using the command line interface.

  11. Enter the following command to download the firmware to the PAN9028 and initialize the UART host command interface.

    @bt> bt.init
    
    The system is ready for operation.

  12. Enter help to list all available commands.

Scan for Bluetooth Devices๐Ÿ”—

To scan for other Bluetooth devices in range execute the following steps.

  1. Enter the following command to start the scan.

    @bt> bt.scan on
    
    The scan results are printed continuously until the scan is stopped.

  2. Enter the following command to stop the scan.

    @bt> bt.scan off
    

GATT Service Discovery๐Ÿ”—

To connect to a device and run a GATT service discovery execute the following steps.

  1. Enter the following command to connect to a device.

    In case the device uses a random device address use random instead of public.

    @bt> bt.connect <device_address> public
    

  2. Enter the following command to run the GATT service discovery.

    @bt> gatt.discovery
    
    The discovery result is printed.

  3. Enter the following command to disconnect.

    @bt> bt.disconnect
    

Note

For further information please refer to the user manual UM11442 - NXP Wi-Fi and Bluetooth Demo Applications User Guide for i.MX RT Platforms.

This document is included in the wireless directory of the legacy MCUXpresso SDK ZIP file. Refer to Download Legacy MCUXpresso SDK for instructions how to get access to this file.

Addendum๐Ÿ”—

Download Legacy MCUXpresso SDK๐Ÿ”—

In the past NXP used to distribute the MCUXpresso SDK as a ZIP file and not through the MCUXpresso for VS Code extension.

Not all content has been moved to the new environment yet, so some information is only present in the ZIP file of the MCUXpresso SDK release, for example various user guides related to Wi-Fi and Bluetooth.

If you need access to this content, you can download the legacy MCUXpresso SDK as a ZIP file using the following steps.

  1. Go to the MCUXpresso SDK Builder website.

  2. Click Select Development Board.

  3. The website prompts you to login. Login using your account credentials for the NXP Homepage.

  4. Under Select a Board, Kit, or Processor > Boards > i.MX select the MIMXRT1170-EVK (MIMXRT1176xxxxx)1.

  5. Select the desired version 1 and click Build MCUXpresso SDK 2.

    The MCUXpresso SDK Builder forwards you to the software selection table.

  6. Select FreeRTOS 1, NXP Wi-Fi 2 and Wireless edgefast_bluetooth stack 3 checkboxes.

    All necessary software dependencies get selected automatically.

  7. Click on Download SDK.

    The MCUXpresso SDK Builder generates the MCUXpresso SDK.

  8. Once the MCUXpresso SDK Builder is done generating the MCUXpresso SDK click on Download SDK 1.

  9. Click on Download SDK Archive including documentation 1. You are prompted to read and accept an EULA.

    Once you have accepted the EULA, the MCUXpresso SDK is downloaded in the form of a zip-archive (SDK_X_XX_X_MIMXRT1170-EVK.zip).

Wi-Fi- and Bluetooth-related User Manuals

You can find Wi-Fi- and Bluetooth-related user manuals in the wireless directory in the ZIP file.