Skip to content

zigbee middleware, part of the SDK for K32W0 and K32W1 products

License

Notifications You must be signed in to change notification settings

nxp-mcuxpresso/mcuxsdk-middleware-zigbee

Repository files navigation

Table of Content

Useful documents

Building NXP Zigbee examples with CMake

Prerequisites:

  • CMake (version >=3.24)
  • Ninja (version >=1.12)
  • ARM GCC Toolchain
  • Python3 (version >=3.6)
  • MCUXPresso GitHub SDK

Python requirements

Python is used to run the ZPSConfig and PDUMConfig tools, and requires the extra modules. To avoid conflicts with your global Python install, we recommend using a virtual environment. You can either use the one used with your MCUXPresso SDK install, or create a specific one:

python3 -m venv .venv

Then, make sure to activate your environment:

source .venv/bin/activate

Once the virtual environment is activated, you can install the required modules with pip:

pip install -r requirements.txt

Windows long paths limitation

CMake can generate long paths name, and depending on where your MCUX SDK is located, the build might not work correctly on Windows. For this reason, it is recommended to enable long paths support, Microsoft documented the procedure here. We also recommend to place your MCUXPresso SDK in the root of your disk, like C:\, to reduce the paths length as much as possible.

Currently, a Linux environment is preferred over Windows due to these limitations. WSL, Virtual Machine or native Linux environment can be used.

Building

The NXP Zigbee CMake build system is meant to be used with the MCUXPresso GitHub SDK. To setup the SDK, follow the instructions provided by the SDK directly. Once the SDK is setup, the NXP Zigbee repository will be located at <path to mcux sdk>/middleware/wireless/zigbee and you will be able to build the CMake based examples. To know which revision of the MCUXPresso SDK is supported by the target platform, check the platform specific README.md located at platform/<platform name>/docs/README.md.

To build a zigee example, we use west build, like the following:

west build -b <board> -p auto <path to the application>

As an example, to build the coordinator application of frdmrw612 board:

west build -b frdmrw612 -p auto <sdk root>/examples/wireless_examples/zigbee/coordinator/freertos

Current examples supported

You'll find below the list of NXP Zigbee examples supported with CMake.

All these examples are located with the other SDK examples, in <sdk_root>/examples.

Name Source folder Description Supported boards
coordinator <sdk_root>/examples/wireless_examples/zigbee/coordinator/<os> See README frdmrw612 rdrw612bga frdmmcxw71 frdmmcxw72
router <sdk_root>/examples/wireless_examples/zigbee/router/<os> See README frdmrw612 rdrw612bga frdmmcxw71 frdmmcxw72
ed_rx_on <sdk_root>/examples/wireless_examples/zigbee/ed_rx_on/<os> See README frdmrw612 rdrw612bga frdmmcxw71 frdmmcxw72
ed_rx_off <sdk_root>/examples/wireless_examples/zigbee/ed_rx_off/<os> - frdmmcxw71 frdmmcxw72

Note: frdmrw612 and rdrw612bga boards only supports FreeRTOS, not baremetal.