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