1. Overview
This application note explains how to install the Zephyr images to the Emcraft Thingy-9151-Lite hardware platform (refer to Setting Up Thingy-9151-Lite Hardware Platform for a description of the hardware platform).
2. Obtaining Zephyr Images
The Zephyr images to be installed onto the Thingy-9151-Lite platform can be obtained using one of the two approaches, as follows:
Use the prebuilt images provided in Release Notes.
Build the images from the sources, as documented in Building Thingy-9151-Lite Software.
3. Preparing Host
3.1. Installing nRF Util
Download and install the SEGGER J-Link Software from https://www.segger.com/downloads/jlink/:
sudo dpkg -i JLink_Linux_V794e_x86_64.deb
Install the
libusb-1.0
package:
sudo apt install libusb-1.0-0
Download and install the nrf-udev
package from https://github.com/NordicSemiconductor/nrf-udev/releases:
sudo dpkg -i nrf-udev_1.0.1-all.deb
Download the latest nrfutil
executable from https://www.nordicsemi.com/Products/Development-tools/nRF-Util, give it the execute permission, and move it to a folder that is in the system's PATH
:
chmod +x nrfutil sudo mv nrfutil /usr/local/bin
Install the nrfutill device
command:
nrfutil install device
3.2. Identifying Nordic Devices on the Linux Host
Use
nrfutil
to list all connected development kits, their serial numbers and associated serial ports:$ nrfutil device list 1050021575 product J-Link board version PCA10095 ports /dev/ttyACM2, vcom: 0 /dev/ttyACM3, vcom: 1 traits devkit, jlink, seggerUsb, serialPorts, usb 1050931892 product J-Link board version PCA10153 ports /dev/ttyACM0, vcom: 0 /dev/ttyACM1, vcom: 1 traits boardController, devkit, jlink, modem, seggerUsb, serialPorts, usb Found 2 supported device(s)
Use
nrfutil
to identify the specific devices:$ nrfutil device device-info --serial-number 1050931892 serial_number: 001050931892 boardVersion: PCA10153 deviceFamily: NRF91_FAMILY deviceVersion: NRF9161_xxAA_REV3 jlinkObFirmwareVersion: J-Link OB-nRF5340-NordicSemi compiled Apr 11 2024 17:44:26 protectionStatus: NRFDL_PROTECTION_STATUS_NONE $ nrfutil device device-info --serial-number 1050021575 serial_number: 001050021575 boardVersion: PCA10095 deviceFamily: NRF53_FAMILY deviceVersion: NRF5340_xxAA_ENGD jlinkObFirmwareVersion: J-Link OB-nRF5340-NordicSemi compiled Apr 11 2024 17:44:26 protectionStatus: NRFDL_PROTECTION_STATUS_NONE
In this example, the nRF9161 serial number is
1050931892
, and the nRF5340 serial number is1050021575
. They should be used to program the corresponding devices.
4. Installing Zephyr Images
4.1. Programming Thingy-9151-Lite Application to nRF9161
If needed, disable access protection on nRF9161:
nrfutil device recover --serial-number <serial number>
Program the release image to nRF9161:
nrfutil device program --serial-number <serial number> --firmware thingy9151lite_nrf9151_app_on_nrf9161dk_***_release.hex
Alternatively, program the application image from the build tree:
nrfutil device program --serial-number <serial number> --firmware thingy9151lite_nrf9151_app/build/zephyr/merged.hex
Reset the board:
nrfutil device reset --serial-number <serial number>
4.2. Programming Thingy-9151-Lite Application to nRF5340 Application Core
If needed, disable access protection on the nRF5340 application core:
nrfutil device recover --serial-number <serial number>
Program the release image to the nRF5340 application core:
nrfutil device program --serial-number <serial number> --firmware thingy9151lite_nrf5340_cpuapp_app_on_nrf5340dk_***_release.hex
Alternatively, program the application image from the build tree:
nrfutil device program --serial-number <serial number> --firmware thingy9151lite_nrf5340_cpuapp_app/build/zephyr/merged.hex
Reset the application core:
nrfutil device reset --serial-number <serial number>
4.3. Programming Thingy-9151-Lite Application to nRF5340 Network Core
If needed, disable access protection on the nRF5340 network core:
nrfutil device recover --serial-number <serial number> --core Network
Program the release image to the nRF5340 network core:
nrfutil device program --serial-number <serial number> --firmware thingy9151lite_nrf5340_cpunet_app_on_nrf5340dk_***_release.hex
Alternatively, program the application image from the build tree:
nrfutil device program --serial-number <serial number> --firmware thingy9151lite_nrf5340_cpunet_app/build/zephyr/zephyr.hex
Reset the network core:
nrfutil device reset --serial-number <serial number> --core Network