Getting Started with KW47-LOC

Last Modified: Dec 21, 2025 new Supports Localization Reference Design using KW47

Contents of this document

  • 1

    Plug It In
  • 2

    Get Software
  • 3

    Build and Run
  • 4

    Create
  • 5

    MCUXpresso Developer Experience

1. Plug It In

Take your board for a test drive! In the following steps, you may either watch the sequence in a short video, or follow the detailed actions listed below.

1.1 Get Familiar with the Board

The KW47-LOC board is pre-programmed with a wireless localization demo. This serves as a sanity check to verify that the device is working as expected, right out of the box.

Get familiar with the board

Get familiar with the board

1.2 Plug In the Board

Connect a type-C USB cable from connector J3 to a host computer or power supply to power up the board and run the demo program. At this point, you should see the Blue LED blinking at a steady rhythm. Follow the steps shown in the video to run the demo. You will need two KW47-LOC boards.

Plug in the board

Plug in the board

2. Get Software

2.1 Install Your Toolchain

NXP offers a toolchain called MCUXpresso for Visual Studio (VS) Code. Please download MCUXpresso for VS Code v25.09 or higher by clicking the button below.

Visual Studio Code

Get VS Code

Learn how to install VS Code onto your host PC with the help of an MCUXpresso tutorial.

2.2 Jump Start Your Design with the MCUXpresso SDK

The NXP extension adds tools to help add software repositories into the Visual Studio Code workspace. The software repository can be provided from three sources:

  • Remote git URL
  • NXP MCUXpresso archive file
  • Existing git folder

This section will import the MCUXpresso SDK using the remote git repostiory option. To import the repository in this way, follow these steps:

  1. Click on the MCUXpresso extension Icon
  2. Click on the "QUICKSTART PANEL" tab and then click on the "Import Repository" button. After pressing that button a new import window will appear
  3.  Jump Start Your Design with the MCUXpresso SDK - IMG1
  4. Select the "Remote" option to import the provided SDK files
  5. Browse to the Repository options by clicking on the arrow button and search for "MCUXpresso SDK" option
  6. Click on the arrow button for Revision and search for version "v25.09.00" or newer
  7. Click on "Browse" for the Location folder and select a common destination folder to store your SDK
  8. Enter a name for the new SDK
  9. Click on the "Import" button and wait for the installation
  10.  Jump Start Your Design with the MCUXpresso SDK - IMG2

2.3 MCUXpresso Config Tools

The MCUXpresso Config Tool is an integrated suite of configuration tools that guides users in creating new MCUXpresso software development kits (SDK) projects and also provides pin and clock tools to generate initialization C code for custom board support. The tool is fully integrated as a part of MCUXpresso integrated development environment (IDE) or as a separate tool (if using a different IDE).

Click the Get MCUXpresso Config Tools button below to get the Config Tools installer.

MCUXpresso Config Tools

Get MCUXpresso Config Tools

2.4 Programming and Provisioning Tools

The MCUXpresso Secure Provisioning (SEC) Tool is a graphical user interface (GUI)-based application provided to simplify the generation and provisioning of bootable executables on NXP microcontroller unit (MCU) devices. We recommend that all users to begin with MCUXpresso Secure Provisioning (SEC) tool for trials run and mass production use. It supports secure programming and device provisioning for NXP's microcontrollers at the production stage.

After downloading the tool, find the user guide under the ‘Help’ tab. Then follow the instructions for your board in the ‘Processor-specific Workflow’ chapter.

SEC

SEC Installation

2.5 Installing IoT Toolbox

NXP's IoT Toolbox is a versatile mobile application designed to support wireless connectivity demonstrations and testing. It provides an intuitive interface to interact with the NXP development platform. You will need this app to continue with the next sections of this Getting Started guide.

Get started by installing the interactive IoT Toolbox on your smartphone:

Get it on Google Play

IoT Toolbox Icon

3. Build and Run

The following steps guide you through the wireless localization demo application using MCUXpresso for VS Code extension for the Arm® Cortex®-M33 application. The MCUXpresso extension for VS Code installation and the SDK for the KW-Series can be found in the "Get Software" section of this Getting Started guide.

3.1 Updating the NBU Firmware

Before running any wireless demo, the narrow band unit (NBU) firmware must be updated according to the SDK version you will be using.

  1. Connect your KW47-LOC board to your PC using a USB Type‑C cable
  2. Open the LinkFlash tool you would have installed in Section 2.1 (this tool comes included with the LinkServer component and the default path for this tool is "C:\nxp\LinkServer_XX.XX.XX\LinkFlash.exe")
  3. Verify that your board is recognized by the tool in the "Probe" field (if not, the click on "Refresh")
  4. Go to the "Erase" tab, then select the NBU memory region by clicking on the checkbox
  5. GS-KW47LOC Build Run Image 1
  6. Click on the "Erase" button, then verify that the operation was successful by the message at the bottom of the window
  7. GS-KW47LOC Build Run Image 2
  8. Go back to the "Program" tab, and then click on the "Browse" button to look for your NBU firmware binary file
  9. GS-KW47LOC Build Run Image 3
  10. Access the directory where you installed your SDK for Section 2.2, follow the path to the NBU file: "{your_SDK_path}\mcuxsdk\middleware\wireless\ble_controller\bin\kw47_nbu_ble_all_hosted.bin", then click on "Open"
  11. GS-KW47LOC Build Run Image 4
  12. In the "Address" field, type 0x48800000, then click on "Program" (verify the correct completion of the operation)
  13. GS-KW47LOC Build Run Image 5

3.2 Build and Flash Application using MCUXpresso for VS Code

  1. Find the activity bar in the left-hand bar and click it to open it, then once it's open, go to the explorer and open the "Project" tab
  2. Build and flash application using MCUXpresso IDE - step 1
  3. Then click on Import example from repository Build and flash application using MCUXpresso IDE - step 2 The following tab will open in the editor screen
  4. Build and flash application using MCUXpresso IDE - step 3
  5. Click on the arrow button on the "Repository" tab to choose your previously downloaded SDK and the toolchain that matches the version
  6. Build and flash application using MCUXpresso IDE - step 4
  7. Select the KW47-LOC board from the "Boards" drop-down menu
  8. Build and flash application using MCUXpresso IDE - step 5
  9. Use the arrow button to expand the "Template" tab, select the"wireless_examples/bluetooth/bm/wireless_uart_bm" to use it as a template for the project, then click on import button
  10. Build and flash application using MCUXpresso IDE - step 6
  11. Select the project and build it by either clicking on the "build" icon in the shortcuts provided or by right clicking to select the "Build" option
  12. Build and flash application using MCUXpresso IDE - step 7
  13. The project should now build without any errors or warnings in the console
  14. Build and flash application using MCUXpresso IDE - step 8
  15. Connect the board to your computer using the Micro‑USB to the J3 connector "MCU-LINK" port
  16. Download the application to your board by either clicking on the "debug" icon or by right clicking to select the "Debug" option
  17. Build and flash application using MCUXpresso IDE - step 10
  18. Open up the serial terminal to view the application’s output, then select the port associated with the MCULINK probe in your board's “MCULink-VCOM” window (set your terminal to baud rate or speed to "115200", 8 data bits, no parity and 1 stop bit, then connect to that port)
  19. Build and flash application using MCUXpresso IDE - step 11 Build and flash application using MCUXpresso IDE - step 12
  20. Run the application by pressing the “run” icon (see the output printed on the terminal)
  21. Build and flash application using MCUXpresso IDE - step 13 Build and flash application using MCUXpresso IDE - step 14
  22. Press SW3 button to switch the Bluetooth® Low Energy (BLE) role to peripheral, then press SW2 to start BLE Advertising (you should see the messages printed on the terminal)
  23. Build and flash application using MCUXpresso IDE - step 15
  24. Use the IoT Toolbox app to connect to the board by first selecting "Wireless UART" in the main menu
  25. Build and flash application using MCUXpresso IDE - step 18
  26. Select the board to connect (you should see a connection message displayed on the terminal)
  27. Build and flash application using MCUXpresso IDE - step 19 Build and flash application using MCUXpresso IDE - step 16
  28. Type any message into the app to see it appear in the terminal
  29. Build and flash application using MCUXpresso IDE - step 20 Build and flash application using MCUXpresso IDE - step 17
  30. Type a message into the terminal to see it appear in the app
  31. Build and flash application using MCUXpresso IDE - step 21

4. Create

4.1 Clone an Example Project from MCUXpresso for VS Code

The following steps will guide you through the manipulation of the general-purpose outputs (GPOs). In this example, the LED is set up to toggle every second.

  1. Following the instructions from the previous section, import the led_blinky SDK example
  2. Clone an Example Project from MCUXpresso for VS Code IDE - step -1
  3. Click on the “led_blinky_cm33_core0” project in the "Project tab" to build, compile and run the demo as described in the previous section
  4. Clone an Example Project from MCUXpresso for VS Code IDE - step -2
  5. You should now see the BLUE LED toggling each second
  6. Terminate the debug session

4.2 Use MCUXpresso Config Tools

  1. Open the pins tool by right clicking on your project, then select "Open with MCUXpresso Config Tools"
  2. Use MCUXpresso config tools - step 1
  3. Select the "Open an existing configuration" option, navigate to the path where you installed the SDK, then to mcuxsdk\examples\_boards\kw47loc\demo_apps\led_blinky\, select led_blinky.mex file and click on Finish
  4. The pins tool should now display the pin configuration for the blinky led project
  5. Use MCUXpresso config tools - step 3

4.3 Use the Pins Tools to Modify the LED Routed Pin

  1. In the Pins view, deselect the “Show dedicated pins” and “Show no routed pins” checkboxes leaving only the routed pins (routed pins have a check in a green box next to the pin name and the functions selected for each routed pin are highlighted in green)
  2. Use the pins tools to modify the LED routed pin - step 1
  3. For the current configuration, PTC0 (LEB_BLUE) is routed as an output, so you will add the pin configuration to enable the GREEN LED
  4. Select “Show no routed pins” to see the other options, enable the GREEN LED by searching for PTC6, then select GPIO6 under the general-purpose input/Output (GPIO) column (select "No" for any Simultaneous Routing message)
  5. Use the pins tools to modify the LED routed pin - step 2
  6. Next, configure the GPIO pin as an output and Logical 1 as GPIO initial state in the “Routing Details” window
  7. Use the pins tools to modify the LED routed pin - step 3
  8. Now it’s time to implement these changes within the project by exporting the new updated pin_mux.c and pin_mux.h files that are generated by the Pins tool, so you will click on Update Project in the menu bar
  9. Use the pins tools to modify the LED routed pin - step 4
  10. The screen that pops up will show the files that are to be changeds, so then you will click “OK” to overwrite the new files into your project
  11. Use the pins tools to modify the LED routed pin - step 5
  12. Next, you will add some additional code to the example by opening led_blinky.c file and adding the following line to toggle the GREEN LED
  13. Use the pins tools to modify the LED routed pin - step 6
  14. Build and download the project as explained in the previous section
  15. Run the application (you should now see the Green and Blue LED blinking alternately)
  16. Terminate the debug session

5. MCUXpresso Developer Experience

Check out each of the following sections to learn about the ecosystem provided for flexible protyping and development. In the video below, we will introduce you to the FRDM platform, the full-featured EVK and the compatible shields for extended capabilities. In addition we will walk you through our Application Code Hub portal where we provide numerous application examples through NXP's Github.

5.1 FRDM Platform, Full Feature EVK and Shields

For quick prototyping platforms, we offer both the low-cost FRDM platform and the full-featured EVK.

FRDM development boards come with standard form factor and headers, easy access to MCU I/Os, on-board MCU-Link debugger and a USB-C cable. Our full featured evaluation kits include extended I/O and interface access, extendibility with WiFi and additional MCU-Link features. There are also many compatible Click Boards and/or Arduino shields. For those that are supported with an Open CMSIS Pack examples may be available on ACH, but if not, many of them are easy to use via serial interface like I2C, SPI and UART, for which we provide drivers with examples in the MCUXpresso SDK.

5.2 Application Code Hub

The Application Code Hub further enhances our MCUXpresso Developer Experience by giving developers an interactive dashboard to quickly locate software. Visit the ACH  today to start exploring or discover additional details and benefits of the new interactive Application Code Hub.

Software accessible from Application Code Hub is located in NXP’s GitHub repository  so it can be easily accessed and cloned from that location directly.

5.3 Demo Walkthrough

The following demo walks us through importing a project from ACH using a system based on the FRDM platform with a motor control shield and a low cost LCD. Although your evaluation board may differ from this system, the following steps can be replicated and used for all supported platforms.