Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents
stylenone

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:

  1. Use the prebuilt images provided in Release Notes.

  2. Build the images from the sources, as documented in Building Thingy-9151-Lite Software.

3. Preparing Host

3.1. Installing nRF Util

  1. Download and install the SEGGER J-Link Software from https://www.segger.com/downloads/jlink/:

    Code Block
    sudo dpkg -i JLink_Linux_V794e_x86_64.deb
  2. Install the libusb-1.0 package:

    Code Block
    sudo apt install libusb-1.0-0
  3. Download and install the nrf-udev package from https://github.com/NordicSemiconductor/nrf-udev/releases:

    Code Block
    sudo dpkg -i nrf-udev_1.0.1-all.deb
  4. 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:

    Code Block
    chmod +x nrfutil
    sudo mv nrfutil /usr/local/bin
  5. Install the nrfutill device command:

    Code Block
    nrfutil install device

3.2. Identifying Nordic Devices on the Linux Host

  1. Usenrfutil to list all connected development kits, their serial numbers and associated serial ports:

    Code Block
    $ 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)
    
  2. Use nrfutil to identify the specific devices:

    Code Block
    $ 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
  3. In this example, the nRF9161 serial number is 1050931892, and the nRF5340 serial number is 1050021575. They should be used to program the corresponding devices.

4.

...

Installing Zephyr Images

4.1. Programming Thingy-9151-Lite Application to nRF9161

  1. If needed, disable access protection on nRF9161:

    Code Block
    nrfutil device recover --serial-number <serial number>
  2. Program the release image to nRF9161:

    Code Block
    nrfutil device program --serial-number <serial number> --firmware thingy9151lite_nrf9151_app_on_nrf9161dk_***_release.hex
  3. Alternatively, program the application image from the build tree:

    Code Block
    nrfutil device program --serial-number <serial number> --firmware thingy9151lite_nrf9151_app/build/zephyr/merged.hex
  4. Reset the board:

    Code Block
    nrfutil device reset --serial-number <serial number>

4.2. Programming Thingy-9151-Lite Application to nRF5340 Application Core

  1. If needed, disable access protection on the nRF5340 application core:

    Code Block
    nrfutil device recover --serial-number <serial number>
  2. Program the release image to the nRF5340 application core:

    Code Block
    nrfutil device program --serial-number <serial number> --firmware thingy9151lite_nrf5340_cpuapp_app_on_nrf5340dk_***_release.hex
  3. Alternatively, program the application image from the build tree:

    Code Block
    nrfutil device program --serial-number <serial number> --firmware thingy9151lite_nrf5340_cpuapp_app/build/zephyr/merged.hex
  4. Reset the application core:

    Code Block
    nrfutil device reset --serial-number <serial number>

4.3. Programming Thingy-9151-Lite Application to nRF5340 Network Core

  1. If needed, disable access protection on the nRF5340 network core:

    Code Block
    nrfutil device recover --serial-number <serial number> --core Network
  2. Program the release image to the nRF5340 network core:

    Code Block
    nrfutil device program --serial-number <serial number> --core Network --firmware thingy9151lite_nrf5340_cpunet_app_on_nrf5340dk_***_release.hex
  3. Alternatively, program the application image from the build tree:

    Code Block
    nrfutil device program --serial-number <serial number> --core Network --firmware thingy9151lite_nrf5340_cpunet_app/build/zephyr/zephyr.hex
  4. Reset the network core:

    Code Block
    nrfutil device reset --serial-number <serial number> --core Network

...