1.. _nrf9160_innblue22:
2
3nRF9160 INNBLUE22
4#################
5
6Overview
7********
8
9The nRF9160 innblue22 is a cellular IoT sensor development board, which
10is based on the nRF9160 SiP, and features NB-IoT and LTE-M connectivity.
11
12.. figure:: img/nrf9160_innblue22.png
13	 :width: 1024px
14	 :align: center
15	 :alt: nRF9160 innblue22
16
17	 nRF9160 innblue22 (Credit: innblue)
18
19Hardware
20********
21
22The following parts are built into the board:
23
24* Accelerometer: ST LIS2DH12
25* CryptoElement: Atmel ATECC608a
26* Humidity Sensor: ST HTS221
27* Qi charger: TI BQ51013
28* Battery fuel gauge: TI BQ27421
29
30Supported Features
31==================
32
33The nrf9160_innblue22 board configuration supports the following
34hardware (as of nRF9160) features:
35
36+-----------+------------+----------------------+
37| Interface | Controller | Driver/Component     |
38+-----------+------------+----------------------+
39| CLOCK     | on-chip    | clock_control        |
40+-----------+------------+----------------------+
41| FLASH     | on-chip    | flash                |
42+-----------+------------+----------------------+
43| GPIO      | on-chip    | gpio                 |
44+-----------+------------+----------------------+
45| I2C(M)    | on-chip    | i2c                  |
46+-----------+------------+----------------------+
47| MPU       | on-chip    | arch/arm             |
48+-----------+------------+----------------------+
49| NVIC      | on-chip    | arch/arm             |
50+-----------+------------+----------------------+
51| PWM       | on-chip    | pwm                  |
52+-----------+------------+----------------------+
53| RTT       | Segger     | console              |
54+-----------+------------+----------------------+
55| SPU       | on-chip    | system protection    |
56+-----------+------------+----------------------+
57| UARTE     | on-chip    | serial               |
58+-----------+------------+----------------------+
59| WDT       | on-chip    | watchdog             |
60+-----------+------------+----------------------+
61
62Connections and IOs
63===================
64
65LED
66---
67
68* LED1 ( red ) = P0.7
69* LED2 (green) = P0.6
70* LED3 ( blue) = P0.5
71* LED4 ( red ) = P0.4
72
73Push buttons and Switches
74-------------------------
75
76* BUTTON1 = P0.31
77
78Security components
79===================
80
81- Implementation Defined Attribution Unit. The IDAU is implemented
82  with the System Protection Unit and is used to define secure and non-secure
83  memory maps.  By default, all of the memory space  (Flash, SRAM, and
84  peripheral address space) is defined to be secure accessible only.
85- Secure boot.
86
87Programming and Debugging
88*************************
89
90nrf9160_innblue22 supports the Armv8m Security Extension, and by default boots
91in the Secure state.
92
93Building Secure/Non-Secure Zephyr applications
94==============================================
95
96The process requires the following steps:
97
981. Build the Secure Zephyr application using ``-DBOARD=nrf9160_innblue22`` and
99   ``CONFIG_TRUSTED_EXECUTION_SECURE=y`` in the the application project configuration file.
1002. Build the Non-Secure Zephyr application using ``-DBOARD=nrf9160_innblue22_ns``.
1013. Merge the two binaries together.
102
103When building a Secure/Non-Secure application, the Secure application will
104have to set the IDAU (SPU) configuration to allow Non-Secure access to all
105CPU resources utilized by the Non-Secure application firmware. SPU
106configuration shall take place before jumping to the Non-Secure application.
107
108Building a Secure only application
109==================================
110
111Build the Zephyr app in the usual way (see :ref:`build_an_application`
112and :ref:`application_run`), using ``-DBOARD=nrf9160_innblue22``.
113
114Flashing
115========
116
117Follow the instructions in the :ref:`nordic_segger` page to install
118and configure all the necessary software. Further information can be
119found in :ref:`nordic_segger_flashing`. Then build and flash
120applications as usual (see :ref:`build_an_application` and
121:ref:`application_run` for more details).
122
123Here is an example for the :ref:`hello_world` application.
124
125First, run your favorite terminal program to listen for output.
126
127.. code-block:: console
128
129   $ minicom -D <tty_device> -b 115200
130
131Replace :code:`<tty_device>` with the port where the nRF9160 innblue22
132can be found. For example, under Linux, :code:`/dev/ttyACM0`.
133
134Then build and flash the application in the usual way.
135
136.. zephyr-app-commands::
137   :zephyr-app: samples/hello_world
138   :board: nrf9160_innblue22
139   :goals: build flash
140
141Debugging
142=========
143
144Refer to the :ref:`nordic_segger` page to learn about debugging Nordic boards with a
145Segger IC.
146