1
Set it up2
Build, Run3
Create4
Developer ExperienceSign in to save your progress. Don't have an account? Create one.
This video walks you through the essential steps to get your Zephyr development environment up and running on a Windows operating system using Visual Studio Code (VS Code) and the MCUXpresso extension.
This presentation aims to make setup quick and easy, so you can start developing your application now 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', allowing you to download all necessary components, tools and dependencies needed in addition to the Zephyr SDK. The Zephyr SDK contains toolchains for each of Zephyr its 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 project it also includes pin and clock tools to generate initialization C code for custom board support. The Pins Tool has a Graphic User Interface (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 system on chip (SOC).
Click the Get MCUXpresso Config Tools button 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 microcontroller unit (MCU) devices. We recommend all users to begin with the MCUXpresso 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 who need a more customizable set-up, we also offer a command-line tool that is useful when interfacing with a custom or partner programming tool. The Secure Provisioning Software Development Kit (SPSDK) is open source and cand be found on GitHub and PyP.
Something went wrong! Please try again.
When getting started with MCUXpresso for VS Code, it helps to be aware of a few key features and tools that can streamline your development experience. This section gives you a high-level overview — rather than a deep dive—so you can get oriented quickly.
The quickstart panel is your launchpad for creating, importing and managing projects. It provides shortcuts to common tasks. Here, the most commonly shortcuts are "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 project hardware hierarchy. You also can inspect the nodes and their associated values.
Pristine build is used 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. With it you can 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. This is great for logging, debugging and real-time communication.
Something went wrong! Please try again.
This steps guides will walk you through how to get started with Zephyr using the FRDM-MCXN947 board as an example. However, you can follow the same general process with the 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, but 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 then select "Pristine Build/Rebuild Project"
You should see the build process complete successfully in the terminal output
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 codeGPIO 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 LEDNow, 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.