Zigbee NCP¶
Overview¶
The Zigbee NCP sample demonstrates the usage of Zigbee’s Network Co-Processor (NCP) architecture.
Together with the source code from ZBOSS NCP Host, you can use this sample to create a complete and functional Zigbee device. For example, as shown in the Testing section, you can program nRF52840 Connect Kit with the NCP sample and bundle it with the simple gateway application on the NCP host processor.
You can then use this sample together with the Zigbee Light bulb to set up a basic Zigbee network.
Sniffing packets from a Zigbee network
You can use nRF Sniffer for 802.15.4 to capture and analyze packets exchanged on a Zigbee network.
Requirements¶
Before you start, check that you have the required hardware and software:
- 2x nRF52840 Connect Kit
- 2x USB-C Cable
- A computer running 64-bit Ubuntu 18.04 Linux
Building the sample¶
Before you start building, remember to set up the environment first.
Use the following steps to build the Zigbee NCP sample on the command line.
-
Open a terminal window.
-
Go to
my-workspace/ncs-playground
directory created in the Setting up the environment section. -
Build the sample using the
west
command, specifying the board (following the-b
option) asconnectkit_nrf52840
:Tip
The
-p always
option forces a pristine build, and is recommended for new users. Users may also use the-p auto
option, which will use heuristics to determine if a pristine build is required, such as when building another sample. -
After running the
west build
command, the build files can be found inbuild/zephyr
.
Flashing the firmware¶
The sample is designed to work with the UF2 Bootloader, so that you can easily flash the sample using the UF2 Bootloader. The firmware can be found in build/zephyr
with the name zephyr.uf2
.
To flash the firmware, complete the following steps:
-
Push and hold the USER button and plug your board into the USB port of your computer. Release the USER button after your board is connected. The RGB LED turns green.
-
It will mount as a Mass Storage Device called UF2BOOT.
-
Drag and drop
zephyr.uf2
onto the UF2BOOT volume. The RGB LED blinks red fast during flashing. -
Reset the board and the sample will start running.
Testing¶
After flashing the Zigbee NCP firmware, complete the following steps to test it:
-
Download and extract the ZBOSS NCP Host package.
Note
If you are using a Linux distribution different than the 64-bit Ubuntu 18.04, make sure to rebuild the package libraries and applications. Follow the instructions in the Rebuilding the ZBOSS libraries for host section in the NCP Host documentation.
-
Connect the board that runs the Zigbee NCP firmware to your computer using the USB-C Cable.
- Get the kit’s serial port names. You will get two serial ports: one used for communication with the NCP Host and one used to print ZBOSS stack logs.
- Turn on the board that runs the Zigbee Light bulb sample.
-
To start the simple gateway application, run the following command with
serial_port_name
replaced with the serial port name used for communication with the NCP sample: -
The simple gateway device forms the Zigbee network and opens the network for 180 seconds for new devices to join. When the light bulb joins the network, the RGB LED on the light bulb device turns Blue to indicate that it is connected to the simple gateway. The gateway then starts discovering the On/Off cluster. When it is found, the simple gateway configures bindings and reporting for the device. It then starts sending On/Off toggle commands with a 15-second interval that toggle the Green LED on the light bulb on and off.