nRF9160 SiP

The nRF9160 System-in-Package (SiP) is Nordic’s cellular IoT module supporting both LTE-M1 and NB-IoT and is the hardware used throughout this course. The nRF9160 SiP consists of an application processor, an LTE modem, memory, with power and clock-management.

nRF9160 SiP overview

The application processor runs your application, while the modem runs modem firmware, provided by Nordic as pre-compiled binaries. nRF Connect SDK contains the Modem library, which the application will use to interface with the LTE modem.

The application processor on the nRF9160 SiP contains the Cortex-M33 MCU with Arm TrustZone. This is relevant, because the TrustZone technology enables the separation of a secure and non-secure domain.

nRF9160 application processor overview

At boot-up, the application always starts execution from the secure domain. From there, the Secure Partition Manager or the Trusted Firmware-M is started, which will configure part of the memory and peripherals as non-secure and then jump to the main application in the non-secure area.

This is all automated by the nRF Connect SDK when building your application for the non-secure domain. As you can see from the figure, the modem library, which interfaces with the LTE modem, is defined in the non-secure domain. Therefore, any application that includes the modem library needs to be built for the non-secure domain.

HardwareBoard name (non-secure)Board name (nRF52840)
nRF9160 DKnrf9160dk_nrf9160_nsnrf9160dk_nrf52840
Thingy:91thingy91_nrf9160_nsthingy91_nrf52840
Board names for nRF9160 SiP developmental HW

It is recommended, that secure parts of your code run in the secure domain. However, this is beyond the scope of this course.

More on this

You can read more on how to run portions of your application in the secure domain here. //Find something on this

Multi-image build

In nRF Connect SDK Fundamentals, we briefly discussed the concept of multi-image builds. With cellular IoT development, multi-image builds become more relevant because you are developing on the nRF9160 SiP, which is a multi-partition target. As mentioned, any application that wants to interface with the modem needs to run in the non-secure domain, and will therefore be a multi-image build. And even though this happens automatically when building for the non-secure domain, it is useful to know how it works.

All nRF9160 applications (the parent image) require the Secure Partition Manager (the child image) to be programmed together with the actual application. When building an application for the non-secure domain, the Secure Partition Manager is automatically included as the child image, making it a multi-image build.

Note

In a multi-image build, the resulting executable can be found at <build_directory>/zephyr/merged.hex.

Communication stack

Below is an illustration of the nRF9160 SiP communication stack. Throughout this course, we will cover different layers and refer back to this diagram.

nRF9160 SiP communication stack

Lesson 3 will cover the modem library and Link Controller library and briefly touch upon TCP / UDP and TLS/DTLS. Lesson 4 will cover TCP and TLS, and the MQTT library, an implementation of the TCP-based application layer protocol MQTT. Lesson 5 will go over UDP and TLS, and the CoAP library, an implementation of the UDP-based transport protocol CoAP. Lesson 6 will [something]. Lesson 7 will take a look at the GPS element of the modem FW and how to implement the GPS driver to get your location.

When introducing a new layer, the topics will always refer back to this diagram for a cohesive understanding.

Register an account
Already have an account? Log in
(All fields are required unless specified optional)

  • 8 or more characters
  • Upper and lower case letters
  • At least one number or special character

Forgot your password?
Enter the email associated with your account, and we will send you a link to reset your password.