Edge Impulse enables developers to create the next generation of intelligent device solutions with embedded Machine Learning. This repository contains the Edge Impulse firmware for the Nordic Semiconductor nRF9160 DK development boards, in combination with the ST IKS02A shield. This combination supports all Edge Impulse device features, including ingestion, remote management and inferencing.
Note: Do you just want to use this development board with Edge Impulse? No need to build this firmware. See these instructions for prebuilt images and instructions, or use the data forwarder to capture data from any sensor.
Hardware
-
Nordic Semiconductor nRF9160 DK development board.
-
X-NUCLEO-IKS02A1 shield.
No IKS02A1 shield? You can modify this firmware relatively easily to work with other accelerometers or PDM microphones that are supported in Zephyr. See Working with other sensors.
Software
Or you can build this application with Docker (see below).
-
Install and configure the nRF Connect SDK:
-
nRF Connect SDK in a separate folder from this repository (e.g.
~/repos/ncs
). -
Check out NCS version 1.9.1:
$ cd ~/repos/ncs/nrf $ git checkout v1.9.1 $ cd .. $ west update
-
Set your
ZEPHYR_BASE
environment variable to~/repos/ncs/zephyr
.
-
-
Clone this repository:
$ git clone https://github.com/edgeimpulse/firmware-nrf91
-
You'll need to flash the board controller once:
-
Ensure that the
PROG/DEBUG
switch is innRF52
postion. -
Run:
$ cd board-controller/ $ west build -b [email protected] $ west flash
-
-
Build and flash the application:
-
Ensure that the
PROG/DEBUG
switch is innRF91
postion. -
Build the application (make sure you're in the
firmware-nrf91
folder again, not in theboard-controller
!):$ west build -b [email protected]
-
Flash the application:
$ west flash
-
-
Clone this repository:
$ git clone https://github.com/edgeimpulse/firmware-nrf91
-
Build the Docker container:
$ docker build -t edge-impulse-nordic .
-
You'll need to flash the board controller once:
-
Ensure that the
PROG/DEBUG
switch is innRF52
postion. -
Run:
$ docker run --rm -v $PWD:/app edge-impulse-nordic /bin/bash -c "cd board-controller && west build -b [email protected]"
-
Copy
board-controller/build/zephyr/zephyr.bin
to theJLINK
mass storage device.
-
-
Build and flash the application:
-
Ensure that the
PROG/DEBUG
switch is innRF91
postion. -
Build the application:
$ docker run --rm -v $PWD:/app edge-impulse-nordic /bin/bash -c "west build -b [email protected]"
-
Copy
build/zephyr/zephyr.bin
to theJLINK
mass storage device.
-
You can easily add support for other accelerometers, PDM microphones or even completely different sensors to this firmware through either built-in Zephyr drivers, or through the Zephyr sensor API. See the examples for the nRF52840 DK for more info.