1.. _actinius_icarus_bee:
2
3Actinius Icarus Bee
4###################
5
6Overview
7********
8
9.. figure:: img/icarus-bee.jpg
10     :align: center
11     :alt: Icarus Bee
12
13     Icarus Bee (nRF9160 Bee)
14
15The Icarus Bee is a cellular IoT board in Bee/xBee form factor.
16It is built around Nordic Semi's nRF9160 modem and combines
17LTE-M, NB-IoT, GPS, accelerometer, SPI Flash, RGB LED, Button,
18as well as an eSIM and a nano SIM connector.
19
20The main uController is the Nordic Semiconductor nRF9160, with
21ARM Cortex-M33F CPU, ARMv8-M Security Extension and the
22following devices (provided directly by Nordic):
23
24* :abbr:`ADC (Analog to Digital Converter)`
25* CLOCK
26* FLASH
27* :abbr:`GPIO (General Purpose Input Output)`
28* :abbr:`I2C (Inter-Integrated Circuit)`
29* :abbr:`MPU (Memory Protection Unit)`
30* :abbr:`NVIC (Nested Vectored Interrupt Controller)`
31* :abbr:`PWM (Pulse Width Modulation)`
32* :abbr:`RTC (nRF RTC System Clock)`
33* Segger RTT (RTT Console)
34* :abbr:`SPI (Serial Peripheral Interface)`
35* :abbr:`UARTE (Universal asynchronous receiver-transmitter with EasyDMA)`
36* :abbr:`WDT (Watchdog Timer)`
37* :abbr:`IDAU (Implementation Defined Attribution Unit)`
38
39.. figure:: img/icarus-bee-external-pins.jpg
40     :align: center
41     :alt: Icarus Bee w/ Pinouts
42
43     Icarus Bee w/ Pinouts
44
45.. figure:: img/icarus-bee-peripherals-pins.jpg
46     :align: center
47     :alt: Icarus Bee
48
49     Internal Pinouts
50
51Hardware
52********
53
54The detailed information about the on-board hardware can be found at the `Icarus Bee Product Website`_.
55
56Supported Features
57==================
58
59The actinius_icarus_bee board configuration supports the following
60hardware features:
61
62+-----------+------------+----------------------+
63| Interface | Controller | Driver/Component     |
64+===========+============+======================+
65| ADC       | on-chip    | adc                  |
66+-----------+------------+----------------------+
67| CLOCK     | on-chip    | clock_control        |
68+-----------+------------+----------------------+
69| FLASH     | on-chip    | flash                |
70+-----------+------------+----------------------+
71| GPIO      | on-chip    | gpio                 |
72+-----------+------------+----------------------+
73| I2C(M)    | on-chip    | i2c                  |
74+-----------+------------+----------------------+
75| MPU       | on-chip    | arch/arm             |
76+-----------+------------+----------------------+
77| NVIC      | on-chip    | arch/arm             |
78+-----------+------------+----------------------+
79| PWM       | on-chip    | pwm                  |
80+-----------+------------+----------------------+
81| SPI(M/S)  | on-chip    | spi                  |
82+-----------+------------+----------------------+
83| SPU       | on-chip    | system protection    |
84+-----------+------------+----------------------+
85| UARTE     | on-chip    | serial               |
86+-----------+------------+----------------------+
87| ACCEL     | st         | lis2dh               |
88+-----------+------------+----------------------+
89
90SIM selection
91*************
92
93The sim choice (eSIM or nano-SIM) can be configured in Devicetree by adjusting
94the ``sim`` property in the ``sim_select`` node.
95
96Security components
97===================
98
99- Implementation Defined Attribution Unit (`IDAU`_).  The IDAU is implemented
100  with the System Protection Unit and is used to define secure and non-secure
101  memory maps.  By default, all of the memory space  (Flash, SRAM, and
102  peripheral address space) is defined to be secure accessible only.
103- Secure boot.
104
105Building Secure/Non-Secure Zephyr applications
106==============================================
107
108The process requires the following steps:
109
1101. Build the Secure Zephyr application using ``-DBOARD=actinius_icarus_bee``.
1112. Build the Non-Secure Zephyr application using ``-DBOARD=actinius_icarus_bee_ns``.
1123. Merge the two binaries together.
113
114If you are using Segger Embedded Studio v4.18 or later, the two binaries are built, merged, and
115burned automatically, unless you have disabled the feature.
116
117When building a Secure/Non-Secure application, the Secure application will
118have to set the IDAU (SPU) configuration to allow Non-Secure access to all
119CPU resources utilized by the Non-Secure application firmware. SPU
120configuration shall take place before jumping to the Non-Secure application.
121
122More information can be found in the `Icarus Bee Product Website`_ or the
123`Actinius Documentation Portal`_.
124
125References
126**********
127
128.. target-notes::
129
130.. _IDAU:
131   https://developer.arm.com/docs/100690/latest/attribution-units-sau-and-idau
132
133.. _Icarus Bee Product Website:
134   https://www.actinius.com/icarus-bee
135
136.. _Actinius Documentation Portal:
137   https://docs.actinius.com
138