Edge Impulse

The following guide explains how to develop and deploy machine learning applications on Nordic Semiconductor devices using Edge Impulse. It is ideal if you want an end‑to‑end workflow for data collection, model training, and deployment on embedded targets.

To follow this guide, you should be familiar with basic embedded systems development. The guide covers the steps required to collect data, train a model using Edge Impulse tools, and deploy the resulting model to a Nordic device.

After completing this guide, you will have a machine learning application running on a Nordic Semiconductor device using Edge Impulse.

Hardware requirements

The support of specific hardware platforms depends on the sample application you wish to run. For details, see the Edge Impulse samples page, or refer to individual samples’ sample.yaml files in the samples/edge_impulse/<sample>/ directory.

Edge Impulse SDK is provided in form of source code and can be built during the application build process for a hardware architecture of the target device. This means SDK and models can be built for any Nordic Semiconductor’s device with ARM Cortex-M4F and Cortex-M33F architectures.

You can also deploy Edge Impulse models utilizing Axon NPU, which is designed to accelerate machine learning inference on selected Nordic Semiconductor’s devices. Currently, these models can be run only on the nRF54LM20B device.

Software requirements

To start working with the Edge Impulse SDK, you must:

  1. Complete Setting up the SDK (includes nRF Connect SDK, toolchain, and Edge Impulse SDK).

  2. Create an Edge Impulse studio account if you want to train and deploy your own machine learning models.

  3. Follow the Edge Impulse CLI installation guide to install Edge Impulse command line tools. They include, for example, edge-impulse-data-forwarder which can be used to forward data from a board to Edge Impulse Studio for training machine learning models.

Model training

This section will guide you through the complete workflow from data collection to model deployment using Edge Impulse Studio. The platform’s visual interface makes it easy to experiment with different model architectures and signal processing techniques.

Create an account

First, create a free Edge Impulse studio account. Your account gives you access to Edge Impulse Studio, where you can manage projects, collect and label data, train models, and deploy them to your devices. The platform provides generous free tier access, making it perfect for learning and prototyping.

Collect data

Data is the foundation of your machine learning model. You will need representative samples that capture the patterns, events, or conditions you want your model to recognize. Edge Impulse makes data collection straightforward with multiple options to fit your workflow.

Choose the method that works best for your project:

  • Directly from your development board - Use or modify the Data forwarder to stream sensor data from your Nordic board. Use it for custom hardware setups to have full control over data collection. Enable the CONFIG_DATA_FWD_PROTO_ASCII_MODE Kconfig option when streaming directly to Edge Impulse Studio using the Edge Impulse’s data forwarder CLI. You can also use the Data Forwarder Host tool to visualize and save the streamed sensor data to your local machine and than upload it to Edge Impulse Studio manually.

  • Quick start with Thingy:53 - If you have a Thingy:53, install the Edge Impulse - Wi-Fi firmware using the nRF Programmer mobile app, then use the nRF Edge Impulse mobile app to forward sensor data wirelessly. This is the fastest way to start collecting data without writing any code.

  • Upload existing datasets - If you already have data, you can upload synthetic data or public datasets directly to Edge Impulse Studio. Check Edge Impulse Datasets for community-contributed datasets you can use as a starting point.

Tip

  • For time-series data (sensor readings, audio), start with at least 5-10 minutes of varied data per class.

  • For image data, aim for 50-100 images per class as a starting point, with good variety in lighting, angles, and backgrounds.

  • For all data types, prioritize dataset diversity and balance the number of samples across classes to improve model performance.

For more details on data collection strategies, follow the Edge Impulse data acquisition guide.

Train your model

Edge Impulse Studio guides you through creating an “Impulse”, which is a pipeline that processes your raw sensor data, extracts meaningful features, and trains a neural network to recognize patterns. The visual workflow makes it easy to experiment with different configurations and see results in real-time.

Train and deploy your model using Edge Impulse studio:

Your model is now trained and ready for deployment on Nordic devices.

Next steps

  • If you use Axon and need lower‑level access to the NPU beyond what Edge Impulse provides, see Model compilation to learn how to compile custom TensorFlow Lite models for Axon.

Application development

This section covers integration steps for a trained Edge Impulse model into your embedded application. The Edge Impulse SDK provides a C++ API that makes it straightforward to run inference on your device.

Prepare your environment

Before integrating your model, set up the Edge Impulse development environment on your system. This one-time setup prepares everything you need to build and deploy Edge Impulse applications on Nordic devices.

  1. Set up Edge Impulse SDK.

  2. Run the Hello Edge Impulse sample application to verify everything is working correctly.

Successfully running the Hello Edge Impulse confirms your toolchain is properly configured and ready for development.

Develop your application

Now you can integrate your trained model into your application. The Edge Impulse SDK makes it easy to load your model, feed it sensor data, and get predictions with just a few API calls.

  1. Add your model - Include the generated model package in your application following the instructions in Building the application. Edge Impulse packages your entire inference pipeline into a portable library.

  2. Implement your application logic using the Edge Impulse SDK API:

    • See Hello Edge Impulse for a simple example showing the basic API flow from initialization to inference.

    • Explore Data forwarder if you want to add data forwarding capabilities for continuous learning and debugging.

    • Read the Edge Impulse C++ SDK documentation for comprehensive API reference and advanced features.

Tip

Start with one of the sample applications and modify it incrementally. This will help you understand the API structure before building your custom application from scratch.

Deploy your application

Build your application, flash it to your Nordic device, and verify its real-time inference on live sensor data.

To build an application, follow the instructions in Building an application for your preferred building environment. See also Programming for programming steps and Testing and optimization for general information about testing and debugging in the nRF Connect SDK.

Your Nordic device is now running intelligent edge AI powered by Edge Impulse.

Next steps

To work on advanced solutions, see further documentation:

  • Explore advanced features - Dive deeper into the Edge Impulse C++ SDK documentation to discover advanced capabilities like anomaly detection, continuous learning, and custom processing blocks.

  • Direct Axon NPU control - If you use Axon and need lower‑level access to the NPU beyond what Edge Impulse provides, see Application development to learn how to implement custom inference pipelines with the Axon driver API.

  • Add runtime monitoring of model outputs with nRF Edge AI Observability Library.