1
Set it up2
Build, Run3
Create4
Developer ExperienceSign in to save your progress. Don't have an account? Create one.
Welcome, in this video, we’ll walk you through the essential steps to get your Zephyr development environment up and running on a Windows operating system using Visual Studio Code and the MCUXpresso extension.
The goal is to make setup quick and easy, so you can start developing your application today—without getting bogged down in the details.
Something went wrong! Please try again.
NXP offers a complimentary extension for VSCode called MCUXpresso for VS Code. Download VS Code to access the extension library.
Learn how to install VS Code for your host PC with the following tutorial.
Something went wrong! Please try again.
The MCUXpresso Installer includes an option called the 'Zephyr Developer', this option will download all necessary components, tools and dependencies needed in addition to the Zephyr SDK. The Zephyr Software Development Kit (SDK) contains toolchains for each of Zephyr’s supported architectures, which include a compiler, assembler, linker and other programs required to build Zephyr applications.
Find the MCUXpresso Installer inside the "Quickstart Panel" of the MCUXpresso for VSCode.
Something went wrong! Please try again.
The MCUXpresso Config Tool is an integrated suite of configuration tools that guides users in creating new MCUXpresso SDK projects, and also provides pin and clock tools to generate initialization C code for custom board support. The Pins Tool has a GUI to help select all the desired signals used by the application, and configure the pinmux and pin settings. Starting with release v25.03, the Config Tool can generate Zephyr board pinctrl files for the i.MX RT1xxx and MCX devices. Zephyr uses pinctrl to configure the pins and pinmux settings of an SOC.
Click the Get MCUXpresso Config Tools below to get the Config Tools installer.
Something went wrong! Please try again.
The MCUXpresso Secure Provisioning (SEC) Tool is a GUI-based application provided to simplify the generation and provisioning of bootable executables on NXP MCU devices. We recommend all users to begin with the MCUXpresso Secure Provisioning (SEC) tool for trial run and mass production use. It supports secure programming and device provisioning on NXP's microcontrollers at the production stage. After downloading the tool, you can find the user guide under the ‘Help’ tab. Follow the instructions for your board in the ‘Processor-specific workflow’ chapter.
Note: For advanced users that need a more customizable set-up we also off a command-line tool that is useful when interfacing with a custom or partner programming tool. The Secure Provisioning SDK (SPSDK) is an open source development kit with its source code released on GitHub and PyP.
Something went wrong! Please try again.
When getting started with MCUXpresso for VS Code, it's helpful to be aware of a few key features and tools that will streamline your development experience. This section is meant to give you a high-level overview—not a deep dive—so you can get oriented quickly and explore further as needed.
Your launchpad for creating, importing and managing projects. It provides shortcuts to common tasks. Here the most commonly used will be "Import Example from Repository" and "Open MCUXpresso Installer".
This is where your workspace and project files are organized. Understanding how the zephyr projects are structured will help you navigate and manage your code more effectively.
The device tree describes the hardware layout and configuration.After compiling the Zephyr Project and refreshing the DEVICE TREE view, it will be populated with a tree-like view of the hardware hierarchy of the project. You can inspect the nodes and their associated values.
Use this to clean and rebuild your project from scratch. It’s especially useful when switching configurations or resolving build issues.
MCUXpresso for VSCode integrates with various debuggers. Learn how to set breakpoints, step through code, and inspect variables to troubleshoot effectively.
The terminal is designed to enable command-line interactions with the imported repositories. The serial terminal allows you to interact with your board via UART. Great for logging, debugging and real-time communication.
Something went wrong! Please try again.
This guide will walk you through the steps to get started with Zephyr using the FRDM-MCXN947 board as an example. However, you can follow the same general process with a different evaluation board of your choice.
Note: This guide does not cover custom hardware. For advanced topics and custom board support, please refer to the resources available on the Getting Started Support Page.
While this guide uses the FRDM-MCXN947, you may substitute it with another supported board. Make sure to:
Most evaluation boards come with an on-board debugger. To ensure compatibility and stability: Verify that your board’s debugger firmware is up to date.
Download the latest firmware from the LinkServer firmware page. Choose the appropriate firmware type:
If your board does not have an on-board debugger, connect an external debugger to your target board.
You’ll need to power your board during development. Common methods include:
Something went wrong! Please try again.
In this section, you'll learn how to import and build a Blinky LED example for the FRDM-MCXN947 board using MCUXpresso for VS Code. This process will walk you through selecting the example, configuring the build, compiling the project, and flashing it to your board—all within the VS Code environment. By the end, you’ll have a working LED blink application running on your hardware, giving you a solid starting point for your own Zephyr-based projects.
You may follow the same steps using a different board. Check out the supported boards page.
Expand the MCUXpresso Quickstart Panel (usually on the left sidebar).
FRDM-MCXN947 CPU0
C:\FreestandingZephyrProjects\
In the Projects View, right-click the imported project folder. Select "Pristine Build/Rebuild Project"
You should see the build process complete successfully in the terminal output.
Connect your FRDM-MCXN947 via USB (Type-C). In the Projects View, right-click the imported project folder.
Select "Debug". This will intiate a debug session, in which you can start the application, step over instructions, step into or out of functions, pause or exit the debug session.
Pressing the "Play/Continue" button will execute the application. The LED on the board should start blinking.
Something went wrong! Please try again.
When clicking a node or property, the MCUXpresso Device Tree viewer will open the source location where that node is defined or a property is set.
led0
is led_3
.
Open the 'leds' section and
click on
led_3
to view the code
GPIO 0 pin 10
is defined for the Red LEDHowever, lets use a different pin that we can connect to an external LED, a
voltmeter or an oscilloscope that we can use to visualize the LED blinking. In this example I'll use
GPIO 0 pin15
which
is routed to J4
pin10
of the arduino header on the FRDM-MCXN947.
led0
with
led3
which is our
new
external LED
Now, before running you can see in the device tree viewer that the additions are now visible.
Connect an external LED, a multimeter or an oscilloscope on the pin of the board to verify that it is toggling on and off as expected.
Something went wrong! Please try again.
This video highlights the portability benefits of Zephyr by demonstrating how it optimizes two distinct MCU architectures. Using a face detection demo, it runs on both the MCX N947, which features a neural processing unit and basic display, and the i.MX RT1060, which has a built-in display interface. The tutorial explains how platform abstraction is achieved, with the application remaining unchanged across both versions. Click the link for the full video.
Something went wrong! Please try again.