Getting Started with UWB on the NXP Trimension® SR250 - Part 2: SR250UWBSHIELD + FRDM-RW612 Setup Guide (Japanese Blog) 1. Introduction
In the first installment, we introduced the SR250 as a device that integrates UWB ranging and UWB radar onto a single chip, and that it was released for the mass market in March 2026.
From this point on, we'll finally get the board working. Let's go through the process together, from obtaining the evaluation board to verifying its operation.
1st
Basics of UWB and an overview of the SR250
Part 2 (This article)
Setting up the SR250 evaluation board (SR250UWBSHIELD)
3rd
Let's try UWB ranging.
4th
Try out UWB radar.
There are two main ways to try out the SR250: the build-free PnP (Plug-and-Play) route and the Zephyr SDK route for full-fledged development. The necessary preparations differ depending on which route you choose, so it's best to decide beforehand. Those who want to do both are also very welcome!
While it can run on systems other than Windows, this guide will use the command prompt on a Windows PC.
root
For people like this
Development environment
A. PnP
First, I want to try it out easily!
Python + PySerial only
B. Zephyr SDK
I want to develop this seriously and combine it with BLE.
Git・CMake・Python・Zephyr SDK
2. Hardware Preparation (Common to A and B)
Required hardware
For UWB distance measurement, a device on the other end is required. If you have two sets, you can measure distance between two SR250 UWB SHIELD boards. If you have a smartphone equipped with UWB, you can measure distance to the smartphone with just one set.
SR250UWBSHIELD : Arduino-compatible shield board equipped with SR250.
FRDM-RW612 : Host MCU board ( Wi-Fi 6 / Bluetooth Low Energy 5.4 / 802.15.4 equipped)
Two USB Type-C cables
One cable is included with the FRDM-RW612, so please prepare another one.
You will need a cable that supports data communication, not just a charging-only cable.
The connector that connects to the PC can be either Type-A or Type-C.
Regarding USB connection
The SR250UWBSHIELD + FRDM-RW612 requires two USB-C cables to operate. Let's review the purpose of each cable.
connector
Purpose
remarks
J10 (MCU-Link)
Power supply, programming, and debugging.
This connection is required. Without it, the power will not turn on.
J8 (HS-USB)
Serial communication (Virtual COM Port)
When checking the COM port, use the port number on the J8 side.
Two COM ports will appear in Windows Device Manager, but the one used for serial communication is the COM port on the J8 (HS-USB) device. It will be displayed as "USB Serial Device (COMx)".
Rework: Critical tasks that need to be checked first.
The SR250-ARD shield and FRDM-RW612 communicate via SPI, but SPI does not function correctly with the default Arduino header wiring. Please address this using one of the following two methods.
Method 1: Rework by soldering (recommended)
If you have a soldering iron, I recommend reworking the SPI lines. Once done, you won't need any cables, resulting in a cleaner setup.
For detailed rework procedures, please refer to the Start Guide: Start Guide for the Trimension SR250 Development Board
Method 2: Alternative connection using jumper wires (for those who want to try it easily)
If you want to try it without soldering, connect the Arduino header pins of the FRDM-RW612 with two female-to-female jumper wires as shown below.
If you'd like to test the functionality first, please use this method.
3A. PnP Route: Easily try it with just Python
The PnP application requires no build; you can directly control the SR250 from your PC using the USB serial communication and SPI communication protocol converter firmware (PnP firmware) for the FRDM-RW612, available on GitHub. You can verify its operation simply by running a Python UCI script from your PC.
When preparing, you will encounter two different firmwares. The first one to be written is the protocol conversion firmware that operates within the RW612. After that, you will update the SR250's firmware. The writing methods for each are different (RW612 via ISP mode, SR250 via PnP firmware), so please pay attention to the procedure.
Obtain the necessary files from GitHub. You can download the ZIP file from the "Code" dropdown menu in the upper right corner.
GitHub: SR250 UWB Plug-and-Play Application
Required software
Python 3.x
PySerial: pip install pyserial
procedure
Step 1: Write the firmware for RW612 PnP
Connect two USB cables (J10 and J8).
To start the RW612 in ISP mode (In-System Programming), which is a firmware writing-only mode: Press and hold SW3 (ISP), then press and release SW1 (Reset) → Release SW3.
To write the firmware to the RW612 using ISP over USB, double-click the program_FRDM-RW612.bat file located in the FRDM-RW612_PnP folder to run the batch file:
FRDM-RW612_PnP/program_FRDM-RW612.bat
Most errors are caused by the device not starting in ISP mode. If you have difficulty entering ISP mode using switch 2, try connecting the USB to J10 while holding down SW3.
Once the batch file processing is complete, unplug the USB cable, replug it, and restart the board.
Step 2: SR250 FW Update
To update the SR250's firmware, double-click Update_SR250_FW.bat located in the SR250_FW folder to run the batch file:
SR250_FW/Update_SR250_FW.bat
If successful, unplug the USB cable, replug it, and restart the board.
Step 3: Operation Check
Check the COM port number for communication on the J8 side in Device Manager (e.g., COM10).
Start the Python script located in the Simple_demos folder, using the COM port number you just confirmed as an argument, and verify that communication is successful.
python demo_ranging.py COM10
The PnP route setup is now complete!
3B. Zephyr SDK Route: For full-scale development
This route uses a Zephyr OS-based SDK for building and debugging. It supports integration with BLE and the development of custom applications.
There are two methods: using VS Code + MCUXpresso, and using the west command line. Either method is fine. Here, we will introduce the method using the west command in a Windows environment. Let's start by creating a folder as close to the root of the C drive as possible.
For instructions on using VS Code with MCUXpresso, please refer to the Getting Started guide or the MCUXpresso for VS Code documentation . Please also refer to the important points regarding using VS Code with MCUXpresso, which are listed at the end of this document.
Required software
Git : Latest version
CMake : 3.21.1 or later
Zephyr SDK : 0.17.x
There are dependencies between the Zephyr version and the Zephyr SDK. This procedure uses Zephyr SDK 0.17.x Please install it. Different SDK versions may cause build errors.
Python : 3.8 or later
Make sure you have Ninja and West installed.
pip3 install west ninja
Serial terminal: TeraTerm, PuTTY, or any other serial terminal of your choice.
Environment setup procedure
Step 1: Clone the repository
git clone https://github.com/nxp-uwb/sr250-uwbiot-zephyr.git
Step 2: west initialization
cd sr250-uwbiot-zephyr west init -l --mf west.yml uwbiot-top
Step 3: Obtain Dependencies
west update
west update This process will take some time to complete. If it stops midway, please restart it. Proceeding to the next step before completion will cause a build error.
Step 4: Install Python dependency packages
pip install -r zephyr\scripts\requirements.txt
Step 5: Setting environment variables
Set the path to the Zephyr SDK in your environment variables.
zephyr\zephyr-env.cmd
Build and write
Since an update is required first, we will build a demo for the firmware update.
west build -b frdm_rw612 -p auto uwbiot-top\demos\SR2xx\demo_sr2xx_fw_update\zephyr
I will write to the file once the build is successful.
west build
We will check the logs via serial communication. By default, the code is executed only after communication is established.
Connect two USB cables (J10 and J8).
Check the COM port number on the side connected to J8 (see Step 3: Operation Check for PnP Root).
Launch your terminal software and configure the port as follows:
Set the baud rate to 3,000,000 bps . Many terminal programs, such as TeraTerm and PuTTY, do not display 3,000,000 as a baud rate option. Even if it's not in the options, you can enter it manually . Type "3000000" into the text box.
If the log message " Success!" appears at the end, as shown below, then it was successful.
Similarly, build and flash the calibration demo.
west build -b frdm_rw612 -p auto uwbiot-top\demos\SR2xx\demo_device_calibration\zephyr
west flash
The Zephyr SDK root setup is now complete!
Points to note
Windows path length limit (MAX_PATH)
Windows has a default path length limit of 260 characters. Zephyr repositories have a deep directory structure, which can cause this limitation to be exceeded. We strongly recommend saving your project in a location close to the root of the C drive (e.g., C:\uwb\ ). Placing it in a deeper directory structure like C:\Users\username\Documents\Projects\... will cause the path generated by Zephyr's build system to exceed the limit and result in an error. This issue is more pronounced with VS Code + MCUXpresso. If it's difficult to place it close to the root of the C drive, please consider the following workarounds.
How to do it:
We recommend using WSL2 (Windows Subsystem for Linux).
Alternatively, enable LongPathsEnabled in the Windows registry.
Notes on importing projects in VS Code + MCUXpresso
When importing a project, you need to set the App type to "Repository application" . This is not highlighted in the Getting Started guide, but it is a point where build errors are likely to occur if you get it wrong. Please be sure to check this.
Cases where a pristine build is required
If you change build options or the error persists, try a pristine build:
west build --pristine -b frdm_rw612 sr250-uwbiot-zephyr/samples/demo_uwb_controller
FW version error
demo_sr2xx_fw_update Running other demos before executing this will result in a firmware version error. Always perform the firmware update first.
Next episode preview
Once the environment is set up, we'll finally run the demo. Next time, we'll explain how to run the UWB ranging demo using two different routes: the PnP route and the Zephyr SDK route. Stay tuned!
Reference links
Trimension SR250 Development Board Start Guide
SR250 UWB Plug-and-Play Application (GitHub)
sr250-uwbiot-zephyr (GitHub)
FRDM-RW612 Product Page
Trimension SR250 Evaluation Board
MCUXpresso for VS Code
=========================
We are currently unable to respond to comments left in the "Comment" section of this post. We apologize for the inconvenience, but please refer to " Technical Questions to NXP - How to Contact Us( Japanese Blog) " when making an inquiry. (If you are already an NXP distributor or have a relationship with NXP, you may ask your representative directly.)
In the first installment, we introduced the features of the SR250 (integration of UWB ranging and UWB radar on a single chip). In the second installment, we will set up an environment to actually run the SR250 using the evaluation board SR250UWBSHIELD + FRDM-RW612. We will explain two routes: the build-free PnP (Plug-and-Play) route and the Zephyr SDK route for full-fledged development.
(Estimated work time: 10 minutes) Japanese Blog
記事全体を表示