This repository contains an nRF Connect SDK example application. The main purpose of this repository is to serve as a reference on how to structure nRF Connect SDK based applications. Some of the features demonstrated in this example are:
- Basic Zephyr application skeleton
- Zephyr workspace applications
- Zephyr modules
- West T2 topology
- Custom boards
- Custom devicetree bindings
- Out-of-tree drivers
- Out-of-tree libraries
- Example CI configuration (using Github Actions)
- Custom west extension
This repository is versioned together with the nRF Connect SDK main tree. This
means that every time that nRF Connect SDK is tagged, this repository is tagged as well
with the same version number, and the manifest entry for zephyr
will point to the corresponding nRF Connect SDK tag. For example, the ncs-example-application
v2.5.0 will point to nRF Connect SDK v2.5.0. Note that the main
branch always
points to the development branch of nRF Connect SDK, also main
.
Before getting started, make sure you have a proper nRF Connect SDK development environment. Follow the official Installation guide.
The first step is to initialize the workspace folder (my-workspace
) where
the example-application
and all nRF Connect SDK modules will be cloned. Run the following
command:
# initialize my-workspace for the ncs-example-application (main branch)
west init -m https://github.com/nrfconnect/ncs-example-application --mr main my-workspace
# update nRF Connect SDK modules
cd my-workspace
west update
To build the application, run the following command:
west build -b $BOARD app
where $BOARD
is the target board.
You can use the custom_plank
board found in this repository. Note that you can use
Zephyr and nRF Connect SDK sample boards if an appropriate overlay is provided (see app/boards
).
A sample debug configuration is also provided. To apply it, run the following command:
west build -b $BOARD app -- -DOVERLAY_CONFIG=debug.conf
Once you have built the application, run the following command to flash it:
west flash
To execute Twister integration tests, run the following command:
west twister -T tests --integration